{
  "attribution": "This Pulumi package is based on the [`azurerm` Terraform Provider](https://github.com/hashicorp/terraform-provider-azurerm).",
  "config": {
    "defaults": [
      "environment",
      "metadataHost"
    ],
    "variables": {
      "auxiliaryTenantIds": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "clientCertificatePassword": {
        "description": "The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client\nCertificate\n",
        "type": "string"
      },
      "clientCertificatePath": {
        "description": "The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service\nPrincipal using a Client Certificate.\n",
        "type": "string"
      },
      "clientId": {
        "description": "The Client ID which should be used.\n",
        "type": "string"
      },
      "clientSecret": {
        "description": "The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret.\n",
        "type": "string"
      },
      "disableCorrelationRequestId": {
        "description": "This will disable the x-ms-correlation-request-id header.\n",
        "type": "boolean"
      },
      "disableTerraformPartnerId": {
        "description": "This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified.\n",
        "type": "boolean"
      },
      "environment": {
        "default": "public",
        "defaultInfo": {
          "environment": [
            "AZURE_ENVIRONMENT",
            "ARM_ENVIRONMENT"
          ]
        },
        "description": "The Cloud Environment which should be used. Possible values are public, usgovernment, german, and china. Defaults to\npublic.\n",
        "type": "string"
      },
      "features": {
        "$ref": "#/types/azure:config/features:features"
      },
      "location": {
        "defaultInfo": {
          "environment": [
            "ARM_LOCATION"
          ]
        },
        "type": "string"
      },
      "metadataHost": {
        "defaultInfo": {
          "environment": [
            "ARM_METADATA_HOSTNAME"
          ]
        },
        "description": "The Hostname which should be used for the Azure Metadata Service.\n",
        "type": "string"
      },
      "metadataUrl": {
        "defaultInfo": {
          "environment": [
            "ARM_METADATA_URL"
          ]
        },
        "deprecationMessage": "use `metadata_host` instead",
        "description": "Deprecated - replaced by `metadata_host`.\n",
        "type": "string"
      },
      "msiEndpoint": {
        "description": "The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected\nautomatically.\n",
        "type": "string"
      },
      "partnerId": {
        "description": "A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution.\n",
        "type": "string"
      },
      "skipCredentialsValidation": {
        "deprecationMessage": "This field is deprecated and will be removed in version 3.0 of the Azure Provider",
        "description": "[DEPRECATED] This will cause the AzureRM Provider to skip verifying the credentials being used are valid.\n",
        "type": "boolean"
      },
      "skipProviderRegistration": {
        "default": false,
        "defaultInfo": {
          "environment": [
            "ARM_SKIP_PROVIDER_REGISTRATION"
          ]
        },
        "description": "Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already\nregistered?\n",
        "type": "boolean"
      },
      "storageUseAzuread": {
        "default": false,
        "defaultInfo": {
          "environment": [
            "ARM_STORAGE_USE_AZUREAD"
          ]
        },
        "description": "Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?\n",
        "type": "boolean"
      },
      "subscriptionId": {
        "default": "",
        "defaultInfo": {
          "environment": [
            "ARM_SUBSCRIPTION_ID"
          ]
        },
        "description": "The Subscription ID which should be used.\n",
        "type": "string"
      },
      "tenantId": {
        "description": "The Tenant ID which should be used.\n",
        "type": "string"
      },
      "useMsi": {
        "description": "Allowed Managed Service Identity be used for Authentication.\n",
        "type": "boolean"
      }
    }
  },
  "description": "A Pulumi package based on the azurerm Terraform Provider for creating and managing Microsoft Azure cloud resources. Consider using the Pulumi Azure Native package for full coverage of Azure resources.",
  "functions": {
    "azure:advisor/getRecommendations:getRecommendations": {
      "description": "Use this data source to access information about an existing Advisor Recommendations.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.advisor.getRecommendations({\n    filterByCategories: [\n        \"security\",\n        \"cost\",\n    ],\n    filterByResourceGroups: [\"example-resgroups\"],\n});\nexport const recommendations = example.then(example =\u003e example.recommendations);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.advisor.get_recommendations(filter_by_categories=[\n        \"security\",\n        \"cost\",\n    ],\n    filter_by_resource_groups=[\"example-resgroups\"])\npulumi.export(\"recommendations\", example.recommendations)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Advisor.GetRecommendations.InvokeAsync(new Azure.Advisor.GetRecommendationsArgs\n        {\n            FilterByCategories = \n            {\n                \"security\",\n                \"cost\",\n            },\n            FilterByResourceGroups = \n            {\n                \"example-resgroups\",\n            },\n        }));\n        this.Recommendations = example.Apply(example =\u003e example.Recommendations);\n    }\n\n    [Output(\"recommendations\")]\n    public Output\u003cstring\u003e Recommendations { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/advisor\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := advisor.GetRecommendations(ctx, \u0026advisor.GetRecommendationsArgs{\n\t\t\tFilterByCategories: []string{\n\t\t\t\t\"security\",\n\t\t\t\t\"cost\",\n\t\t\t},\n\t\t\tFilterByResourceGroups: []string{\n\t\t\t\t\"example-resgroups\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"recommendations\", example.Recommendations)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getRecommendations.\n",
        "properties": {
          "filterByCategories": {
            "description": "Specifies a list of categories in which the Advisor Recommendations will be listed. Possible values are `HighAvailability`, `Security`, `Performance`, `Cost` and `OperationalExcellence`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "filterByResourceGroups": {
            "description": "Specifies a list of resource groups about which the Advisor Recommendations will be listed.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getRecommendations.\n",
        "properties": {
          "filterByCategories": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "filterByResourceGroups": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "recommendations": {
            "description": "One or more `recommendations` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:advisor/getRecommendationsRecommendation:getRecommendationsRecommendation"
            },
            "type": "array"
          }
        },
        "required": [
          "recommendations",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:apimanagement/getApi:getApi": {
      "description": "Use this data source to access information about an existing API Management API.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.apimanagement.getApi({\n    name: \"search-api\",\n    apiManagementName: \"search-api-management\",\n    resourceGroupName: \"search-service\",\n    revision: \"2\",\n});\nexport const apiManagementApiId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.apimanagement.get_api(name=\"search-api\",\n    api_management_name=\"search-api-management\",\n    resource_group_name=\"search-service\",\n    revision=\"2\")\npulumi.export(\"apiManagementApiId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ApiManagement.GetApi.InvokeAsync(new Azure.ApiManagement.GetApiArgs\n        {\n            Name = \"search-api\",\n            ApiManagementName = \"search-api-management\",\n            ResourceGroupName = \"search-service\",\n            Revision = \"2\",\n        }));\n        this.ApiManagementApiId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"apiManagementApiId\")]\n    public Output\u003cstring\u003e ApiManagementApiId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := apimanagement.LookupApi(ctx, \u0026apimanagement.LookupApiArgs{\n\t\t\tName:              \"search-api\",\n\t\t\tApiManagementName: \"search-api-management\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t\tRevision:          \"2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"apiManagementApiId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getApi.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service in which the API Management API exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the API Management API.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group in which the API Management Service exists.\n",
            "type": "string"
          },
          "revision": {
            "description": "The Revision of the API Management API.\n",
            "type": "string"
          }
        },
        "required": [
          "apiManagementName",
          "name",
          "resourceGroupName",
          "revision"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getApi.\n",
        "properties": {
          "apiManagementName": {
            "type": "string"
          },
          "description": {
            "description": "A description of the API Management API, which may include HTML formatting tags.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the API.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "isCurrent": {
            "description": "Is this the current API Revision?\n",
            "type": "boolean"
          },
          "isOnline": {
            "description": "Is this API Revision online/accessible via the Gateway?\n",
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "path": {
            "description": "The Path for this API Management API.\n",
            "type": "string"
          },
          "protocols": {
            "description": "A list of protocols the operations in this API can be invoked.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "revision": {
            "type": "string"
          },
          "serviceUrl": {
            "description": "Absolute URL of the backend service implementing this API.\n",
            "type": "string"
          },
          "soapPassThrough": {
            "description": "Should this API expose a SOAP frontend, rather than a HTTP frontend?\n",
            "type": "boolean"
          },
          "subscriptionKeyParameterNames": {
            "description": "A `subscription_key_parameter_names` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/getApiSubscriptionKeyParameterName:getApiSubscriptionKeyParameterName"
            },
            "type": "array"
          },
          "subscriptionRequired": {
            "description": "Should this API require a subscription key?\n",
            "type": "boolean"
          },
          "version": {
            "description": "The Version number of this API, if this API is versioned.\n",
            "type": "string"
          },
          "versionSetId": {
            "description": "The ID of the Version Set which this API is associated with.\n",
            "type": "string"
          }
        },
        "required": [
          "apiManagementName",
          "description",
          "displayName",
          "isCurrent",
          "isOnline",
          "name",
          "path",
          "protocols",
          "resourceGroupName",
          "revision",
          "serviceUrl",
          "soapPassThrough",
          "subscriptionKeyParameterNames",
          "subscriptionRequired",
          "version",
          "versionSetId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:apimanagement/getApiVersionSet:getApiVersionSet": {
      "description": "Uses this data source to access information about an API Version Set within an API Management Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.apimanagement.getApiVersionSet({\n    resourceGroupName: \"example-resources\",\n    apiManagementName: \"example-api\",\n    name: \"example-api-version-set\",\n});\nexport const apiManagementApiVersionSetId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.apimanagement.get_api_version_set(resource_group_name=\"example-resources\",\n    api_management_name=\"example-api\",\n    name=\"example-api-version-set\")\npulumi.export(\"apiManagementApiVersionSetId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ApiManagement.GetApiVersionSet.InvokeAsync(new Azure.ApiManagement.GetApiVersionSetArgs\n        {\n            ResourceGroupName = \"example-resources\",\n            ApiManagementName = \"example-api\",\n            Name = \"example-api-version-set\",\n        }));\n        this.ApiManagementApiVersionSetId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"apiManagementApiVersionSetId\")]\n    public Output\u003cstring\u003e ApiManagementApiVersionSetId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := apimanagement.LookupApiVersionSet(ctx, \u0026apimanagement.LookupApiVersionSetArgs{\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t\tApiManagementName: \"example-api\",\n\t\t\tName:              \"example-api-version-set\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"apiManagementApiVersionSetId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getApiVersionSet.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service where the API Version Set exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the API Version Set.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the parent API Management Service exists.\n",
            "type": "string"
          }
        },
        "required": [
          "apiManagementName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getApiVersionSet.\n",
        "properties": {
          "apiManagementName": {
            "type": "string"
          },
          "description": {
            "description": "The description of API Version Set.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of this API Version Set.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "versionHeaderName": {
            "description": "The name of the Header which should be read from Inbound Requests which defines the API Version.\n",
            "type": "string"
          },
          "versionQueryName": {
            "description": "The name of the Query String which should be read from Inbound Requests which defines the API Version.\n",
            "type": "string"
          },
          "versioningScheme": {
            "type": "string"
          }
        },
        "required": [
          "apiManagementName",
          "description",
          "displayName",
          "name",
          "resourceGroupName",
          "versionHeaderName",
          "versionQueryName",
          "versioningScheme",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:apimanagement/getGateway:getGateway": {
      "description": "Use this data source to access information about an existing API Management Gateway.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleService = azure.apimanagement.getService({\n    name: \"example-apim\",\n    resourceGroupName: \"example-rg\",\n});\nconst exampleGateway = exampleService.then(exampleService =\u003e azure.apimanagement.getGateway({\n    name: \"example-api-gateway\",\n    apiManagementId: exampleService.id,\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_service = azure.apimanagement.get_service(name=\"example-apim\",\n    resource_group_name=\"example-rg\")\nexample_gateway = azure.apimanagement.get_gateway(name=\"example-api-gateway\",\n    api_management_id=example_service.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleService = Output.Create(Azure.ApiManagement.GetService.InvokeAsync(new Azure.ApiManagement.GetServiceArgs\n        {\n            Name = \"example-apim\",\n            ResourceGroupName = \"example-rg\",\n        }));\n        var exampleGateway = exampleService.Apply(exampleService =\u003e Output.Create(Azure.ApiManagement.GetGateway.InvokeAsync(new Azure.ApiManagement.GetGatewayArgs\n        {\n            Name = \"example-api-gateway\",\n            ApiManagementId = exampleService.Id,\n        })));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleService, err := apimanagement.LookupService(ctx, \u0026apimanagement.LookupServiceArgs{\n\t\t\tName:              \"example-apim\",\n\t\t\tResourceGroupName: \"example-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.LookupGateway(ctx, \u0026apimanagement.LookupGatewayArgs{\n\t\t\tName:            \"example-api-gateway\",\n\t\t\tApiManagementId: exampleService.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getGateway.\n",
        "properties": {
          "apiManagementId": {
            "description": "The ID of the API Management Service in which the Gateway exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the API Management Gateway.\n",
            "type": "string"
          }
        },
        "required": [
          "apiManagementId",
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getGateway.\n",
        "properties": {
          "apiManagementId": {
            "type": "string"
          },
          "description": {
            "description": "The description of the API Management Gateway.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "locationDatas": {
            "description": "A `location_data` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/getGatewayLocationData:getGatewayLocationData"
            },
            "type": "array"
          },
          "name": {
            "description": "A canonical name for the geographic or physical location.\n",
            "type": "string"
          }
        },
        "required": [
          "apiManagementId",
          "description",
          "locationDatas",
          "name",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:apimanagement/getGroup:getGroup": {
      "description": "Use this data source to access information about an existing API Management Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.apimanagement.getGroup({\n    name: \"my-group\",\n    apiManagementName: \"example-apim\",\n    resourceGroupName: \"search-service\",\n});\nexport const groupType = example.then(example =\u003e example.type);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.apimanagement.get_group(name=\"my-group\",\n    api_management_name=\"example-apim\",\n    resource_group_name=\"search-service\")\npulumi.export(\"groupType\", example.type)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ApiManagement.GetGroup.InvokeAsync(new Azure.ApiManagement.GetGroupArgs\n        {\n            Name = \"my-group\",\n            ApiManagementName = \"example-apim\",\n            ResourceGroupName = \"search-service\",\n        }));\n        this.GroupType = example.Apply(example =\u003e example.Type);\n    }\n\n    [Output(\"groupType\")]\n    public Output\u003cstring\u003e GroupType { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := apimanagement.LookupGroup(ctx, \u0026apimanagement.LookupGroupArgs{\n\t\t\tName:              \"my-group\",\n\t\t\tApiManagementName: \"example-apim\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"groupType\", example.Type)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getGroup.\n",
        "properties": {
          "apiManagementName": {
            "description": "The Name of the API Management Service in which this Group exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The Name of the API Management Group.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group in which the API Management Service exists.\n",
            "type": "string"
          }
        },
        "required": [
          "apiManagementName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getGroup.\n",
        "properties": {
          "apiManagementName": {
            "type": "string"
          },
          "description": {
            "description": "The description of this API Management Group.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of this API Management Group.\n",
            "type": "string"
          },
          "externalId": {
            "description": "The identifier of the external Group.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "type": {
            "description": "The type of this API Management Group, such as `custom` or `external`.\n",
            "type": "string"
          }
        },
        "required": [
          "apiManagementName",
          "description",
          "displayName",
          "externalId",
          "name",
          "resourceGroupName",
          "type",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:apimanagement/getProduct:getProduct": {
      "description": "Use this data source to access information about an existing API Management Product.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.apimanagement.getProduct({\n    productId: \"my-product\",\n    apiManagementName: \"example-apim\",\n    resourceGroupName: \"search-service\",\n});\nexport const productTerms = example.then(example =\u003e example.terms);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.apimanagement.get_product(product_id=\"my-product\",\n    api_management_name=\"example-apim\",\n    resource_group_name=\"search-service\")\npulumi.export(\"productTerms\", example.terms)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ApiManagement.GetProduct.InvokeAsync(new Azure.ApiManagement.GetProductArgs\n        {\n            ProductId = \"my-product\",\n            ApiManagementName = \"example-apim\",\n            ResourceGroupName = \"search-service\",\n        }));\n        this.ProductTerms = example.Apply(example =\u003e example.Terms);\n    }\n\n    [Output(\"productTerms\")]\n    public Output\u003cstring\u003e ProductTerms { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := apimanagement.LookupProduct(ctx, \u0026apimanagement.LookupProductArgs{\n\t\t\tProductId:         \"my-product\",\n\t\t\tApiManagementName: \"example-apim\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"productTerms\", example.Terms)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getProduct.\n",
        "properties": {
          "apiManagementName": {
            "description": "The Name of the API Management Service in which this Product exists.\n",
            "type": "string"
          },
          "productId": {
            "description": "The Identifier for the API Management Product.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group in which the API Management Service exists.\n",
            "type": "string"
          }
        },
        "required": [
          "apiManagementName",
          "productId",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getProduct.\n",
        "properties": {
          "apiManagementName": {
            "type": "string"
          },
          "approvalRequired": {
            "description": "Do subscribers need to be approved prior to being able to use the Product?\n",
            "type": "boolean"
          },
          "description": {
            "description": "The description of this Product, which may include HTML formatting tags.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The Display Name for this API Management Product.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "productId": {
            "type": "string"
          },
          "published": {
            "description": "Is this Product Published?\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "subscriptionRequired": {
            "description": "Is a Subscription required to access API's included in this Product?\n",
            "type": "boolean"
          },
          "subscriptionsLimit": {
            "description": "The number of subscriptions a user can have to this Product at the same time.\n",
            "type": "integer"
          },
          "terms": {
            "description": "Any Terms and Conditions for this Product, which must be accepted by Developers before they can begin the Subscription process.\n",
            "type": "string"
          }
        },
        "required": [
          "apiManagementName",
          "approvalRequired",
          "description",
          "displayName",
          "productId",
          "published",
          "resourceGroupName",
          "subscriptionRequired",
          "subscriptionsLimit",
          "terms",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:apimanagement/getService:getService": {
      "description": "Use this data source to access information about an existing API Management Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.apimanagement.getService({\n    name: \"search-api\",\n    resourceGroupName: \"search-service\",\n});\nexport const apiManagementId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.apimanagement.get_service(name=\"search-api\",\n    resource_group_name=\"search-service\")\npulumi.export(\"apiManagementId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ApiManagement.GetService.InvokeAsync(new Azure.ApiManagement.GetServiceArgs\n        {\n            Name = \"search-api\",\n            ResourceGroupName = \"search-service\",\n        }));\n        this.ApiManagementId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"apiManagementId\")]\n    public Output\u003cstring\u003e ApiManagementId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := apimanagement.LookupService(ctx, \u0026apimanagement.LookupServiceArgs{\n\t\t\tName:              \"search-api\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"apiManagementId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getService.\n",
        "properties": {
          "name": {
            "description": "The name of the API Management service.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group in which the API Management Service exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getService.\n",
        "properties": {
          "additionalLocations": {
            "description": "Zero or more `additional_location` blocks as defined below\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/getServiceAdditionalLocation:getServiceAdditionalLocation"
            },
            "type": "array"
          },
          "developerPortalUrl": {
            "description": "The URL for the Developer Portal associated with this API Management service.\n",
            "type": "string"
          },
          "gatewayRegionalUrl": {
            "description": "Gateway URL of the API Management service in the Region.\n",
            "type": "string"
          },
          "gatewayUrl": {
            "description": "The URL for the API Management Service's Gateway.\n",
            "type": "string"
          },
          "hostnameConfigurations": {
            "description": "A `hostname_configuration` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/getServiceHostnameConfiguration:getServiceHostnameConfiguration"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "(Optional) An `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/getServiceIdentity:getServiceIdentity"
            },
            "type": "array"
          },
          "location": {
            "description": "The location name of the additional region among Azure Data center regions.\n",
            "type": "string"
          },
          "managementApiUrl": {
            "description": "The URL for the Management API.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the plan's pricing tier.\n",
            "type": "string"
          },
          "notificationSenderEmail": {
            "description": "The email address from which the notification will be sent.\n",
            "type": "string"
          },
          "portalUrl": {
            "description": "The URL of the Publisher Portal.\n",
            "type": "string"
          },
          "privateIpAddresses": {
            "description": "Private IP addresses of the API Management service in the additional location, for instances using virtual network mode.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "publicIpAddresses": {
            "description": "Public Static Load Balanced IP addresses of the API Management service in the additional location. Available only for Basic, Standard and Premium SKU.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "publisherEmail": {
            "description": "The email of Publisher/Company of the API Management Service.\n",
            "type": "string"
          },
          "publisherName": {
            "description": "The name of the Publisher/Company of the API Management Service.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "scmUrl": {
            "description": "The SCM (Source Code Management) endpoint.\n",
            "type": "string"
          },
          "skuName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "additionalLocations",
          "developerPortalUrl",
          "gatewayRegionalUrl",
          "gatewayUrl",
          "hostnameConfigurations",
          "identities",
          "location",
          "managementApiUrl",
          "name",
          "notificationSenderEmail",
          "portalUrl",
          "privateIpAddresses",
          "publicIpAddresses",
          "publisherEmail",
          "publisherName",
          "resourceGroupName",
          "scmUrl",
          "skuName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:apimanagement/getUser:getUser": {
      "description": "Use this data source to access information about an existing API Management User.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getUser.\n",
        "properties": {
          "apiManagementName": {
            "description": "The Name of the API Management Service in which this User exists.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group in which the API Management Service exists.\n",
            "type": "string"
          },
          "userId": {
            "description": "The Identifier for the User.\n",
            "type": "string"
          }
        },
        "required": [
          "apiManagementName",
          "resourceGroupName",
          "userId"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getUser.\n",
        "properties": {
          "apiManagementName": {
            "type": "string"
          },
          "email": {
            "description": "The Email Address used for this User.\n",
            "type": "string"
          },
          "firstName": {
            "description": "The First Name for the User.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "lastName": {
            "description": "The Last Name for the User.\n",
            "type": "string"
          },
          "note": {
            "description": "Any notes about this User.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "state": {
            "description": "The current state of this User, for example `active`, `blocked` or `pending`.\n",
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "required": [
          "apiManagementName",
          "email",
          "firstName",
          "lastName",
          "note",
          "resourceGroupName",
          "state",
          "userId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:appconfiguration/getConfigurationStore:getConfigurationStore": {
      "description": "Use this data source to access information about an existing App Configuration.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.appconfiguration.getConfigurationStore({\n    name: \"existing\",\n    resourceGroupName: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.appconfiguration.get_configuration_store(name=\"existing\",\n    resource_group_name=\"existing\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.AppConfiguration.GetConfigurationStore.InvokeAsync(new Azure.AppConfiguration.GetConfigurationStoreArgs\n        {\n            Name = \"existing\",\n            ResourceGroupName = \"existing\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appconfiguration\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := appconfiguration.LookupConfigurationStore(ctx, \u0026appconfiguration.LookupConfigurationStoreArgs{\n\t\t\tName:              \"existing\",\n\t\t\tResourceGroupName: \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getConfigurationStore.\n",
        "properties": {
          "name": {
            "description": "The Name of this App Configuration.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the App Configuration exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getConfigurationStore.\n",
        "properties": {
          "endpoint": {
            "description": "The Endpoint used to access this App Configuration.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the App Configuration exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primaryReadKeys": {
            "description": "A `primary_read_key` block as defined below containing the primary read access key.\n",
            "items": {
              "$ref": "#/types/azure:appconfiguration/getConfigurationStorePrimaryReadKey:getConfigurationStorePrimaryReadKey"
            },
            "type": "array"
          },
          "primaryWriteKeys": {
            "description": "A `primary_write_key` block as defined below containing the primary write access key.\n",
            "items": {
              "$ref": "#/types/azure:appconfiguration/getConfigurationStorePrimaryWriteKey:getConfigurationStorePrimaryWriteKey"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryReadKeys": {
            "description": "A `secondary_read_key` block as defined below containing the secondary read access key.\n",
            "items": {
              "$ref": "#/types/azure:appconfiguration/getConfigurationStoreSecondaryReadKey:getConfigurationStoreSecondaryReadKey"
            },
            "type": "array"
          },
          "secondaryWriteKeys": {
            "description": "A `secondary_write_key` block as defined below containing the secondary write access key.\n",
            "items": {
              "$ref": "#/types/azure:appconfiguration/getConfigurationStoreSecondaryWriteKey:getConfigurationStoreSecondaryWriteKey"
            },
            "type": "array"
          },
          "sku": {
            "description": "The name of the SKU used for this App Configuration.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the App Configuration.\n",
            "type": "object"
          }
        },
        "required": [
          "endpoint",
          "location",
          "name",
          "primaryReadKeys",
          "primaryWriteKeys",
          "resourceGroupName",
          "secondaryReadKeys",
          "secondaryWriteKeys",
          "sku",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:appinsights/getInsights:getInsights": {
      "description": "Use this data source to access information about an existing Application Insights component.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.appinsights.getInsights({\n    name: \"production\",\n    resourceGroupName: \"networking\",\n});\nexport const applicationInsightsInstrumentationKey = example.then(example =\u003e example.instrumentationKey);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.appinsights.get_insights(name=\"production\",\n    resource_group_name=\"networking\")\npulumi.export(\"applicationInsightsInstrumentationKey\", example.instrumentation_key)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.AppInsights.GetInsights.InvokeAsync(new Azure.AppInsights.GetInsightsArgs\n        {\n            Name = \"production\",\n            ResourceGroupName = \"networking\",\n        }));\n        this.ApplicationInsightsInstrumentationKey = example.Apply(example =\u003e example.InstrumentationKey);\n    }\n\n    [Output(\"applicationInsightsInstrumentationKey\")]\n    public Output\u003cstring\u003e ApplicationInsightsInstrumentationKey { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := appinsights.LookupInsights(ctx, \u0026appinsights.LookupInsightsArgs{\n\t\t\tName:              \"production\",\n\t\t\tResourceGroupName: \"networking\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"applicationInsightsInstrumentationKey\", example.InstrumentationKey)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getInsights.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Application Insights component.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Application Insights component is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getInsights.\n",
        "properties": {
          "appId": {
            "description": "The App ID associated with this Application Insights component.\n",
            "type": "string"
          },
          "applicationType": {
            "description": "The type of the component.\n",
            "type": "string"
          },
          "connectionString": {
            "description": "The connection string of the Application Insights component. (Sensitive)\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "instrumentationKey": {
            "description": "The instrumentation key of the Application Insights component.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the component exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "retentionInDays": {
            "description": "The retention period in days.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags applied to the component.\n",
            "type": "object"
          },
          "workspaceId": {
            "description": "The id of the associated Log Analytics workspace\n",
            "type": "string"
          }
        },
        "required": [
          "appId",
          "applicationType",
          "connectionString",
          "instrumentationKey",
          "location",
          "name",
          "resourceGroupName",
          "retentionInDays",
          "tags",
          "workspaceId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:appplatform/getSpringCloudApp:getSpringCloudApp": {
      "description": "Use this data source to access information about an existing Spring Cloud Application.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.appplatform.getSpringCloudApp({\n    name: azurerm_spring_cloud_app.example.name,\n    resourceGroupName: azurerm_spring_cloud_app.example.resource_group_name,\n    serviceName: azurerm_spring_cloud_app.example.service_name,\n});\nexport const springCloudAppId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.appplatform.get_spring_cloud_app(name=azurerm_spring_cloud_app[\"example\"][\"name\"],\n    resource_group_name=azurerm_spring_cloud_app[\"example\"][\"resource_group_name\"],\n    service_name=azurerm_spring_cloud_app[\"example\"][\"service_name\"])\npulumi.export(\"springCloudAppId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.AppPlatform.GetSpringCloudApp.InvokeAsync(new Azure.AppPlatform.GetSpringCloudAppArgs\n        {\n            Name = azurerm_spring_cloud_app.Example.Name,\n            ResourceGroupName = azurerm_spring_cloud_app.Example.Resource_group_name,\n            ServiceName = azurerm_spring_cloud_app.Example.Service_name,\n        }));\n        this.SpringCloudAppId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"springCloudAppId\")]\n    public Output\u003cstring\u003e SpringCloudAppId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appplatform\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := appplatform.LookupSpringCloudApp(ctx, \u0026appplatform.LookupSpringCloudAppArgs{\n\t\t\tName:              azurerm_spring_cloud_app.Example.Name,\n\t\t\tResourceGroupName: azurerm_spring_cloud_app.Example.Resource_group_name,\n\t\t\tServiceName:       azurerm_spring_cloud_app.Example.Service_name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"springCloudAppId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSpringCloudApp.\n",
        "properties": {
          "name": {
            "description": "The name of the Spring Cloud Application.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Spring Cloud Application exists.\n",
            "type": "string"
          },
          "serviceName": {
            "description": "The name of the Spring Cloud Service.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName",
          "serviceName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSpringCloudApp.\n",
        "properties": {
          "fqdn": {
            "description": "The Fully Qualified DNS Name.\n",
            "type": "string"
          },
          "httpsOnly": {
            "description": "Is only https allowed?\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "An `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appplatform/getSpringCloudAppIdentity:getSpringCloudAppIdentity"
            },
            "type": "array"
          },
          "isPublic": {
            "description": "Does the Spring Cloud Application have public endpoint?\n",
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "persistentDisks": {
            "description": "A `persistent_disk` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appplatform/getSpringCloudAppPersistentDisk:getSpringCloudAppPersistentDisk"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "serviceName": {
            "type": "string"
          },
          "tlsEnabled": {
            "description": "Is End to End TLS Enabled?\n",
            "type": "boolean"
          },
          "url": {
            "description": "The public endpoint of the Spring Cloud Application.\n",
            "type": "string"
          }
        },
        "required": [
          "fqdn",
          "httpsOnly",
          "identities",
          "isPublic",
          "name",
          "persistentDisks",
          "resourceGroupName",
          "serviceName",
          "tlsEnabled",
          "url",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:appplatform/getSpringCloudService:getSpringCloudService": {
      "description": "Use this data source to access information about an existing Spring Cloud Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.appplatform.getSpringCloudService({\n    name: azurerm_spring_cloud_service.example.name,\n    resourceGroupName: azurerm_spring_cloud_service.example.resource_group_name,\n});\nexport const springCloudServiceId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.appplatform.get_spring_cloud_service(name=azurerm_spring_cloud_service[\"example\"][\"name\"],\n    resource_group_name=azurerm_spring_cloud_service[\"example\"][\"resource_group_name\"])\npulumi.export(\"springCloudServiceId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.AppPlatform.GetSpringCloudService.InvokeAsync(new Azure.AppPlatform.GetSpringCloudServiceArgs\n        {\n            Name = azurerm_spring_cloud_service.Example.Name,\n            ResourceGroupName = azurerm_spring_cloud_service.Example.Resource_group_name,\n        }));\n        this.SpringCloudServiceId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"springCloudServiceId\")]\n    public Output\u003cstring\u003e SpringCloudServiceId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appplatform\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := appplatform.LookupSpringCloudService(ctx, \u0026appplatform.LookupSpringCloudServiceArgs{\n\t\t\tName:              azurerm_spring_cloud_service.Example.Name,\n\t\t\tResourceGroupName: azurerm_spring_cloud_service.Example.Resource_group_name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"springCloudServiceId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSpringCloudService.\n",
        "properties": {
          "name": {
            "description": "Specifies The name of the Spring Cloud Service resource.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where the Spring Cloud Service exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSpringCloudService.\n",
        "properties": {
          "configServerGitSettings": {
            "description": "A `config_server_git_setting` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appplatform/getSpringCloudServiceConfigServerGitSetting:getSpringCloudServiceConfigServerGitSetting"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The location of Spring Cloud Service.\n",
            "type": "string"
          },
          "name": {
            "description": "The name to identify on the Git repository.\n",
            "type": "string"
          },
          "outboundPublicIpAddresses": {
            "description": "A list of the outbound Public IP Addresses used by this Spring Cloud Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "requiredNetworkTrafficRules": {
            "description": "A list of `required_network_traffic_rules` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appplatform/getSpringCloudServiceRequiredNetworkTrafficRule:getSpringCloudServiceRequiredNetworkTrafficRule"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to Spring Cloud Service.\n",
            "type": "object"
          }
        },
        "required": [
          "configServerGitSettings",
          "location",
          "name",
          "outboundPublicIpAddresses",
          "requiredNetworkTrafficRules",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:appservice/getAppService:getAppService": {
      "description": "Use this data source to access information about an existing App Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.appservice.getAppService({\n    name: \"search-app-service\",\n    resourceGroupName: \"search-service\",\n});\nexport const appServiceId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.appservice.get_app_service(name=\"search-app-service\",\n    resource_group_name=\"search-service\")\npulumi.export(\"appServiceId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.AppService.GetAppService.InvokeAsync(new Azure.AppService.GetAppServiceArgs\n        {\n            Name = \"search-app-service\",\n            ResourceGroupName = \"search-service\",\n        }));\n        this.AppServiceId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"appServiceId\")]\n    public Output\u003cstring\u003e AppServiceId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := appservice.LookupAppService(ctx, \u0026appservice.LookupAppServiceArgs{\n\t\t\tName:              \"search-app-service\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"appServiceId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAppService.\n",
        "properties": {
          "name": {
            "description": "The name of the App Service.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the App Service exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAppService.\n",
        "properties": {
          "appServicePlanId": {
            "description": "The ID of the App Service Plan within which the App Service exists.\n",
            "type": "string"
          },
          "appSettings": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A key-value pair of App Settings for the App Service.\n",
            "type": "object"
          },
          "clientAffinityEnabled": {
            "description": "Does the App Service send session affinity cookies, which route client requests in the same session to the same instance?\n",
            "type": "boolean"
          },
          "clientCertEnabled": {
            "description": "Does the App Service require client certificates for incoming requests?\n",
            "type": "boolean"
          },
          "connectionStrings": {
            "description": "An `connection_string` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/getAppServiceConnectionString:getAppServiceConnectionString"
            },
            "type": "array"
          },
          "customDomainVerificationId": {
            "description": "An identifier used by App Service to perform domain ownership verification via DNS TXT record.\n",
            "type": "string"
          },
          "defaultSiteHostname": {
            "description": "The Default Hostname associated with the App Service - such as `mysite.azurewebsites.net`\n",
            "type": "string"
          },
          "enabled": {
            "description": "Is the App Service Enabled?\n",
            "type": "boolean"
          },
          "httpsOnly": {
            "description": "Can the App Service only be accessed via HTTPS?\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the App Service exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name for this IP Restriction.\n",
            "type": "string"
          },
          "outboundIpAddressLists": {
            "description": "A list of outbound IP addresses - such as `[\"52.23.25.3\", \"52.143.43.12\"]`\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "outboundIpAddresses": {
            "description": "A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12`\n",
            "type": "string"
          },
          "possibleOutboundIpAddressLists": {
            "description": "A list of outbound IP addresses - such as `[\"52.23.25.3\", \"52.143.43.12\", \"52.143.43.17\"]` - not all of which are necessarily in use. Superset of `outbound_ip_address_list`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "possibleOutboundIpAddresses": {
            "description": "A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12,52.143.43.17` - not all of which are necessarily in use. Superset of `outbound_ip_addresses`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "siteConfigs": {
            "description": "A `site_config` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/getAppServiceSiteConfig:getAppServiceSiteConfig"
            },
            "type": "array"
          },
          "siteCredentials": {
            "items": {
              "$ref": "#/types/azure:appservice/getAppServiceSiteCredential:getAppServiceSiteCredential"
            },
            "type": "array"
          },
          "sourceControls": {
            "description": "A `source_control` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/getAppServiceSourceControl:getAppServiceSourceControl"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "appServicePlanId",
          "appSettings",
          "clientAffinityEnabled",
          "clientCertEnabled",
          "connectionStrings",
          "customDomainVerificationId",
          "defaultSiteHostname",
          "enabled",
          "httpsOnly",
          "location",
          "name",
          "outboundIpAddressLists",
          "outboundIpAddresses",
          "possibleOutboundIpAddressLists",
          "possibleOutboundIpAddresses",
          "resourceGroupName",
          "siteConfigs",
          "siteCredentials",
          "sourceControls",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:appservice/getAppServiceEnvironment:getAppServiceEnvironment": {
      "description": "Use this data source to access information about an existing App Service Environment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.appservice.getAppServiceEnvironment({\n    name: \"existing-ase\",\n    resourceGroupName: \"existing-rg\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.appservice.get_app_service_environment(name=\"existing-ase\",\n    resource_group_name=\"existing-rg\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.AppService.GetAppServiceEnvironment.InvokeAsync(new Azure.AppService.GetAppServiceEnvironmentArgs\n        {\n            Name = \"existing-ase\",\n            ResourceGroupName = \"existing-rg\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := appservice.GetAppServiceEnvironment(ctx, \u0026appservice.GetAppServiceEnvironmentArgs{\n\t\t\tName:              \"existing-ase\",\n\t\t\tResourceGroupName: \"existing-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAppServiceEnvironment.\n",
        "properties": {
          "name": {
            "description": "The name of this App Service Environment.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the App Service Environment exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAppServiceEnvironment.\n",
        "properties": {
          "clusterSettings": {
            "description": "Zero or more `cluster_setting` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/getAppServiceEnvironmentClusterSetting:getAppServiceEnvironmentClusterSetting"
            },
            "type": "array"
          },
          "frontEndScaleFactor": {
            "description": "The number of app instances per App Service Environment Front End.\n",
            "type": "integer"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "internalIpAddress": {
            "description": "IP address of internal load balancer of the App Service Environment.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the App Service Environment exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Cluster Setting.\n",
            "type": "string"
          },
          "outboundIpAddresses": {
            "description": "List of outbound IP addresses of the App Service Environment.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "pricingTier": {
            "description": "The Pricing Tier (Isolated SKU) of the App Service Environment.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "serviceIpAddress": {
            "description": "IP address of service endpoint of the App Service Environment.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the App Service Environment.\n",
            "type": "object"
          }
        },
        "required": [
          "clusterSettings",
          "frontEndScaleFactor",
          "internalIpAddress",
          "location",
          "name",
          "outboundIpAddresses",
          "pricingTier",
          "resourceGroupName",
          "serviceIpAddress",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:appservice/getAppServicePlan:getAppServicePlan": {
      "description": "Use this data source to access information about an existing App Service Plan (formerly known as a `Server Farm`).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.appservice.getAppServicePlan({\n    name: \"search-app-service-plan\",\n    resourceGroupName: \"search-service\",\n});\nexport const appServicePlanId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.appservice.get_app_service_plan(name=\"search-app-service-plan\",\n    resource_group_name=\"search-service\")\npulumi.export(\"appServicePlanId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.AppService.GetAppServicePlan.InvokeAsync(new Azure.AppService.GetAppServicePlanArgs\n        {\n            Name = \"search-app-service-plan\",\n            ResourceGroupName = \"search-service\",\n        }));\n        this.AppServicePlanId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"appServicePlanId\")]\n    public Output\u003cstring\u003e AppServicePlanId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := appservice.GetAppServicePlan(ctx, \u0026appservice.GetAppServicePlanArgs{\n\t\t\tName:              \"search-app-service-plan\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"appServicePlanId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAppServicePlan.\n",
        "properties": {
          "name": {
            "description": "The name of the App Service Plan.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the App Service Plan exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAppServicePlan.\n",
        "properties": {
          "appServiceEnvironmentId": {
            "description": "The ID of the App Service Environment where the App Service Plan is located.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "isXenon": {
            "description": "A flag that indicates if it's a xenon plan (support for Windows Container)\n",
            "type": "boolean"
          },
          "kind": {
            "description": "The Operating System type of the App Service Plan\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the App Service Plan exists\n",
            "type": "string"
          },
          "maximumElasticWorkerCount": {
            "description": "The maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan.\n",
            "type": "integer"
          },
          "maximumNumberOfWorkers": {
            "description": "The maximum number of workers supported with the App Service Plan's sku.\n",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "perSiteScaling": {
            "description": "Can Apps assigned to this App Service Plan be scaled independently?\n",
            "type": "boolean"
          },
          "reserved": {
            "description": "Is this App Service Plan `Reserved`?\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sku": {
            "$ref": "#/types/azure:appservice/getAppServicePlanSku:getAppServicePlanSku",
            "description": "A `sku` block as documented below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "zoneRedundant": {
            "description": "App Service Plan perform availability zone balancing.\n",
            "type": "boolean"
          }
        },
        "required": [
          "appServiceEnvironmentId",
          "isXenon",
          "kind",
          "location",
          "maximumElasticWorkerCount",
          "maximumNumberOfWorkers",
          "name",
          "perSiteScaling",
          "reserved",
          "resourceGroupName",
          "sku",
          "tags",
          "zoneRedundant",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:appservice/getCertificate:getCertificate": {
      "description": "Use this data source to access information about an App Service Certificate.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.appservice.getCertificate({\n    name: \"example-app-service-certificate\",\n    resourceGroupName: \"example-rg\",\n});\nexport const appServiceCertificateId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.appservice.get_certificate(name=\"example-app-service-certificate\",\n    resource_group_name=\"example-rg\")\npulumi.export(\"appServiceCertificateId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.AppService.GetCertificate.InvokeAsync(new Azure.AppService.GetCertificateArgs\n        {\n            Name = \"example-app-service-certificate\",\n            ResourceGroupName = \"example-rg\",\n        }));\n        this.AppServiceCertificateId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"appServiceCertificateId\")]\n    public Output\u003cstring\u003e AppServiceCertificateId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := appservice.LookupCertificate(ctx, \u0026appservice.LookupCertificateArgs{\n\t\t\tName:              \"example-app-service-certificate\",\n\t\t\tResourceGroupName: \"example-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"appServiceCertificateId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getCertificate.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the certificate.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the certificate.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCertificate.\n",
        "properties": {
          "expirationDate": {
            "description": "The expiration date for the certificate.\n",
            "type": "string"
          },
          "friendlyName": {
            "description": "The friendly name of the certificate.\n",
            "type": "string"
          },
          "hostNames": {
            "description": "List of host names the certificate applies to.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "issueDate": {
            "description": "The issue date for the certificate.\n",
            "type": "string"
          },
          "issuer": {
            "description": "The name of the certificate issuer.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "subjectName": {
            "description": "The subject name of the certificate.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "thumbprint": {
            "description": "The thumbprint for the certificate.\n",
            "type": "string"
          }
        },
        "required": [
          "expirationDate",
          "friendlyName",
          "hostNames",
          "issueDate",
          "issuer",
          "location",
          "name",
          "resourceGroupName",
          "subjectName",
          "thumbprint",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:appservice/getCertificateOrder:getCertificateOrder": {
      "description": "Use this data source to access information about an existing App Service Certificate Order.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.appservice.getCertificateOrder({\n    name: \"example-cert-order\",\n    resourceGroupName: \"example-resources\",\n});\nexport const certificateOrderId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.appservice.get_certificate_order(name=\"example-cert-order\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"certificateOrderId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.AppService.GetCertificateOrder.InvokeAsync(new Azure.AppService.GetCertificateOrderArgs\n        {\n            Name = \"example-cert-order\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.CertificateOrderId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"certificateOrderId\")]\n    public Output\u003cstring\u003e CertificateOrderId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := appservice.LookupCertificateOrder(ctx, \u0026appservice.LookupCertificateOrderArgs{\n\t\t\tName:              \"example-cert-order\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"certificateOrderId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getCertificateOrder.\n",
        "properties": {
          "name": {
            "description": "The name of the App Service.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the App Service exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCertificateOrder.\n",
        "properties": {
          "appServiceCertificateNotRenewableReasons": {
            "description": "Reasons why App Service Certificate is not renewable at the current moment.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "autoRenew": {
            "description": "true if the certificate should be automatically renewed when it expires; otherwise, false.\n",
            "type": "boolean"
          },
          "certificates": {
            "description": "State of the Key Vault secret. A `certificates` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/getCertificateOrderCertificate:getCertificateOrderCertificate"
            },
            "type": "array"
          },
          "csr": {
            "description": "Last CSR that was created for this order.\n",
            "type": "string"
          },
          "distinguishedName": {
            "description": "The Distinguished Name for the App Service Certificate Order.\n",
            "type": "string"
          },
          "domainVerificationToken": {
            "description": "Domain verification token.\n",
            "type": "string"
          },
          "expirationTime": {
            "description": "Certificate expiration time.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "intermediateThumbprint": {
            "description": "Certificate thumbprint intermediate certificate.\n",
            "type": "string"
          },
          "isPrivateKeyExternal": {
            "description": "Whether the private key is external or not.\n",
            "type": "boolean"
          },
          "keySize": {
            "description": "Certificate key size.\n",
            "type": "integer"
          },
          "location": {
            "description": "The Azure location where the App Service exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "productType": {
            "description": "Certificate product type, such as `Standard` or `WildCard`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "rootThumbprint": {
            "description": "Certificate thumbprint for root certificate.\n",
            "type": "string"
          },
          "signedCertificateThumbprint": {
            "description": "Certificate thumbprint for signed certificate.\n",
            "type": "string"
          },
          "status": {
            "description": "Current order status.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "validityInYears": {
            "description": "Duration in years (must be between 1 and 3).\n",
            "type": "integer"
          }
        },
        "required": [
          "appServiceCertificateNotRenewableReasons",
          "autoRenew",
          "certificates",
          "csr",
          "distinguishedName",
          "domainVerificationToken",
          "expirationTime",
          "intermediateThumbprint",
          "isPrivateKeyExternal",
          "keySize",
          "location",
          "name",
          "productType",
          "resourceGroupName",
          "rootThumbprint",
          "signedCertificateThumbprint",
          "status",
          "tags",
          "validityInYears",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:appservice/getEnvironmentV3:getEnvironmentV3": {
      "description": "Use this data source to access information about an existing 3rd Generation (v3) App Service Environment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.appservice.getEnvironmentV3({\n    name: \"example-ASE\",\n    resourceGroupName: \"example-resource-group\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.appservice.get_environment_v3(name=\"example-ASE\",\n    resource_group_name=\"example-resource-group\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.AppService.GetEnvironmentV3.InvokeAsync(new Azure.AppService.GetEnvironmentV3Args\n        {\n            Name = \"example-ASE\",\n            ResourceGroupName = \"example-resource-group\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := appservice.LookupEnvironmentV3(ctx, \u0026appservice.LookupEnvironmentV3Args{\n\t\t\tName:              \"example-ASE\",\n\t\t\tResourceGroupName: \"example-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getEnvironmentV3.\n",
        "properties": {
          "name": {
            "description": "The name of this v3 App Service Environment.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the v3 App Service Environment exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getEnvironmentV3.\n",
        "properties": {
          "allowNewPrivateEndpointConnections": {
            "description": "Are new Private Endpoint Connections allowed.\n",
            "type": "boolean"
          },
          "clusterSettings": {
            "description": "A `cluster_setting` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/getEnvironmentV3ClusterSetting:getEnvironmentV3ClusterSetting"
            },
            "type": "array"
          },
          "dedicatedHostCount": {
            "description": "The number of Dedicated Hosts used by this ASEv3.\n",
            "type": "integer"
          },
          "dnsSuffix": {
            "description": "the DNS suffix for this App Service Environment V3.\n",
            "type": "string"
          },
          "externalInboundIpAddresses": {
            "description": "The external outbound IP addresses of the App Service Environment V3.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "inboundNetworkDependencies": {
            "description": "An Inbound Network Dependencies block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/getEnvironmentV3InboundNetworkDependency:getEnvironmentV3InboundNetworkDependency"
            },
            "type": "array"
          },
          "internalInboundIpAddresses": {
            "description": "The internal outbound IP addresses of the App Service Environment V3.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "internalLoadBalancingMode": {
            "description": "The Internal Load Balancing Mode of this ASEv3.\n",
            "type": "string"
          },
          "ipSslAddressCount": {
            "description": "The number of IP SSL addresses reserved for the App Service Environment V3.\n",
            "type": "integer"
          },
          "linuxOutboundIpAddresses": {
            "description": "The list of Outbound IP Addresses of Linux based Apps in this App Service Environment V3.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "The location where the App Service Environment exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Cluster Setting.\n",
            "type": "string"
          },
          "pricingTier": {
            "description": "Pricing tier for the front end instances.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the v3 App Service Environment Subnet.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the v3 App Service Environment.\n",
            "type": "object"
          },
          "windowsOutboundIpAddresses": {
            "description": "Outbound addresses of Windows based Apps in this App Service Environment V3.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "zoneRedundant": {
            "type": "boolean"
          }
        },
        "required": [
          "allowNewPrivateEndpointConnections",
          "clusterSettings",
          "dedicatedHostCount",
          "dnsSuffix",
          "externalInboundIpAddresses",
          "inboundNetworkDependencies",
          "internalInboundIpAddresses",
          "internalLoadBalancingMode",
          "ipSslAddressCount",
          "linuxOutboundIpAddresses",
          "location",
          "name",
          "pricingTier",
          "resourceGroupName",
          "subnetId",
          "tags",
          "windowsOutboundIpAddresses",
          "zoneRedundant",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:appservice/getFunctionApp:getFunctionApp": {
      "description": "Use this data source to access information about a Function App.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.appservice.getFunctionApp({\n    name: \"test-azure-functions\",\n    resourceGroupName: azurerm_resource_group.example.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.appservice.get_function_app(name=\"test-azure-functions\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.AppService.GetFunctionApp.InvokeAsync(new Azure.AppService.GetFunctionAppArgs\n        {\n            Name = \"test-azure-functions\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\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 := appservice.LookupFunctionApp(ctx, \u0026appservice.LookupFunctionAppArgs{\n\t\t\tName:              \"test-azure-functions\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getFunctionApp.\n",
        "properties": {
          "name": {
            "description": "The name of the Function App resource.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Function App exists.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getFunctionApp.\n",
        "properties": {
          "appServicePlanId": {
            "description": "The ID of the App Service Plan within which to create this Function App.\n",
            "type": "string"
          },
          "appSettings": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A key-value pair of App Settings.\n",
            "type": "object"
          },
          "clientCertMode": {
            "description": "The mode of the Function App's client certificates requirement for incoming requests.\n",
            "type": "string"
          },
          "connectionStrings": {
            "description": "An `connection_string` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/getFunctionAppConnectionString:getFunctionAppConnectionString"
            },
            "type": "array"
          },
          "customDomainVerificationId": {
            "description": "An identifier used by App Service to perform domain ownership verification via DNS TXT record.\n",
            "type": "string"
          },
          "defaultHostname": {
            "description": "The default hostname associated with the Function App.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Is the Function App enabled?\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "A `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/getFunctionAppIdentity:getFunctionAppIdentity"
            },
            "type": "array"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "description": "The name for this IP Restriction.\n",
            "type": "string"
          },
          "osType": {
            "description": "A string indicating the Operating System type for this function app.\n",
            "type": "string"
          },
          "outboundIpAddresses": {
            "description": "A comma separated list of outbound IP addresses.\n",
            "type": "string"
          },
          "possibleOutboundIpAddresses": {
            "description": "A comma separated list of outbound IP addresses, not all of which are necessarily in use. Superset of `outbound_ip_addresses`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "siteConfigs": {
            "items": {
              "$ref": "#/types/azure:appservice/getFunctionAppSiteConfig:getFunctionAppSiteConfig"
            },
            "type": "array"
          },
          "siteCredentials": {
            "description": "A `site_credential` block as defined below, which contains the site-level credentials used to publish to this App Service.\n",
            "items": {
              "$ref": "#/types/azure:appservice/getFunctionAppSiteCredential:getFunctionAppSiteCredential"
            },
            "type": "array"
          },
          "sourceControls": {
            "description": "A `source_control` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/getFunctionAppSourceControl:getFunctionAppSourceControl"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "appServicePlanId",
          "appSettings",
          "clientCertMode",
          "connectionStrings",
          "customDomainVerificationId",
          "defaultHostname",
          "enabled",
          "identities",
          "location",
          "name",
          "osType",
          "outboundIpAddresses",
          "possibleOutboundIpAddresses",
          "resourceGroupName",
          "siteConfigs",
          "siteCredentials",
          "sourceControls",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:appservice/getFunctionAppHostKeys:getFunctionAppHostKeys": {
      "description": "Use this data source to fetch the Host Keys of an existing Function App\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.appservice.getFunctionAppHostKeys({\n    name: \"example-function\",\n    resourceGroupName: azurerm_resource_group.example.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.appservice.get_function_app_host_keys(name=\"example-function\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.AppService.GetFunctionAppHostKeys.InvokeAsync(new Azure.AppService.GetFunctionAppHostKeysArgs\n        {\n            Name = \"example-function\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\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 := appservice.GetFunctionAppHostKeys(ctx, \u0026appservice.GetFunctionAppHostKeysArgs{\n\t\t\tName:              \"example-function\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getFunctionAppHostKeys.\n",
        "properties": {
          "name": {
            "description": "The name of the Function App.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Function App exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getFunctionAppHostKeys.\n",
        "properties": {
          "defaultFunctionKey": {
            "description": "Function App resource's default function key.\n",
            "type": "string"
          },
          "eventGridExtensionConfigKey": {
            "description": "Function App resource's Event Grid Extension Config system key.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "masterKey": {
            "deprecationMessage": "This property has been renamed to `primary_key` and will be removed in v3.0 of the provider in support of HashiCorp's inclusive language policy which can be found here: https://discuss.hashicorp.com/t/inclusive-language-changes",
            "description": "Function App resource's secret key\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primaryKey": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "required": [
          "defaultFunctionKey",
          "eventGridExtensionConfigKey",
          "masterKey",
          "name",
          "primaryKey",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:attestation/getProvider:getProvider": {
      "inputs": {
        "description": "A collection of arguments for invoking getProvider.\n",
        "properties": {
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getProvider.\n",
        "properties": {
          "attestationUri": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "trustModel": {
            "type": "string"
          }
        },
        "required": [
          "attestationUri",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "trustModel",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:authorization/getRoleDefinition:getRoleDefinition": {
      "description": "Use this data source to access information about an existing Role Definition.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getRoleDefinition.\n",
        "properties": {
          "name": {
            "description": "Specifies the Name of either a built-in or custom Role Definition.\n",
            "type": "string"
          },
          "roleDefinitionId": {
            "description": "Specifies the ID of the Role Definition as a UUID/GUID.\n",
            "type": "string"
          },
          "scope": {
            "description": "Specifies the Scope at which the Custom Role Definition exists.\n",
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getRoleDefinition.\n",
        "properties": {
          "assignableScopes": {
            "description": "One or more assignable scopes for this Role Definition, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "the Description of the built-in Role.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permissions": {
            "description": "a `permissions` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:authorization/getRoleDefinitionPermission:getRoleDefinitionPermission"
            },
            "type": "array"
          },
          "roleDefinitionId": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "type": {
            "description": "the Type of the Role.\n",
            "type": "string"
          }
        },
        "required": [
          "assignableScopes",
          "description",
          "name",
          "permissions",
          "roleDefinitionId",
          "type",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:authorization/getUserAssignedIdentity:getUserAssignedIdentity": {
      "description": "Use this data source to access information about an existing User Assigned Identity.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Reference An Existing)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.authorization.getUserAssignedIdentity({\n    name: \"name_of_user_assigned_identity\",\n    resourceGroupName: \"name_of_resource_group\",\n});\nexport const uaiClientId = example.then(example =\u003e example.clientId);\nexport const uaiPrincipalId = example.then(example =\u003e example.principalId);\nexport const uaiTenantId = example.then(example =\u003e example.tenantId);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.authorization.get_user_assigned_identity(name=\"name_of_user_assigned_identity\",\n    resource_group_name=\"name_of_resource_group\")\npulumi.export(\"uaiClientId\", example.client_id)\npulumi.export(\"uaiPrincipalId\", example.principal_id)\npulumi.export(\"uaiTenantId\", example.tenant_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Authorization.GetUserAssignedIdentity.InvokeAsync(new Azure.Authorization.GetUserAssignedIdentityArgs\n        {\n            Name = \"name_of_user_assigned_identity\",\n            ResourceGroupName = \"name_of_resource_group\",\n        }));\n        this.UaiClientId = example.Apply(example =\u003e example.ClientId);\n        this.UaiPrincipalId = example.Apply(example =\u003e example.PrincipalId);\n        this.UaiTenantId = example.Apply(example =\u003e example.TenantId);\n    }\n\n    [Output(\"uaiClientId\")]\n    public Output\u003cstring\u003e UaiClientId { get; set; }\n    [Output(\"uaiPrincipalId\")]\n    public Output\u003cstring\u003e UaiPrincipalId { get; set; }\n    [Output(\"uaiTenantId\")]\n    public Output\u003cstring\u003e UaiTenantId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := authorization.LookupUserAssignedIdentity(ctx, \u0026authorization.LookupUserAssignedIdentityArgs{\n\t\t\tName:              \"name_of_user_assigned_identity\",\n\t\t\tResourceGroupName: \"name_of_resource_group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"uaiClientId\", example.ClientId)\n\t\tctx.Export(\"uaiPrincipalId\", example.PrincipalId)\n\t\tctx.Export(\"uaiTenantId\", example.TenantId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getUserAssignedIdentity.\n",
        "properties": {
          "name": {
            "description": "The name of the User Assigned Identity.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the User Assigned Identity exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getUserAssignedIdentity.\n",
        "properties": {
          "clientId": {
            "description": "The Client ID of the User Assigned Identity.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the User Assigned Identity exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "principalId": {
            "description": "The Service Principal ID of the User Assigned Identity.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the User Assigned Identity.\n",
            "type": "object"
          },
          "tenantId": {
            "description": "The Tenant ID of the User Assigned Identity.\n",
            "type": "string"
          }
        },
        "required": [
          "clientId",
          "location",
          "name",
          "principalId",
          "resourceGroupName",
          "tags",
          "tenantId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:automation/getAccount:getAccount": {
      "description": "Use this data source to access information about an existing Automation Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.automation.getAccount({\n    name: \"example-account\",\n    resourceGroupName: \"example-resources\",\n});\nexport const automationAccountId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.automation.get_account(name=\"example-account\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"automationAccountId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Automation.GetAccount.InvokeAsync(new Azure.Automation.GetAccountArgs\n        {\n            Name = \"example-account\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.AutomationAccountId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"automationAccountId\")]\n    public Output\u003cstring\u003e AutomationAccountId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/automation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := automation.LookupAccount(ctx, \u0026automation.LookupAccountArgs{\n\t\t\tName:              \"example-account\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"automationAccountId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAccount.\n",
        "properties": {
          "name": {
            "description": "The name of the Automation Account.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where the Automation Account exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAccount.\n",
        "properties": {
          "endpoint": {
            "description": "The Endpoint for this Automation Account.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Access Key for the Automation Account.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Access Key for the Automation Account.\n",
            "type": "string"
          }
        },
        "required": [
          "endpoint",
          "name",
          "primaryKey",
          "resourceGroupName",
          "secondaryKey",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:automation/getBoolVariable:getBoolVariable": {
      "description": "Use this data source to access information about an existing Automation Bool Variable.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.automation.getBoolVariable({\n    name: \"tfex-example-var\",\n    resourceGroupName: \"tfex-example-rg\",\n    automationAccountName: \"tfex-example-account\",\n});\nexport const variableId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.automation.get_bool_variable(name=\"tfex-example-var\",\n    resource_group_name=\"tfex-example-rg\",\n    automation_account_name=\"tfex-example-account\")\npulumi.export(\"variableId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Automation.GetBoolVariable.InvokeAsync(new Azure.Automation.GetBoolVariableArgs\n        {\n            Name = \"tfex-example-var\",\n            ResourceGroupName = \"tfex-example-rg\",\n            AutomationAccountName = \"tfex-example-account\",\n        }));\n        this.VariableId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"variableId\")]\n    public Output\u003cstring\u003e VariableId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/automation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := automation.LookupBoolVariable(ctx, \u0026automation.LookupBoolVariableArgs{\n\t\t\tName:                  \"tfex-example-var\",\n\t\t\tResourceGroupName:     \"tfex-example-rg\",\n\t\t\tAutomationAccountName: \"tfex-example-account\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"variableId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getBoolVariable.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Automation Variable exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Automation Variable.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the automation account exists.\n",
            "type": "string"
          }
        },
        "required": [
          "automationAccountName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getBoolVariable.\n",
        "properties": {
          "automationAccountName": {
            "type": "string"
          },
          "description": {
            "description": "The description of the Automation Variable.\n",
            "type": "string"
          },
          "encrypted": {
            "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "value": {
            "description": "The value of the Automation Variable as a `boolean`.\n",
            "type": "boolean"
          }
        },
        "required": [
          "automationAccountName",
          "description",
          "encrypted",
          "name",
          "resourceGroupName",
          "value",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:automation/getDateTimeVariable:getDateTimeVariable": {
      "description": "Use this data source to access information about an existing Automation Datetime Variable.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.automation.getDateTimeVariable({\n    name: \"tfex-example-var\",\n    resourceGroupName: \"tfex-example-rg\",\n    automationAccountName: \"tfex-example-account\",\n});\nexport const variableId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.automation.get_date_time_variable(name=\"tfex-example-var\",\n    resource_group_name=\"tfex-example-rg\",\n    automation_account_name=\"tfex-example-account\")\npulumi.export(\"variableId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Automation.GetDateTimeVariable.InvokeAsync(new Azure.Automation.GetDateTimeVariableArgs\n        {\n            Name = \"tfex-example-var\",\n            ResourceGroupName = \"tfex-example-rg\",\n            AutomationAccountName = \"tfex-example-account\",\n        }));\n        this.VariableId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"variableId\")]\n    public Output\u003cstring\u003e VariableId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/automation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := automation.LookupDateTimeVariable(ctx, \u0026automation.LookupDateTimeVariableArgs{\n\t\t\tName:                  \"tfex-example-var\",\n\t\t\tResourceGroupName:     \"tfex-example-rg\",\n\t\t\tAutomationAccountName: \"tfex-example-account\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"variableId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDateTimeVariable.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Automation Variable exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Automation Variable.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the automation account exists.\n",
            "type": "string"
          }
        },
        "required": [
          "automationAccountName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDateTimeVariable.\n",
        "properties": {
          "automationAccountName": {
            "type": "string"
          },
          "description": {
            "description": "The description of the Automation Variable.\n",
            "type": "string"
          },
          "encrypted": {
            "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "value": {
            "description": "The value of the Automation Variable in the [RFC3339 Section 5.6 Internet Date/Time Format](https://tools.ietf.org/html/rfc3339#section-5.6).\n",
            "type": "string"
          }
        },
        "required": [
          "automationAccountName",
          "description",
          "encrypted",
          "name",
          "resourceGroupName",
          "value",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:automation/getIntVariable:getIntVariable": {
      "description": "Use this data source to access information about an existing Automation Int Variable.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.automation.getIntVariable({\n    name: \"tfex-example-var\",\n    resourceGroupName: \"tfex-example-rg\",\n    automationAccountName: \"tfex-example-account\",\n});\nexport const variableId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.automation.get_int_variable(name=\"tfex-example-var\",\n    resource_group_name=\"tfex-example-rg\",\n    automation_account_name=\"tfex-example-account\")\npulumi.export(\"variableId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Automation.GetIntVariable.InvokeAsync(new Azure.Automation.GetIntVariableArgs\n        {\n            Name = \"tfex-example-var\",\n            ResourceGroupName = \"tfex-example-rg\",\n            AutomationAccountName = \"tfex-example-account\",\n        }));\n        this.VariableId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"variableId\")]\n    public Output\u003cstring\u003e VariableId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/automation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := automation.LookupIntVariable(ctx, \u0026automation.LookupIntVariableArgs{\n\t\t\tName:                  \"tfex-example-var\",\n\t\t\tResourceGroupName:     \"tfex-example-rg\",\n\t\t\tAutomationAccountName: \"tfex-example-account\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"variableId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getIntVariable.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Automation Variable exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Automation Variable.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the automation account exists.\n",
            "type": "string"
          }
        },
        "required": [
          "automationAccountName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getIntVariable.\n",
        "properties": {
          "automationAccountName": {
            "type": "string"
          },
          "description": {
            "description": "The description of the Automation Variable.\n",
            "type": "string"
          },
          "encrypted": {
            "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "value": {
            "description": "The value of the Automation Variable as a `integer`.\n",
            "type": "integer"
          }
        },
        "required": [
          "automationAccountName",
          "description",
          "encrypted",
          "name",
          "resourceGroupName",
          "value",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:automation/getStringVariable:getStringVariable": {
      "description": "Use this data source to access information about an existing Automation String Variable.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.automation.getStringVariable({\n    name: \"tfex-example-var\",\n    resourceGroupName: \"tfex-example-rg\",\n    automationAccountName: \"tfex-example-account\",\n});\nexport const variableId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.automation.get_string_variable(name=\"tfex-example-var\",\n    resource_group_name=\"tfex-example-rg\",\n    automation_account_name=\"tfex-example-account\")\npulumi.export(\"variableId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Automation.GetStringVariable.InvokeAsync(new Azure.Automation.GetStringVariableArgs\n        {\n            Name = \"tfex-example-var\",\n            ResourceGroupName = \"tfex-example-rg\",\n            AutomationAccountName = \"tfex-example-account\",\n        }));\n        this.VariableId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"variableId\")]\n    public Output\u003cstring\u003e VariableId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/automation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := automation.LookupStringVariable(ctx, \u0026automation.LookupStringVariableArgs{\n\t\t\tName:                  \"tfex-example-var\",\n\t\t\tResourceGroupName:     \"tfex-example-rg\",\n\t\t\tAutomationAccountName: \"tfex-example-account\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"variableId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getStringVariable.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Automation Variable exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Automation Variable.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the automation account exists.\n",
            "type": "string"
          }
        },
        "required": [
          "automationAccountName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getStringVariable.\n",
        "properties": {
          "automationAccountName": {
            "type": "string"
          },
          "description": {
            "description": "The description of the Automation Variable.\n",
            "type": "string"
          },
          "encrypted": {
            "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "value": {
            "description": "The value of the Automation Variable as a `string`.\n",
            "type": "string"
          }
        },
        "required": [
          "automationAccountName",
          "description",
          "encrypted",
          "name",
          "resourceGroupName",
          "value",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:avs/getPrivateCloud:getPrivateCloud": {
      "inputs": {
        "description": "A collection of arguments for invoking getPrivateCloud.\n",
        "properties": {
          "name": {
            "description": "The name of this Vmware Private Cloud.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Vmware Private Cloud exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPrivateCloud.\n",
        "properties": {
          "circuits": {
            "description": "A `circuit` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:avs/getPrivateCloudCircuit:getPrivateCloudCircuit"
            },
            "type": "array"
          },
          "hcxCloudManagerEndpoint": {
            "description": "The endpoint for the HCX Cloud Manager.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "internetConnectionEnabled": {
            "description": "Is the Vmware Private Cluster connected to the internet?\n",
            "type": "boolean"
          },
          "location": {
            "description": "The Azure Region where the Vmware Private Cloud exists.\n",
            "type": "string"
          },
          "managementClusters": {
            "description": "A `management_cluster` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:avs/getPrivateCloudManagementCluster:getPrivateCloudManagementCluster"
            },
            "type": "array"
          },
          "managementSubnetCidr": {
            "description": "The network used to access vCenter Server and NSX-T Manager.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "networkSubnetCidr": {
            "description": "The subnet cidr of the Vmware Private Cloud.\n",
            "type": "string"
          },
          "nsxtCertificateThumbprint": {
            "description": "The thumbprint of the NSX-T Manager SSL certificate.\n",
            "type": "string"
          },
          "nsxtManagerEndpoint": {
            "description": "The endpoint for the NSX-T Data Center manager.\n",
            "type": "string"
          },
          "provisioningSubnetCidr": {
            "description": "The network which isused for virtual machine cold migration, cloning, and snapshot migration.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "skuName": {
            "description": "The Name of the SKU used for this Private Cloud.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Vmware Private Cloud.\n",
            "type": "object"
          },
          "vcenterCertificateThumbprint": {
            "description": "The thumbprint of the vCenter Server SSL certificate.\n",
            "type": "string"
          },
          "vcsaEndpoint": {
            "description": "The endpoint for Virtual Center Server Appliance.\n",
            "type": "string"
          },
          "vmotionSubnetCidr": {
            "description": "The network which is used for live migration of virtual machines.\n",
            "type": "string"
          }
        },
        "required": [
          "circuits",
          "hcxCloudManagerEndpoint",
          "internetConnectionEnabled",
          "location",
          "managementClusters",
          "managementSubnetCidr",
          "name",
          "networkSubnetCidr",
          "nsxtCertificateThumbprint",
          "nsxtManagerEndpoint",
          "provisioningSubnetCidr",
          "resourceGroupName",
          "skuName",
          "tags",
          "vcenterCertificateThumbprint",
          "vcsaEndpoint",
          "vmotionSubnetCidr",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:backup/getPolicyVM:getPolicyVM": {
      "description": "Use this data source to access information about an existing VM Backup Policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst policy = pulumi.output(azure.backup.getPolicyVM({\n    name: \"policy\",\n    recoveryVaultName: \"recovery_vault\",\n    resourceGroupName: \"resource_group\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\npolicy = azure.backup.get_policy_vm(name=\"policy\",\n    recovery_vault_name=\"recovery_vault\",\n    resource_group_name=\"resource_group\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var policy = Output.Create(Azure.Backup.GetPolicyVM.InvokeAsync(new Azure.Backup.GetPolicyVMArgs\n        {\n            Name = \"policy\",\n            RecoveryVaultName = \"recovery_vault\",\n            ResourceGroupName = \"resource_group\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/backup\"\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 := backup.LookupPolicyVM(ctx, \u0026backup.LookupPolicyVMArgs{\n\t\t\tName:              \"policy\",\n\t\t\tRecoveryVaultName: \"recovery_vault\",\n\t\t\tResourceGroupName: \"resource_group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getPolicyVM.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the VM Backup Policy.\n",
            "type": "string"
          },
          "recoveryVaultName": {
            "description": "Specifies the name of the Recovery Services Vault.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the VM Backup Policy resides.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "recoveryVaultName",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPolicyVM.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "recoveryVaultName": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "name",
          "recoveryVaultName",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:batch/getAccount:getAccount": {
      "description": "Use this data source to access information about an existing Batch Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.batch.getAccount({\n    name: \"testbatchaccount\",\n    resourceGroupName: \"test\",\n});\nexport const poolAllocationMode = example.then(example =\u003e example.poolAllocationMode);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.batch.get_account(name=\"testbatchaccount\",\n    resource_group_name=\"test\")\npulumi.export(\"poolAllocationMode\", example.pool_allocation_mode)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Batch.GetAccount.InvokeAsync(new Azure.Batch.GetAccountArgs\n        {\n            Name = \"testbatchaccount\",\n            ResourceGroupName = \"test\",\n        }));\n        this.PoolAllocationMode = example.Apply(example =\u003e example.PoolAllocationMode);\n    }\n\n    [Output(\"poolAllocationMode\")]\n    public Output\u003cstring\u003e PoolAllocationMode { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/batch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := batch.LookupAccount(ctx, \u0026batch.LookupAccountArgs{\n\t\t\tName:              \"testbatchaccount\",\n\t\t\tResourceGroupName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"poolAllocationMode\", example.PoolAllocationMode)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAccount.\n",
        "properties": {
          "name": {
            "description": "The name of the Batch account.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where this Batch account exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAccount.\n",
        "properties": {
          "accountEndpoint": {
            "description": "The account endpoint used to interact with the Batch service.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "keyVaultReferences": {
            "description": "The `key_vault_reference` block that describes the Azure KeyVault reference to use when deploying the Azure Batch account using the `UserSubscription` pool allocation mode.\n",
            "items": {
              "$ref": "#/types/azure:batch/getAccountKeyVaultReference:getAccountKeyVaultReference"
            },
            "type": "array"
          },
          "location": {
            "description": "The Azure Region in which this Batch account exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The Batch account name.\n",
            "type": "string"
          },
          "poolAllocationMode": {
            "description": "The pool allocation mode configured for this Batch account.\n",
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The Batch account primary access key.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The Batch account secondary access key.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of the Storage Account used for this Batch account.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of tags assigned to the Batch account.\n",
            "type": "object"
          }
        },
        "required": [
          "accountEndpoint",
          "keyVaultReferences",
          "location",
          "name",
          "poolAllocationMode",
          "primaryAccessKey",
          "resourceGroupName",
          "secondaryAccessKey",
          "storageAccountId",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:batch/getCertificate:getCertificate": {
      "description": "Use this data source to access information about an existing certificate in a Batch Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.batch.getCertificate({\n    name: \"SHA1-42C107874FD0E4A9583292A2F1098E8FE4B2EDDA\",\n    accountName: \"examplebatchaccount\",\n    resourceGroupName: \"example\",\n});\nexport const thumbprint = example.then(example =\u003e example.thumbprint);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.batch.get_certificate(name=\"SHA1-42C107874FD0E4A9583292A2F1098E8FE4B2EDDA\",\n    account_name=\"examplebatchaccount\",\n    resource_group_name=\"example\")\npulumi.export(\"thumbprint\", example.thumbprint)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Batch.GetCertificate.InvokeAsync(new Azure.Batch.GetCertificateArgs\n        {\n            Name = \"SHA1-42C107874FD0E4A9583292A2F1098E8FE4B2EDDA\",\n            AccountName = \"examplebatchaccount\",\n            ResourceGroupName = \"example\",\n        }));\n        this.Thumbprint = example.Apply(example =\u003e example.Thumbprint);\n    }\n\n    [Output(\"thumbprint\")]\n    public Output\u003cstring\u003e Thumbprint { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/batch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := batch.LookupCertificate(ctx, \u0026batch.LookupCertificateArgs{\n\t\t\tName:              \"SHA1-42C107874FD0E4A9583292A2F1098E8FE4B2EDDA\",\n\t\t\tAccountName:       \"examplebatchaccount\",\n\t\t\tResourceGroupName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"thumbprint\", example.Thumbprint)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getCertificate.\n",
        "properties": {
          "accountName": {
            "description": "The name of the Batch account.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Batch certificate.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where this Batch account exists.\n",
            "type": "string"
          }
        },
        "required": [
          "accountName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCertificate.\n",
        "properties": {
          "accountName": {
            "type": "string"
          },
          "format": {
            "description": "The format of the certificate, such as `Cer` or `Pfx`.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "publicData": {
            "description": "The public key of the certificate.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "thumbprint": {
            "description": "The thumbprint of the certificate.\n",
            "type": "string"
          },
          "thumbprintAlgorithm": {
            "description": "The algorithm of the certificate thumbprint.\n",
            "type": "string"
          }
        },
        "required": [
          "accountName",
          "format",
          "name",
          "publicData",
          "resourceGroupName",
          "thumbprint",
          "thumbprintAlgorithm",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:batch/getPool:getPool": {
      "description": "Use this data source to access information about an existing Batch pool\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.batch.getPool({\n    accountName: \"testbatchaccount\",\n    name: \"testbatchpool\",\n    resourceGroupName: \"test\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.batch.get_pool(account_name=\"testbatchaccount\",\n    name=\"testbatchpool\",\n    resource_group_name=\"test\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Batch.GetPool.InvokeAsync(new Azure.Batch.GetPoolArgs\n        {\n            AccountName = \"testbatchaccount\",\n            Name = \"testbatchpool\",\n            ResourceGroupName = \"test\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/batch\"\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 := batch.LookupPool(ctx, \u0026batch.LookupPoolArgs{\n\t\t\tAccountName:       \"testbatchaccount\",\n\t\t\tName:              \"testbatchpool\",\n\t\t\tResourceGroupName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getPool.\n",
        "properties": {
          "accountName": {
            "description": "The name of the Batch account.\n",
            "type": "string"
          },
          "certificates": {
            "description": "One or more `certificate` blocks that describe the certificates installed on each compute node in the pool.\n",
            "items": {
              "$ref": "#/types/azure:batch/getPoolCertificate:getPoolCertificate"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the endpoint.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "startTask": {
            "$ref": "#/types/azure:batch/getPoolStartTask:getPoolStartTask",
            "description": "A `start_task` block that describes the start task settings for the Batch pool.\n"
          }
        },
        "required": [
          "accountName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPool.\n",
        "properties": {
          "accountName": {
            "description": "The name of the Batch account.\n",
            "type": "string"
          },
          "autoScales": {
            "description": "A `auto_scale` block that describes the scale settings when using auto scale.\n",
            "items": {
              "$ref": "#/types/azure:batch/getPoolAutoScale:getPoolAutoScale"
            },
            "type": "array"
          },
          "certificates": {
            "description": "One or more `certificate` blocks that describe the certificates installed on each compute node in the pool.\n",
            "items": {
              "$ref": "#/types/azure:batch/getPoolCertificate:getPoolCertificate"
            },
            "type": "array"
          },
          "containerConfigurations": {
            "description": "The container configuration used in the pool's VMs.\n",
            "items": {
              "$ref": "#/types/azure:batch/getPoolContainerConfiguration:getPoolContainerConfiguration"
            },
            "type": "array"
          },
          "displayName": {
            "type": "string"
          },
          "fixedScales": {
            "description": "A `fixed_scale` block that describes the scale settings when using fixed scale.\n",
            "items": {
              "$ref": "#/types/azure:batch/getPoolFixedScale:getPoolFixedScale"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "maxTasksPerNode": {
            "description": "The maximum number of tasks that can run concurrently on a single compute node in the pool.\n",
            "type": "integer"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "name": {
            "description": "The name of the endpoint.\n",
            "type": "string"
          },
          "networkConfiguration": {
            "$ref": "#/types/azure:batch/getPoolNetworkConfiguration:getPoolNetworkConfiguration"
          },
          "nodeAgentSkuId": {
            "description": "The Sku of the node agents in the Batch pool.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "startTask": {
            "$ref": "#/types/azure:batch/getPoolStartTask:getPoolStartTask",
            "description": "A `start_task` block that describes the start task settings for the Batch pool.\n"
          },
          "storageImageReferences": {
            "description": "The reference of the storage image used by the nodes in the Batch pool.\n",
            "items": {
              "$ref": "#/types/azure:batch/getPoolStorageImageReference:getPoolStorageImageReference"
            },
            "type": "array"
          },
          "vmSize": {
            "description": "The size of the VM created in the Batch pool.\n",
            "type": "string"
          }
        },
        "required": [
          "accountName",
          "autoScales",
          "containerConfigurations",
          "displayName",
          "fixedScales",
          "maxTasksPerNode",
          "metadata",
          "name",
          "networkConfiguration",
          "nodeAgentSkuId",
          "resourceGroupName",
          "storageImageReferences",
          "vmSize",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:billing/getEnrollmentAccountScope:getEnrollmentAccountScope": {
      "description": "Use this data source to access information about an existing Enrollment Account Billing Scope.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.billing.getEnrollmentAccountScope({\n    billingAccountName: \"existing\",\n    enrollmentAccountName: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.billing.get_enrollment_account_scope(billing_account_name=\"existing\",\n    enrollment_account_name=\"existing\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Billing.GetEnrollmentAccountScope.InvokeAsync(new Azure.Billing.GetEnrollmentAccountScopeArgs\n        {\n            BillingAccountName = \"existing\",\n            EnrollmentAccountName = \"existing\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/billing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := billing.GetEnrollmentAccountScope(ctx, \u0026billing.GetEnrollmentAccountScopeArgs{\n\t\t\tBillingAccountName:    \"existing\",\n\t\t\tEnrollmentAccountName: \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getEnrollmentAccountScope.\n",
        "properties": {
          "billingAccountName": {
            "description": "The Billing Account Name of the Enterprise Account.\n",
            "type": "string"
          },
          "enrollmentAccountName": {
            "description": "The Enrollment Account Name in the above Enterprise Account.\n",
            "type": "string"
          }
        },
        "required": [
          "billingAccountName",
          "enrollmentAccountName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getEnrollmentAccountScope.\n",
        "properties": {
          "billingAccountName": {
            "type": "string"
          },
          "enrollmentAccountName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          }
        },
        "required": [
          "billingAccountName",
          "enrollmentAccountName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:billing/getMcaAccountScope:getMcaAccountScope": {
      "description": "Use this data source to access an ID for your MCA Account billing scope.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.billing.getMcaAccountScope({\n    billingAccountName: \"e879cf0f-2b4d-5431-109a-f72fc9868693:024cabf4-7321-4cf9-be59-df0c77ca51de_2019-05-31\",\n    billingProfileName: \"PE2Q-NOIT-BG7-TGB\",\n    invoiceSectionName: \"MTT4-OBS7-PJA-TGB\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.billing.get_mca_account_scope(billing_account_name=\"e879cf0f-2b4d-5431-109a-f72fc9868693:024cabf4-7321-4cf9-be59-df0c77ca51de_2019-05-31\",\n    billing_profile_name=\"PE2Q-NOIT-BG7-TGB\",\n    invoice_section_name=\"MTT4-OBS7-PJA-TGB\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Billing.GetMcaAccountScope.InvokeAsync(new Azure.Billing.GetMcaAccountScopeArgs\n        {\n            BillingAccountName = \"e879cf0f-2b4d-5431-109a-f72fc9868693:024cabf4-7321-4cf9-be59-df0c77ca51de_2019-05-31\",\n            BillingProfileName = \"PE2Q-NOIT-BG7-TGB\",\n            InvoiceSectionName = \"MTT4-OBS7-PJA-TGB\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/billing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := billing.GetMcaAccountScope(ctx, \u0026billing.GetMcaAccountScopeArgs{\n\t\t\tBillingAccountName: \"e879cf0f-2b4d-5431-109a-f72fc9868693:024cabf4-7321-4cf9-be59-df0c77ca51de_2019-05-31\",\n\t\t\tBillingProfileName: \"PE2Q-NOIT-BG7-TGB\",\n\t\t\tInvoiceSectionName: \"MTT4-OBS7-PJA-TGB\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getMcaAccountScope.\n",
        "properties": {
          "billingAccountName": {
            "description": "The Billing Account Name of the MCA account.\n",
            "type": "string"
          },
          "billingProfileName": {
            "description": "The Billing Profile Name in the above Billing Account.\n",
            "type": "string"
          },
          "invoiceSectionName": {
            "description": "The Invoice Section Name in the above Billing Profile.\n",
            "type": "string"
          }
        },
        "required": [
          "billingAccountName",
          "billingProfileName",
          "invoiceSectionName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getMcaAccountScope.\n",
        "properties": {
          "billingAccountName": {
            "type": "string"
          },
          "billingProfileName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "invoiceSectionName": {
            "type": "string"
          }
        },
        "required": [
          "billingAccountName",
          "billingProfileName",
          "invoiceSectionName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:blueprint/getDefinition:getDefinition": {
      "description": "Use this data source to access information about an existing Azure Blueprint Definition\n\n\u003e **NOTE:** Azure Blueprints are in Preview and potentially subject to breaking change without notice.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst root = current.then(current =\u003e azure.management.getGroup({\n    name: current.tenantId,\n}));\nconst example = root.then(root =\u003e azure.blueprint.getDefinition({\n    name: \"exampleManagementGroupBP\",\n    scopeId: root.id,\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nroot = azure.management.get_group(name=current.tenant_id)\nexample = azure.blueprint.get_definition(name=\"exampleManagementGroupBP\",\n    scope_id=root.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var root = current.Apply(current =\u003e Output.Create(Azure.Management.GetGroup.InvokeAsync(new Azure.Management.GetGroupArgs\n        {\n            Name = current.TenantId,\n        })));\n        var example = root.Apply(root =\u003e Output.Create(Azure.Blueprint.GetDefinition.InvokeAsync(new Azure.Blueprint.GetDefinitionArgs\n        {\n            Name = \"exampleManagementGroupBP\",\n            ScopeId = root.Id,\n        })));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/blueprint\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\topt0 := current.TenantId\n\t\troot, err := management.LookupGroup(ctx, \u0026management.LookupGroupArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = blueprint.GetDefinition(ctx, \u0026blueprint.GetDefinitionArgs{\n\t\t\tName:    \"exampleManagementGroupBP\",\n\t\t\tScopeId: root.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDefinition.\n",
        "properties": {
          "name": {
            "description": "The name of the Blueprint.\n",
            "type": "string"
          },
          "scopeId": {
            "description": "The ID of the Subscription or Management Group, as the scope at which the blueprint definition is stored.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "scopeId"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDefinition.\n",
        "properties": {
          "description": {
            "description": "The description of the Blueprint Definition.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the Blueprint Definition.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "lastModified": {
            "description": "The timestamp of when this last modification was saved to the Blueprint Definition.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "scopeId": {
            "type": "string"
          },
          "targetScope": {
            "description": "The target scope.\n",
            "type": "string"
          },
          "timeCreated": {
            "description": "The timestamp of when this Blueprint Definition was created.\n",
            "type": "string"
          },
          "versions": {
            "description": "A list of versions published for this Blueprint Definition.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "description",
          "displayName",
          "lastModified",
          "name",
          "scopeId",
          "targetScope",
          "timeCreated",
          "versions",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:blueprint/getPublishedVersion:getPublishedVersion": {
      "description": "Use this data source to access information about an existing Blueprint Published Version\n\n\u003e **NOTE:** Azure Blueprints are in Preview and potentially subject to breaking change without notice.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getSubscription({});\nconst test = current.then(current =\u003e azure.blueprint.getPublishedVersion({\n    scopeId: current.id,\n    blueprintName: \"exampleBluePrint\",\n    version: \"dev_v2.3\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_subscription()\ntest = azure.blueprint.get_published_version(scope_id=current.id,\n    blueprint_name=\"exampleBluePrint\",\n    version=\"dev_v2.3\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var test = current.Apply(current =\u003e Output.Create(Azure.Blueprint.GetPublishedVersion.InvokeAsync(new Azure.Blueprint.GetPublishedVersionArgs\n        {\n            ScopeId = current.Id,\n            BlueprintName = \"exampleBluePrint\",\n            Version = \"dev_v2.3\",\n        })));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/blueprint\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = blueprint.GetPublishedVersion(ctx, \u0026blueprint.GetPublishedVersionArgs{\n\t\t\tScopeId:       current.Id,\n\t\t\tBlueprintName: \"exampleBluePrint\",\n\t\t\tVersion:       \"dev_v2.3\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getPublishedVersion.\n",
        "properties": {
          "blueprintName": {
            "description": "The name of the Blueprint Definition\n",
            "type": "string"
          },
          "scopeId": {
            "description": "The ID of the Management Group / Subscription where this Blueprint Definition is stored.\n",
            "type": "string"
          },
          "version": {
            "description": "The Version name of the Published Version of the Blueprint Definition\n",
            "type": "string"
          }
        },
        "required": [
          "blueprintName",
          "scopeId",
          "version"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPublishedVersion.\n",
        "properties": {
          "blueprintName": {
            "type": "string"
          },
          "description": {
            "description": "The description of the Blueprint Published Version\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the Blueprint Published Version\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "lastModified": {
            "type": "string"
          },
          "scopeId": {
            "type": "string"
          },
          "targetScope": {
            "description": "The target scope\n",
            "type": "string"
          },
          "timeCreated": {
            "type": "string"
          },
          "type": {
            "description": "The type of the Blueprint\n",
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "blueprintName",
          "description",
          "displayName",
          "lastModified",
          "scopeId",
          "targetScope",
          "timeCreated",
          "type",
          "version",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:cdn/getProfile:getProfile": {
      "description": "Use this data source to access information about an existing CDN Profile.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.cdn.getProfile({\n    name: \"myfirstcdnprofile\",\n    resourceGroupName: \"example-resources\",\n});\nexport const cdnProfileId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.cdn.get_profile(name=\"myfirstcdnprofile\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"cdnProfileId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Cdn.GetProfile.InvokeAsync(new Azure.Cdn.GetProfileArgs\n        {\n            Name = \"myfirstcdnprofile\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.CdnProfileId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"cdnProfileId\")]\n    public Output\u003cstring\u003e CdnProfileId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cdn.LookupProfile(ctx, \u0026cdn.LookupProfileArgs{\n\t\t\tName:              \"myfirstcdnprofile\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cdnProfileId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getProfile.\n",
        "properties": {
          "name": {
            "description": "The name of the CDN Profile.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the CDN Profile exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getProfile.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the resource exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sku": {
            "description": "The pricing related information of current CDN profile.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "sku",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:cognitive/getAccount:getAccount": {
      "description": "Use this data source to access information about an existing Cognitive Services Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst test = pulumi.output(azure.cognitive.getAccount({\n    name: \"example-account\",\n    resourceGroupName: \"cognitive_account_rg\",\n}));\n\nexport const primaryAccessKey = test.primaryAccessKey;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ntest = azure.cognitive.get_account(name=\"example-account\",\n    resource_group_name=\"cognitive_account_rg\")\npulumi.export(\"primaryAccessKey\", test.primary_access_key)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var test = Output.Create(Azure.Cognitive.GetAccount.InvokeAsync(new Azure.Cognitive.GetAccountArgs\n        {\n            Name = \"example-account\",\n            ResourceGroupName = \"cognitive_account_rg\",\n        }));\n        this.PrimaryAccessKey = test.Apply(test =\u003e test.PrimaryAccessKey);\n    }\n\n    [Output(\"primaryAccessKey\")]\n    public Output\u003cstring\u003e PrimaryAccessKey { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cognitive\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := cognitive.LookupAccount(ctx, \u0026cognitive.LookupAccountArgs{\n\t\t\tName:              \"example-account\",\n\t\t\tResourceGroupName: \"cognitive_account_rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"primaryAccessKey\", test.PrimaryAccessKey)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAccount.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Cognitive Services Account.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group where the Cognitive Services Account resides.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAccount.\n",
        "properties": {
          "endpoint": {
            "description": "The endpoint of the Cognitive Services Account\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "kind": {
            "description": "The kind of the Cognitive Services Account\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the Cognitive Services Account exists\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The primary access key of the Cognitive Services Account\n",
            "type": "string"
          },
          "qnaRuntimeEndpoint": {
            "description": "If `kind` is `QnAMaker` the link to the QNA runtime.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The secondary access key of the Cognitive Services Account\n",
            "type": "string"
          },
          "skuName": {
            "description": "The sku name of the Cognitive Services Account\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "endpoint",
          "kind",
          "location",
          "name",
          "primaryAccessKey",
          "qnaRuntimeEndpoint",
          "resourceGroupName",
          "secondaryAccessKey",
          "skuName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getAvailabilitySet:getAvailabilitySet": {
      "description": "Use this data source to access information about an existing Availability Set.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.compute.getAvailabilitySet({\n    name: \"tf-appsecuritygroup\",\n    resourceGroupName: \"my-resource-group\",\n});\nexport const availabilitySetId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.get_availability_set(name=\"tf-appsecuritygroup\",\n    resource_group_name=\"my-resource-group\")\npulumi.export(\"availabilitySetId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Compute.GetAvailabilitySet.InvokeAsync(new Azure.Compute.GetAvailabilitySetArgs\n        {\n            Name = \"tf-appsecuritygroup\",\n            ResourceGroupName = \"my-resource-group\",\n        }));\n        this.AvailabilitySetId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"availabilitySetId\")]\n    public Output\u003cstring\u003e AvailabilitySetId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := compute.LookupAvailabilitySet(ctx, \u0026compute.LookupAvailabilitySetArgs{\n\t\t\tName:              \"tf-appsecuritygroup\",\n\t\t\tResourceGroupName: \"my-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"availabilitySetId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAvailabilitySet.\n",
        "properties": {
          "name": {
            "description": "The name of the Availability Set.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Availability Set exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAvailabilitySet.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The supported Azure location where the Availability Set exists.\n",
            "type": "string"
          },
          "managed": {
            "description": "Whether the availability set is managed or not.\n",
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "platformFaultDomainCount": {
            "description": "The number of fault domains that are used.\n",
            "type": "string"
          },
          "platformUpdateDomainCount": {
            "description": "The number of update domains that are used.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "location",
          "managed",
          "name",
          "platformFaultDomainCount",
          "platformUpdateDomainCount",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getDedicatedHost:getDedicatedHost": {
      "description": "Use this data source to access information about an existing Dedicated Host.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.compute.getDedicatedHost({\n    name: \"example-host\",\n    dedicatedHostGroupName: \"example-host-group\",\n    resourceGroupName: \"example-resources\",\n});\nexport const dedicatedHostId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.get_dedicated_host(name=\"example-host\",\n    dedicated_host_group_name=\"example-host-group\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"dedicatedHostId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Compute.GetDedicatedHost.InvokeAsync(new Azure.Compute.GetDedicatedHostArgs\n        {\n            Name = \"example-host\",\n            DedicatedHostGroupName = \"example-host-group\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.DedicatedHostId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"dedicatedHostId\")]\n    public Output\u003cstring\u003e DedicatedHostId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := compute.LookupDedicatedHost(ctx, \u0026compute.LookupDedicatedHostArgs{\n\t\t\tName:                   \"example-host\",\n\t\t\tDedicatedHostGroupName: \"example-host-group\",\n\t\t\tResourceGroupName:      \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dedicatedHostId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDedicatedHost.\n",
        "properties": {
          "dedicatedHostGroupName": {
            "description": "Specifies the name of the Dedicated Host Group the Dedicated Host is located in.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Dedicated Host.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Dedicated Host is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "dedicatedHostGroupName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDedicatedHost.\n",
        "properties": {
          "dedicatedHostGroupName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The location where the Dedicated Host exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Dedicated Host.\n",
            "type": "object"
          }
        },
        "required": [
          "dedicatedHostGroupName",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getDedicatedHostGroup:getDedicatedHostGroup": {
      "description": "Use this data source to access information about an existing Dedicated Host Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.compute.getDedicatedHostGroup({\n    name: \"example-dedicated-host-group\",\n    resourceGroupName: \"example-rg\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.get_dedicated_host_group(name=\"example-dedicated-host-group\",\n    resource_group_name=\"example-rg\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Compute.GetDedicatedHostGroup.InvokeAsync(new Azure.Compute.GetDedicatedHostGroupArgs\n        {\n            Name = \"example-dedicated-host-group\",\n            ResourceGroupName = \"example-rg\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := compute.LookupDedicatedHostGroup(ctx, \u0026compute.LookupDedicatedHostGroupArgs{\n\t\t\tName:              \"example-dedicated-host-group\",\n\t\t\tResourceGroupName: \"example-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDedicatedHostGroup.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Dedicated Host Group.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Dedicated Host Group is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDedicatedHostGroup.\n",
        "properties": {
          "automaticPlacementEnabled": {
            "description": "Whether virtual machines or virtual machine scale sets be placed automatically on this Dedicated Host Group.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the Dedicated Host Group exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "platformFaultDomainCount": {
            "description": "The number of fault domains that the Dedicated Host Group spans.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "zones": {
            "description": "The Availability Zones in which this Dedicated Host Group is located.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "automaticPlacementEnabled",
          "location",
          "name",
          "platformFaultDomainCount",
          "resourceGroupName",
          "tags",
          "zones",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getDiskAccess:getDiskAccess": {
      "description": "Use this data source to access information about an existing Disk Access.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.compute.getDiskAccess({\n    name: \"existing\",\n    resourceGroupName: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.get_disk_access(name=\"existing\",\n    resource_group_name=\"existing\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Compute.GetDiskAccess.InvokeAsync(new Azure.Compute.GetDiskAccessArgs\n        {\n            Name = \"existing\",\n            ResourceGroupName = \"existing\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := compute.LookupDiskAccess(ctx, \u0026compute.LookupDiskAccessArgs{\n\t\t\tName:              \"existing\",\n\t\t\tResourceGroupName: \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDiskAccess.\n",
        "properties": {
          "name": {
            "description": "The name of this Disk Access.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Disk Access exists.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Disk Access.\n",
            "type": "object"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDiskAccess.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "name",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getDiskEncryptionSet:getDiskEncryptionSet": {
      "description": "Use this data source to access information about an existing Disk Encryption Set.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDiskEncryptionSet.\n",
        "properties": {
          "name": {
            "description": "The name of the Disk Encryption Set exists.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Disk Encryption Set exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDiskEncryptionSet.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The location where the Disk Encryption Set exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Disk Encryption Set.\n",
            "type": "object"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getImage:getImage": {
      "description": "Use this data source to access information about an existing Image.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst search = azure.compute.getImage({\n    name: \"search-api\",\n    resourceGroupName: \"packerimages\",\n});\nexport const imageId = search.then(search =\u003e search.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nsearch = azure.compute.get_image(name=\"search-api\",\n    resource_group_name=\"packerimages\")\npulumi.export(\"imageId\", search.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var search = Output.Create(Azure.Compute.GetImage.InvokeAsync(new Azure.Compute.GetImageArgs\n        {\n            Name = \"search-api\",\n            ResourceGroupName = \"packerimages\",\n        }));\n        this.ImageId = search.Apply(search =\u003e search.Id);\n    }\n\n    [Output(\"imageId\")]\n    public Output\u003cstring\u003e ImageId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"search-api\"\n\t\tsearch, err := compute.LookupImage(ctx, \u0026compute.LookupImageArgs{\n\t\t\tName:              \u0026opt0,\n\t\t\tResourceGroupName: \"packerimages\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"imageId\", search.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getImage.\n",
        "properties": {
          "name": {
            "description": "The name of the Image.\n",
            "type": "string"
          },
          "nameRegex": {
            "description": "Regex pattern of the image to match.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where this Image exists.\n",
            "type": "string"
          },
          "sortDescending": {
            "description": "By default when matching by regex, images are sorted by name in ascending order and the first match is chosen, to sort descending, set this flag.\n",
            "type": "boolean"
          }
        },
        "required": [
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getImage.\n",
        "properties": {
          "dataDisks": {
            "description": "a collection of `data_disk` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/getImageDataDisk:getImageDataDisk"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "the Azure Location where this Image exists.\n",
            "type": "string"
          },
          "name": {
            "description": "the name of the Image.\n",
            "type": "string"
          },
          "nameRegex": {
            "type": "string"
          },
          "osDisks": {
            "description": "a `os_disk` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/getImageOsDisk:getImageOsDisk"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sortDescending": {
            "type": "boolean"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "a mapping of tags to assigned to the resource.\n",
            "type": "object"
          },
          "zoneResilient": {
            "description": "is zone resiliency enabled?\n",
            "type": "boolean"
          }
        },
        "required": [
          "dataDisks",
          "location",
          "osDisks",
          "resourceGroupName",
          "tags",
          "zoneResilient",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getImages:getImages": {
      "description": "Use this data source to access information about existing Images within a Resource Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.compute.getImages({\n    resourceGroupName: \"example-resources\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.get_images(resource_group_name=\"example-resources\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Compute.GetImages.InvokeAsync(new Azure.Compute.GetImagesArgs\n        {\n            ResourceGroupName = \"example-resources\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\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 := compute.GetImages(ctx, \u0026compute.GetImagesArgs{\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getImages.\n",
        "properties": {
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Image exists.\n",
            "type": "string"
          },
          "tagsFilter": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to filter the list of images against.\n",
            "type": "object"
          }
        },
        "required": [
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getImages.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "images": {
            "description": "One or more `images` blocks as defined below:\n",
            "items": {
              "$ref": "#/types/azure:compute/getImagesImage:getImagesImage"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tagsFilter": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "images",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getManagedDisk:getManagedDisk": {
      "description": "Use this data source to access information about an existing Managed Disk.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst existing = azure.compute.getManagedDisk({\n    name: \"example-datadisk\",\n    resourceGroupName: \"example-resources\",\n});\nexport const id = existing.then(existing =\u003e existing.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexisting = azure.compute.get_managed_disk(name=\"example-datadisk\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"id\", existing.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var existing = Output.Create(Azure.Compute.GetManagedDisk.InvokeAsync(new Azure.Compute.GetManagedDiskArgs\n        {\n            Name = \"example-datadisk\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.Id = existing.Apply(existing =\u003e existing.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texisting, err := compute.LookupManagedDisk(ctx, \u0026compute.LookupManagedDiskArgs{\n\t\t\tName:              \"example-datadisk\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", existing.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getManagedDisk.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Managed Disk.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where this Managed Disk exists.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "zones": {
            "description": "A list of Availability Zones where the Managed Disk exists.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getManagedDisk.\n",
        "properties": {
          "createOption": {
            "type": "string"
          },
          "diskEncryptionSetId": {
            "description": "The ID of the Disk Encryption Set used to encrypt this Managed Disk.\n",
            "type": "string"
          },
          "diskIopsReadWrite": {
            "description": "The number of IOPS allowed for this disk, where one operation can transfer between 4k and 256k bytes.\n",
            "type": "integer"
          },
          "diskMbpsReadWrite": {
            "description": "The bandwidth allowed for this disk.\n",
            "type": "integer"
          },
          "diskSizeGb": {
            "description": "The size of the Managed Disk in gigabytes.\n",
            "type": "integer"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "imageReferenceId": {
            "description": "The ID of the source image used for creating this Managed Disk.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "osType": {
            "description": "The operating system used for this Managed Disk.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sourceResourceId": {
            "description": "The ID of an existing Managed Disk which this Disk was created from.\n",
            "type": "string"
          },
          "sourceUri": {
            "description": "The Source URI for this Managed Disk.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of the Storage Account where the `source_uri` is located.\n",
            "type": "string"
          },
          "storageAccountType": {
            "description": "The storage account type for the Managed Disk.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "zones": {
            "description": "A list of Availability Zones where the Managed Disk exists.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "createOption",
          "diskEncryptionSetId",
          "diskIopsReadWrite",
          "diskMbpsReadWrite",
          "diskSizeGb",
          "imageReferenceId",
          "name",
          "osType",
          "resourceGroupName",
          "sourceResourceId",
          "sourceUri",
          "storageAccountId",
          "storageAccountType",
          "zones",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getPlatformImage:getPlatformImage": {
      "description": "Use this data source to access information about a Platform Image.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.compute.getPlatformImage({\n    location: \"West Europe\",\n    publisher: \"Canonical\",\n    offer: \"UbuntuServer\",\n    sku: \"16.04-LTS\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.get_platform_image(location=\"West Europe\",\n    publisher=\"Canonical\",\n    offer=\"UbuntuServer\",\n    sku=\"16.04-LTS\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Compute.GetPlatformImage.InvokeAsync(new Azure.Compute.GetPlatformImageArgs\n        {\n            Location = \"West Europe\",\n            Publisher = \"Canonical\",\n            Offer = \"UbuntuServer\",\n            Sku = \"16.04-LTS\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := compute.GetPlatformImage(ctx, \u0026compute.GetPlatformImageArgs{\n\t\t\tLocation:  \"West Europe\",\n\t\t\tPublisher: \"Canonical\",\n\t\t\tOffer:     \"UbuntuServer\",\n\t\t\tSku:       \"16.04-LTS\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getPlatformImage.\n",
        "properties": {
          "location": {
            "description": "Specifies the Location to pull information about this Platform Image from.\n",
            "type": "string"
          },
          "offer": {
            "description": "Specifies the Offer associated with the Platform Image.\n",
            "type": "string"
          },
          "publisher": {
            "description": "Specifies the Publisher associated with the Platform Image.\n",
            "type": "string"
          },
          "sku": {
            "description": "Specifies the SKU of the Platform Image.\n",
            "type": "string"
          },
          "version": {
            "description": "The version of the Platform Image.\n",
            "type": "string"
          }
        },
        "required": [
          "location",
          "offer",
          "publisher",
          "sku"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPlatformImage.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "offer": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "location",
          "offer",
          "publisher",
          "sku",
          "version",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getSharedImage:getSharedImage": {
      "description": "Use this data source to access information about an existing Shared Image within a Shared Image Gallery.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.compute.getSharedImage({\n    galleryName: \"my-image-gallery\",\n    name: \"my-image\",\n    resourceGroupName: \"example-resources\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.get_shared_image(gallery_name=\"my-image-gallery\",\n    name=\"my-image\",\n    resource_group_name=\"example-resources\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Compute.GetSharedImage.InvokeAsync(new Azure.Compute.GetSharedImageArgs\n        {\n            GalleryName = \"my-image-gallery\",\n            Name = \"my-image\",\n            ResourceGroupName = \"example-resources\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\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 := compute.LookupSharedImage(ctx, \u0026compute.LookupSharedImageArgs{\n\t\t\tGalleryName:       \"my-image-gallery\",\n\t\t\tName:              \"my-image\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSharedImage.\n",
        "properties": {
          "galleryName": {
            "description": "The name of the Shared Image Gallery in which the Shared Image exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Shared Image.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Shared Image Gallery exists.\n",
            "type": "string"
          }
        },
        "required": [
          "galleryName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSharedImage.\n",
        "properties": {
          "description": {
            "description": "The description of this Shared Image.\n",
            "type": "string"
          },
          "eula": {
            "description": "The End User Licence Agreement for the Shared Image.\n",
            "type": "string"
          },
          "galleryName": {
            "type": "string"
          },
          "hyperVGeneration": {
            "description": "The generation of HyperV that the Virtual Machine used to create the Shared Image is based on.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identifiers": {
            "description": "An `identifier` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/getSharedImageIdentifier:getSharedImageIdentifier"
            },
            "type": "array"
          },
          "location": {
            "description": "The supported Azure location where the Shared Image Gallery exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "osType": {
            "description": "The type of Operating System present in this Shared Image.\n",
            "type": "string"
          },
          "privacyStatementUri": {
            "description": "The URI containing the Privacy Statement for this Shared Image.\n",
            "type": "string"
          },
          "releaseNoteUri": {
            "description": "The URI containing the Release Notes for this Shared Image.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "specialized": {
            "description": "Specifies that the Operating System used inside this Image has not been Generalized (for example, `sysprep` on Windows has not been run).\n",
            "type": "boolean"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Shared Image.\n",
            "type": "object"
          }
        },
        "required": [
          "description",
          "eula",
          "galleryName",
          "hyperVGeneration",
          "identifiers",
          "location",
          "name",
          "osType",
          "privacyStatementUri",
          "releaseNoteUri",
          "resourceGroupName",
          "specialized",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getSharedImageGallery:getSharedImageGallery": {
      "description": "Use this data source to access information about an existing Shared Image Gallery.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.compute.getSharedImageGallery({\n    name: \"my-image-gallery\",\n    resourceGroupName: \"example-resources\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.get_shared_image_gallery(name=\"my-image-gallery\",\n    resource_group_name=\"example-resources\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Compute.GetSharedImageGallery.InvokeAsync(new Azure.Compute.GetSharedImageGalleryArgs\n        {\n            Name = \"my-image-gallery\",\n            ResourceGroupName = \"example-resources\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\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 := compute.LookupSharedImageGallery(ctx, \u0026compute.LookupSharedImageGalleryArgs{\n\t\t\tName:              \"my-image-gallery\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSharedImageGallery.\n",
        "properties": {
          "name": {
            "description": "The name of the Shared Image Gallery.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Shared Image Gallery exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSharedImageGallery.\n",
        "properties": {
          "description": {
            "description": "A description for the Shared Image Gallery.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which are assigned to the Shared Image Gallery.\n",
            "type": "object"
          },
          "uniqueName": {
            "description": "The unique name assigned to the Shared Image Gallery.\n",
            "type": "string"
          }
        },
        "required": [
          "description",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "uniqueName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getSharedImageVersion:getSharedImageVersion": {
      "description": "Use this data source to access information about an existing Version of a Shared Image within a Shared Image Gallery.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.compute.getSharedImageVersion({\n    galleryName: \"my-image-gallery\",\n    imageName: \"my-image\",\n    name: \"1.0.0\",\n    resourceGroupName: \"example-resources\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.get_shared_image_version(gallery_name=\"my-image-gallery\",\n    image_name=\"my-image\",\n    name=\"1.0.0\",\n    resource_group_name=\"example-resources\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Compute.GetSharedImageVersion.InvokeAsync(new Azure.Compute.GetSharedImageVersionArgs\n        {\n            GalleryName = \"my-image-gallery\",\n            ImageName = \"my-image\",\n            Name = \"1.0.0\",\n            ResourceGroupName = \"example-resources\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\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 := compute.LookupSharedImageVersion(ctx, \u0026compute.LookupSharedImageVersionArgs{\n\t\t\tGalleryName:       \"my-image-gallery\",\n\t\t\tImageName:         \"my-image\",\n\t\t\tName:              \"1.0.0\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSharedImageVersion.\n",
        "properties": {
          "galleryName": {
            "description": "The name of the Shared Image Gallery in which the Shared Image exists.\n",
            "type": "string"
          },
          "imageName": {
            "description": "The name of the Shared Image in which this Version exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Image Version.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Shared Image Gallery exists.\n",
            "type": "string"
          }
        },
        "required": [
          "galleryName",
          "imageName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSharedImageVersion.\n",
        "properties": {
          "excludeFromLatest": {
            "description": "Is this Image Version excluded from the `latest` filter?\n",
            "type": "boolean"
          },
          "galleryName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "imageName": {
            "type": "string"
          },
          "location": {
            "description": "The supported Azure location where the Shared Image Gallery exists.\n",
            "type": "string"
          },
          "managedImageId": {
            "description": "The ID of the Managed Image which was the source of this Shared Image Version.\n",
            "type": "string"
          },
          "name": {
            "description": "The Azure Region in which this Image Version exists.\n",
            "type": "string"
          },
          "osDiskImageSizeGb": {
            "description": "The size of the OS disk snapshot (in Gigabytes) which was the source of this Shared Image Version.\n",
            "type": "integer"
          },
          "osDiskSnapshotId": {
            "description": "The ID of the OS disk snapshot which was the source of this Shared Image Version.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Shared Image.\n",
            "type": "object"
          },
          "targetRegions": {
            "description": "One or more `target_region` blocks as documented below.\n",
            "items": {
              "$ref": "#/types/azure:compute/getSharedImageVersionTargetRegion:getSharedImageVersionTargetRegion"
            },
            "type": "array"
          }
        },
        "required": [
          "excludeFromLatest",
          "galleryName",
          "imageName",
          "location",
          "managedImageId",
          "name",
          "osDiskImageSizeGb",
          "osDiskSnapshotId",
          "resourceGroupName",
          "tags",
          "targetRegions",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getSharedImageVersions:getSharedImageVersions": {
      "description": "Use this data source to access information about existing Versions of a Shared Image within a Shared Image Gallery.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.compute.getSharedImageVersions({\n    galleryName: \"my-image-gallery\",\n    imageName: \"my-image\",\n    resourceGroupName: \"example-resources\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.get_shared_image_versions(gallery_name=\"my-image-gallery\",\n    image_name=\"my-image\",\n    resource_group_name=\"example-resources\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Compute.GetSharedImageVersions.InvokeAsync(new Azure.Compute.GetSharedImageVersionsArgs\n        {\n            GalleryName = \"my-image-gallery\",\n            ImageName = \"my-image\",\n            ResourceGroupName = \"example-resources\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\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 := compute.GetSharedImageVersions(ctx, \u0026compute.GetSharedImageVersionsArgs{\n\t\t\tGalleryName:       \"my-image-gallery\",\n\t\t\tImageName:         \"my-image\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSharedImageVersions.\n",
        "properties": {
          "galleryName": {
            "description": "The name of the Shared Image in which the Shared Image exists.\n",
            "type": "string"
          },
          "imageName": {
            "description": "The name of the Shared Image in which this Version exists.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Shared Image Gallery exists.\n",
            "type": "string"
          },
          "tagsFilter": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to filter the list of images against.\n",
            "type": "object"
          }
        },
        "required": [
          "galleryName",
          "imageName",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSharedImageVersions.\n",
        "properties": {
          "galleryName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "imageName": {
            "type": "string"
          },
          "images": {
            "description": "An `images` block as defined below:\n",
            "items": {
              "$ref": "#/types/azure:compute/getSharedImageVersionsImage:getSharedImageVersionsImage"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tagsFilter": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "galleryName",
          "imageName",
          "images",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getSnapshot:getSnapshot": {
      "description": "Use this data source to access information about an existing Snapshot.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.compute.getSnapshot({\n    name: \"my-snapshot\",\n    resourceGroupName: \"my-resource-group\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.get_snapshot(name=\"my-snapshot\",\n    resource_group_name=\"my-resource-group\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Compute.GetSnapshot.InvokeAsync(new Azure.Compute.GetSnapshotArgs\n        {\n            Name = \"my-snapshot\",\n            ResourceGroupName = \"my-resource-group\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\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 := compute.LookupSnapshot(ctx, \u0026compute.LookupSnapshotArgs{\n\t\t\tName:              \"my-snapshot\",\n\t\t\tResourceGroupName: \"my-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSnapshot.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Snapshot.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Snapshot is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSnapshot.\n",
        "properties": {
          "creationOption": {
            "type": "string"
          },
          "diskSizeGb": {
            "description": "The size of the Snapshotted Disk in GB.\n",
            "type": "integer"
          },
          "encryptionSettings": {
            "items": {
              "$ref": "#/types/azure:compute/getSnapshotEncryptionSetting:getSnapshotEncryptionSetting"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "osType": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sourceResourceId": {
            "description": "The reference to an existing snapshot.\n",
            "type": "string"
          },
          "sourceUri": {
            "description": "The URI to a Managed or Unmanaged Disk.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of an storage account.\n",
            "type": "string"
          },
          "timeCreated": {
            "type": "string"
          }
        },
        "required": [
          "creationOption",
          "diskSizeGb",
          "encryptionSettings",
          "name",
          "osType",
          "resourceGroupName",
          "sourceResourceId",
          "sourceUri",
          "storageAccountId",
          "timeCreated",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getSshPublicKey:getSshPublicKey": {
      "description": "Use this data source to access information about an existing SSH Public Key.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.compute.getSshPublicKey({\n    name: \"existing\",\n    resourceGroupName: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.get_ssh_public_key(name=\"existing\",\n    resource_group_name=\"existing\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Compute.GetSshPublicKey.InvokeAsync(new Azure.Compute.GetSshPublicKeyArgs\n        {\n            Name = \"existing\",\n            ResourceGroupName = \"existing\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := compute.LookupSshPublicKey(ctx, \u0026compute.LookupSshPublicKeyArgs{\n\t\t\tName:              \"existing\",\n\t\t\tResourceGroupName: \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSshPublicKey.\n",
        "properties": {
          "name": {
            "description": "The name of this SSH Public Key.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the SSH Public Key exists.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the SSH Public Key.\n",
            "type": "object"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSshPublicKey.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "publicKey": {
            "description": "The SSH public key used to authenticate to a virtual machine through ssh.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "name",
          "publicKey",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getVirtualMachine:getVirtualMachine": {
      "description": "Use this data source to access information about an existing Virtual Machine.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.compute.getVirtualMachine({\n    name: \"production\",\n    resourceGroupName: \"networking\",\n});\nexport const virtualMachineId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.get_virtual_machine(name=\"production\",\n    resource_group_name=\"networking\")\npulumi.export(\"virtualMachineId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Compute.GetVirtualMachine.InvokeAsync(new Azure.Compute.GetVirtualMachineArgs\n        {\n            Name = \"production\",\n            ResourceGroupName = \"networking\",\n        }));\n        this.VirtualMachineId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"virtualMachineId\")]\n    public Output\u003cstring\u003e VirtualMachineId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := compute.LookupVirtualMachine(ctx, \u0026compute.LookupVirtualMachineArgs{\n\t\t\tName:              \"production\",\n\t\t\tResourceGroupName: \"networking\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"virtualMachineId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getVirtualMachine.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Virtual Machine.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Virtual Machine is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVirtualMachine.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "A `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/getVirtualMachineIdentity:getVirtualMachineIdentity"
            },
            "type": "array"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "required": [
          "identities",
          "location",
          "name",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:compute/getVirtualMachineScaleSet:getVirtualMachineScaleSet": {
      "description": "Use this data source to access information about an existing Virtual Machine Scale Set.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.compute.getVirtualMachineScaleSet({\n    name: \"existing\",\n    resourceGroupName: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.get_virtual_machine_scale_set(name=\"existing\",\n    resource_group_name=\"existing\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Compute.GetVirtualMachineScaleSet.InvokeAsync(new Azure.Compute.GetVirtualMachineScaleSetArgs\n        {\n            Name = \"existing\",\n            ResourceGroupName = \"existing\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := compute.GetVirtualMachineScaleSet(ctx, \u0026compute.GetVirtualMachineScaleSetArgs{\n\t\t\tName:              \"existing\",\n\t\t\tResourceGroupName: \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getVirtualMachineScaleSet.\n",
        "properties": {
          "name": {
            "description": "The name of this Virtual Machine Scale Set.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Virtual Machine Scale Set exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVirtualMachineScaleSet.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "A `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/getVirtualMachineScaleSetIdentity:getVirtualMachineScaleSetIdentity"
            },
            "type": "array"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "description": "The name of the public ip address configuration\n",
            "type": "string"
          },
          "networkInterfaces": {
            "description": "A list of `network_interface` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/getVirtualMachineScaleSetNetworkInterface:getVirtualMachineScaleSetNetworkInterface"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "required": [
          "identities",
          "location",
          "name",
          "networkInterfaces",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:containerservice/getClusterNodePool:getClusterNodePool": {
      "description": "Use this data source to access information about an existing Kubernetes Cluster Node Pool.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.containerservice.getClusterNodePool({\n    name: \"existing\",\n    kubernetesClusterName: \"existing-cluster\",\n    resourceGroupName: \"existing-resource-group\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.containerservice.get_cluster_node_pool(name=\"existing\",\n    kubernetes_cluster_name=\"existing-cluster\",\n    resource_group_name=\"existing-resource-group\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ContainerService.GetClusterNodePool.InvokeAsync(new Azure.ContainerService.GetClusterNodePoolArgs\n        {\n            Name = \"existing\",\n            KubernetesClusterName = \"existing-cluster\",\n            ResourceGroupName = \"existing-resource-group\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := containerservice.GetClusterNodePool(ctx, \u0026containerservice.GetClusterNodePoolArgs{\n\t\t\tName:                  \"existing\",\n\t\t\tKubernetesClusterName: \"existing-cluster\",\n\t\t\tResourceGroupName:     \"existing-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getClusterNodePool.\n",
        "properties": {
          "kubernetesClusterName": {
            "description": "The Name of the Kubernetes Cluster where this Node Pool is located.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of this Kubernetes Cluster Node Pool.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Kubernetes Cluster exists.\n",
            "type": "string"
          }
        },
        "required": [
          "kubernetesClusterName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getClusterNodePool.\n",
        "properties": {
          "availabilityZones": {
            "description": "A list of Availability Zones in which the Nodes in this Node Pool exists.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "enableAutoScaling": {
            "description": "Does this Node Pool have Auto-Scaling enabled?\n",
            "type": "boolean"
          },
          "enableNodePublicIp": {
            "description": "Do nodes in this Node Pool have a Public IP Address?\n",
            "type": "boolean"
          },
          "evictionPolicy": {
            "description": "The eviction policy used for Virtual Machines in the Virtual Machine Scale Set, when `priority` is set to `Spot`.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "kubernetesClusterName": {
            "type": "string"
          },
          "maxCount": {
            "description": "The maximum number of Nodes allowed when auto-scaling is enabled.\n",
            "type": "integer"
          },
          "maxPods": {
            "description": "The maximum number of Pods allowed on each Node in this Node Pool.\n",
            "type": "integer"
          },
          "minCount": {
            "description": "The minimum number of Nodes allowed when auto-scaling is enabled.\n",
            "type": "integer"
          },
          "mode": {
            "description": "The Mode for this Node Pool, specifying how these Nodes should be used (for either System or User resources).\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "nodeCount": {
            "description": "The current number of Nodes in the Node Pool.\n",
            "type": "integer"
          },
          "nodeLabels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of Kubernetes Labels applied to each Node in this Node Pool.\n",
            "type": "object"
          },
          "nodePublicIpPrefixId": {
            "description": "Resource ID for the Public IP Addresses Prefix for the nodes in this Agent Pool.\n",
            "type": "string"
          },
          "nodeTaints": {
            "description": "A map of Kubernetes Taints applied to each Node in this Node Pool.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "orchestratorVersion": {
            "description": "The version of Kubernetes configured on each Node in this Node Pool.\n",
            "type": "string"
          },
          "osDiskSizeGb": {
            "description": "The size of the OS Disk on each Node in this Node Pool.\n",
            "type": "integer"
          },
          "osDiskType": {
            "description": "The type of the OS Disk on each Node in this Node Pool.\n",
            "type": "string"
          },
          "osType": {
            "description": "The operating system used on each Node in this Node Pool.\n",
            "type": "string"
          },
          "priority": {
            "description": "The priority of the Virtual Machines in the Virtual Machine Scale Set backing this Node Pool.\n",
            "type": "string"
          },
          "proximityPlacementGroupId": {
            "description": "The ID of the Proximity Placement Group where the Virtual Machine Scale Set backing this Node Pool will be placed.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "spotMaxPrice": {
            "description": "The maximum price being paid for Virtual Machines in this Scale Set. `-1` means the current on-demand price for a Virtual Machine.\n",
            "type": "number"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Kubernetes Cluster Node Pool.\n",
            "type": "object"
          },
          "upgradeSettings": {
            "description": "A `upgrade_settings` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/getClusterNodePoolUpgradeSetting:getClusterNodePoolUpgradeSetting"
            },
            "type": "array"
          },
          "vmSize": {
            "description": "The size of the Virtual Machines used in the Virtual Machine Scale Set backing this Node Pool.\n",
            "type": "string"
          },
          "vnetSubnetId": {
            "description": "The ID of the Subnet in which this Node Pool exists.\n",
            "type": "string"
          }
        },
        "required": [
          "availabilityZones",
          "enableAutoScaling",
          "enableNodePublicIp",
          "evictionPolicy",
          "kubernetesClusterName",
          "maxCount",
          "maxPods",
          "minCount",
          "mode",
          "name",
          "nodeCount",
          "nodeLabels",
          "nodePublicIpPrefixId",
          "nodeTaints",
          "orchestratorVersion",
          "osDiskSizeGb",
          "osDiskType",
          "osType",
          "priority",
          "proximityPlacementGroupId",
          "resourceGroupName",
          "spotMaxPrice",
          "tags",
          "upgradeSettings",
          "vmSize",
          "vnetSubnetId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:containerservice/getKubernetesCluster:getKubernetesCluster": {
      "description": "Use this data source to access information about an existing Managed Kubernetes Cluster (AKS).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.containerservice.getKubernetesCluster({\n    name: \"myakscluster\",\n    resourceGroupName: \"my-example-resource-group\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.containerservice.get_kubernetes_cluster(name=\"myakscluster\",\n    resource_group_name=\"my-example-resource-group\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ContainerService.GetKubernetesCluster.InvokeAsync(new Azure.ContainerService.GetKubernetesClusterArgs\n        {\n            Name = \"myakscluster\",\n            ResourceGroupName = \"my-example-resource-group\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\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 := containerservice.LookupKubernetesCluster(ctx, \u0026containerservice.LookupKubernetesClusterArgs{\n\t\t\tName:              \"myakscluster\",\n\t\t\tResourceGroupName: \"my-example-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getKubernetesCluster.\n",
        "properties": {
          "name": {
            "description": "The name of the managed Kubernetes Cluster.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the managed Kubernetes Cluster exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getKubernetesCluster.\n",
        "properties": {
          "addonProfiles": {
            "description": "A `addon_profile` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/getKubernetesClusterAddonProfile:getKubernetesClusterAddonProfile"
            },
            "type": "array"
          },
          "agentPoolProfiles": {
            "description": "An `agent_pool_profile` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/getKubernetesClusterAgentPoolProfile:getKubernetesClusterAgentPoolProfile"
            },
            "type": "array"
          },
          "apiServerAuthorizedIpRanges": {
            "description": "The IP ranges to whitelist for incoming traffic to the primaries.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "diskEncryptionSetId": {
            "description": "The ID of the Disk Encryption Set used for the Nodes and Volumes.\n",
            "type": "string"
          },
          "dnsPrefix": {
            "description": "The DNS Prefix of the managed Kubernetes cluster.\n",
            "type": "string"
          },
          "fqdn": {
            "description": "The FQDN of the Azure Kubernetes Managed Cluster.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "A `identity` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/getKubernetesClusterIdentity:getKubernetesClusterIdentity"
            },
            "type": "array"
          },
          "kubeAdminConfigRaw": {
            "description": "Raw Kubernetes config for the admin account to be used by [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) and other compatible tools. This is only available when Role Based Access Control with Azure Active Directory is enabled and local accounts are not disabled.\n",
            "type": "string"
          },
          "kubeAdminConfigs": {
            "description": "A `kube_admin_config` block as defined below. This is only available when Role Based Access Control with Azure Active Directory is enabled and local accounts are not disabled.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/getKubernetesClusterKubeAdminConfig:getKubernetesClusterKubeAdminConfig"
            },
            "type": "array"
          },
          "kubeConfigRaw": {
            "description": "Base64 encoded Kubernetes configuration.\n",
            "type": "string"
          },
          "kubeConfigs": {
            "description": "A `kube_config` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/getKubernetesClusterKubeConfig:getKubernetesClusterKubeConfig"
            },
            "type": "array"
          },
          "kubeletIdentities": {
            "description": "A `kubelet_identity` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/getKubernetesClusterKubeletIdentity:getKubernetesClusterKubeletIdentity"
            },
            "type": "array"
          },
          "kubernetesVersion": {
            "description": "The version of Kubernetes used on the managed Kubernetes Cluster.\n",
            "type": "string"
          },
          "linuxProfiles": {
            "description": "A `linux_profile` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/getKubernetesClusterLinuxProfile:getKubernetesClusterLinuxProfile"
            },
            "type": "array"
          },
          "location": {
            "description": "The Azure Region in which the managed Kubernetes Cluster exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name assigned to this pool of agents.\n",
            "type": "string"
          },
          "networkProfiles": {
            "description": "A `network_profile` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/getKubernetesClusterNetworkProfile:getKubernetesClusterNetworkProfile"
            },
            "type": "array"
          },
          "nodeResourceGroup": {
            "description": "Auto-generated Resource Group containing AKS Cluster resources.\n",
            "type": "string"
          },
          "privateClusterEnabled": {
            "description": "If the cluster has the Kubernetes API only exposed on internal IP addresses.\n",
            "type": "boolean"
          },
          "privateFqdn": {
            "description": "The FQDN of this Kubernetes Cluster when private link has been enabled. This name is only resolvable inside the Virtual Network where the Azure Kubernetes Service is located\n",
            "type": "string"
          },
          "privateLinkEnabled": {
            "type": "boolean"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "roleBasedAccessControls": {
            "description": "A `role_based_access_control` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/getKubernetesClusterRoleBasedAccessControl:getKubernetesClusterRoleBasedAccessControl"
            },
            "type": "array"
          },
          "servicePrincipals": {
            "description": "A `service_principal` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/getKubernetesClusterServicePrincipal:getKubernetesClusterServicePrincipal"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "windowsProfiles": {
            "description": "A `windows_profile` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/getKubernetesClusterWindowsProfile:getKubernetesClusterWindowsProfile"
            },
            "type": "array"
          }
        },
        "required": [
          "addonProfiles",
          "agentPoolProfiles",
          "apiServerAuthorizedIpRanges",
          "diskEncryptionSetId",
          "dnsPrefix",
          "fqdn",
          "identities",
          "kubeAdminConfigs",
          "kubeAdminConfigRaw",
          "kubeConfigs",
          "kubeConfigRaw",
          "kubeletIdentities",
          "kubernetesVersion",
          "linuxProfiles",
          "location",
          "name",
          "networkProfiles",
          "nodeResourceGroup",
          "privateClusterEnabled",
          "privateFqdn",
          "privateLinkEnabled",
          "resourceGroupName",
          "roleBasedAccessControls",
          "servicePrincipals",
          "tags",
          "windowsProfiles",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:containerservice/getKubernetesServiceVersions:getKubernetesServiceVersions": {
      "description": "Use this data source to retrieve the version of Kubernetes supported by Azure Kubernetes Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.containerservice.getKubernetesServiceVersions({\n    location: \"West Europe\",\n});\nexport const versions = current.then(current =\u003e current.versions);\nexport const latestVersion = current.then(current =\u003e current.latestVersion);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.containerservice.get_kubernetes_service_versions(location=\"West Europe\")\npulumi.export(\"versions\", current.versions)\npulumi.export(\"latestVersion\", current.latest_version)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.ContainerService.GetKubernetesServiceVersions.InvokeAsync(new Azure.ContainerService.GetKubernetesServiceVersionsArgs\n        {\n            Location = \"West Europe\",\n        }));\n        this.Versions = current.Apply(current =\u003e current.Versions);\n        this.LatestVersion = current.Apply(current =\u003e current.LatestVersion);\n    }\n\n    [Output(\"versions\")]\n    public Output\u003cstring\u003e Versions { get; set; }\n    [Output(\"latestVersion\")]\n    public Output\u003cstring\u003e LatestVersion { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := containerservice.GetKubernetesServiceVersions(ctx, \u0026containerservice.GetKubernetesServiceVersionsArgs{\n\t\t\tLocation: \"West Europe\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"versions\", current.Versions)\n\t\tctx.Export(\"latestVersion\", current.LatestVersion)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getKubernetesServiceVersions.\n",
        "properties": {
          "includePreview": {
            "description": "Should Preview versions of Kubernetes in AKS be included? Defaults to `true`\n",
            "type": "boolean"
          },
          "location": {
            "description": "Specifies the location in which to query for versions.\n",
            "type": "string"
          },
          "versionPrefix": {
            "description": "A prefix filter for the versions of Kubernetes which should be returned; for example `1.` will return `1.9` to `1.14`, whereas `1.12` will return `1.12.2`.\n",
            "type": "string"
          }
        },
        "required": [
          "location"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getKubernetesServiceVersions.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "includePreview": {
            "type": "boolean"
          },
          "latestVersion": {
            "description": "The most recent version available. If `include_preview == false`, this is the most recent non-preview version available.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "versionPrefix": {
            "type": "string"
          },
          "versions": {
            "description": "The list of all supported versions.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "latestVersion",
          "location",
          "versions",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:containerservice/getRegistry:getRegistry": {
      "description": "Use this data source to access information about an existing Container Registry.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.containerservice.getRegistry({\n    name: \"testacr\",\n    resourceGroupName: \"test\",\n});\nexport const loginServer = example.then(example =\u003e example.loginServer);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.containerservice.get_registry(name=\"testacr\",\n    resource_group_name=\"test\")\npulumi.export(\"loginServer\", example.login_server)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ContainerService.GetRegistry.InvokeAsync(new Azure.ContainerService.GetRegistryArgs\n        {\n            Name = \"testacr\",\n            ResourceGroupName = \"test\",\n        }));\n        this.LoginServer = example.Apply(example =\u003e example.LoginServer);\n    }\n\n    [Output(\"loginServer\")]\n    public Output\u003cstring\u003e LoginServer { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := containerservice.LookupRegistry(ctx, \u0026containerservice.LookupRegistryArgs{\n\t\t\tName:              \"testacr\",\n\t\t\tResourceGroupName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"loginServer\", example.LoginServer)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getRegistry.\n",
        "properties": {
          "name": {
            "description": "The name of the Container Registry.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where this Container Registry exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getRegistry.\n",
        "properties": {
          "adminEnabled": {
            "description": "Is the Administrator account enabled for this Container Registry.\n",
            "type": "boolean"
          },
          "adminPassword": {
            "description": "The Password associated with the Container Registry Admin account - if the admin account is enabled.\n",
            "type": "string"
          },
          "adminUsername": {
            "description": "The Username associated with the Container Registry Admin account - if the admin account is enabled.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region in which this Container Registry exists.\n",
            "type": "string"
          },
          "loginServer": {
            "description": "The URL that can be used to log into the container registry.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sku": {
            "description": "The SKU of this Container Registry, such as `Basic`.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of the Storage Account used for this Container Registry. This is only returned for `Classic` SKU's.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of tags assigned to the Container Registry.\n",
            "type": "object"
          }
        },
        "required": [
          "adminEnabled",
          "adminPassword",
          "adminUsername",
          "location",
          "loginServer",
          "name",
          "resourceGroupName",
          "sku",
          "storageAccountId",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:containerservice/getRegistryScopeMap:getRegistryScopeMap": {
      "description": "Use this data source to access information about an existing Container Registry scope map.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.containerservice.getRegistryScopeMap({\n    name: \"example-scope-map\",\n    resourceGroupName: \"example-resource-group\",\n    containerRegistryName: \"example-registry\",\n});\nexport const actions = example.then(example =\u003e example.actions);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.containerservice.get_registry_scope_map(name=\"example-scope-map\",\n    resource_group_name=\"example-resource-group\",\n    container_registry_name=\"example-registry\")\npulumi.export(\"actions\", example.actions)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ContainerService.GetRegistryScopeMap.InvokeAsync(new Azure.ContainerService.GetRegistryScopeMapArgs\n        {\n            Name = \"example-scope-map\",\n            ResourceGroupName = \"example-resource-group\",\n            ContainerRegistryName = \"example-registry\",\n        }));\n        this.Actions = example.Apply(example =\u003e example.Actions);\n    }\n\n    [Output(\"actions\")]\n    public Output\u003cstring\u003e Actions { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := containerservice.LookupRegistryScopeMap(ctx, \u0026containerservice.LookupRegistryScopeMapArgs{\n\t\t\tName:                  \"example-scope-map\",\n\t\t\tResourceGroupName:     \"example-resource-group\",\n\t\t\tContainerRegistryName: \"example-registry\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"actions\", example.Actions)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getRegistryScopeMap.\n",
        "properties": {
          "containerRegistryName": {
            "description": "The Name of the Container Registry where the token exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Container Registry token.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where this Container Registry token exists.\n",
            "type": "string"
          }
        },
        "required": [
          "containerRegistryName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getRegistryScopeMap.\n",
        "properties": {
          "actions": {
            "description": "The actions for the Scope Map.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "containerRegistryName": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "required": [
          "actions",
          "containerRegistryName",
          "description",
          "name",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:containerservice/getRegistryToken:getRegistryToken": {
      "description": "Use this data source to access information about an existing Container Registry token.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.containerservice.getRegistryToken({\n    name: \"exampletoken\",\n    resourceGroupName: \"example-resource-group\",\n    containerRegistryName: \"example-registry\",\n});\nexport const scopeMapId = example.then(example =\u003e example.scopeMapId);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.containerservice.get_registry_token(name=\"exampletoken\",\n    resource_group_name=\"example-resource-group\",\n    container_registry_name=\"example-registry\")\npulumi.export(\"scopeMapId\", example.scope_map_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ContainerService.GetRegistryToken.InvokeAsync(new Azure.ContainerService.GetRegistryTokenArgs\n        {\n            Name = \"exampletoken\",\n            ResourceGroupName = \"example-resource-group\",\n            ContainerRegistryName = \"example-registry\",\n        }));\n        this.ScopeMapId = example.Apply(example =\u003e example.ScopeMapId);\n    }\n\n    [Output(\"scopeMapId\")]\n    public Output\u003cstring\u003e ScopeMapId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := containerservice.LookupRegistryToken(ctx, \u0026containerservice.LookupRegistryTokenArgs{\n\t\t\tName:                  \"exampletoken\",\n\t\t\tResourceGroupName:     \"example-resource-group\",\n\t\t\tContainerRegistryName: \"example-registry\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"scopeMapId\", example.ScopeMapId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getRegistryToken.\n",
        "properties": {
          "containerRegistryName": {
            "description": "The Name of the Container Registry where the token exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Container Registry token.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where this Container Registry token exists.\n",
            "type": "string"
          }
        },
        "required": [
          "containerRegistryName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getRegistryToken.\n",
        "properties": {
          "containerRegistryName": {
            "type": "string"
          },
          "enabled": {
            "description": "Whether this Token is enabled.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "scopeMapId": {
            "description": "The Scope Map ID used by the token.\n",
            "type": "string"
          }
        },
        "required": [
          "containerRegistryName",
          "enabled",
          "name",
          "resourceGroupName",
          "scopeMapId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:core/getClientConfig:getClientConfig": {
      "description": "Use this data source to access the configuration of the AzureRM provider.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nexport const accountId = current.then(current =\u003e current.clientId);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\npulumi.export(\"accountId\", current.client_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        this.AccountId = current.Apply(current =\u003e current.ClientId);\n    }\n\n    [Output(\"accountId\")]\n    public Output\u003cstring\u003e AccountId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"accountId\", current.ClientId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "outputs": {
        "description": "A collection of values returned by getClientConfig.\n",
        "properties": {
          "clientId": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "objectId": {
            "type": "string"
          },
          "subscriptionId": {
            "type": "string"
          },
          "tenantId": {
            "type": "string"
          }
        },
        "required": [
          "clientId",
          "objectId",
          "subscriptionId",
          "tenantId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:core/getResourceGroup:getResourceGroup": {
      "description": "Use this data source to access information about an existing Resource Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.core.getResourceGroup({\n    name: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.get_resource_group(name=\"existing\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Core.GetResourceGroup.InvokeAsync(new Azure.Core.GetResourceGroupArgs\n        {\n            Name = \"existing\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.LookupResourceGroup(ctx, \u0026core.LookupResourceGroupArgs{\n\t\t\tName: \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getResourceGroup.\n",
        "properties": {
          "name": {
            "description": "The Name of this Resource Group.\n",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getResourceGroup.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Resource Group exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Resource Group.\n",
            "type": "object"
          }
        },
        "required": [
          "location",
          "name",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:core/getResources:getResources": {
      "description": "Use this data source to access information about existing resources.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getResources.\n",
        "properties": {
          "name": {
            "description": "The name of the Resource.\n",
            "type": "string"
          },
          "requiredTags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which the resource has to have in order to be included in the result.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the Resource group where the Resources are located.\n",
            "type": "string"
          },
          "type": {
            "description": "The Resource Type of the Resources you want to list (e.g. `Microsoft.Network/virtualNetworks`). A full list of available Resource Types can be found [here](https://docs.microsoft.com/en-us/azure/azure-resource-manager/azure-services-resource-providers).\n",
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getResources.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of this Resource.\n",
            "type": "string"
          },
          "requiredTags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "resources": {
            "description": "One or more `resource` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:core/getResourcesResource:getResourcesResource"
            },
            "type": "array"
          },
          "type": {
            "description": "The type of this Resource. (e.g. `Microsoft.Network/virtualNetworks`).\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName",
          "resources",
          "type",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:core/getSubscription:getSubscription": {
      "description": "Use this data source to access information about an existing Subscription.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getSubscription({});\nexport const currentSubscriptionDisplayName = current.then(current =\u003e current.displayName);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_subscription()\npulumi.export(\"currentSubscriptionDisplayName\", current.display_name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        this.CurrentSubscriptionDisplayName = current.Apply(current =\u003e current.DisplayName);\n    }\n\n    [Output(\"currentSubscriptionDisplayName\")]\n    public Output\u003cstring\u003e CurrentSubscriptionDisplayName { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"currentSubscriptionDisplayName\", current.DisplayName)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSubscription.\n",
        "properties": {
          "subscriptionId": {
            "description": "Specifies the ID of the subscription. If this argument is omitted, the subscription ID of the current Azure Resource Manager provider is used.\n",
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSubscription.\n",
        "properties": {
          "displayName": {
            "description": "The subscription display name.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "locationPlacementId": {
            "description": "The subscription location placement ID.\n",
            "type": "string"
          },
          "quotaId": {
            "description": "The subscription quota ID.\n",
            "type": "string"
          },
          "spendingLimit": {
            "description": "The subscription spending limit.\n",
            "type": "string"
          },
          "state": {
            "description": "The subscription state. Possible values are Enabled, Warned, PastDue, Disabled, and Deleted.\n",
            "type": "string"
          },
          "subscriptionId": {
            "description": "The subscription GUID.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Subscription.\n",
            "type": "object"
          },
          "tenantId": {
            "description": "The subscription tenant ID.\n",
            "type": "string"
          }
        },
        "required": [
          "displayName",
          "locationPlacementId",
          "quotaId",
          "spendingLimit",
          "state",
          "subscriptionId",
          "tags",
          "tenantId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:core/getSubscriptions:getSubscriptions": {
      "description": "Use this data source to access information about all the Subscriptions currently available.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst available = azure.core.getSubscriptions({});\nexport const availableSubscriptions = available.then(available =\u003e available.subscriptions);\nexport const firstAvailableSubscriptionDisplayName = available.then(available =\u003e available.subscriptions?[0]?.displayName);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\navailable = azure.core.get_subscriptions()\npulumi.export(\"availableSubscriptions\", available.subscriptions)\npulumi.export(\"firstAvailableSubscriptionDisplayName\", available.subscriptions[0].display_name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var available = Output.Create(Azure.Core.GetSubscriptions.InvokeAsync());\n        this.AvailableSubscriptions = available.Apply(available =\u003e available.Subscriptions);\n        this.FirstAvailableSubscriptionDisplayName = available.Apply(available =\u003e available.Subscriptions?[0]?.DisplayName);\n    }\n\n    [Output(\"availableSubscriptions\")]\n    public Output\u003cstring\u003e AvailableSubscriptions { get; set; }\n    [Output(\"firstAvailableSubscriptionDisplayName\")]\n    public Output\u003cstring\u003e FirstAvailableSubscriptionDisplayName { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tavailable, err := core.GetSubscriptions(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"availableSubscriptions\", available.Subscriptions)\n\t\tctx.Export(\"firstAvailableSubscriptionDisplayName\", available.Subscriptions[0].DisplayName)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSubscriptions.\n",
        "properties": {
          "displayNameContains": {
            "description": "A case-insensitive value which must be contained within the `display_name` field, used to filter the results\n",
            "type": "string"
          },
          "displayNamePrefix": {
            "description": "A case-insensitive prefix which can be used to filter on the `display_name` field\n",
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSubscriptions.\n",
        "properties": {
          "displayNameContains": {
            "type": "string"
          },
          "displayNamePrefix": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "subscriptions": {
            "description": "One or more `subscription` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:core/getSubscriptionsSubscription:getSubscriptionsSubscription"
            },
            "type": "array"
          }
        },
        "required": [
          "subscriptions",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:core/getTemplateSpecVersion:getTemplateSpecVersion": {
      "description": "Use this data source to access information about an existing Template Spec Version.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.core.getTemplateSpecVersion({\n    name: \"exampleTemplateSpec\",\n    resourceGroupName: \"MyResourceGroup\",\n    version: \"v1.0.4\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.get_template_spec_version(name=\"exampleTemplateSpec\",\n    resource_group_name=\"MyResourceGroup\",\n    version=\"v1.0.4\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Core.GetTemplateSpecVersion.InvokeAsync(new Azure.Core.GetTemplateSpecVersionArgs\n        {\n            Name = \"exampleTemplateSpec\",\n            ResourceGroupName = \"MyResourceGroup\",\n            Version = \"v1.0.4\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.GetTemplateSpecVersion(ctx, \u0026core.GetTemplateSpecVersionArgs{\n\t\t\tName:              \"exampleTemplateSpec\",\n\t\t\tResourceGroupName: \"MyResourceGroup\",\n\t\t\tVersion:           \"v1.0.4\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getTemplateSpecVersion.\n",
        "properties": {
          "name": {
            "description": "The name of this Template Spec.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Template Spec exists.\n",
            "type": "string"
          },
          "version": {
            "description": "The Version Name of the Template Spec.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName",
          "version"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getTemplateSpecVersion.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Template.\n",
            "type": "object"
          },
          "templateBody": {
            "description": "The ARM Template body of the Template Spec Version.\n",
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName",
          "tags",
          "templateBody",
          "version",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:core/getUserAssignedIdentity:getUserAssignedIdentity": {
      "deprecationMessage": "azure.core.getUserAssignedIdentity has been deprecated in favor of azure.authorization.getUserAssignedIdentity",
      "description": "Use this data source to access information about an existing User Assigned Identity.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Reference An Existing)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.authorization.getUserAssignedIdentity({\n    name: \"name_of_user_assigned_identity\",\n    resourceGroupName: \"name_of_resource_group\",\n});\nexport const uaiClientId = example.then(example =\u003e example.clientId);\nexport const uaiPrincipalId = example.then(example =\u003e example.principalId);\nexport const uaiTenantId = example.then(example =\u003e example.tenantId);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.authorization.get_user_assigned_identity(name=\"name_of_user_assigned_identity\",\n    resource_group_name=\"name_of_resource_group\")\npulumi.export(\"uaiClientId\", example.client_id)\npulumi.export(\"uaiPrincipalId\", example.principal_id)\npulumi.export(\"uaiTenantId\", example.tenant_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Authorization.GetUserAssignedIdentity.InvokeAsync(new Azure.Authorization.GetUserAssignedIdentityArgs\n        {\n            Name = \"name_of_user_assigned_identity\",\n            ResourceGroupName = \"name_of_resource_group\",\n        }));\n        this.UaiClientId = example.Apply(example =\u003e example.ClientId);\n        this.UaiPrincipalId = example.Apply(example =\u003e example.PrincipalId);\n        this.UaiTenantId = example.Apply(example =\u003e example.TenantId);\n    }\n\n    [Output(\"uaiClientId\")]\n    public Output\u003cstring\u003e UaiClientId { get; set; }\n    [Output(\"uaiPrincipalId\")]\n    public Output\u003cstring\u003e UaiPrincipalId { get; set; }\n    [Output(\"uaiTenantId\")]\n    public Output\u003cstring\u003e UaiTenantId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := authorization.LookupUserAssignedIdentity(ctx, \u0026authorization.LookupUserAssignedIdentityArgs{\n\t\t\tName:              \"name_of_user_assigned_identity\",\n\t\t\tResourceGroupName: \"name_of_resource_group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"uaiClientId\", example.ClientId)\n\t\tctx.Export(\"uaiPrincipalId\", example.PrincipalId)\n\t\tctx.Export(\"uaiTenantId\", example.TenantId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getUserAssignedIdentity.\n",
        "properties": {
          "name": {
            "description": "The name of the User Assigned Identity.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the User Assigned Identity exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getUserAssignedIdentity.\n",
        "properties": {
          "clientId": {
            "description": "The Client ID of the User Assigned Identity.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the User Assigned Identity exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "principalId": {
            "description": "The Service Principal ID of the User Assigned Identity.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the User Assigned Identity.\n",
            "type": "object"
          },
          "tenantId": {
            "description": "The Tenant ID of the User Assigned Identity.\n",
            "type": "string"
          }
        },
        "required": [
          "clientId",
          "location",
          "name",
          "principalId",
          "resourceGroupName",
          "tags",
          "tenantId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:cosmosdb/getAccount:getAccount": {
      "description": "Use this data source to access information about an existing CosmosDB (formally DocumentDB) Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.cosmosdb.getAccount({\n    name: \"tfex-cosmosdb-account\",\n    resourceGroupName: \"tfex-cosmosdb-account-rg\",\n});\nexport const cosmosdbAccountEndpoint = example.then(example =\u003e example.endpoint);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.cosmosdb.get_account(name=\"tfex-cosmosdb-account\",\n    resource_group_name=\"tfex-cosmosdb-account-rg\")\npulumi.export(\"cosmosdbAccountEndpoint\", example.endpoint)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.CosmosDB.GetAccount.InvokeAsync(new Azure.CosmosDB.GetAccountArgs\n        {\n            Name = \"tfex-cosmosdb-account\",\n            ResourceGroupName = \"tfex-cosmosdb-account-rg\",\n        }));\n        this.CosmosdbAccountEndpoint = example.Apply(example =\u003e example.Endpoint);\n    }\n\n    [Output(\"cosmosdbAccountEndpoint\")]\n    public Output\u003cstring\u003e CosmosdbAccountEndpoint { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cosmosdb.LookupAccount(ctx, \u0026cosmosdb.LookupAccountArgs{\n\t\t\tName:              \"tfex-cosmosdb-account\",\n\t\t\tResourceGroupName: \"tfex-cosmosdb-account-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cosmosdbAccountEndpoint\", example.Endpoint)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAccount.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the CosmosDB Account.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group in which the CosmosDB Account resides.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAccount.\n",
        "properties": {
          "capabilities": {
            "description": "Capabilities enabled on this Cosmos DB account.\n",
            "items": {
              "$ref": "#/types/azure:cosmosdb/getAccountCapability:getAccountCapability"
            },
            "type": "array"
          },
          "consistencyPolicies": {
            "items": {
              "$ref": "#/types/azure:cosmosdb/getAccountConsistencyPolicy:getAccountConsistencyPolicy"
            },
            "type": "array"
          },
          "enableAutomaticFailover": {
            "description": "If automatic failover is enabled for this CosmosDB Account.\n",
            "type": "boolean"
          },
          "enableFreeTier": {
            "description": "If Free Tier pricing option is enabled for this CosmosDB Account.\n",
            "type": "boolean"
          },
          "enableMultipleWriteLocations": {
            "description": "If multiple write locations are enabled for this Cosmos DB account.\n",
            "type": "boolean"
          },
          "endpoint": {
            "description": "The endpoint used to connect to the CosmosDB account.\n",
            "type": "string"
          },
          "geoLocations": {
            "items": {
              "$ref": "#/types/azure:cosmosdb/getAccountGeoLocation:getAccountGeoLocation"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "ipRangeFilter": {
            "description": "The current IP Filter for this CosmosDB account\n",
            "type": "string"
          },
          "isVirtualNetworkFilterEnabled": {
            "description": "If virtual network filtering is enabled for this Cosmos DB account.\n",
            "type": "boolean"
          },
          "keyVaultKeyId": {
            "description": "The Key Vault key URI for CMK encryption.\n",
            "type": "string"
          },
          "kind": {
            "description": "The Kind of the CosmosDB account.\n",
            "type": "string"
          },
          "location": {
            "description": "The name of the Azure region hosting replicated data.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "offerType": {
            "description": "The Offer Type to used by this CosmosDB Account.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary key for the CosmosDB Account.\n",
            "type": "string"
          },
          "primaryMasterKey": {
            "deprecationMessage": "This property has been renamed to `primary_key` and will be removed in v3.0 of the provider in support of HashiCorp's inclusive language policy which can be found here: https://discuss.hashicorp.com/t/inclusive-language-changes",
            "type": "string"
          },
          "primaryReadonlyKey": {
            "description": "The Primary read-only Key for the CosmosDB Account.\n",
            "type": "string"
          },
          "primaryReadonlyMasterKey": {
            "deprecationMessage": "This property has been renamed to `primary_readonly_key` and will be removed in v3.0 of the provider in support of HashiCorp's inclusive language policy which can be found here: https://discuss.hashicorp.com/t/inclusive-language-changes",
            "type": "string"
          },
          "readEndpoints": {
            "description": "A list of read endpoints available for this CosmosDB account.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary key for the CosmosDB Account.\n",
            "type": "string"
          },
          "secondaryMasterKey": {
            "deprecationMessage": "This property has been renamed to `secondary_key` and will be removed in v3.0 of the provider in support of HashiCorp's inclusive language policy which can be found here: https://discuss.hashicorp.com/t/inclusive-language-changes",
            "type": "string"
          },
          "secondaryReadonlyKey": {
            "description": "The Secondary read-only key for the CosmosDB Account.\n",
            "type": "string"
          },
          "secondaryReadonlyMasterKey": {
            "deprecationMessage": "This property has been renamed to `secondary_readonly_key` and will be removed in v3.0 of the provider in support of HashiCorp's inclusive language policy which can be found here: https://discuss.hashicorp.com/t/inclusive-language-changes",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "virtualNetworkRules": {
            "description": "Subnets that are allowed to access this CosmosDB account.\n",
            "items": {
              "$ref": "#/types/azure:cosmosdb/getAccountVirtualNetworkRule:getAccountVirtualNetworkRule"
            },
            "type": "array"
          },
          "writeEndpoints": {
            "description": "A list of write endpoints available for this CosmosDB account.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "capabilities",
          "consistencyPolicies",
          "enableAutomaticFailover",
          "enableFreeTier",
          "enableMultipleWriteLocations",
          "endpoint",
          "geoLocations",
          "ipRangeFilter",
          "isVirtualNetworkFilterEnabled",
          "keyVaultKeyId",
          "kind",
          "location",
          "name",
          "offerType",
          "primaryKey",
          "primaryMasterKey",
          "primaryReadonlyKey",
          "primaryReadonlyMasterKey",
          "readEndpoints",
          "resourceGroupName",
          "secondaryKey",
          "secondaryMasterKey",
          "secondaryReadonlyKey",
          "secondaryReadonlyMasterKey",
          "tags",
          "virtualNetworkRules",
          "writeEndpoints",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:cosmosdb/getMongoDatabase:getMongoDatabase": {
      "description": "Use this data source to access information about an existing Cosmos DB Mongo Database.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.cosmosdb.getMongoDatabase({\n    name: \"test-cosmosdb-mongo-db\",\n    resourceGroupName: \"test-cosmosdb-account-rg\",\n    accountName: \"test-cosmosdb-account\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.cosmosdb.get_mongo_database(name=\"test-cosmosdb-mongo-db\",\n    resource_group_name=\"test-cosmosdb-account-rg\",\n    account_name=\"test-cosmosdb-account\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.CosmosDB.GetMongoDatabase.InvokeAsync(new Azure.CosmosDB.GetMongoDatabaseArgs\n        {\n            Name = \"test-cosmosdb-mongo-db\",\n            ResourceGroupName = \"test-cosmosdb-account-rg\",\n            AccountName = \"test-cosmosdb-account\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cosmosdb.LookupMongoDatabase(ctx, \u0026cosmosdb.LookupMongoDatabaseArgs{\n\t\t\tName:              \"test-cosmosdb-mongo-db\",\n\t\t\tResourceGroupName: \"test-cosmosdb-account-rg\",\n\t\t\tAccountName:       \"test-cosmosdb-account\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getMongoDatabase.\n",
        "properties": {
          "accountName": {
            "description": "The name of the Cosmos DB Account where the Mongo Database exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of this Cosmos DB Mongo Database.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Cosmos DB Mongo Database exists.\n",
            "type": "string"
          }
        },
        "required": [
          "accountName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getMongoDatabase.\n",
        "properties": {
          "accountName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Cosmos DB Mongo Database.\n",
            "type": "object"
          }
        },
        "required": [
          "accountName",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:databasemigration/getProject:getProject": {
      "description": "Use this data source to access information about an existing Database Migration Project.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.databasemigration.getProject({\n    name: \"example-dbms-project\",\n    resourceGroupName: \"example-rg\",\n    serviceName: \"example-dbms\",\n}));\n\nexport const name = example.name;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.databasemigration.get_project(name=\"example-dbms-project\",\n    resource_group_name=\"example-rg\",\n    service_name=\"example-dbms\")\npulumi.export(\"name\", example.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DatabaseMigration.GetProject.InvokeAsync(new Azure.DatabaseMigration.GetProjectArgs\n        {\n            Name = \"example-dbms-project\",\n            ResourceGroupName = \"example-rg\",\n            ServiceName = \"example-dbms\",\n        }));\n        this.Name = example.Apply(example =\u003e example.Name);\n    }\n\n    [Output(\"name\")]\n    public Output\u003cstring\u003e Name { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/databasemigration\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := databasemigration.LookupProject(ctx, \u0026databasemigration.LookupProjectArgs{\n\t\t\tName:              \"example-dbms-project\",\n\t\t\tResourceGroupName: \"example-rg\",\n\t\t\tServiceName:       \"example-dbms\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"name\", example.Name)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getProject.\n",
        "properties": {
          "name": {
            "description": "Name of the database migration project.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Name of the resource group where resource belongs to.\n",
            "type": "string"
          },
          "serviceName": {
            "description": "Name of the database migration service where resource belongs to.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName",
          "serviceName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getProject.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "Azure location where the resource exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "serviceName": {
            "type": "string"
          },
          "sourcePlatform": {
            "description": "The platform type of the migration source.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assigned to the resource.\n",
            "type": "object"
          },
          "targetPlatform": {
            "description": "The platform type of the migration target.\n",
            "type": "string"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "serviceName",
          "sourcePlatform",
          "tags",
          "targetPlatform",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:databasemigration/getService:getService": {
      "description": "Use this data source to access information about an existing Database Migration Service.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.databasemigration.getService({\n    name: \"example-dms\",\n    resourceGroupName: \"example-rg\",\n}));\n\nexport const azurermDmsId = example.id;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.databasemigration.get_service(name=\"example-dms\",\n    resource_group_name=\"example-rg\")\npulumi.export(\"azurermDmsId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DatabaseMigration.GetService.InvokeAsync(new Azure.DatabaseMigration.GetServiceArgs\n        {\n            Name = \"example-dms\",\n            ResourceGroupName = \"example-rg\",\n        }));\n        this.AzurermDmsId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"azurermDmsId\")]\n    public Output\u003cstring\u003e AzurermDmsId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/databasemigration\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := databasemigration.LookupService(ctx, \u0026databasemigration.LookupServiceArgs{\n\t\t\tName:              \"example-dms\",\n\t\t\tResourceGroupName: \"example-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"azurermDmsId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getService.\n",
        "properties": {
          "name": {
            "description": "Specify the name of the database migration service.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the Name of the Resource Group within which the database migration service exists\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getService.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "Azure location where the resource exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "skuName": {
            "description": "The sku name of database migration service.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the virtual subnet resource to which the database migration service exists.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "skuName",
          "subnetId",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:databricks/getWorkspace:getWorkspace": {
      "description": "Use this data source to access information about an existing Databricks workspace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.databricks.getWorkspace({\n    name: \"example-workspace\",\n    resourceGroupName: \"example-rg\",\n});\nexport const databricksWorkspaceId = example.then(example =\u003e example.workspaceId);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.databricks.get_workspace(name=\"example-workspace\",\n    resource_group_name=\"example-rg\")\npulumi.export(\"databricksWorkspaceId\", example.workspace_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DataBricks.GetWorkspace.InvokeAsync(new Azure.DataBricks.GetWorkspaceArgs\n        {\n            Name = \"example-workspace\",\n            ResourceGroupName = \"example-rg\",\n        }));\n        this.DatabricksWorkspaceId = example.Apply(example =\u003e example.WorkspaceId);\n    }\n\n    [Output(\"databricksWorkspaceId\")]\n    public Output\u003cstring\u003e DatabricksWorkspaceId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/databricks\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := databricks.LookupWorkspace(ctx, \u0026databricks.LookupWorkspaceArgs{\n\t\t\tName:              \"example-workspace\",\n\t\t\tResourceGroupName: \"example-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"databricksWorkspaceId\", example.WorkspaceId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getWorkspace.\n",
        "properties": {
          "name": {
            "description": "The name of the Databricks Workspace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the Databricks Workspace exists.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Databricks Workspace.\n",
            "type": "object"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getWorkspace.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sku": {
            "description": "SKU of this Databricks Workspace.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Databricks Workspace.\n",
            "type": "object"
          },
          "workspaceId": {
            "description": "Unique ID of this Databricks Workspace in Databricks management plane.\n",
            "type": "string"
          },
          "workspaceUrl": {
            "description": "URL this Databricks Workspace is accessible on.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName",
          "sku",
          "workspaceId",
          "workspaceUrl",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:databricks/getWorkspacePrivateEndpointConnection:getWorkspacePrivateEndpointConnection": {
      "description": "Use this data source to access information on an existing Databricks Workspace private endpoint connection state.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.databricks.getWorkspacePrivateEndpointConnection({\n    workspaceId: azurerm_databricks_workspace.example.id,\n    privateEndpointId: azurerm_private_endpoint.example.id,\n});\nexport const databricksWorkspacePrivateEndpointConnectionStatus = example.then(example =\u003e example.connections?[0]?.status);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.databricks.get_workspace_private_endpoint_connection(workspace_id=azurerm_databricks_workspace[\"example\"][\"id\"],\n    private_endpoint_id=azurerm_private_endpoint[\"example\"][\"id\"])\npulumi.export(\"databricksWorkspacePrivateEndpointConnectionStatus\", example.connections[0].status)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DataBricks.GetWorkspacePrivateEndpointConnection.InvokeAsync(new Azure.DataBricks.GetWorkspacePrivateEndpointConnectionArgs\n        {\n            WorkspaceId = azurerm_databricks_workspace.Example.Id,\n            PrivateEndpointId = azurerm_private_endpoint.Example.Id,\n        }));\n        this.DatabricksWorkspacePrivateEndpointConnectionStatus = example.Apply(example =\u003e example.Connections?[0]?.Status);\n    }\n\n    [Output(\"databricksWorkspacePrivateEndpointConnectionStatus\")]\n    public Output\u003cstring\u003e DatabricksWorkspacePrivateEndpointConnectionStatus { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/databricks\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := databricks.GetWorkspacePrivateEndpointConnection(ctx, \u0026databricks.GetWorkspacePrivateEndpointConnectionArgs{\n\t\t\tWorkspaceId:       azurerm_databricks_workspace.Example.Id,\n\t\t\tPrivateEndpointId: azurerm_private_endpoint.Example.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"databricksWorkspacePrivateEndpointConnectionStatus\", example.Connections[0].Status)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getWorkspacePrivateEndpointConnection.\n",
        "properties": {
          "privateEndpointId": {
            "description": "The resource ID of the Private Endpoint.\n",
            "type": "string"
          },
          "workspaceId": {
            "description": "The resource ID of the Databricks Workspace.\n",
            "type": "string"
          }
        },
        "required": [
          "privateEndpointId",
          "workspaceId"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getWorkspacePrivateEndpointConnection.\n",
        "properties": {
          "connections": {
            "description": "A `connections` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:databricks/getWorkspacePrivateEndpointConnectionConnection:getWorkspacePrivateEndpointConnectionConnection"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "privateEndpointId": {
            "description": "The resource ID of the Private Endpoint.\n",
            "type": "string"
          },
          "workspaceId": {
            "description": "The resource ID of the Databricks Workspace.\n",
            "type": "string"
          }
        },
        "required": [
          "connections",
          "privateEndpointId",
          "workspaceId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:datafactory/getFactory:getFactory": {
      "description": "Use this data source to access information about an existing Azure Data Factory (Version 2).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.datafactory.getFactory({\n    name: \"existing-adf\",\n    resourceGroupName: \"existing-rg\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.datafactory.get_factory(name=\"existing-adf\",\n    resource_group_name=\"existing-rg\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DataFactory.GetFactory.InvokeAsync(new Azure.DataFactory.GetFactoryArgs\n        {\n            Name = \"existing-adf\",\n            ResourceGroupName = \"existing-rg\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := datafactory.LookupFactory(ctx, \u0026datafactory.LookupFactoryArgs{\n\t\t\tName:              \"existing-adf\",\n\t\t\tResourceGroupName: \"existing-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getFactory.\n",
        "properties": {
          "name": {
            "description": "The name of this Azure Data Factory.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Azure Data Factory exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getFactory.\n",
        "properties": {
          "githubConfigurations": {
            "description": "A `github_configuration` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/getFactoryGithubConfiguration:getFactoryGithubConfiguration"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "An `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/getFactoryIdentity:getFactoryIdentity"
            },
            "type": "array"
          },
          "location": {
            "description": "The Azure Region where the Azure Data Factory exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Azure Data Factory.\n",
            "type": "object"
          },
          "vstsConfigurations": {
            "description": "A `vsts_configuration` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/getFactoryVstsConfiguration:getFactoryVstsConfiguration"
            },
            "type": "array"
          }
        },
        "required": [
          "githubConfigurations",
          "identities",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "vstsConfigurations",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:datalake/getStore:getStore": {
      "description": "Use this data source to access information about an existing Data Lake Store.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.datalake.getStore({\n    name: \"testdatalake\",\n    resourceGroupName: \"testdatalake\",\n});\nexport const dataLakeStoreId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.datalake.get_store(name=\"testdatalake\",\n    resource_group_name=\"testdatalake\")\npulumi.export(\"dataLakeStoreId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DataLake.GetStore.InvokeAsync(new Azure.DataLake.GetStoreArgs\n        {\n            Name = \"testdatalake\",\n            ResourceGroupName = \"testdatalake\",\n        }));\n        this.DataLakeStoreId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"dataLakeStoreId\")]\n    public Output\u003cstring\u003e DataLakeStoreId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datalake\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := datalake.LookupStore(ctx, \u0026datalake.LookupStoreArgs{\n\t\t\tName:              \"testdatalake\",\n\t\t\tResourceGroupName: \"testdatalake\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataLakeStoreId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getStore.\n",
        "properties": {
          "name": {
            "description": "The name of the Data Lake Store.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the Data Lake Store exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getStore.\n",
        "properties": {
          "encryptionState": {
            "description": "the Encryption State of this Data Lake Store Account, such as `Enabled` or `Disabled`.\n",
            "type": "string"
          },
          "encryptionType": {
            "description": "the Encryption Type used for this Data Lake Store Account.\n",
            "type": "string"
          },
          "firewallAllowAzureIps": {
            "description": "are Azure Service IP's allowed through the firewall?\n",
            "type": "string"
          },
          "firewallState": {
            "description": "the state of the firewall, such as `Enabled` or `Disabled`.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Data Lake Store.\n",
            "type": "object"
          },
          "tier": {
            "description": "Current monthly commitment tier for the account.\n",
            "type": "string"
          }
        },
        "required": [
          "encryptionState",
          "encryptionType",
          "firewallAllowAzureIps",
          "firewallState",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "tier",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:dataprotection/getBackupVault:getBackupVault": {
      "description": "Use this data source to access information about an existing Backup Vault.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.dataprotection.getBackupVault({\n    name: \"existing-backup-vault\",\n    resourceGroupName: \"existing-resource-group\",\n});\nexport const azurermDataProtectionBackupVaultId = data.azurerm_vpn_gateway.example.id;\nexport const azurermDataProtectionBackupVaultPrincipalId = example.then(example =\u003e example.identities?[0]?.principalId);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.dataprotection.get_backup_vault(name=\"existing-backup-vault\",\n    resource_group_name=\"existing-resource-group\")\npulumi.export(\"azurermDataProtectionBackupVaultId\", data[\"azurerm_vpn_gateway\"][\"example\"][\"id\"])\npulumi.export(\"azurermDataProtectionBackupVaultPrincipalId\", example.identities[0].principal_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DataProtection.GetBackupVault.InvokeAsync(new Azure.DataProtection.GetBackupVaultArgs\n        {\n            Name = \"existing-backup-vault\",\n            ResourceGroupName = \"existing-resource-group\",\n        }));\n        this.AzurermDataProtectionBackupVaultId = data.Azurerm_vpn_gateway.Example.Id;\n        this.AzurermDataProtectionBackupVaultPrincipalId = example.Apply(example =\u003e example.Identities?[0]?.PrincipalId);\n    }\n\n    [Output(\"azurermDataProtectionBackupVaultId\")]\n    public Output\u003cstring\u003e AzurermDataProtectionBackupVaultId { get; set; }\n    [Output(\"azurermDataProtectionBackupVaultPrincipalId\")]\n    public Output\u003cstring\u003e AzurermDataProtectionBackupVaultPrincipalId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dataprotection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := dataprotection.LookupBackupVault(ctx, \u0026dataprotection.LookupBackupVaultArgs{\n\t\t\tName:              \"existing-backup-vault\",\n\t\t\tResourceGroupName: \"existing-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"azurermDataProtectionBackupVaultId\", data.Azurerm_vpn_gateway.Example.Id)\n\t\tctx.Export(\"azurermDataProtectionBackupVaultPrincipalId\", example.Identities[0].PrincipalId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getBackupVault.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Backup Vault.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Backup Vault exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getBackupVault.\n",
        "properties": {
          "datastoreType": {
            "description": "Specifies the type of the data store.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "A `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:dataprotection/getBackupVaultIdentity:getBackupVaultIdentity"
            },
            "type": "array"
          },
          "location": {
            "description": "The Azure Region where the Backup Vault exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "redundancy": {
            "description": "Specifies the backup storage redundancy.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which are assigned to the Backup Vault.\n",
            "type": "object"
          }
        },
        "required": [
          "datastoreType",
          "identities",
          "location",
          "name",
          "redundancy",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:datashare/getAccount:getAccount": {
      "description": "Use this data source to access information about an existing Data Share Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.datashare.getAccount({\n    name: \"example-account\",\n    resourceGroupName: \"example-resource-group\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.datashare.get_account(name=\"example-account\",\n    resource_group_name=\"example-resource-group\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DataShare.GetAccount.InvokeAsync(new Azure.DataShare.GetAccountArgs\n        {\n            Name = \"example-account\",\n            ResourceGroupName = \"example-resource-group\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datashare\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := datashare.LookupAccount(ctx, \u0026datashare.LookupAccountArgs{\n\t\t\tName:              \"example-account\",\n\t\t\tResourceGroupName: \"example-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAccount.\n",
        "properties": {
          "name": {
            "description": "The name of this Data Share Account.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Data Share Account exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAccount.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "An `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datashare/getAccountIdentity:getAccountIdentity"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Data Share Account.\n",
            "type": "object"
          }
        },
        "required": [
          "identities",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:datashare/getDatasetBlobStorage:getDatasetBlobStorage": {
      "description": "Use this data source to access information about an existing Data Share Blob Storage Dataset.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.datashare.getDatasetBlobStorage({\n    name: \"example-dsbsds\",\n    dataShareId: \"example-share-id\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.datashare.get_dataset_blob_storage(name=\"example-dsbsds\",\n    data_share_id=\"example-share-id\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DataShare.GetDatasetBlobStorage.InvokeAsync(new Azure.DataShare.GetDatasetBlobStorageArgs\n        {\n            Name = \"example-dsbsds\",\n            DataShareId = \"example-share-id\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datashare\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := datashare.LookupDatasetBlobStorage(ctx, \u0026datashare.LookupDatasetBlobStorageArgs{\n\t\t\tName:        \"example-dsbsds\",\n\t\t\tDataShareId: \"example-share-id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDatasetBlobStorage.\n",
        "properties": {
          "dataShareId": {
            "description": "The ID of the Data Share in which this Data Share Blob Storage Dataset should be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of this Data Share Blob Storage Dataset.\n",
            "type": "string"
          }
        },
        "required": [
          "dataShareId",
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDatasetBlobStorage.\n",
        "properties": {
          "containerName": {
            "description": "The name of the storage account container to be shared with the receiver.\n",
            "type": "string"
          },
          "dataShareId": {
            "type": "string"
          },
          "displayName": {
            "description": "The name of the Data Share Dataset.\n",
            "type": "string"
          },
          "filePath": {
            "description": "The path of the file in the storage container to be shared with the receiver.\n",
            "type": "string"
          },
          "folderPath": {
            "description": "The folder path of the file in the storage container to be shared with the receiver.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the storage account to be shared with the receiver.\n",
            "type": "string"
          },
          "storageAccounts": {
            "description": "A `storage_account` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datashare/getDatasetBlobStorageStorageAccount:getDatasetBlobStorageStorageAccount"
            },
            "type": "array"
          }
        },
        "required": [
          "containerName",
          "dataShareId",
          "displayName",
          "filePath",
          "folderPath",
          "name",
          "storageAccounts",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:datashare/getDatasetDataLakeGen1:getDatasetDataLakeGen1": {
      "description": "Use this data source to access information about an existing DataShareDataLakeGen1Dataset.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.datashare.getDatasetDataLakeGen1({\n    name: \"example-dsdsdlg1\",\n    dataShareId: \"example-share-id\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.datashare.get_dataset_data_lake_gen1(name=\"example-dsdsdlg1\",\n    data_share_id=\"example-share-id\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DataShare.GetDatasetDataLakeGen1.InvokeAsync(new Azure.DataShare.GetDatasetDataLakeGen1Args\n        {\n            Name = \"example-dsdsdlg1\",\n            DataShareId = \"example-share-id\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datashare\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := datashare.LookupDatasetDataLakeGen1(ctx, \u0026datashare.LookupDatasetDataLakeGen1Args{\n\t\t\tName:        \"example-dsdsdlg1\",\n\t\t\tDataShareId: \"example-share-id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDatasetDataLakeGen1.\n",
        "properties": {
          "dataShareId": {
            "description": "The resource ID of the Data Share where this Data Share Data Lake Gen1 Dataset should be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Data Share Data Lake Gen1 Dataset.\n",
            "type": "string"
          }
        },
        "required": [
          "dataShareId",
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDatasetDataLakeGen1.\n",
        "properties": {
          "dataLakeStoreId": {
            "description": "The resource ID of the Data Lake Store to be shared with the receiver.\n",
            "type": "string"
          },
          "dataShareId": {
            "type": "string"
          },
          "displayName": {
            "description": "The displayed name of the Data Share Dataset.\n",
            "type": "string"
          },
          "fileName": {
            "description": "The file name of the data lake store to be shared with the receiver.\n",
            "type": "string"
          },
          "folderPath": {
            "description": "The folder path of the data lake store to be shared with the receiver.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "dataLakeStoreId",
          "dataShareId",
          "displayName",
          "fileName",
          "folderPath",
          "name",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:datashare/getDatasetDataLakeGen2:getDatasetDataLakeGen2": {
      "description": "Use this data source to access information about an existing Data Share Data Lake Gen2 Dataset.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.datashare.getDatasetDataLakeGen2({\n    name: \"example-dsdlg2ds\",\n    shareId: \"example-share-id\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.datashare.get_dataset_data_lake_gen2(name=\"example-dsdlg2ds\",\n    share_id=\"example-share-id\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DataShare.GetDatasetDataLakeGen2.InvokeAsync(new Azure.DataShare.GetDatasetDataLakeGen2Args\n        {\n            Name = \"example-dsdlg2ds\",\n            ShareId = \"example-share-id\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datashare\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := datashare.LookupDatasetDataLakeGen2(ctx, \u0026datashare.LookupDatasetDataLakeGen2Args{\n\t\t\tName:    \"example-dsdlg2ds\",\n\t\t\tShareId: \"example-share-id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDatasetDataLakeGen2.\n",
        "properties": {
          "name": {
            "description": "The name of this Data Share Data Lake Gen2 Dataset.\n",
            "type": "string"
          },
          "shareId": {
            "description": "The resource ID of the Data Share where this Data Share Data Lake Gen2 Dataset should be created.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "shareId"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDatasetDataLakeGen2.\n",
        "properties": {
          "displayName": {
            "description": "The name of the Data Share Dataset.\n",
            "type": "string"
          },
          "filePath": {
            "description": "The path of the file in the data lake file system to be shared with the receiver.\n",
            "type": "string"
          },
          "fileSystemName": {
            "description": "The name of the data lake file system to be shared with the receiver.\n",
            "type": "string"
          },
          "folderPath": {
            "description": "The folder path in the data lake file system to be shared with the receiver.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "shareId": {
            "type": "string"
          },
          "storageAccountId": {
            "description": "The resource ID of the storage account of the data lake file system to be shared with the receiver.\n",
            "type": "string"
          }
        },
        "required": [
          "displayName",
          "filePath",
          "fileSystemName",
          "folderPath",
          "name",
          "shareId",
          "storageAccountId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:datashare/getDatasetKustoCluster:getDatasetKustoCluster": {
      "description": "Use this data source to access information about an existing Data Share Kusto Cluster Dataset.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.datashare.getDatasetKustoCluster({\n    name: \"example-dskc\",\n    shareId: \"example-share-id\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.datashare.get_dataset_kusto_cluster(name=\"example-dskc\",\n    share_id=\"example-share-id\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DataShare.GetDatasetKustoCluster.InvokeAsync(new Azure.DataShare.GetDatasetKustoClusterArgs\n        {\n            Name = \"example-dskc\",\n            ShareId = \"example-share-id\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datashare\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := datashare.LookupDatasetKustoCluster(ctx, \u0026datashare.LookupDatasetKustoClusterArgs{\n\t\t\tName:    \"example-dskc\",\n\t\t\tShareId: \"example-share-id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDatasetKustoCluster.\n",
        "properties": {
          "name": {
            "description": "The name of this Data Share Kusto Cluster Dataset.\n",
            "type": "string"
          },
          "shareId": {
            "description": "The resource ID of the Data Share where this Data Share Kusto Cluster Dataset should be created.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "shareId"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDatasetKustoCluster.\n",
        "properties": {
          "displayName": {
            "description": "The name of the Data Share Dataset.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "kustoClusterId": {
            "description": "The resource ID of the Kusto Cluster to be shared with the receiver.\n",
            "type": "string"
          },
          "kustoClusterLocation": {
            "description": "The location of the Kusto Cluster.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "shareId": {
            "type": "string"
          }
        },
        "required": [
          "displayName",
          "kustoClusterId",
          "kustoClusterLocation",
          "name",
          "shareId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:datashare/getDatasetKustoDatabase:getDatasetKustoDatabase": {
      "description": "Use this data source to access information about an existing Data Share Kusto Database Dataset.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.datashare.getDatasetKustoDatabase({\n    name: \"example-dskdds\",\n    shareId: \"example-share-id\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.datashare.get_dataset_kusto_database(name=\"example-dskdds\",\n    share_id=\"example-share-id\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DataShare.GetDatasetKustoDatabase.InvokeAsync(new Azure.DataShare.GetDatasetKustoDatabaseArgs\n        {\n            Name = \"example-dskdds\",\n            ShareId = \"example-share-id\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datashare\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := datashare.LookupDatasetKustoDatabase(ctx, \u0026datashare.LookupDatasetKustoDatabaseArgs{\n\t\t\tName:    \"example-dskdds\",\n\t\t\tShareId: \"example-share-id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDatasetKustoDatabase.\n",
        "properties": {
          "name": {
            "description": "The name of this Data Share Kusto Database Dataset.\n",
            "type": "string"
          },
          "shareId": {
            "description": "The resource ID of the Data Share where this Data Share Kusto Database Dataset should be created.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "shareId"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDatasetKustoDatabase.\n",
        "properties": {
          "displayName": {
            "description": "The name of the Data Share Dataset.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "kustoClusterLocation": {
            "description": "The location of the Kusto Cluster.\n",
            "type": "string"
          },
          "kustoDatabaseId": {
            "description": "The resource ID of the Kusto Cluster Database to be shared with the receiver.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "shareId": {
            "type": "string"
          }
        },
        "required": [
          "displayName",
          "kustoClusterLocation",
          "kustoDatabaseId",
          "name",
          "shareId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:datashare/getShare:getShare": {
      "description": "Use this data source to access information about an existing Data Share.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleAccount = azure.datashare.getAccount({\n    name: \"example-account\",\n    resourceGroupName: \"example-resource-group\",\n});\nconst exampleShare = exampleAccount.then(exampleAccount =\u003e azure.datashare.getShare({\n    name: \"existing\",\n    accountId: exampleAccount.id,\n}));\nexport const id = exampleShare.then(exampleShare =\u003e exampleShare.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_account = azure.datashare.get_account(name=\"example-account\",\n    resource_group_name=\"example-resource-group\")\nexample_share = azure.datashare.get_share(name=\"existing\",\n    account_id=example_account.id)\npulumi.export(\"id\", example_share.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleAccount = Output.Create(Azure.DataShare.GetAccount.InvokeAsync(new Azure.DataShare.GetAccountArgs\n        {\n            Name = \"example-account\",\n            ResourceGroupName = \"example-resource-group\",\n        }));\n        var exampleShare = exampleAccount.Apply(exampleAccount =\u003e Output.Create(Azure.DataShare.GetShare.InvokeAsync(new Azure.DataShare.GetShareArgs\n        {\n            Name = \"existing\",\n            AccountId = exampleAccount.Id,\n        })));\n        this.Id = exampleShare.Apply(exampleShare =\u003e exampleShare.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datashare\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleAccount, err := datashare.LookupAccount(ctx, \u0026datashare.LookupAccountArgs{\n\t\t\tName:              \"example-account\",\n\t\t\tResourceGroupName: \"example-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleShare, err := datashare.LookupShare(ctx, \u0026datashare.LookupShareArgs{\n\t\t\tName:      \"existing\",\n\t\t\tAccountId: exampleAccount.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", exampleShare.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getShare.\n",
        "properties": {
          "accountId": {
            "description": "The ID of the Data Share account in which the Data Share is created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of this Data Share.\n",
            "type": "string"
          }
        },
        "required": [
          "accountId",
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getShare.\n",
        "properties": {
          "accountId": {
            "type": "string"
          },
          "description": {
            "description": "The description of the Data Share.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "kind": {
            "description": "The kind of the Data Share.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the snapshot schedule.\n",
            "type": "string"
          },
          "snapshotSchedules": {
            "description": "A `snapshot_schedule` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datashare/getShareSnapshotSchedule:getShareSnapshotSchedule"
            },
            "type": "array"
          },
          "terms": {
            "description": "The terms of the Data Share.\n",
            "type": "string"
          }
        },
        "required": [
          "accountId",
          "description",
          "kind",
          "name",
          "snapshotSchedules",
          "terms",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:devtest/getLab:getLab": {
      "description": "Use this data source to access information about an existing Dev Test Lab.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.devtest.getLab({\n    name: \"example-lab\",\n    resourceGroupName: \"example-resources\",\n});\nexport const uniqueIdentifier = example.then(example =\u003e example.uniqueIdentifier);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.devtest.get_lab(name=\"example-lab\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"uniqueIdentifier\", example.unique_identifier)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DevTest.GetLab.InvokeAsync(new Azure.DevTest.GetLabArgs\n        {\n            Name = \"example-lab\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.UniqueIdentifier = example.Apply(example =\u003e example.UniqueIdentifier);\n    }\n\n    [Output(\"uniqueIdentifier\")]\n    public Output\u003cstring\u003e UniqueIdentifier { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/devtest\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := devtest.LookupLab(ctx, \u0026devtest.LookupLabArgs{\n\t\t\tName:              \"example-lab\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"uniqueIdentifier\", example.UniqueIdentifier)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getLab.\n",
        "properties": {
          "name": {
            "description": "The name of the Dev Test Lab.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the Dev Test Lab exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getLab.\n",
        "properties": {
          "artifactsStorageAccountId": {
            "description": "The ID of the Storage Account used for Artifact Storage.\n",
            "type": "string"
          },
          "defaultPremiumStorageAccountId": {
            "description": "The ID of the Default Premium Storage Account for this Dev Test Lab.\n",
            "type": "string"
          },
          "defaultStorageAccountId": {
            "description": "The ID of the Default Storage Account for this Dev Test Lab.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "keyVaultId": {
            "description": "The ID of the Key used for this Dev Test Lab.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the Dev Test Lab exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "premiumDataDiskStorageAccountId": {
            "description": "The ID of the Storage Account used for Storage of Premium Data Disk.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "storageType": {
            "description": "The type of storage used by the Dev Test Lab.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "uniqueIdentifier": {
            "description": "The unique immutable identifier of the Dev Test Lab.\n",
            "type": "string"
          }
        },
        "required": [
          "artifactsStorageAccountId",
          "defaultPremiumStorageAccountId",
          "defaultStorageAccountId",
          "keyVaultId",
          "location",
          "name",
          "premiumDataDiskStorageAccountId",
          "resourceGroupName",
          "storageType",
          "tags",
          "uniqueIdentifier",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:devtest/getVirtualNetwork:getVirtualNetwork": {
      "description": "Use this data source to access information about an existing Dev Test Lab Virtual Network.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.devtest.getVirtualNetwork({\n    name: \"example-network\",\n    labName: \"examplelab\",\n    resourceGroupName: \"example-resource\",\n});\nexport const labSubnetName = example.then(example =\u003e example.allowedSubnets?[0]?.labSubnetName);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.devtest.get_virtual_network(name=\"example-network\",\n    lab_name=\"examplelab\",\n    resource_group_name=\"example-resource\")\npulumi.export(\"labSubnetName\", example.allowed_subnets[0].lab_subnet_name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DevTest.GetVirtualNetwork.InvokeAsync(new Azure.DevTest.GetVirtualNetworkArgs\n        {\n            Name = \"example-network\",\n            LabName = \"examplelab\",\n            ResourceGroupName = \"example-resource\",\n        }));\n        this.LabSubnetName = example.Apply(example =\u003e example.AllowedSubnets?[0]?.LabSubnetName);\n    }\n\n    [Output(\"labSubnetName\")]\n    public Output\u003cstring\u003e LabSubnetName { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/devtest\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := devtest.LookupVirtualNetwork(ctx, \u0026devtest.LookupVirtualNetworkArgs{\n\t\t\tName:              \"example-network\",\n\t\t\tLabName:           \"examplelab\",\n\t\t\tResourceGroupName: \"example-resource\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"labSubnetName\", example.AllowedSubnets[0].LabSubnetName)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getVirtualNetwork.\n",
        "properties": {
          "labName": {
            "description": "Specifies the name of the Dev Test Lab.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Virtual Network.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group that contains the Virtual Network.\n",
            "type": "string"
          }
        },
        "required": [
          "labName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVirtualNetwork.\n",
        "properties": {
          "allowedSubnets": {
            "description": "The list of subnets enabled for the virtual network as defined below.\n",
            "items": {
              "$ref": "#/types/azure:devtest/getVirtualNetworkAllowedSubnet:getVirtualNetworkAllowedSubnet"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "labName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "subnetOverrides": {
            "description": "The list of permission overrides for the subnets as defined below.\n",
            "items": {
              "$ref": "#/types/azure:devtest/getVirtualNetworkSubnetOverride:getVirtualNetworkSubnetOverride"
            },
            "type": "array"
          },
          "uniqueIdentifier": {
            "description": "The unique immutable identifier of the virtual network.\n",
            "type": "string"
          }
        },
        "required": [
          "allowedSubnets",
          "labName",
          "name",
          "resourceGroupName",
          "subnetOverrides",
          "uniqueIdentifier",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:digitaltwins/getInstance:getInstance": {
      "description": "Use this data source to access information about an existing Digital Twins instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.digitaltwins.getInstance({\n    name: \"existing-digital-twins\",\n    resourceGroupName: \"existing-resgroup\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.digitaltwins.get_instance(name=\"existing-digital-twins\",\n    resource_group_name=\"existing-resgroup\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DigitalTwins.GetInstance.InvokeAsync(new Azure.DigitalTwins.GetInstanceArgs\n        {\n            Name = \"existing-digital-twins\",\n            ResourceGroupName = \"existing-resgroup\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/digitaltwins\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := digitaltwins.LookupInstance(ctx, \u0026digitaltwins.LookupInstanceArgs{\n\t\t\tName:              \"existing-digital-twins\",\n\t\t\tResourceGroupName: \"existing-resgroup\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getInstance.\n",
        "properties": {
          "name": {
            "description": "The name of this Digital Twins instance.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Digital Twins instance exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getInstance.\n",
        "properties": {
          "hostName": {
            "description": "The Api endpoint to work with this Digital Twins instance.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Digital Twins instance exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Digital Twins instance.\n",
            "type": "object"
          }
        },
        "required": [
          "hostName",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:dns/getZone:getZone": {
      "description": "Use this data source to access information about an existing DNS Zone.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.dns.getZone({\n    name: \"search-eventhubns\",\n    resourceGroupName: \"search-service\",\n});\nexport const dnsZoneId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.dns.get_zone(name=\"search-eventhubns\",\n    resource_group_name=\"search-service\")\npulumi.export(\"dnsZoneId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Dns.GetZone.InvokeAsync(new Azure.Dns.GetZoneArgs\n        {\n            Name = \"search-eventhubns\",\n            ResourceGroupName = \"search-service\",\n        }));\n        this.DnsZoneId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"dnsZoneId\")]\n    public Output\u003cstring\u003e DnsZoneId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"search-service\"\n\t\texample, err := dns.LookupZone(ctx, \u0026dns.LookupZoneArgs{\n\t\t\tName:              \"search-eventhubns\",\n\t\t\tResourceGroupName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dnsZoneId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getZone.\n",
        "properties": {
          "name": {
            "description": "The name of the DNS Zone.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the DNS Zone exists.\nIf the Name of the Resource Group is not provided, the first DNS Zone from the list of DNS Zones\nin your subscription that matches `name` will be returned.\n",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getZone.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "maxNumberOfRecordSets": {
            "description": "Maximum number of Records in the zone.\n",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "nameServers": {
            "description": "A list of values that make up the NS record for the zone.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "numberOfRecordSets": {
            "description": "The number of records already in the zone.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the EventHub Namespace.\n",
            "type": "object"
          }
        },
        "required": [
          "maxNumberOfRecordSets",
          "name",
          "nameServers",
          "numberOfRecordSets",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:domainservices/getService:getService": {
      "description": "Gets information about an Active Directory Domain Service.\n\n\u003e **Supported Modes:** At present this data source only supports **User Forest** mode and _not_ **Resource Forest** mode. [Read more](https://docs.microsoft.com/en-us/azure/active-directory-domain-services/concepts-resource-forest) about the different operation modes for this service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.domainservices.getService({\n    name: \"example-aadds\",\n    resourceGroupName: \"example-aadds-rg\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.domainservices.get_service(name=\"example-aadds\",\n    resource_group_name=\"example-aadds-rg\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.DomainServices.GetService.InvokeAsync(new Azure.DomainServices.GetServiceArgs\n        {\n            Name = \"example-aadds\",\n            ResourceGroupName = \"example-aadds-rg\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/domainservices\"\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 := domainservices.LookupService(ctx, \u0026domainservices.LookupServiceArgs{\n\t\t\tName:              \"example-aadds\",\n\t\t\tResourceGroupName: \"example-aadds-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getService.\n",
        "properties": {
          "name": {
            "description": "The display name for your managed Active Directory Domain Service resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Domain Service should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getService.\n",
        "properties": {
          "deploymentId": {
            "description": "A unique ID for the managed domain deployment.\n",
            "type": "string"
          },
          "domainConfigurationType": {
            "description": "The forest type used by the managed domain. One of `ResourceTrusting`, for a _Resource Forest_, or blank, for a _User Forest_.\n",
            "type": "string"
          },
          "domainName": {
            "description": "The Active Directory domain of the Domain Service. See [official documentation](https://docs.microsoft.com/en-us/azure/active-directory-domain-services/tutorial-create-instance#create-a-managed-domain) for constraints and recommendations.\n",
            "type": "string"
          },
          "filteredSyncEnabled": {
            "description": "Whether group-based filtered sync (also called scoped synchronisation) is enabled.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location in which the replica set resides.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "notifications": {
            "description": "A `notifications` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:domainservices/getServiceNotification:getServiceNotification"
            },
            "type": "array"
          },
          "replicaSets": {
            "items": {
              "$ref": "#/types/azure:domainservices/getServiceReplicaSet:getServiceReplicaSet"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "resourceId": {
            "type": "string"
          },
          "secureLdaps": {
            "description": "A `secure_ldap` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:domainservices/getServiceSecureLdap:getServiceSecureLdap"
            },
            "type": "array"
          },
          "securities": {
            "description": "A `security` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:domainservices/getServiceSecurity:getServiceSecurity"
            },
            "type": "array"
          },
          "sku": {
            "description": "The SKU of the Domain Service resource. One of `Standard`, `Enterprise` or `Premium`.\n",
            "type": "string"
          },
          "syncOwner": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "tenantId": {
            "type": "string"
          },
          "version": {
            "type": "integer"
          }
        },
        "required": [
          "deploymentId",
          "domainConfigurationType",
          "domainName",
          "filteredSyncEnabled",
          "location",
          "name",
          "notifications",
          "replicaSets",
          "resourceGroupName",
          "resourceId",
          "secureLdaps",
          "securities",
          "sku",
          "syncOwner",
          "tags",
          "tenantId",
          "version",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:eventgrid/getDomain:getDomain": {
      "description": "Use this data source to access information about an existing EventGrid Domain\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.eventgrid.getDomain({\n    name: \"my-eventgrid-domain\",\n    resourceGroupName: \"example-resources\",\n});\nexport const eventgridDomainMappingTopic = example.then(example =\u003e example.inputMappingFields?[0]?.topic);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.eventgrid.get_domain(name=\"my-eventgrid-domain\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"eventgridDomainMappingTopic\", example.input_mapping_fields[0].topic)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.EventGrid.GetDomain.InvokeAsync(new Azure.EventGrid.GetDomainArgs\n        {\n            Name = \"my-eventgrid-domain\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.EventgridDomainMappingTopic = example.Apply(example =\u003e example.InputMappingFields?[0]?.Topic);\n    }\n\n    [Output(\"eventgridDomainMappingTopic\")]\n    public Output\u003cstring\u003e EventgridDomainMappingTopic { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := eventgrid.LookupDomain(ctx, \u0026eventgrid.LookupDomainArgs{\n\t\t\tName:              \"my-eventgrid-domain\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"eventgridDomainMappingTopic\", example.InputMappingFields[0].Topic)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDomain.\n",
        "properties": {
          "inboundIpRules": {
            "description": "One or more `inbound_ip_rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:eventgrid/getDomainInboundIpRule:getDomainInboundIpRule"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the EventGrid Domain resource.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether or not public network access is allowed for this server.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventGrid Domain exists.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the EventGrid Domain.\n",
            "type": "object"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDomain.\n",
        "properties": {
          "endpoint": {
            "description": "The Endpoint associated with the EventGrid Domain.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "inboundIpRules": {
            "description": "One or more `inbound_ip_rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:eventgrid/getDomainInboundIpRule:getDomainInboundIpRule"
            },
            "type": "array"
          },
          "inputMappingDefaultValues": {
            "description": "A `input_mapping_default_values` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:eventgrid/getDomainInputMappingDefaultValue:getDomainInputMappingDefaultValue"
            },
            "type": "array"
          },
          "inputMappingFields": {
            "description": "A `input_mapping_fields` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:eventgrid/getDomainInputMappingField:getDomainInputMappingField"
            },
            "type": "array"
          },
          "inputSchema": {
            "description": "The schema in which incoming events will be published to this domain. Possible values are `CloudEventSchemaV1_0`, `CustomEventSchema`, or `EventGridSchema`.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region in which this EventGrid Domain exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primaryAccessKey": {
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether or not public network access is allowed for this server.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryAccessKey": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the EventGrid Domain.\n",
            "type": "object"
          }
        },
        "required": [
          "endpoint",
          "inputMappingDefaultValues",
          "inputMappingFields",
          "inputSchema",
          "location",
          "name",
          "primaryAccessKey",
          "resourceGroupName",
          "secondaryAccessKey",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:eventgrid/getDomainTopic:getDomainTopic": {
      "description": "Use this data source to access information about an existing EventGrid Domain Topic\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.eventgrid.getDomainTopic({\n    name: \"my-eventgrid-domain-topic\",\n    resourceGroupName: \"example-resources\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.eventgrid.get_domain_topic(name=\"my-eventgrid-domain-topic\",\n    resource_group_name=\"example-resources\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.EventGrid.GetDomainTopic.InvokeAsync(new Azure.EventGrid.GetDomainTopicArgs\n        {\n            Name = \"my-eventgrid-domain-topic\",\n            ResourceGroupName = \"example-resources\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\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 := eventgrid.LookupDomainTopic(ctx, \u0026eventgrid.LookupDomainTopicArgs{\n\t\t\tName:              \"my-eventgrid-domain-topic\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDomainTopic.\n",
        "properties": {
          "domainName": {
            "description": "The name of the EventGrid Domain Topic domain.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the EventGrid Domain Topic resource.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventGrid Domain Topic exists.\n",
            "type": "string"
          }
        },
        "required": [
          "domainName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDomainTopic.\n",
        "properties": {
          "domainName": {
            "description": "The EventGrid Domain Topic Domain name.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "required": [
          "domainName",
          "name",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:eventgrid/getTopic:getTopic": {
      "description": "Use this data source to access information about an existing EventGrid Topic\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.eventgrid.getTopic({\n    name: \"my-eventgrid-topic\",\n    resourceGroupName: \"example-resources\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.eventgrid.get_topic(name=\"my-eventgrid-topic\",\n    resource_group_name=\"example-resources\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.EventGrid.GetTopic.InvokeAsync(new Azure.EventGrid.GetTopicArgs\n        {\n            Name = \"my-eventgrid-topic\",\n            ResourceGroupName = \"example-resources\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\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 := eventgrid.LookupTopic(ctx, \u0026eventgrid.LookupTopicArgs{\n\t\t\tName:              \"my-eventgrid-topic\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getTopic.\n",
        "properties": {
          "name": {
            "description": "The name of the EventGrid Topic resource.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventGrid Topic exists.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getTopic.\n",
        "properties": {
          "endpoint": {
            "description": "The Endpoint associated with the EventGrid Topic.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The Primary Shared Access Key associated with the EventGrid Topic.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The Secondary Shared Access Key associated with the EventGrid Topic.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "endpoint",
          "location",
          "name",
          "primaryAccessKey",
          "resourceGroupName",
          "secondaryAccessKey",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:eventhub/getAuthorizationRule:getAuthorizationRule": {
      "description": "Use this data source to access information about an existing Event Hubs Authorization Rule within an Event Hub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst test = pulumi.all([azurerm_eventhub_test.name, azurerm_eventhub_namespace_test.name, azurerm_resource_group_test.name]).apply(([azurerm_eventhub_testName, azurerm_eventhub_namespace_testName, azurerm_resource_group_testName]) =\u003e azure.eventhub.getAuthorizationRule({\n    eventhubName: azurerm_eventhub_testName,\n    name: \"test\",\n    namespaceName: azurerm_eventhub_namespace_testName,\n    resourceGroupName: azurerm_resource_group_testName,\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ntest = azure.eventhub.get_authorization_rule(eventhub_name=azurerm_eventhub[\"test\"][\"name\"],\n    name=\"test\",\n    namespace_name=azurerm_eventhub_namespace[\"test\"][\"name\"],\n    resource_group_name=azurerm_resource_group[\"test\"][\"name\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var test = Output.Create(Azure.EventHub.GetAuthorizationRule.InvokeAsync(new Azure.EventHub.GetAuthorizationRuleArgs\n        {\n            EventhubName = azurerm_eventhub.Test.Name,\n            Name = \"test\",\n            NamespaceName = azurerm_eventhub_namespace.Test.Name,\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\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 := eventhub.LookupAuthorizationRule(ctx, \u0026eventhub.LookupAuthorizationRuleArgs{\n\t\t\tEventhubName:      azurerm_eventhub.Test.Name,\n\t\t\tName:              \"test\",\n\t\t\tNamespaceName:     azurerm_eventhub_namespace.Test.Name,\n\t\t\tResourceGroupName: azurerm_resource_group.Test.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAuthorizationRule.\n",
        "properties": {
          "eventhubName": {
            "description": "Specifies the name of the EventHub.\n",
            "type": "string"
          },
          "listen": {
            "type": "boolean"
          },
          "manage": {
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the EventHub Authorization Rule resource. be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the grandparent EventHub Namespace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventHub Authorization Rule's grandparent Namespace exists.\n",
            "type": "string"
          },
          "send": {
            "type": "boolean"
          }
        },
        "required": [
          "eventhubName",
          "name",
          "namespaceName",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAuthorizationRule.\n",
        "properties": {
          "eventhubName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "listen": {
            "type": "boolean"
          },
          "location": {
            "type": "string"
          },
          "manage": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "namespaceName": {
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the Event Hubs Authorization Rule.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias of the Primary Connection String for the Event Hubs Authorization Rule.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the Event Hubs Authorization Rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the Event Hubs Authorization Rule.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias of the Secondary Connection String for the Event Hubs Authorization Rule.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the Event Hubs Authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "type": "boolean"
          }
        },
        "required": [
          "eventhubName",
          "location",
          "name",
          "namespaceName",
          "primaryConnectionString",
          "primaryConnectionStringAlias",
          "primaryKey",
          "resourceGroupName",
          "secondaryConnectionString",
          "secondaryConnectionStringAlias",
          "secondaryKey",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:eventhub/getCluster:getCluster": {
      "description": "Use this data source to access information about an existing EventHub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.eventhub.getCluster({\n    name: \"search-eventhub\",\n    resourceGroupName: \"search-service\",\n});\nexport const eventhubId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.eventhub.get_cluster(name=\"search-eventhub\",\n    resource_group_name=\"search-service\")\npulumi.export(\"eventhubId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.EventHub.GetCluster.InvokeAsync(new Azure.EventHub.GetClusterArgs\n        {\n            Name = \"search-eventhub\",\n            ResourceGroupName = \"search-service\",\n        }));\n        this.EventhubId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"eventhubId\")]\n    public Output\u003cstring\u003e EventhubId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := eventhub.LookupCluster(ctx, \u0026eventhub.LookupClusterArgs{\n\t\t\tName:              \"search-eventhub\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"eventhubId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getCluster.\n",
        "properties": {
          "name": {
            "description": "The name of this EventHub Cluster.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the EventHub Cluster exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCluster.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "Location of the EventHub Cluster.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "skuName": {
            "description": "SKU name of the EventHub Cluster.\n",
            "type": "string"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "skuName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:eventhub/getConsumeGroup:getConsumeGroup": {
      "description": "Use this data source to access information about an existing Event Hubs Consumer Group within an Event Hub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst test = pulumi.all([azurerm_eventhub_test.name, azurerm_eventhub_consumer_group_test.name, azurerm_eventhub_namespace_test.name, azurerm_resource_group_test.name]).apply(([azurerm_eventhub_testName, azurerm_eventhub_consumer_group_testName, azurerm_eventhub_namespace_testName, azurerm_resource_group_testName]) =\u003e azure.eventhub.getConsumeGroup({\n    eventhubName: azurerm_eventhub_testName,\n    name: azurerm_eventhub_consumer_group_testName,\n    namespaceName: azurerm_eventhub_namespace_testName,\n    resourceGroupName: azurerm_resource_group_testName,\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ntest = azure.eventhub.get_consume_group(eventhub_name=azurerm_eventhub[\"test\"][\"name\"],\n    name=azurerm_eventhub_consumer_group[\"test\"][\"name\"],\n    namespace_name=azurerm_eventhub_namespace[\"test\"][\"name\"],\n    resource_group_name=azurerm_resource_group[\"test\"][\"name\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var test = Output.Create(Azure.EventHub.GetConsumeGroup.InvokeAsync(new Azure.EventHub.GetConsumeGroupArgs\n        {\n            EventhubName = azurerm_eventhub.Test.Name,\n            Name = azurerm_eventhub_consumer_group.Test.Name,\n            NamespaceName = azurerm_eventhub_namespace.Test.Name,\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\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 := eventhub.GetConsumeGroup(ctx, \u0026eventhub.GetConsumeGroupArgs{\n\t\t\tEventhubName:      azurerm_eventhub.Test.Name,\n\t\t\tName:              azurerm_eventhub_consumer_group.Test.Name,\n\t\t\tNamespaceName:     azurerm_eventhub_namespace.Test.Name,\n\t\t\tResourceGroupName: azurerm_resource_group.Test.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getConsumeGroup.\n",
        "properties": {
          "eventhubName": {
            "description": "Specifies the name of the EventHub.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the EventHub Consumer Group resource.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the grandparent EventHub Namespace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventHub Consumer Group's grandparent Namespace exists.\n",
            "type": "string"
          }
        },
        "required": [
          "eventhubName",
          "name",
          "namespaceName",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getConsumeGroup.\n",
        "properties": {
          "eventhubName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "namespaceName": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "userMetadata": {
            "description": "Specifies the user metadata.\n",
            "type": "string"
          }
        },
        "required": [
          "eventhubName",
          "location",
          "name",
          "namespaceName",
          "resourceGroupName",
          "userMetadata",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:eventhub/getEventHub:getEventHub": {
      "description": "Use this data source to access information about an existing EventHub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.eventhub.getEventHub({\n    name: \"search-eventhub\",\n    resourceGroupName: \"search-service\",\n    namespaceName: \"search-eventhubns\",\n});\nexport const eventhubId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.eventhub.get_event_hub(name=\"search-eventhub\",\n    resource_group_name=\"search-service\",\n    namespace_name=\"search-eventhubns\")\npulumi.export(\"eventhubId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.EventHub.GetEventHub.InvokeAsync(new Azure.EventHub.GetEventHubArgs\n        {\n            Name = \"search-eventhub\",\n            ResourceGroupName = \"search-service\",\n            NamespaceName = \"search-eventhubns\",\n        }));\n        this.EventhubId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"eventhubId\")]\n    public Output\u003cstring\u003e EventhubId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := eventhub.LookupEventHub(ctx, \u0026eventhub.LookupEventHubArgs{\n\t\t\tName:              \"search-eventhub\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t\tNamespaceName:     \"search-eventhubns\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"eventhubId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getEventHub.\n",
        "properties": {
          "name": {
            "description": "The name of this EventHub.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the EventHub Namespace where the EventHub exists.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the EventHub exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "namespaceName",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getEventHub.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "namespaceName": {
            "type": "string"
          },
          "partitionCount": {
            "description": "The number of partitions in the EventHub.\n",
            "type": "integer"
          },
          "partitionIds": {
            "description": "The identifiers for the partitions of this EventHub.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "namespaceName",
          "partitionCount",
          "partitionIds",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:eventhub/getEventhubNamespace:getEventhubNamespace": {
      "deprecationMessage": "azure.eventhub.getEventhubNamespace has been deprecated in favor of azure.eventhub.getNamespace",
      "description": "Use this data source to access information about an existing EventHub Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.eventhub.getNamespace({\n    name: \"search-eventhubns\",\n    resourceGroupName: \"search-service\",\n});\nexport const eventhubNamespaceId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.eventhub.get_namespace(name=\"search-eventhubns\",\n    resource_group_name=\"search-service\")\npulumi.export(\"eventhubNamespaceId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.EventHub.GetNamespace.InvokeAsync(new Azure.EventHub.GetNamespaceArgs\n        {\n            Name = \"search-eventhubns\",\n            ResourceGroupName = \"search-service\",\n        }));\n        this.EventhubNamespaceId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"eventhubNamespaceId\")]\n    public Output\u003cstring\u003e EventhubNamespaceId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := eventhub.LookupNamespace(ctx, \u0026eventhub.LookupNamespaceArgs{\n\t\t\tName:              \"search-eventhubns\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"eventhubNamespaceId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getEventhubNamespace.\n",
        "properties": {
          "name": {
            "description": "The name of the EventHub Namespace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the EventHub Namespace exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getEventhubNamespace.\n",
        "properties": {
          "autoInflateEnabled": {
            "description": "Is Auto Inflate enabled for the EventHub Namespace?\n",
            "type": "boolean"
          },
          "capacity": {
            "description": "The Capacity / Throughput Units for a `Standard` SKU namespace.\n",
            "type": "integer"
          },
          "dedicatedClusterId": {
            "description": "The ID of the EventHub Dedicated Cluster where this Namespace exists.\n",
            "type": "string"
          },
          "defaultPrimaryConnectionString": {
            "description": "The primary connection string for the authorization\nrule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultPrimaryConnectionStringAlias": {
            "description": "The alias of the primary connection string for the authorization\nrule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultPrimaryKey": {
            "description": "The primary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryConnectionString": {
            "description": "The secondary connection string for the\nauthorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryConnectionStringAlias": {
            "description": "The alias of the secondary connection string for the\nauthorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryKey": {
            "description": "The secondary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "kafkaEnabled": {
            "type": "boolean"
          },
          "location": {
            "description": "The Azure location where the EventHub Namespace exists\n",
            "type": "string"
          },
          "maximumThroughputUnits": {
            "description": "Specifies the maximum number of throughput units when Auto Inflate is Enabled.\n",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sku": {
            "description": "Defines which tier to use.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the EventHub Namespace.\n",
            "type": "object"
          },
          "zoneRedundant": {
            "description": "Is this EventHub Namespace deployed across Availability Zones?\n",
            "type": "boolean"
          }
        },
        "required": [
          "autoInflateEnabled",
          "capacity",
          "dedicatedClusterId",
          "defaultPrimaryConnectionString",
          "defaultPrimaryConnectionStringAlias",
          "defaultPrimaryKey",
          "defaultSecondaryConnectionString",
          "defaultSecondaryConnectionStringAlias",
          "defaultSecondaryKey",
          "kafkaEnabled",
          "location",
          "maximumThroughputUnits",
          "name",
          "resourceGroupName",
          "sku",
          "tags",
          "zoneRedundant",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:eventhub/getNamespace:getNamespace": {
      "description": "Use this data source to access information about an existing EventHub Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.eventhub.getNamespace({\n    name: \"search-eventhubns\",\n    resourceGroupName: \"search-service\",\n});\nexport const eventhubNamespaceId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.eventhub.get_namespace(name=\"search-eventhubns\",\n    resource_group_name=\"search-service\")\npulumi.export(\"eventhubNamespaceId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.EventHub.GetNamespace.InvokeAsync(new Azure.EventHub.GetNamespaceArgs\n        {\n            Name = \"search-eventhubns\",\n            ResourceGroupName = \"search-service\",\n        }));\n        this.EventhubNamespaceId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"eventhubNamespaceId\")]\n    public Output\u003cstring\u003e EventhubNamespaceId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := eventhub.LookupNamespace(ctx, \u0026eventhub.LookupNamespaceArgs{\n\t\t\tName:              \"search-eventhubns\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"eventhubNamespaceId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getNamespace.\n",
        "properties": {
          "name": {
            "description": "The name of the EventHub Namespace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the EventHub Namespace exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNamespace.\n",
        "properties": {
          "autoInflateEnabled": {
            "description": "Is Auto Inflate enabled for the EventHub Namespace?\n",
            "type": "boolean"
          },
          "capacity": {
            "description": "The Capacity / Throughput Units for a `Standard` SKU namespace.\n",
            "type": "integer"
          },
          "dedicatedClusterId": {
            "description": "The ID of the EventHub Dedicated Cluster where this Namespace exists.\n",
            "type": "string"
          },
          "defaultPrimaryConnectionString": {
            "description": "The primary connection string for the authorization\nrule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultPrimaryConnectionStringAlias": {
            "description": "The alias of the primary connection string for the authorization\nrule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultPrimaryKey": {
            "description": "The primary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryConnectionString": {
            "description": "The secondary connection string for the\nauthorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryConnectionStringAlias": {
            "description": "The alias of the secondary connection string for the\nauthorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryKey": {
            "description": "The secondary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "kafkaEnabled": {
            "type": "boolean"
          },
          "location": {
            "description": "The Azure location where the EventHub Namespace exists\n",
            "type": "string"
          },
          "maximumThroughputUnits": {
            "description": "Specifies the maximum number of throughput units when Auto Inflate is Enabled.\n",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sku": {
            "description": "Defines which tier to use.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the EventHub Namespace.\n",
            "type": "object"
          },
          "zoneRedundant": {
            "description": "Is this EventHub Namespace deployed across Availability Zones?\n",
            "type": "boolean"
          }
        },
        "required": [
          "autoInflateEnabled",
          "capacity",
          "dedicatedClusterId",
          "defaultPrimaryConnectionString",
          "defaultPrimaryConnectionStringAlias",
          "defaultPrimaryKey",
          "defaultSecondaryConnectionString",
          "defaultSecondaryConnectionStringAlias",
          "defaultSecondaryKey",
          "kafkaEnabled",
          "location",
          "maximumThroughputUnits",
          "name",
          "resourceGroupName",
          "sku",
          "tags",
          "zoneRedundant",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:eventhub/getNamespaceAuthorizationRule:getNamespaceAuthorizationRule": {
      "description": "Use this data source to access information about an Authorization Rule for an Event Hub Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.eventhub.getNamespaceAuthorizationRule({\n    name: \"navi\",\n    resourceGroupName: \"example-resources\",\n    namespaceName: \"example-ns\",\n});\nexport const eventhubAuthorizationRuleId = data.azurem_eventhub_namespace_authorization_rule.example.id;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.eventhub.get_namespace_authorization_rule(name=\"navi\",\n    resource_group_name=\"example-resources\",\n    namespace_name=\"example-ns\")\npulumi.export(\"eventhubAuthorizationRuleId\", data[\"azurem_eventhub_namespace_authorization_rule\"][\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.EventHub.GetNamespaceAuthorizationRule.InvokeAsync(new Azure.EventHub.GetNamespaceAuthorizationRuleArgs\n        {\n            Name = \"navi\",\n            ResourceGroupName = \"example-resources\",\n            NamespaceName = \"example-ns\",\n        }));\n        this.EventhubAuthorizationRuleId = data.Azurem_eventhub_namespace_authorization_rule.Example.Id;\n    }\n\n    [Output(\"eventhubAuthorizationRuleId\")]\n    public Output\u003cstring\u003e EventhubAuthorizationRuleId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\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 := eventhub.LookupNamespaceAuthorizationRule(ctx, \u0026eventhub.LookupNamespaceAuthorizationRuleArgs{\n\t\t\tName:              \"navi\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t\tNamespaceName:     \"example-ns\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"eventhubAuthorizationRuleId\", data.Azurem_eventhub_namespace_authorization_rule.Example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getNamespaceAuthorizationRule.\n",
        "properties": {
          "name": {
            "description": "The name of the EventHub Authorization Rule resource.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the EventHub Namespace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventHub Namespace exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "namespaceName",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNamespaceAuthorizationRule.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "listen": {
            "description": "Does this Authorization Rule have permissions to Listen to the Event Hub?\n",
            "type": "boolean"
          },
          "manage": {
            "description": "Does this Authorization Rule have permissions to Manage to the Event Hub?\n",
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "namespaceName": {
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the Event Hubs authorization Rule.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias of the Primary Connection String for the Event Hubs authorization Rule.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the Event Hubs authorization Rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the Event Hubs authorization Rule.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias of the Secondary Connection String for the Event Hubs authorization Rule.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the Event Hubs authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "description": "Does this Authorization Rule have permissions to Send to the Event Hub?\n",
            "type": "boolean"
          }
        },
        "required": [
          "listen",
          "manage",
          "name",
          "namespaceName",
          "primaryConnectionString",
          "primaryConnectionStringAlias",
          "primaryKey",
          "resourceGroupName",
          "secondaryConnectionString",
          "secondaryConnectionStringAlias",
          "secondaryKey",
          "send",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:eventhub/getServiceBusNamespace:getServiceBusNamespace": {
      "deprecationMessage": "azure.eventhub.getServiceBusNamespace has been deprecated in favor of azure.servicebus.getNamespace",
      "description": "Use this data source to access information about an existing ServiceBus Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.servicebus.getNamespace({\n    name: \"examplenamespace\",\n    resourceGroupName: \"example-resources\",\n});\nexport const location = example.then(example =\u003e example.location);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.servicebus.get_namespace(name=\"examplenamespace\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"location\", example.location)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ServiceBus.GetNamespace.InvokeAsync(new Azure.ServiceBus.GetNamespaceArgs\n        {\n            Name = \"examplenamespace\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.Location = example.Apply(example =\u003e example.Location);\n    }\n\n    [Output(\"location\")]\n    public Output\u003cstring\u003e Location { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := servicebus.LookupNamespace(ctx, \u0026servicebus.LookupNamespaceArgs{\n\t\t\tName:              \"examplenamespace\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"location\", example.Location)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getServiceBusNamespace.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the ServiceBus Namespace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where the ServiceBus Namespace exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getServiceBusNamespace.\n",
        "properties": {
          "capacity": {
            "description": "The capacity of the ServiceBus Namespace.\n",
            "type": "integer"
          },
          "defaultPrimaryConnectionString": {
            "description": "The primary connection string for the authorization\nrule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultPrimaryKey": {
            "description": "The primary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryConnectionString": {
            "description": "The secondary connection string for the\nauthorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryKey": {
            "description": "The secondary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The location of the Resource Group in which the ServiceBus Namespace exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sku": {
            "description": "The Tier used for the ServiceBus Namespace.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "zoneRedundant": {
            "description": "Whether or not this ServiceBus Namespace is zone redundant.\n",
            "type": "boolean"
          }
        },
        "required": [
          "capacity",
          "defaultPrimaryConnectionString",
          "defaultPrimaryKey",
          "defaultSecondaryConnectionString",
          "defaultSecondaryKey",
          "location",
          "name",
          "resourceGroupName",
          "sku",
          "tags",
          "zoneRedundant",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:hdinsight/getCluster:getCluster": {
      "description": "Use this data source to access information about an existing HDInsight Cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.hdinsight.getCluster({\n    name: \"example\",\n    resourceGroupName: \"example-resources\",\n});\nexport const httpsEndpoint = example.then(example =\u003e example.httpsEndpoint);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.hdinsight.get_cluster(name=\"example\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"httpsEndpoint\", example.https_endpoint)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.HDInsight.GetCluster.InvokeAsync(new Azure.HDInsight.GetClusterArgs\n        {\n            Name = \"example\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.HttpsEndpoint = example.Apply(example =\u003e example.HttpsEndpoint);\n    }\n\n    [Output(\"httpsEndpoint\")]\n    public Output\u003cstring\u003e HttpsEndpoint { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/hdinsight\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := hdinsight.GetCluster(ctx, \u0026hdinsight.GetClusterArgs{\n\t\t\tName:              \"example\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"httpsEndpoint\", example.HttpsEndpoint)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getCluster.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of this HDInsight Cluster.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which this HDInsight Cluster exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCluster.\n",
        "properties": {
          "clusterVersion": {
            "description": "The version of HDInsights which is used on this HDInsight Cluster.\n",
            "type": "string"
          },
          "componentVersions": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of versions of software used on this HDInsights Cluster.\n",
            "type": "object"
          },
          "edgeSshEndpoint": {
            "description": "The SSH Endpoint of the Edge Node for this HDInsight Cluster, if an Edge Node exists.\n",
            "type": "string"
          },
          "gateways": {
            "description": "A `gateway` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:hdinsight/getClusterGateway:getClusterGateway"
            },
            "type": "array"
          },
          "httpsEndpoint": {
            "description": "The HTTPS Endpoint for this HDInsight Cluster.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "kafkaRestProxyEndpoint": {
            "description": "The Kafka Rest Proxy Endpoint for this HDInsight Cluster.\n",
            "type": "string"
          },
          "kind": {
            "description": "The kind of HDInsight Cluster this is, such as a Spark or Storm cluster.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region in which this HDInsight Cluster exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sshEndpoint": {
            "description": "The SSH Endpoint for this HDInsight Cluster.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of tags assigned to the HDInsight Cluster.\n",
            "type": "object"
          },
          "tier": {
            "description": "The SKU / Tier of this HDInsight Cluster.\n",
            "type": "string"
          },
          "tlsMinVersion": {
            "description": "The minimal supported tls version.\n",
            "type": "string"
          }
        },
        "required": [
          "clusterVersion",
          "componentVersions",
          "edgeSshEndpoint",
          "gateways",
          "httpsEndpoint",
          "kafkaRestProxyEndpoint",
          "kind",
          "location",
          "name",
          "resourceGroupName",
          "sshEndpoint",
          "tags",
          "tier",
          "tlsMinVersion",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:healthcare/getService:getService": {
      "description": "Use this data source to access information about an existing Healthcare Service\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.healthcare.getService({\n    name: \"example-healthcare_service\",\n    resourceGroupName: \"example-resources\",\n    location: \"westus2\",\n});\nexport const healthcareServiceId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.healthcare.get_service(name=\"example-healthcare_service\",\n    resource_group_name=\"example-resources\",\n    location=\"westus2\")\npulumi.export(\"healthcareServiceId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Healthcare.GetService.InvokeAsync(new Azure.Healthcare.GetServiceArgs\n        {\n            Name = \"example-healthcare_service\",\n            ResourceGroupName = \"example-resources\",\n            Location = \"westus2\",\n        }));\n        this.HealthcareServiceId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"healthcareServiceId\")]\n    public Output\u003cstring\u003e HealthcareServiceId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/healthcare\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := healthcare.LookupService(ctx, \u0026healthcare.LookupServiceArgs{\n\t\t\tName:              \"example-healthcare_service\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t\tLocation:          \"westus2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"healthcareServiceId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getService.\n",
        "properties": {
          "location": {
            "description": "The Azure Region where the Service is located.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Healthcare Service.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Healthcare Service exists.\n",
            "type": "string"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getService.\n",
        "properties": {
          "accessPolicyObjectIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "authenticationConfigurations": {
            "description": "An `authentication_configuration` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:healthcare/getServiceAuthenticationConfiguration:getServiceAuthenticationConfiguration"
            },
            "type": "array"
          },
          "corsConfigurations": {
            "description": "A `cors_configuration` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:healthcare/getServiceCorsConfiguration:getServiceCorsConfiguration"
            },
            "type": "array"
          },
          "cosmosdbKeyVaultKeyVersionlessId": {
            "description": "The versionless Key Vault Key ID for CMK encryption of the backing database.\n",
            "type": "string"
          },
          "cosmosdbThroughput": {
            "description": "The provisioned throughput for the backing database.\n",
            "type": "integer"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "kind": {
            "description": "The type of the service.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Service is located.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "accessPolicyObjectIds",
          "authenticationConfigurations",
          "corsConfigurations",
          "cosmosdbKeyVaultKeyVersionlessId",
          "cosmosdbThroughput",
          "kind",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:iot/getDps:getDps": {
      "description": "Use this data source to access information about an existing IotHub Device Provisioning Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.iot.getDps({\n    name: \"iot_hub_dps_test\",\n    resourceGroupName: \"iothub_dps_rg\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.iot.get_dps(name=\"iot_hub_dps_test\",\n    resource_group_name=\"iothub_dps_rg\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Iot.GetDps.InvokeAsync(new Azure.Iot.GetDpsArgs\n        {\n            Name = \"iot_hub_dps_test\",\n            ResourceGroupName = \"iothub_dps_rg\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\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 := iot.GetDps(ctx, \u0026iot.GetDpsArgs{\n\t\t\tName:              \"iot_hub_dps_test\",\n\t\t\tResourceGroupName: \"iothub_dps_rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDps.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Iot Device Provisioning Service resource.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group under which the Iot Device Provisioning Service is located in.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDps.\n",
        "properties": {
          "allocationPolicy": {
            "description": "The allocation policy of the IoT Device Provisioning Service.\n",
            "type": "string"
          },
          "deviceProvisioningHostName": {
            "description": "The device endpoint of the IoT Device Provisioning Service.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "idScope": {
            "description": "The unique identifier of the IoT Device Provisioning Service.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the IoT Device Provisioning Service exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "serviceOperationsHostName": {
            "description": "The service endpoint of the IoT Device Provisioning Service.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "allocationPolicy",
          "deviceProvisioningHostName",
          "idScope",
          "location",
          "name",
          "resourceGroupName",
          "serviceOperationsHostName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:iot/getDpsSharedAccessPolicy:getDpsSharedAccessPolicy": {
      "description": "Use this data source to access information about an existing IotHub Device Provisioning Service Shared Access Policy\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.iot.getDpsSharedAccessPolicy({\n    name: \"example\",\n    resourceGroupName: azurerm_resource_group.example.name,\n    iothubDpsName: azurerm_iothub_dps.example.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.iot.get_dps_shared_access_policy(name=\"example\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"],\n    iothub_dps_name=azurerm_iothub_dps[\"example\"][\"name\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Iot.GetDpsSharedAccessPolicy.InvokeAsync(new Azure.Iot.GetDpsSharedAccessPolicyArgs\n        {\n            Name = \"example\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n            IothubDpsName = azurerm_iothub_dps.Example.Name,\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\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 := iot.LookupDpsSharedAccessPolicy(ctx, \u0026iot.LookupDpsSharedAccessPolicyArgs{\n\t\t\tName:              \"example\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t\tIothubDpsName:     azurerm_iothub_dps.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDpsSharedAccessPolicy.\n",
        "properties": {
          "iothubDpsName": {
            "description": "Specifies the name of the IoT Hub Device Provisioning service to which the Shared Access Policy belongs.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the IotHub Shared Access Policy.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group under which the IotHub Shared Access Policy resource exists.\n",
            "type": "string"
          }
        },
        "required": [
          "iothubDpsName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDpsSharedAccessPolicy.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "iothubDpsName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The primary connection string of the Shared Access Policy.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The primary key used to create the authentication token.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The secondary connection string of the Shared Access Policy.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The secondary key used to create the authentication token.\n",
            "type": "string"
          }
        },
        "required": [
          "iothubDpsName",
          "name",
          "primaryConnectionString",
          "primaryKey",
          "resourceGroupName",
          "secondaryConnectionString",
          "secondaryKey",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:iot/getIotHub:getIotHub": {
      "description": "Use this data source to access information about an existing IoTHub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.iot.getIotHub({\n    name: \"existing\",\n    resourceGroupName: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.iot.get_iot_hub(name=\"existing\",\n    resource_group_name=\"existing\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Iot.GetIotHub.InvokeAsync(new Azure.Iot.GetIotHubArgs\n        {\n            Name = \"existing\",\n            ResourceGroupName = \"existing\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := iot.GetIotHub(ctx, \u0026iot.GetIotHubArgs{\n\t\t\tName:              \"existing\",\n\t\t\tResourceGroupName: \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getIotHub.\n",
        "properties": {
          "name": {
            "description": "The name of this IoTHub.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the IoTHub exists.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the IoTHub.\n",
            "type": "object"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getIotHub.\n",
        "properties": {
          "hostname": {
            "description": "The Hostname of the IoTHub.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "hostname",
          "name",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:iot/getSharedAccessPolicy:getSharedAccessPolicy": {
      "description": "Use this data source to access information about an existing IotHub Shared Access Policy\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.iot.getSharedAccessPolicy({\n    name: \"example\",\n    resourceGroupName: azurerm_resource_group.example.name,\n    iothubName: azurerm_iothub.example.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.iot.get_shared_access_policy(name=\"example\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"],\n    iothub_name=azurerm_iothub[\"example\"][\"name\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Iot.GetSharedAccessPolicy.InvokeAsync(new Azure.Iot.GetSharedAccessPolicyArgs\n        {\n            Name = \"example\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n            IothubName = azurerm_iothub.Example.Name,\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\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 := iot.LookupSharedAccessPolicy(ctx, \u0026iot.LookupSharedAccessPolicyArgs{\n\t\t\tName:              \"example\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t\tIothubName:        azurerm_iothub.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSharedAccessPolicy.\n",
        "properties": {
          "iothubName": {
            "description": "The name of the IoTHub to which this Shared Access Policy belongs.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the IotHub Shared Access Policy resource.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group under which the IotHub Shared Access Policy resource has to be created.\n",
            "type": "string"
          }
        },
        "required": [
          "iothubName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSharedAccessPolicy.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "iothubName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The primary connection string of the Shared Access Policy.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The primary key used to create the authentication token.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The secondary connection string of the Shared Access Policy.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The secondary key used to create the authentication token.\n",
            "type": "string"
          }
        },
        "required": [
          "iothubName",
          "name",
          "primaryConnectionString",
          "primaryKey",
          "resourceGroupName",
          "secondaryConnectionString",
          "secondaryKey",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:keyvault/getAccessPolicy:getAccessPolicy": {
      "description": "Use this data source to access information about the permissions from the Management Key Vault Templates.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst contributor = azure.keyvault.getAccessPolicy({\n    name: \"Key Management\",\n});\nexport const accessPolicyKeyPermissions = contributor.then(contributor =\u003e contributor.keyPermissions);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncontributor = azure.keyvault.get_access_policy(name=\"Key Management\")\npulumi.export(\"accessPolicyKeyPermissions\", contributor.key_permissions)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var contributor = Output.Create(Azure.KeyVault.GetAccessPolicy.InvokeAsync(new Azure.KeyVault.GetAccessPolicyArgs\n        {\n            Name = \"Key Management\",\n        }));\n        this.AccessPolicyKeyPermissions = contributor.Apply(contributor =\u003e contributor.KeyPermissions);\n    }\n\n    [Output(\"accessPolicyKeyPermissions\")]\n    public Output\u003cstring\u003e AccessPolicyKeyPermissions { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcontributor, err := keyvault.LookupAccessPolicy(ctx, \u0026keyvault.LookupAccessPolicyArgs{\n\t\t\tName: \"Key Management\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"accessPolicyKeyPermissions\", contributor.KeyPermissions)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAccessPolicy.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Management Template. Possible values are: `Key Management`,\n`Secret Management`, `Certificate Management`, `Key \u0026 Secret Management`, `Key \u0026 Certificate Management`,\n`Secret \u0026 Certificate Management`,  `Key, Secret, \u0026 Certificate Management`\n",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAccessPolicy.\n",
        "properties": {
          "certificatePermissions": {
            "description": "the certificate permissions for the access policy\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "keyPermissions": {
            "description": "the key permissions for the access policy\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "secretPermissions": {
            "description": "the secret permissions for the access policy\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "certificatePermissions",
          "keyPermissions",
          "name",
          "secretPermissions",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:keyvault/getCertificate:getCertificate": {
      "description": "Use this data source to access information about an existing Key Vault Certificate.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleKeyVault = azure.keyvault.getKeyVault({\n    name: \"examplekv\",\n    resourceGroupName: \"some-resource-group\",\n});\nconst exampleCertificate = exampleKeyVault.then(exampleKeyVault =\u003e azure.keyvault.getCertificate({\n    name: \"secret-sauce\",\n    keyVaultId: exampleKeyVault.id,\n}));\nexport const certificateThumbprint = exampleCertificate.then(exampleCertificate =\u003e exampleCertificate.thumbprint);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_key_vault = azure.keyvault.get_key_vault(name=\"examplekv\",\n    resource_group_name=\"some-resource-group\")\nexample_certificate = azure.keyvault.get_certificate(name=\"secret-sauce\",\n    key_vault_id=example_key_vault.id)\npulumi.export(\"certificateThumbprint\", example_certificate.thumbprint)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleKeyVault = Output.Create(Azure.KeyVault.GetKeyVault.InvokeAsync(new Azure.KeyVault.GetKeyVaultArgs\n        {\n            Name = \"examplekv\",\n            ResourceGroupName = \"some-resource-group\",\n        }));\n        var exampleCertificate = exampleKeyVault.Apply(exampleKeyVault =\u003e Output.Create(Azure.KeyVault.GetCertificate.InvokeAsync(new Azure.KeyVault.GetCertificateArgs\n        {\n            Name = \"secret-sauce\",\n            KeyVaultId = exampleKeyVault.Id,\n        })));\n        this.CertificateThumbprint = exampleCertificate.Apply(exampleCertificate =\u003e exampleCertificate.Thumbprint);\n    }\n\n    [Output(\"certificateThumbprint\")]\n    public Output\u003cstring\u003e CertificateThumbprint { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleKeyVault, err := keyvault.LookupKeyVault(ctx, \u0026keyvault.LookupKeyVaultArgs{\n\t\t\tName:              \"examplekv\",\n\t\t\tResourceGroupName: \"some-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCertificate, err := keyvault.LookupCertificate(ctx, \u0026keyvault.LookupCertificateArgs{\n\t\t\tName:       \"secret-sauce\",\n\t\t\tKeyVaultId: exampleKeyVault.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"certificateThumbprint\", exampleCertificate.Thumbprint)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getCertificate.\n",
        "properties": {
          "keyVaultId": {
            "description": "Specifies the ID of the Key Vault instance where the Secret resides, available on the `azure.keyvault.KeyVault` Data Source / Resource.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Key Vault Certificate.\n",
            "type": "string"
          },
          "version": {
            "description": "Specifies the version of the certificate to look up.  (Defaults to latest)\n",
            "type": "string"
          }
        },
        "required": [
          "keyVaultId",
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCertificate.\n",
        "properties": {
          "certificateData": {
            "description": "The raw Key Vault Certificate data represented as a hexadecimal string.\n",
            "type": "string"
          },
          "certificateDataBase64": {
            "description": "The raw Key Vault Certificate data represented as a base64 string.\n",
            "type": "string"
          },
          "certificatePolicies": {
            "description": "A `certificate_policy` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:keyvault/getCertificateCertificatePolicy:getCertificateCertificatePolicy"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "keyVaultId": {
            "type": "string"
          },
          "name": {
            "description": "The name of the Certificate Issuer.\n",
            "type": "string"
          },
          "secretId": {
            "description": "The ID of the associated Key Vault Secret.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "thumbprint": {
            "description": "The X509 Thumbprint of the Key Vault Certificate represented as a hexadecimal string.\n",
            "type": "string"
          },
          "version": {
            "description": "The current version of the Key Vault Certificate.\n",
            "type": "string"
          }
        },
        "required": [
          "certificateData",
          "certificateDataBase64",
          "certificatePolicies",
          "keyVaultId",
          "name",
          "secretId",
          "tags",
          "thumbprint",
          "version",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:keyvault/getCertificateData:getCertificateData": {
      "description": "Use this data source to access data stored in an existing Key Vault Certificate.\n\n\u003e **Note:** This data source uses the `GetSecret` function of the Azure API, to get the key of the certificate. Therefore you need secret/get permission\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleKeyVault = azure.keyvault.getKeyVault({\n    name: \"examplekv\",\n    resourceGroupName: \"some-resource-group\",\n});\nconst exampleCertificateData = exampleKeyVault.then(exampleKeyVault =\u003e azure.keyvault.getCertificateData({\n    name: \"secret-sauce\",\n    keyVaultId: exampleKeyVault.id,\n}));\nexport const examplePem = exampleCertificateData.then(exampleCertificateData =\u003e exampleCertificateData.pem);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_key_vault = azure.keyvault.get_key_vault(name=\"examplekv\",\n    resource_group_name=\"some-resource-group\")\nexample_certificate_data = azure.keyvault.get_certificate_data(name=\"secret-sauce\",\n    key_vault_id=example_key_vault.id)\npulumi.export(\"examplePem\", example_certificate_data.pem)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleKeyVault = Output.Create(Azure.KeyVault.GetKeyVault.InvokeAsync(new Azure.KeyVault.GetKeyVaultArgs\n        {\n            Name = \"examplekv\",\n            ResourceGroupName = \"some-resource-group\",\n        }));\n        var exampleCertificateData = exampleKeyVault.Apply(exampleKeyVault =\u003e Output.Create(Azure.KeyVault.GetCertificateData.InvokeAsync(new Azure.KeyVault.GetCertificateDataArgs\n        {\n            Name = \"secret-sauce\",\n            KeyVaultId = exampleKeyVault.Id,\n        })));\n        this.ExamplePem = exampleCertificateData.Apply(exampleCertificateData =\u003e exampleCertificateData.Pem);\n    }\n\n    [Output(\"examplePem\")]\n    public Output\u003cstring\u003e ExamplePem { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleKeyVault, err := keyvault.LookupKeyVault(ctx, \u0026keyvault.LookupKeyVaultArgs{\n\t\t\tName:              \"examplekv\",\n\t\t\tResourceGroupName: \"some-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCertificateData, err := keyvault.GetCertificateData(ctx, \u0026keyvault.GetCertificateDataArgs{\n\t\t\tName:       \"secret-sauce\",\n\t\t\tKeyVaultId: exampleKeyVault.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"examplePem\", exampleCertificateData.Pem)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getCertificateData.\n",
        "properties": {
          "keyVaultId": {
            "description": "Specifies the ID of the Key Vault instance where the Secret resides, available on the `azure.keyvault.KeyVault` Data Source / Resource.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Key Vault Secret.\n",
            "type": "string"
          },
          "version": {
            "description": "Specifies the version of the certificate to look up.  (Defaults to latest)\n",
            "type": "string"
          }
        },
        "required": [
          "keyVaultId",
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCertificateData.\n",
        "properties": {
          "certificatesCount": {
            "description": "Amount of certificates in the chain in case Key Vault Certificate is a bundle (e.g. has an intermediate certificate).\n",
            "type": "integer"
          },
          "expires": {
            "description": "Expiry date of certificate in RFC3339 format.\n",
            "type": "string"
          },
          "hex": {
            "description": "The raw Key Vault Certificate data represented as a hexadecimal string.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "key": {
            "description": "The Key Vault Certificate Key.\n",
            "type": "string"
          },
          "keyVaultId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "pem": {
            "description": "The Key Vault Certificate in PEM format.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "certificatesCount",
          "expires",
          "hex",
          "key",
          "keyVaultId",
          "name",
          "pem",
          "tags",
          "version",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:keyvault/getCertificateIssuer:getCertificateIssuer": {
      "description": "Use this data source to access information about an existing Key Vault Certificate Issuer.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleKeyVault = azure.keyvault.getKeyVault({\n    name: \"mykeyvault\",\n    resourceGroupName: \"some-resource-group\",\n});\nconst exampleCertificateIssuer = exampleKeyVault.then(exampleKeyVault =\u003e azure.keyvault.getCertificateIssuer({\n    name: \"existing\",\n    keyVaultId: exampleKeyVault.id,\n}));\nexport const id = exampleCertificateIssuer.then(exampleCertificateIssuer =\u003e exampleCertificateIssuer.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_key_vault = azure.keyvault.get_key_vault(name=\"mykeyvault\",\n    resource_group_name=\"some-resource-group\")\nexample_certificate_issuer = azure.keyvault.get_certificate_issuer(name=\"existing\",\n    key_vault_id=example_key_vault.id)\npulumi.export(\"id\", example_certificate_issuer.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleKeyVault = Output.Create(Azure.KeyVault.GetKeyVault.InvokeAsync(new Azure.KeyVault.GetKeyVaultArgs\n        {\n            Name = \"mykeyvault\",\n            ResourceGroupName = \"some-resource-group\",\n        }));\n        var exampleCertificateIssuer = exampleKeyVault.Apply(exampleKeyVault =\u003e Output.Create(Azure.KeyVault.GetCertificateIssuer.InvokeAsync(new Azure.KeyVault.GetCertificateIssuerArgs\n        {\n            Name = \"existing\",\n            KeyVaultId = exampleKeyVault.Id,\n        })));\n        this.Id = exampleCertificateIssuer.Apply(exampleCertificateIssuer =\u003e exampleCertificateIssuer.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleKeyVault, err := keyvault.LookupKeyVault(ctx, \u0026keyvault.LookupKeyVaultArgs{\n\t\t\tName:              \"mykeyvault\",\n\t\t\tResourceGroupName: \"some-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCertificateIssuer, err := keyvault.LookupCertificateIssuer(ctx, \u0026keyvault.LookupCertificateIssuerArgs{\n\t\t\tName:       \"existing\",\n\t\t\tKeyVaultId: exampleKeyVault.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", exampleCertificateIssuer.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getCertificateIssuer.\n",
        "properties": {
          "keyVaultId": {
            "description": "The ID of the Key Vault in which to locate the Certificate Issuer.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Key Vault Certificate Issuer.\n",
            "type": "string"
          }
        },
        "required": [
          "keyVaultId",
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCertificateIssuer.\n",
        "properties": {
          "accountId": {
            "description": "The account number with the third-party Certificate Issuer.\n",
            "type": "string"
          },
          "admins": {
            "description": "A list of `admin` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:keyvault/getCertificateIssuerAdmin:getCertificateIssuerAdmin"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "keyVaultId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "orgId": {
            "description": "The organization ID with the third-party Certificate Issuer.\n",
            "type": "string"
          },
          "providerName": {
            "description": "The name of the third-party Certificate Issuer.\n",
            "type": "string"
          }
        },
        "required": [
          "accountId",
          "admins",
          "keyVaultId",
          "name",
          "orgId",
          "providerName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:keyvault/getKey:getKey": {
      "description": "Use this data source to access information about an existing Key Vault Key.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.keyvault.getKey({\n    name: \"secret-sauce\",\n    keyVaultId: data.azurerm_key_vault.existing.id,\n});\nexport const keyType = example.then(example =\u003e example.keyType);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.keyvault.get_key(name=\"secret-sauce\",\n    key_vault_id=data[\"azurerm_key_vault\"][\"existing\"][\"id\"])\npulumi.export(\"keyType\", example.key_type)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.KeyVault.GetKey.InvokeAsync(new Azure.KeyVault.GetKeyArgs\n        {\n            Name = \"secret-sauce\",\n            KeyVaultId = data.Azurerm_key_vault.Existing.Id,\n        }));\n        this.KeyType = example.Apply(example =\u003e example.KeyType);\n    }\n\n    [Output(\"keyType\")]\n    public Output\u003cstring\u003e KeyType { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := keyvault.LookupKey(ctx, \u0026keyvault.LookupKeyArgs{\n\t\t\tName:       \"secret-sauce\",\n\t\t\tKeyVaultId: data.Azurerm_key_vault.Existing.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"keyType\", example.KeyType)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getKey.\n",
        "properties": {
          "keyVaultId": {
            "description": "Specifies the ID of the Key Vault instance where the Secret resides, available on the `azure.keyvault.KeyVault` Data Source / Resource.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Key Vault Key.\n",
            "type": "string"
          }
        },
        "required": [
          "keyVaultId",
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getKey.\n",
        "properties": {
          "e": {
            "description": "The RSA public exponent of this Key Vault Key.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "keyOpts": {
            "description": "A list of JSON web key operations assigned to this Key Vault Key\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "keySize": {
            "description": "Specifies the Size of this Key Vault Key.\n",
            "type": "integer"
          },
          "keyType": {
            "description": "Specifies the Key Type of this Key Vault Key\n",
            "type": "string"
          },
          "keyVaultId": {
            "type": "string"
          },
          "n": {
            "description": "The RSA modulus of this Key Vault Key.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to this Key Vault Key.\n",
            "type": "object"
          },
          "version": {
            "description": "The current version of the Key Vault Key.\n",
            "type": "string"
          },
          "versionlessId": {
            "description": "The Base ID of the Key Vault Key.\n",
            "type": "string"
          }
        },
        "required": [
          "e",
          "keyOpts",
          "keySize",
          "keyType",
          "keyVaultId",
          "n",
          "name",
          "tags",
          "version",
          "versionlessId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:keyvault/getKeyVault:getKeyVault": {
      "description": "Use this data source to access information about an existing Key Vault.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.keyvault.getKeyVault({\n    name: \"mykeyvault\",\n    resourceGroupName: \"some-resource-group\",\n});\nexport const vaultUri = example.then(example =\u003e example.vaultUri);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.keyvault.get_key_vault(name=\"mykeyvault\",\n    resource_group_name=\"some-resource-group\")\npulumi.export(\"vaultUri\", example.vault_uri)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.KeyVault.GetKeyVault.InvokeAsync(new Azure.KeyVault.GetKeyVaultArgs\n        {\n            Name = \"mykeyvault\",\n            ResourceGroupName = \"some-resource-group\",\n        }));\n        this.VaultUri = example.Apply(example =\u003e example.VaultUri);\n    }\n\n    [Output(\"vaultUri\")]\n    public Output\u003cstring\u003e VaultUri { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := keyvault.LookupKeyVault(ctx, \u0026keyvault.LookupKeyVaultArgs{\n\t\t\tName:              \"mykeyvault\",\n\t\t\tResourceGroupName: \"some-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vaultUri\", example.VaultUri)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getKeyVault.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Key Vault.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Key Vault exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getKeyVault.\n",
        "properties": {
          "accessPolicies": {
            "description": "One or more `access_policy` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:keyvault/getKeyVaultAccessPolicy:getKeyVaultAccessPolicy"
            },
            "type": "array"
          },
          "enabledForDeployment": {
            "description": "Can Azure Virtual Machines retrieve certificates stored as secrets from the Key Vault?\n",
            "type": "boolean"
          },
          "enabledForDiskEncryption": {
            "description": "Can Azure Disk Encryption retrieve secrets from the Key Vault?\n",
            "type": "boolean"
          },
          "enabledForTemplateDeployment": {
            "description": "Can Azure Resource Manager retrieve secrets from the Key Vault?\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region in which the Key Vault exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "networkAcls": {
            "items": {
              "$ref": "#/types/azure:keyvault/getKeyVaultNetworkAcl:getKeyVaultNetworkAcl"
            },
            "type": "array"
          },
          "purgeProtectionEnabled": {
            "description": "Is purge protection enabled on this Key Vault?\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "skuName": {
            "description": "The Name of the SKU used for this Key Vault.\n",
            "type": "string"
          },
          "softDeleteEnabled": {
            "deprecationMessage": "Azure has removed support for disabling Soft Delete as of 2020-12-15, as such this field will always return 'true' and will be removed in version 3.0 of the Azure Provider.",
            "type": "boolean"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Key Vault.\n",
            "type": "object"
          },
          "tenantId": {
            "description": "The Azure Active Directory Tenant ID used to authenticate requests for this Key Vault.\n",
            "type": "string"
          },
          "vaultUri": {
            "description": "The URI of the vault for performing operations on keys and secrets.\n",
            "type": "string"
          }
        },
        "required": [
          "accessPolicies",
          "enabledForDeployment",
          "enabledForDiskEncryption",
          "enabledForTemplateDeployment",
          "location",
          "name",
          "networkAcls",
          "purgeProtectionEnabled",
          "resourceGroupName",
          "skuName",
          "softDeleteEnabled",
          "tags",
          "tenantId",
          "vaultUri",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:keyvault/getManagedHardwareSecurityModule:getManagedHardwareSecurityModule": {
      "description": "Use this data source to access information about an existing Key Vault Managed Hardware Security Module.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.keyvault.getManagedHardwareSecurityModule({\n    name: \"mykeyvaultHsm\",\n    resourceGroupName: \"some-resource-group\",\n});\nexport const hsmUri = example.then(example =\u003e example.hsmUri);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.keyvault.get_managed_hardware_security_module(name=\"mykeyvaultHsm\",\n    resource_group_name=\"some-resource-group\")\npulumi.export(\"hsmUri\", example.hsm_uri)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.KeyVault.GetManagedHardwareSecurityModule.InvokeAsync(new Azure.KeyVault.GetManagedHardwareSecurityModuleArgs\n        {\n            Name = \"mykeyvaultHsm\",\n            ResourceGroupName = \"some-resource-group\",\n        }));\n        this.HsmUri = example.Apply(example =\u003e example.HsmUri);\n    }\n\n    [Output(\"hsmUri\")]\n    public Output\u003cstring\u003e HsmUri { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := keyvault.LookupManagedHardwareSecurityModule(ctx, \u0026keyvault.LookupManagedHardwareSecurityModuleArgs{\n\t\t\tName:              \"mykeyvaultHsm\",\n\t\t\tResourceGroupName: \"some-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hsmUri\", example.HsmUri)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getManagedHardwareSecurityModule.\n",
        "properties": {
          "name": {
            "description": "The name of the Key Vault Managed Hardware Security Module.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Key Vault Managed Hardware Security Module exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getManagedHardwareSecurityModule.\n",
        "properties": {
          "adminObjectIds": {
            "description": "Specifies a list of administrators object IDs for the key vault Managed Hardware Security Module.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "hsmUri": {
            "description": "The URI of the Hardware Security Module for performing operations on keys and secrets.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region in which the Key Vault managed Hardware Security Module exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "purgeProtectionEnabled": {
            "description": "Is purge protection enabled on this Key Vault Managed Hardware Security Module?\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "skuName": {
            "description": "The Name of the SKU used for this Key Vault Managed Hardware Security Module.\n",
            "type": "string"
          },
          "softDeleteRetentionDays": {
            "description": "The number of days that items should be retained for soft-deleted.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Key Vault Managed Hardware Security Module.\n",
            "type": "object"
          },
          "tenantId": {
            "description": "The Azure Active Directory Tenant ID used for authenticating requests to the Key Vault Managed Hardware Security Module.\n",
            "type": "string"
          }
        },
        "required": [
          "adminObjectIds",
          "hsmUri",
          "location",
          "name",
          "purgeProtectionEnabled",
          "resourceGroupName",
          "skuName",
          "softDeleteRetentionDays",
          "tags",
          "tenantId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:keyvault/getSecret:getSecret": {
      "description": "Use this data source to access information about an existing Key Vault Secret.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.keyvault.getSecret({\n    name: \"secret-sauce\",\n    keyVaultId: data.azurerm_key_vault.existing.id,\n});\nexport const secretValue = example.then(example =\u003e example.value);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.keyvault.get_secret(name=\"secret-sauce\",\n    key_vault_id=data[\"azurerm_key_vault\"][\"existing\"][\"id\"])\npulumi.export(\"secretValue\", example.value)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.KeyVault.GetSecret.InvokeAsync(new Azure.KeyVault.GetSecretArgs\n        {\n            Name = \"secret-sauce\",\n            KeyVaultId = data.Azurerm_key_vault.Existing.Id,\n        }));\n        this.SecretValue = example.Apply(example =\u003e example.Value);\n    }\n\n    [Output(\"secretValue\")]\n    public Output\u003cstring\u003e SecretValue { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := keyvault.LookupSecret(ctx, \u0026keyvault.LookupSecretArgs{\n\t\t\tName:       \"secret-sauce\",\n\t\t\tKeyVaultId: data.Azurerm_key_vault.Existing.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"secretValue\", example.Value)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSecret.\n",
        "properties": {
          "keyVaultId": {
            "description": "Specifies the ID of the Key Vault instance where the Secret resides, available on the `azure.keyvault.KeyVault` Data Source / Resource.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Key Vault Secret.\n",
            "type": "string"
          }
        },
        "required": [
          "keyVaultId",
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSecret.\n",
        "properties": {
          "contentType": {
            "description": "The content type for the Key Vault Secret.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "keyVaultId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Any tags assigned to this resource.\n",
            "type": "object"
          },
          "value": {
            "description": "The value of the Key Vault Secret.\n",
            "type": "string"
          },
          "version": {
            "description": "The current version of the Key Vault Secret.\n",
            "type": "string"
          },
          "versionlessId": {
            "type": "string"
          }
        },
        "required": [
          "contentType",
          "keyVaultId",
          "name",
          "tags",
          "value",
          "version",
          "versionlessId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:keyvault/getSecrets:getSecrets": {
      "description": "Use this data source to retrieve a list of secret names from an existing Key Vault Secret.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSecrets.\n",
        "properties": {
          "keyVaultId": {
            "description": "Specifies the ID of the Key Vault instance to fetch secret names from, available on the `azure.keyvault.KeyVault` Data Source / Resource.\n",
            "type": "string"
          }
        },
        "required": [
          "keyVaultId"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSecrets.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "keyVaultId": {
            "description": "The Key Vault ID.\n",
            "type": "string"
          },
          "names": {
            "description": "List containing names of secrets that exist in this Key Vault.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "keyVaultId",
          "names",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:kusto/getCluster:getCluster": {
      "description": "Use this data source to access information about an existing Kusto (also known as Azure Data Explorer) Cluster\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.kusto.getCluster({\n    name: \"kustocluster\",\n    resourceGroupName: \"test_resource_group\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.kusto.get_cluster(name=\"kustocluster\",\n    resource_group_name=\"test_resource_group\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Kusto.GetCluster.InvokeAsync(new Azure.Kusto.GetClusterArgs\n        {\n            Name = \"kustocluster\",\n            ResourceGroupName = \"test_resource_group\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/kusto\"\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 := kusto.LookupCluster(ctx, \u0026kusto.LookupClusterArgs{\n\t\t\tName:              \"kustocluster\",\n\t\t\tResourceGroupName: \"test_resource_group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getCluster.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Kusto Cluster.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Kusto Cluster exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCluster.\n",
        "properties": {
          "dataIngestionUri": {
            "description": "The Kusto Cluster URI to be used for data ingestion.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "uri": {
            "description": "The FQDN of the Azure Kusto Cluster.\n",
            "type": "string"
          }
        },
        "required": [
          "dataIngestionUri",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "uri",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:lb/getBackendAddressPool:getBackendAddressPool": {
      "description": "Use this data source to access information about an existing Load Balancer's Backend Address Pool.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleLB = azure.lb.getLB({\n    name: \"example-lb\",\n    resourceGroupName: \"example-resources\",\n});\nconst exampleBackendAddressPool = exampleLB.then(exampleLB =\u003e azure.lb.getBackendAddressPool({\n    name: \"first\",\n    loadbalancerId: exampleLB.id,\n}));\nexport const backendAddressPoolId = exampleBackendAddressPool.then(exampleBackendAddressPool =\u003e exampleBackendAddressPool.id);\nexport const backendIpConfigurationIds = data.azurerm_lb_backend_address_pool.beap.backend_ip_configurations.map(__item =\u003e __item.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_lb = azure.lb.get_lb(name=\"example-lb\",\n    resource_group_name=\"example-resources\")\nexample_backend_address_pool = azure.lb.get_backend_address_pool(name=\"first\",\n    loadbalancer_id=example_lb.id)\npulumi.export(\"backendAddressPoolId\", example_backend_address_pool.id)\npulumi.export(\"backendIpConfigurationIds\", [__item[\"id\"] for __item in data[\"azurerm_lb_backend_address_pool\"][\"beap\"][\"backend_ip_configurations\"]])\n```\n```csharp\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleLB = Output.Create(Azure.Lb.GetLB.InvokeAsync(new Azure.Lb.GetLBArgs\n        {\n            Name = \"example-lb\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        var exampleBackendAddressPool = exampleLB.Apply(exampleLB =\u003e Output.Create(Azure.Lb.GetBackendAddressPool.InvokeAsync(new Azure.Lb.GetBackendAddressPoolArgs\n        {\n            Name = \"first\",\n            LoadbalancerId = exampleLB.Id,\n        })));\n        this.BackendAddressPoolId = exampleBackendAddressPool.Apply(exampleBackendAddressPool =\u003e exampleBackendAddressPool.Id);\n        this.BackendIpConfigurationIds = data.Azurerm_lb_backend_address_pool.Beap.Backend_ip_configurations.Select(__item =\u003e __item.Id).ToList();\n    }\n\n    [Output(\"backendAddressPoolId\")]\n    public Output\u003cstring\u003e BackendAddressPoolId { get; set; }\n    [Output(\"backendIpConfigurationIds\")]\n    public Output\u003cstring\u003e BackendIpConfigurationIds { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleLB, err := lb.GetLB(ctx, \u0026lb.GetLBArgs{\n\t\t\tName:              \"example-lb\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBackendAddressPool, err := lb.LookupBackendAddressPool(ctx, \u0026lb.LookupBackendAddressPoolArgs{\n\t\t\tName:           \"first\",\n\t\t\tLoadbalancerId: exampleLB.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"backendAddressPoolId\", exampleBackendAddressPool.Id)\n\t\tvar splat0 []interface{}\n\t\tfor _, val0 := range data.Azurerm_lb_backend_address_pool.Beap.Backend_ip_configurations {\n\t\t\tsplat0 = append(splat0, val0.Id)\n\t\t}\n\t\tctx.Export(\"backendIpConfigurationIds\", splat0)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getBackendAddressPool.\n",
        "properties": {
          "loadbalancerId": {
            "description": "The ID of the Load Balancer in which the Backend Address Pool exists.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Backend Address Pool.\n",
            "type": "string"
          }
        },
        "required": [
          "loadbalancerId",
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getBackendAddressPool.\n",
        "properties": {
          "backendAddresses": {
            "description": "A list of `backend_address` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:lb/getBackendAddressPoolBackendAddress:getBackendAddressPoolBackendAddress"
            },
            "type": "array"
          },
          "backendIpConfigurations": {
            "description": "A list of references to IP addresses defined in network interfaces.\n",
            "items": {
              "$ref": "#/types/azure:lb/getBackendAddressPoolBackendIpConfiguration:getBackendAddressPoolBackendIpConfiguration"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "loadBalancingRules": {
            "description": "A list of the Load Balancing Rules associated with this Backend Address Pool.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "loadbalancerId": {
            "type": "string"
          },
          "name": {
            "description": "The name of the Backend Address.\n",
            "type": "string"
          },
          "outboundRules": {
            "description": "A list of the Load Balancing Outbound Rules associated with this Backend Address Pool.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "backendAddresses",
          "backendIpConfigurations",
          "loadBalancingRules",
          "loadbalancerId",
          "name",
          "outboundRules",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:lb/getLB:getLB": {
      "description": "Use this data source to access information about an existing Load Balancer\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.lb.getLB({\n    name: \"example-lb\",\n    resourceGroupName: \"example-resources\",\n});\nexport const loadbalancerId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.lb.get_lb(name=\"example-lb\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"loadbalancerId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Lb.GetLB.InvokeAsync(new Azure.Lb.GetLBArgs\n        {\n            Name = \"example-lb\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.LoadbalancerId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"loadbalancerId\")]\n    public Output\u003cstring\u003e LoadbalancerId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := lb.GetLB(ctx, \u0026lb.GetLBArgs{\n\t\t\tName:              \"example-lb\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"loadbalancerId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getLB.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Load Balancer.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Load Balancer exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getLB.\n",
        "properties": {
          "frontendIpConfigurations": {
            "description": "A `frontend_ip_configuration` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:lb/getLBFrontendIpConfiguration:getLBFrontendIpConfiguration"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the Load Balancer exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Frontend IP Configuration.\n",
            "type": "string"
          },
          "privateIpAddress": {
            "description": "Private IP Address to assign to the Load Balancer.\n",
            "type": "string"
          },
          "privateIpAddresses": {
            "description": "The list of private IP address assigned to the load balancer in `frontend_ip_configuration` blocks, if any.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sku": {
            "description": "The SKU of the Load Balancer.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "frontendIpConfigurations",
          "location",
          "name",
          "privateIpAddress",
          "privateIpAddresses",
          "resourceGroupName",
          "sku",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:lb/getLBRule:getLBRule": {
      "description": "Use this data source to access information about an existing Load Balancer Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleLB = azure.lb.getLB({\n    name: \"example-lb\",\n    resourceGroupName: \"example-resources\",\n});\nconst exampleLBRule = exampleLB.then(exampleLB =\u003e azure.lb.getLBRule({\n    name: \"first\",\n    resourceGroupName: \"example-resources\",\n    loadbalancerId: exampleLB.id,\n}));\nexport const lbRuleId = exampleLBRule.then(exampleLBRule =\u003e exampleLBRule.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_lb = azure.lb.get_lb(name=\"example-lb\",\n    resource_group_name=\"example-resources\")\nexample_lb_rule = azure.lb.get_lb_rule(name=\"first\",\n    resource_group_name=\"example-resources\",\n    loadbalancer_id=example_lb.id)\npulumi.export(\"lbRuleId\", example_lb_rule.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleLB = Output.Create(Azure.Lb.GetLB.InvokeAsync(new Azure.Lb.GetLBArgs\n        {\n            Name = \"example-lb\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        var exampleLBRule = exampleLB.Apply(exampleLB =\u003e Output.Create(Azure.Lb.GetLBRule.InvokeAsync(new Azure.Lb.GetLBRuleArgs\n        {\n            Name = \"first\",\n            ResourceGroupName = \"example-resources\",\n            LoadbalancerId = exampleLB.Id,\n        })));\n        this.LbRuleId = exampleLBRule.Apply(exampleLBRule =\u003e exampleLBRule.Id);\n    }\n\n    [Output(\"lbRuleId\")]\n    public Output\u003cstring\u003e LbRuleId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleLB, err := lb.GetLB(ctx, \u0026lb.GetLBArgs{\n\t\t\tName:              \"example-lb\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLBRule, err := lb.GetLBRule(ctx, \u0026lb.GetLBRuleArgs{\n\t\t\tName:              \"first\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t\tLoadbalancerId:    exampleLB.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"lbRuleId\", exampleLBRule.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getLBRule.\n",
        "properties": {
          "loadbalancerId": {
            "description": "The ID of the Load Balancer Rule.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of this Load Balancer Rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Load Balancer Rule exists.\n",
            "type": "string"
          }
        },
        "required": [
          "loadbalancerId",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getLBRule.\n",
        "properties": {
          "backendAddressPoolId": {
            "description": "A reference to a Backend Address Pool over which this Load Balancing Rule operates.\n",
            "type": "string"
          },
          "backendPort": {
            "description": "The port used for internal connections on the endpoint.\n",
            "type": "integer"
          },
          "disableOutboundSnat": {
            "description": "If outbound SNAT is enabled for this Load Balancer Rule.\n",
            "type": "boolean"
          },
          "enableFloatingIp": {
            "description": "If Floating IPs are enabled for this Load Balancer Rule\n",
            "type": "boolean"
          },
          "enableTcpReset": {
            "description": "If TCP Reset is enabled for this Load Balancer Rule.\n",
            "type": "boolean"
          },
          "frontendIpConfigurationName": {
            "description": "The name of the frontend IP configuration to which the rule is associated.\n",
            "type": "string"
          },
          "frontendPort": {
            "description": "The port for the external endpoint.\n",
            "type": "integer"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "idleTimeoutInMinutes": {
            "description": "Specifies the idle timeout in minutes for TCP connections.\n",
            "type": "integer"
          },
          "loadDistribution": {
            "description": "Specifies the load balancing distribution type used by the Load Balancer.\n",
            "type": "string"
          },
          "loadbalancerId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "probeId": {
            "description": "A reference to a Probe used by this Load Balancing Rule.\n",
            "type": "string"
          },
          "protocol": {
            "description": "The transport protocol for the external endpoint.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "required": [
          "backendAddressPoolId",
          "backendPort",
          "disableOutboundSnat",
          "enableFloatingIp",
          "enableTcpReset",
          "frontendIpConfigurationName",
          "frontendPort",
          "idleTimeoutInMinutes",
          "loadDistribution",
          "loadbalancerId",
          "name",
          "probeId",
          "protocol",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:logicapps/getIntegrationAccount:getIntegrationAccount": {
      "description": "Use this data source to access information about an existing Logic App Integration Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.logicapps.getIntegrationAccount({\n    name: \"example-account\",\n    resourceGroupName: \"example-resource-group\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.logicapps.get_integration_account(name=\"example-account\",\n    resource_group_name=\"example-resource-group\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.LogicApps.GetIntegrationAccount.InvokeAsync(new Azure.LogicApps.GetIntegrationAccountArgs\n        {\n            Name = \"example-account\",\n            ResourceGroupName = \"example-resource-group\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/logicapps\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := logicapps.LookupIntegrationAccount(ctx, \u0026logicapps.LookupIntegrationAccountArgs{\n\t\t\tName:              \"example-account\",\n\t\t\tResourceGroupName: \"example-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getIntegrationAccount.\n",
        "properties": {
          "name": {
            "description": "The name of this Logic App Integration Account.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Logic App Integration Account exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getIntegrationAccount.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Logic App Integration Account exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "skuName": {
            "description": "The sku name of the Logic App Integration Account.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Logic App Integration Account.\n",
            "type": "object"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "skuName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:logicapps/getWorkflow:getWorkflow": {
      "description": "Use this data source to access information about an existing Logic App Workflow.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.logicapps.getWorkflow({\n    name: \"workflow1\",\n    resourceGroupName: \"my-resource-group\",\n});\nexport const accessEndpoint = example.then(example =\u003e example.accessEndpoint);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.logicapps.get_workflow(name=\"workflow1\",\n    resource_group_name=\"my-resource-group\")\npulumi.export(\"accessEndpoint\", example.access_endpoint)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.LogicApps.GetWorkflow.InvokeAsync(new Azure.LogicApps.GetWorkflowArgs\n        {\n            Name = \"workflow1\",\n            ResourceGroupName = \"my-resource-group\",\n        }));\n        this.AccessEndpoint = example.Apply(example =\u003e example.AccessEndpoint);\n    }\n\n    [Output(\"accessEndpoint\")]\n    public Output\u003cstring\u003e AccessEndpoint { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/logicapps\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := logicapps.LookupWorkflow(ctx, \u0026logicapps.LookupWorkflowArgs{\n\t\t\tName:              \"workflow1\",\n\t\t\tResourceGroupName: \"my-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"accessEndpoint\", example.AccessEndpoint)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getWorkflow.\n",
        "properties": {
          "name": {
            "description": "The name of the Logic App Workflow.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Logic App Workflow exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getWorkflow.\n",
        "properties": {
          "accessEndpoint": {
            "description": "The Access Endpoint for the Logic App Workflow\n",
            "type": "string"
          },
          "connectorEndpointIpAddresses": {
            "description": "The list of access endpoint ip addresses of connector.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "connectorOutboundIpAddresses": {
            "description": "The list of outgoing ip addresses of connector.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the Logic App Workflow exists.\n",
            "type": "string"
          },
          "logicAppIntegrationAccountId": {
            "description": "The ID of the integration account linked by this Logic App Workflow.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of Key-Value pairs.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "workflowEndpointIpAddresses": {
            "description": "The list of access endpoint ip addresses of workflow.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "workflowOutboundIpAddresses": {
            "description": "The list of outgoing ip addresses of workflow.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "workflowSchema": {
            "description": "The Schema used for this Logic App Workflow.\n",
            "type": "string"
          },
          "workflowVersion": {
            "description": "The version of the Schema used for this Logic App Workflow. Defaults to `1.0.0.0`.\n",
            "type": "string"
          }
        },
        "required": [
          "accessEndpoint",
          "connectorEndpointIpAddresses",
          "connectorOutboundIpAddresses",
          "location",
          "logicAppIntegrationAccountId",
          "name",
          "parameters",
          "resourceGroupName",
          "tags",
          "workflowEndpointIpAddresses",
          "workflowOutboundIpAddresses",
          "workflowSchema",
          "workflowVersion",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:machinelearning/getWorkspace:getWorkspace": {
      "description": "Use this data source to access information about an existing Machine Learning Workspace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst existing = azure.machinelearning.getWorkspace({\n    name: \"example-workspace\",\n    resourceGroupName: \"example-resources\",\n});\nexport const id = azurerm_machine_learning_workspace.existing.id;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexisting = azure.machinelearning.get_workspace(name=\"example-workspace\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"id\", azurerm_machine_learning_workspace[\"existing\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var existing = Output.Create(Azure.MachineLearning.GetWorkspace.InvokeAsync(new Azure.MachineLearning.GetWorkspaceArgs\n        {\n            Name = \"example-workspace\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.Id = azurerm_machine_learning_workspace.Existing.Id;\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/machinelearning\"\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 := machinelearning.LookupWorkspace(ctx, \u0026machinelearning.LookupWorkspaceArgs{\n\t\t\tName:              \"example-workspace\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", azurerm_machine_learning_workspace.Existing.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getWorkspace.\n",
        "properties": {
          "name": {
            "description": "The name of the Machine Learning Workspace exists.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Machine Learning Workspace exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getWorkspace.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "items": {
              "$ref": "#/types/azure:machinelearning/getWorkspaceIdentity:getWorkspaceIdentity"
            },
            "type": "array"
          },
          "location": {
            "description": "The location where the Machine Learning Workspace exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Machine Learning Workspace.\n",
            "type": "object"
          }
        },
        "required": [
          "identities",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:maintenance/getConfiguration:getConfiguration": {
      "description": "Use this data source to access information about an existing Maintenance Configuration.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst existing = azure.maintenance.getConfiguration({\n    name: \"example-mc\",\n    resourceGroupName: \"example-resources\",\n});\nexport const id = azurerm_maintenance_configuration.existing.id;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexisting = azure.maintenance.get_configuration(name=\"example-mc\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"id\", azurerm_maintenance_configuration[\"existing\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var existing = Output.Create(Azure.Maintenance.GetConfiguration.InvokeAsync(new Azure.Maintenance.GetConfigurationArgs\n        {\n            Name = \"example-mc\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.Id = azurerm_maintenance_configuration.Existing.Id;\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/maintenance\"\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 := maintenance.LookupConfiguration(ctx, \u0026maintenance.LookupConfigurationArgs{\n\t\t\tName:              \"example-mc\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", azurerm_maintenance_configuration.Existing.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getConfiguration.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Maintenance Configuration.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where this Maintenance Configuration exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getConfiguration.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the resource exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "properties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The properties assigned to the resource.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "scope": {
            "description": "The scope of the Maintenance Configuration.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "visibility": {
            "description": "The visibility of the Maintenance Configuration.\n",
            "type": "string"
          },
          "windows": {
            "description": "A `window` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:maintenance/getConfigurationWindow:getConfigurationWindow"
            },
            "type": "array"
          }
        },
        "required": [
          "location",
          "name",
          "properties",
          "resourceGroupName",
          "scope",
          "tags",
          "visibility",
          "windows",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:managedapplication/getDefinition:getDefinition": {
      "description": "Uses this data source to access information about an existing Managed Application Definition.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.managedapplication.getDefinition({\n    name: \"example-managedappdef\",\n    resourceGroupName: \"example-resources\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.managedapplication.get_definition(name=\"example-managedappdef\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ManagedApplication.GetDefinition.InvokeAsync(new Azure.ManagedApplication.GetDefinitionArgs\n        {\n            Name = \"example-managedappdef\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/managedapplication\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := managedapplication.LookupDefinition(ctx, \u0026managedapplication.LookupDefinitionArgs{\n\t\t\tName:              \"example-managedappdef\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDefinition.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Managed Application Definition.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where this Managed Application Definition exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDefinition.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:management/getGroup:getGroup": {
      "description": "Use this data source to access information about an existing Management Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.management.getGroup({\n    name: \"00000000-0000-0000-0000-000000000000\",\n});\nexport const displayName = example.then(example =\u003e example.displayName);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.management.get_group(name=\"00000000-0000-0000-0000-000000000000\")\npulumi.export(\"displayName\", example.display_name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Management.GetGroup.InvokeAsync(new Azure.Management.GetGroupArgs\n        {\n            Name = \"00000000-0000-0000-0000-000000000000\",\n        }));\n        this.DisplayName = example.Apply(example =\u003e example.DisplayName);\n    }\n\n    [Output(\"displayName\")]\n    public Output\u003cstring\u003e DisplayName { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"00000000-0000-0000-0000-000000000000\"\n\t\texample, err := management.LookupGroup(ctx, \u0026management.LookupGroupArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"displayName\", example.DisplayName)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getGroup.\n",
        "properties": {
          "displayName": {
            "description": "Specifies the display name of this Management Group.\n",
            "type": "string"
          },
          "groupId": {
            "deprecationMessage": "Deprecated in favour of `name`",
            "description": "Specifies the name or UUID of this Management Group.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name or UUID of this Management Group.\n",
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getGroup.\n",
        "properties": {
          "displayName": {
            "type": "string"
          },
          "groupId": {
            "deprecationMessage": "Deprecated in favour of `name`",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parentManagementGroupId": {
            "description": "The ID of any Parent Management Group.\n",
            "type": "string"
          },
          "subscriptionIds": {
            "description": "A list of Subscription IDs which are assigned to the Management Group.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "displayName",
          "groupId",
          "name",
          "parentManagementGroupId",
          "subscriptionIds",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:managementgroups/getManagementGroup:getManagementGroup": {
      "deprecationMessage": "azure.managementgroups.getManagementGroup has been deprecated in favor of azure.management.getGroup",
      "description": "Use this data source to access information about an existing Management Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.management.getGroup({\n    name: \"00000000-0000-0000-0000-000000000000\",\n});\nexport const displayName = example.then(example =\u003e example.displayName);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.management.get_group(name=\"00000000-0000-0000-0000-000000000000\")\npulumi.export(\"displayName\", example.display_name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Management.GetGroup.InvokeAsync(new Azure.Management.GetGroupArgs\n        {\n            Name = \"00000000-0000-0000-0000-000000000000\",\n        }));\n        this.DisplayName = example.Apply(example =\u003e example.DisplayName);\n    }\n\n    [Output(\"displayName\")]\n    public Output\u003cstring\u003e DisplayName { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"00000000-0000-0000-0000-000000000000\"\n\t\texample, err := management.LookupGroup(ctx, \u0026management.LookupGroupArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"displayName\", example.DisplayName)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getManagementGroup.\n",
        "properties": {
          "displayName": {
            "description": "Specifies the display name of this Management Group.\n",
            "type": "string"
          },
          "groupId": {
            "deprecationMessage": "Deprecated in favour of `name`",
            "description": "Specifies the name or UUID of this Management Group.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name or UUID of this Management Group.\n",
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getManagementGroup.\n",
        "properties": {
          "displayName": {
            "type": "string"
          },
          "groupId": {
            "deprecationMessage": "Deprecated in favour of `name`",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parentManagementGroupId": {
            "description": "The ID of any Parent Management Group.\n",
            "type": "string"
          },
          "subscriptionIds": {
            "description": "A list of Subscription IDs which are assigned to the Management Group.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "displayName",
          "groupId",
          "name",
          "parentManagementGroupId",
          "subscriptionIds",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:maps/getAccount:getAccount": {
      "description": "Use this data source to access information about an existing Azure Maps Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.maps.getAccount({\n    name: \"production\",\n    resourceGroupName: \"maps\",\n});\nexport const mapsAccountId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.maps.get_account(name=\"production\",\n    resource_group_name=\"maps\")\npulumi.export(\"mapsAccountId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Maps.GetAccount.InvokeAsync(new Azure.Maps.GetAccountArgs\n        {\n            Name = \"production\",\n            ResourceGroupName = \"maps\",\n        }));\n        this.MapsAccountId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"mapsAccountId\")]\n    public Output\u003cstring\u003e MapsAccountId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/maps\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := maps.LookupAccount(ctx, \u0026maps.LookupAccountArgs{\n\t\t\tName:              \"production\",\n\t\t\tResourceGroupName: \"maps\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mapsAccountId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAccount.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Maps Account.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which the Maps Account is located.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAccount.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The primary key used to authenticate and authorize access to the Maps REST APIs.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The primary key used to authenticate and authorize access to the Maps REST APIs. The second key is given to provide seamless key regeneration.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The sku of the Azure Maps Account.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "xMsClientId": {
            "description": "A unique identifier for the Maps Account.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "primaryAccessKey",
          "resourceGroupName",
          "secondaryAccessKey",
          "skuName",
          "xMsClientId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:mariadb/getMariaDbServer:getMariaDbServer": {
      "description": "Use this data source to access information about an existing MariaDB Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst dbServer = azure.mariadb.getMariaDbServer({\n    name: \"mariadb-server\",\n    resourceGroupName: azurerm_mariadb_server.example.resource_group_name,\n});\nexport const mariadbServerId = data.azurerm_mariadb_server.example.id;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ndb_server = azure.mariadb.get_maria_db_server(name=\"mariadb-server\",\n    resource_group_name=azurerm_mariadb_server[\"example\"][\"resource_group_name\"])\npulumi.export(\"mariadbServerId\", data[\"azurerm_mariadb_server\"][\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var dbServer = Output.Create(Azure.MariaDB.GetMariaDbServer.InvokeAsync(new Azure.MariaDB.GetMariaDbServerArgs\n        {\n            Name = \"mariadb-server\",\n            ResourceGroupName = azurerm_mariadb_server.Example.Resource_group_name,\n        }));\n        this.MariadbServerId = data.Azurerm_mariadb_server.Example.Id;\n    }\n\n    [Output(\"mariadbServerId\")]\n    public Output\u003cstring\u003e MariadbServerId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mariadb\"\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 := mariadb.GetMariaDbServer(ctx, \u0026mariadb.GetMariaDbServerArgs{\n\t\t\tName:              \"mariadb-server\",\n\t\t\tResourceGroupName: azurerm_mariadb_server.Example.Resource_group_name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mariadbServerId\", data.Azurerm_mariadb_server.Example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getMariaDbServer.\n",
        "properties": {
          "name": {
            "description": "The name of the MariaDB Server to retrieve information about.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the MariaDB Server exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getMariaDbServer.\n",
        "properties": {
          "administratorLogin": {
            "description": "The Administrator Login for the MariaDB Server.\n",
            "type": "string"
          },
          "fqdn": {
            "description": "The FQDN of the MariaDB Server.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the resource exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "skuName": {
            "description": "The SKU Name for this MariaDB Server.\n",
            "type": "string"
          },
          "sslEnforcement": {
            "description": "The SSL being enforced on connections.\n",
            "type": "string"
          },
          "storageProfiles": {
            "description": "A `storage_profile` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:mariadb/getMariaDbServerStorageProfile:getMariaDbServerStorageProfile"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n---\n",
            "type": "object"
          },
          "version": {
            "description": "The version of MariaDB being used.\n",
            "type": "string"
          }
        },
        "required": [
          "administratorLogin",
          "fqdn",
          "location",
          "name",
          "resourceGroupName",
          "skuName",
          "sslEnforcement",
          "storageProfiles",
          "tags",
          "version",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:mixedreality/getSpatialAnchorsAccount:getSpatialAnchorsAccount": {
      "description": "Get information about an Azure Spatial Anchors Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.mixedreality.getSpatialAnchorsAccount({\n    name: \"example\",\n    resourceGroupName: azurerm_resource_group.example.name,\n});\nexport const accountDomain = data.azurerm_spatial_anchors_account.account_domain;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.mixedreality.get_spatial_anchors_account(name=\"example\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\npulumi.export(\"accountDomain\", data[\"azurerm_spatial_anchors_account\"][\"account_domain\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.MixedReality.GetSpatialAnchorsAccount.InvokeAsync(new Azure.MixedReality.GetSpatialAnchorsAccountArgs\n        {\n            Name = \"example\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n        this.AccountDomain = data.Azurerm_spatial_anchors_account.Account_domain;\n    }\n\n    [Output(\"accountDomain\")]\n    public Output\u003cstring\u003e AccountDomain { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mixedreality\"\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 := mixedreality.LookupSpatialAnchorsAccount(ctx, \u0026mixedreality.LookupSpatialAnchorsAccountArgs{\n\t\t\tName:              \"example\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"accountDomain\", data.Azurerm_spatial_anchors_account.Account_domain)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSpatialAnchorsAccount.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Spatial Anchors Account. Changing this forces a new resource to be created. Must be globally unique.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Spatial Anchors Account.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSpatialAnchorsAccount.\n",
        "properties": {
          "accountDomain": {
            "description": "The domain of the Spatial Anchors Account.\n",
            "type": "string"
          },
          "accountId": {
            "description": "The account ID of the Spatial Anchors Account.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "required": [
          "accountDomain",
          "accountId",
          "location",
          "name",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:monitoring/getActionGroup:getActionGroup": {
      "description": "Use this data source to access the properties of an Action Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.monitoring.getActionGroup({\n    resourceGroupName: \"example-rg\",\n    name: \"tfex-actiongroup\",\n});\nexport const actionGroupId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.monitoring.get_action_group(resource_group_name=\"example-rg\",\n    name=\"tfex-actiongroup\")\npulumi.export(\"actionGroupId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Monitoring.GetActionGroup.InvokeAsync(new Azure.Monitoring.GetActionGroupArgs\n        {\n            ResourceGroupName = \"example-rg\",\n            Name = \"tfex-actiongroup\",\n        }));\n        this.ActionGroupId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"actionGroupId\")]\n    public Output\u003cstring\u003e ActionGroupId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := monitoring.LookupActionGroup(ctx, \u0026monitoring.LookupActionGroupArgs{\n\t\t\tResourceGroupName: \"example-rg\",\n\t\t\tName:              \"tfex-actiongroup\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"actionGroupId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getActionGroup.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Action Group.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Action Group is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getActionGroup.\n",
        "properties": {
          "armRoleReceivers": {
            "description": "One or more `arm_role_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/getActionGroupArmRoleReceiver:getActionGroupArmRoleReceiver"
            },
            "type": "array"
          },
          "automationRunbookReceivers": {
            "description": "One or more `automation_runbook_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/getActionGroupAutomationRunbookReceiver:getActionGroupAutomationRunbookReceiver"
            },
            "type": "array"
          },
          "azureAppPushReceivers": {
            "description": "One or more `azure_app_push_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/getActionGroupAzureAppPushReceiver:getActionGroupAzureAppPushReceiver"
            },
            "type": "array"
          },
          "azureFunctionReceivers": {
            "description": "One or more `azure_function_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/getActionGroupAzureFunctionReceiver:getActionGroupAzureFunctionReceiver"
            },
            "type": "array"
          },
          "emailReceivers": {
            "description": "One or more `email_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/getActionGroupEmailReceiver:getActionGroupEmailReceiver"
            },
            "type": "array"
          },
          "enabled": {
            "description": "Whether this action group is enabled.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "itsmReceivers": {
            "description": "One or more `itsm_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/getActionGroupItsmReceiver:getActionGroupItsmReceiver"
            },
            "type": "array"
          },
          "logicAppReceivers": {
            "description": "One or more `logic_app_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/getActionGroupLogicAppReceiver:getActionGroupLogicAppReceiver"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the webhook receiver.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "shortName": {
            "description": "The short name of the action group.\n",
            "type": "string"
          },
          "smsReceivers": {
            "description": "One or more `sms_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/getActionGroupSmsReceiver:getActionGroupSmsReceiver"
            },
            "type": "array"
          },
          "voiceReceivers": {
            "description": "One or more `voice_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/getActionGroupVoiceReceiver:getActionGroupVoiceReceiver"
            },
            "type": "array"
          },
          "webhookReceivers": {
            "description": "One or more `webhook_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/getActionGroupWebhookReceiver:getActionGroupWebhookReceiver"
            },
            "type": "array"
          }
        },
        "required": [
          "armRoleReceivers",
          "automationRunbookReceivers",
          "azureAppPushReceivers",
          "azureFunctionReceivers",
          "emailReceivers",
          "enabled",
          "itsmReceivers",
          "logicAppReceivers",
          "name",
          "resourceGroupName",
          "shortName",
          "smsReceivers",
          "voiceReceivers",
          "webhookReceivers",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:monitoring/getDiagnosticCategories:getDiagnosticCategories": {
      "description": "Use this data source to access information about the Monitor Diagnostics Categories supported by an existing Resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleKeyVault = azure.keyvault.getKeyVault({\n    name: azurerm_key_vault.example.name,\n    resourceGroupName: azurerm_key_vault.example.resource_group_name,\n});\nconst exampleDiagnosticCategories = exampleKeyVault.then(exampleKeyVault =\u003e azure.monitoring.getDiagnosticCategories({\n    resourceId: exampleKeyVault.id,\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_key_vault = azure.keyvault.get_key_vault(name=azurerm_key_vault[\"example\"][\"name\"],\n    resource_group_name=azurerm_key_vault[\"example\"][\"resource_group_name\"])\nexample_diagnostic_categories = azure.monitoring.get_diagnostic_categories(resource_id=example_key_vault.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleKeyVault = Output.Create(Azure.KeyVault.GetKeyVault.InvokeAsync(new Azure.KeyVault.GetKeyVaultArgs\n        {\n            Name = azurerm_key_vault.Example.Name,\n            ResourceGroupName = azurerm_key_vault.Example.Resource_group_name,\n        }));\n        var exampleDiagnosticCategories = exampleKeyVault.Apply(exampleKeyVault =\u003e Output.Create(Azure.Monitoring.GetDiagnosticCategories.InvokeAsync(new Azure.Monitoring.GetDiagnosticCategoriesArgs\n        {\n            ResourceId = exampleKeyVault.Id,\n        })));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleKeyVault, err := keyvault.LookupKeyVault(ctx, \u0026keyvault.LookupKeyVaultArgs{\n\t\t\tName:              azurerm_key_vault.Example.Name,\n\t\t\tResourceGroupName: azurerm_key_vault.Example.Resource_group_name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.GetDiagnosticCategories(ctx, \u0026monitoring.GetDiagnosticCategoriesArgs{\n\t\t\tResourceId: exampleKeyVault.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDiagnosticCategories.\n",
        "properties": {
          "resourceId": {
            "description": "The ID of an existing Resource which Monitor Diagnostics Categories should be retrieved for.\n",
            "type": "string"
          }
        },
        "required": [
          "resourceId"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDiagnosticCategories.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "logs": {
            "description": "A list of the Log Categories supported for this Resource.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "metrics": {
            "description": "A list of the Metric Categories supported for this Resource.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceId": {
            "type": "string"
          }
        },
        "required": [
          "logs",
          "metrics",
          "resourceId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:monitoring/getLogProfile:getLogProfile": {
      "description": "Use this data source to access the properties of a Log Profile.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.monitoring.getLogProfile({\n    name: \"test-logprofile\",\n});\nexport const logProfileStorageAccountId = example.then(example =\u003e example.storageAccountId);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.monitoring.get_log_profile(name=\"test-logprofile\")\npulumi.export(\"logProfileStorageAccountId\", example.storage_account_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Monitoring.GetLogProfile.InvokeAsync(new Azure.Monitoring.GetLogProfileArgs\n        {\n            Name = \"test-logprofile\",\n        }));\n        this.LogProfileStorageAccountId = example.Apply(example =\u003e example.StorageAccountId);\n    }\n\n    [Output(\"logProfileStorageAccountId\")]\n    public Output\u003cstring\u003e LogProfileStorageAccountId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := monitoring.LookupLogProfile(ctx, \u0026monitoring.LookupLogProfileArgs{\n\t\t\tName: \"test-logprofile\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"logProfileStorageAccountId\", example.StorageAccountId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getLogProfile.\n",
        "properties": {
          "name": {
            "description": "Specifies the Name of the Log Profile.\n",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getLogProfile.\n",
        "properties": {
          "categories": {
            "description": "List of categories of the logs.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "locations": {
            "description": "List of regions for which Activity Log events are stored or streamed.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "retentionPolicies": {
            "items": {
              "$ref": "#/types/azure:monitoring/getLogProfileRetentionPolicy:getLogProfileRetentionPolicy"
            },
            "type": "array"
          },
          "servicebusRuleId": {
            "description": "The service bus (or event hub) rule ID of the service bus (or event hub) namespace in which the Activity Log is streamed to.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The resource id of the storage account in which the Activity Log is stored.\n",
            "type": "string"
          }
        },
        "required": [
          "categories",
          "locations",
          "name",
          "retentionPolicies",
          "servicebusRuleId",
          "storageAccountId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:monitoring/getScheduledQueryRulesAlert:getScheduledQueryRulesAlert": {
      "description": "Use this data source to access the properties of an AlertingAction scheduled query rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.monitoring.getScheduledQueryRulesAlert({\n    name: \"tfex-queryrule\",\n    resourceGroupName: \"example-rg\",\n}));\n\nexport const queryRuleId = example.id;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.monitoring.get_scheduled_query_rules_alert(name=\"tfex-queryrule\",\n    resource_group_name=\"example-rg\")\npulumi.export(\"queryRuleId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Monitoring.GetScheduledQueryRulesAlert.InvokeAsync(new Azure.Monitoring.GetScheduledQueryRulesAlertArgs\n        {\n            Name = \"tfex-queryrule\",\n            ResourceGroupName = \"example-rg\",\n        }));\n        this.QueryRuleId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"queryRuleId\")]\n    public Output\u003cstring\u003e QueryRuleId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := monitoring.LookupScheduledQueryRulesAlert(ctx, \u0026monitoring.LookupScheduledQueryRulesAlertArgs{\n\t\t\tName:              \"tfex-queryrule\",\n\t\t\tResourceGroupName: \"example-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"queryRuleId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getScheduledQueryRulesAlert.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the scheduled query rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group where the scheduled query rule is located.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getScheduledQueryRulesAlert.\n",
        "properties": {
          "actions": {
            "description": "An `action` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/getScheduledQueryRulesAlertAction:getScheduledQueryRulesAlertAction"
            },
            "type": "array"
          },
          "authorizedResourceIds": {
            "description": "The list of Resource IDs referred into query.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataSourceId": {
            "description": "The resource URI over which log search query is to be run.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the scheduled query rule.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Whether this scheduled query rule is enabled.\n",
            "type": "boolean"
          },
          "frequency": {
            "description": "Frequency at which rule condition should be evaluated.\n",
            "type": "integer"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "query": {
            "description": "Log search query.\n",
            "type": "string"
          },
          "queryType": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "severity": {
            "description": "Severity of the alert.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "throttling": {
            "description": "Time for which alerts should be throttled or suppressed.\n",
            "type": "integer"
          },
          "timeWindow": {
            "description": "Time window for which data needs to be fetched for query.\n",
            "type": "integer"
          },
          "triggers": {
            "description": "A `trigger` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/getScheduledQueryRulesAlertTrigger:getScheduledQueryRulesAlertTrigger"
            },
            "type": "array"
          }
        },
        "required": [
          "actions",
          "authorizedResourceIds",
          "dataSourceId",
          "description",
          "enabled",
          "frequency",
          "location",
          "name",
          "query",
          "queryType",
          "resourceGroupName",
          "severity",
          "tags",
          "throttling",
          "timeWindow",
          "triggers",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:monitoring/getScheduledQueryRulesLog:getScheduledQueryRulesLog": {
      "description": "Use this data source to access the properties of a LogToMetricAction scheduled query rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.monitoring.getScheduledQueryRulesLog({\n    name: \"tfex-queryrule\",\n    resourceGroupName: \"example-rg\",\n}));\n\nexport const queryRuleId = example.id;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.monitoring.get_scheduled_query_rules_log(name=\"tfex-queryrule\",\n    resource_group_name=\"example-rg\")\npulumi.export(\"queryRuleId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Monitoring.GetScheduledQueryRulesLog.InvokeAsync(new Azure.Monitoring.GetScheduledQueryRulesLogArgs\n        {\n            Name = \"tfex-queryrule\",\n            ResourceGroupName = \"example-rg\",\n        }));\n        this.QueryRuleId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"queryRuleId\")]\n    public Output\u003cstring\u003e QueryRuleId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := monitoring.LookupScheduledQueryRulesLog(ctx, \u0026monitoring.LookupScheduledQueryRulesLogArgs{\n\t\t\tName:              \"tfex-queryrule\",\n\t\t\tResourceGroupName: \"example-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"queryRuleId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getScheduledQueryRulesLog.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the scheduled query rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group where the scheduled query rule is located.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getScheduledQueryRulesLog.\n",
        "properties": {
          "authorizedResourceIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "criterias": {
            "description": "A `criteria` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/getScheduledQueryRulesLogCriteria:getScheduledQueryRulesLogCriteria"
            },
            "type": "array"
          },
          "dataSourceId": {
            "description": "The resource URI over which log search query is to be run.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the scheduled query rule.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Whether this scheduled query rule is enabled.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "description": "Name of the dimension.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "authorizedResourceIds",
          "criterias",
          "dataSourceId",
          "description",
          "enabled",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:mssql/getDatabase:getDatabase": {
      "description": "Use this data source to access information about an existing SQL database.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.mssql.getDatabase({\n    name: \"example-mssql-db\",\n    serverId: \"example-mssql-server-id\",\n});\nexport const databaseId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.mssql.get_database(name=\"example-mssql-db\",\n    server_id=\"example-mssql-server-id\")\npulumi.export(\"databaseId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.MSSql.GetDatabase.InvokeAsync(new Azure.MSSql.GetDatabaseArgs\n        {\n            Name = \"example-mssql-db\",\n            ServerId = \"example-mssql-server-id\",\n        }));\n        this.DatabaseId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"databaseId\")]\n    public Output\u003cstring\u003e DatabaseId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mssql.LookupDatabase(ctx, \u0026mssql.LookupDatabaseArgs{\n\t\t\tName:     \"example-mssql-db\",\n\t\t\tServerId: \"example-mssql-server-id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"databaseId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDatabase.\n",
        "properties": {
          "name": {
            "description": "The name of the Ms SQL Database.\n",
            "type": "string"
          },
          "serverId": {
            "description": "The id of the Ms SQL Server on which to create the database.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "serverId"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDatabase.\n",
        "properties": {
          "collation": {
            "description": "The collation of the database.\n",
            "type": "string"
          },
          "elasticPoolId": {
            "description": "The id of the elastic pool containing this database.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "licenseType": {
            "description": "The license type to apply for this database.\n",
            "type": "string"
          },
          "maxSizeGb": {
            "description": "The max size of the database in gigabytes.\n",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "readReplicaCount": {
            "description": "The number of readonly secondary replicas associated with the database to which readonly application intent connections may be routed.\n",
            "type": "integer"
          },
          "readScale": {
            "description": "If enabled, connections that have application intent set to readonly in their connection string may be routed to a readonly secondary replica.\n",
            "type": "boolean"
          },
          "serverId": {
            "type": "string"
          },
          "skuName": {
            "description": "The name of the sku of the database.\n",
            "type": "string"
          },
          "storageAccountType": {
            "description": "The storage account type used to store backups for this database.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "zoneRedundant": {
            "description": "Whether or not this database is zone redundant, which means the replicas of this database will be spread across multiple availability zones.\n",
            "type": "boolean"
          }
        },
        "required": [
          "collation",
          "elasticPoolId",
          "licenseType",
          "maxSizeGb",
          "name",
          "readReplicaCount",
          "readScale",
          "serverId",
          "skuName",
          "storageAccountType",
          "tags",
          "zoneRedundant",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:mssql/getElasticPool:getElasticPool": {
      "description": "Use this data source to access information about an existing SQL elastic pool.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.mssql.getElasticPool({\n    name: \"mssqlelasticpoolname\",\n    resourceGroupName: \"example-resources\",\n    serverName: \"example-sql-server\",\n});\nexport const elasticpoolId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.mssql.get_elastic_pool(name=\"mssqlelasticpoolname\",\n    resource_group_name=\"example-resources\",\n    server_name=\"example-sql-server\")\npulumi.export(\"elasticpoolId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.MSSql.GetElasticPool.InvokeAsync(new Azure.MSSql.GetElasticPoolArgs\n        {\n            Name = \"mssqlelasticpoolname\",\n            ResourceGroupName = \"example-resources\",\n            ServerName = \"example-sql-server\",\n        }));\n        this.ElasticpoolId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"elasticpoolId\")]\n    public Output\u003cstring\u003e ElasticpoolId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mssql.LookupElasticPool(ctx, \u0026mssql.LookupElasticPoolArgs{\n\t\t\tName:              \"mssqlelasticpoolname\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t\tServerName:        \"example-sql-server\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"elasticpoolId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getElasticPool.\n",
        "properties": {
          "name": {
            "description": "The name of the elastic pool.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group which contains the elastic pool.\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the SQL Server which contains the elastic pool.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName",
          "serverName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getElasticPool.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "licenseType": {
            "description": "The license type to apply for this database.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists.\n",
            "type": "string"
          },
          "maxSizeBytes": {
            "description": "The max data size of the elastic pool in bytes.\n",
            "type": "integer"
          },
          "maxSizeGb": {
            "description": "The max data size of the elastic pool in gigabytes.\n",
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "perDbMaxCapacity": {
            "description": "The maximum capacity any one database can consume.\n",
            "type": "integer"
          },
          "perDbMinCapacity": {
            "description": "The minimum capacity all databases are guaranteed.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "serverName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "zoneRedundant": {
            "description": "Whether or not this elastic pool is zone redundant.\n",
            "type": "boolean"
          }
        },
        "required": [
          "licenseType",
          "location",
          "maxSizeBytes",
          "maxSizeGb",
          "name",
          "perDbMaxCapacity",
          "perDbMinCapacity",
          "resourceGroupName",
          "serverName",
          "tags",
          "zoneRedundant",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:mssql/getServer:getServer": {
      "description": "Use this data source to access information about an existing Microsoft SQL Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.mssql.getServer({\n    name: \"existingMsSqlServer\",\n    resourceGroupName: \"existingResGroup\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.mssql.get_server(name=\"existingMsSqlServer\",\n    resource_group_name=\"existingResGroup\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.MSSql.GetServer.InvokeAsync(new Azure.MSSql.GetServerArgs\n        {\n            Name = \"existingMsSqlServer\",\n            ResourceGroupName = \"existingResGroup\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mssql.LookupServer(ctx, \u0026mssql.LookupServerArgs{\n\t\t\tName:              \"existingMsSqlServer\",\n\t\t\tResourceGroupName: \"existingResGroup\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getServer.\n",
        "properties": {
          "name": {
            "description": "The name of this Microsoft SQL Server.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Microsoft SQL Server exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getServer.\n",
        "properties": {
          "administratorLogin": {
            "description": "The server's administrator login name.\n",
            "type": "string"
          },
          "fullyQualifiedDomainName": {
            "description": "The fully qualified domain name of the Azure SQL Server.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "A `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:mssql/getServerIdentity:getServerIdentity"
            },
            "type": "array"
          },
          "location": {
            "description": "The Azure Region where the Microsoft SQL Server exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "restorableDroppedDatabaseIds": {
            "description": "A list of dropped restorable database IDs on the server.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to this Microsoft SQL Server.\n",
            "type": "object"
          },
          "version": {
            "description": "This servers MS SQL version.\n",
            "type": "string"
          }
        },
        "required": [
          "administratorLogin",
          "fullyQualifiedDomainName",
          "identities",
          "location",
          "name",
          "resourceGroupName",
          "restorableDroppedDatabaseIds",
          "tags",
          "version",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:mysql/getServer:getServer": {
      "description": "Use this data source to access information about an existing MySQL Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.mysql.getServer({\n    name: \"existingMySqlServer\",\n    resourceGroupName: \"existingResGroup\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.mysql.get_server(name=\"existingMySqlServer\",\n    resource_group_name=\"existingResGroup\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.MySql.GetServer.InvokeAsync(new Azure.MySql.GetServerArgs\n        {\n            Name = \"existingMySqlServer\",\n            ResourceGroupName = \"existingResGroup\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mysql.LookupServer(ctx, \u0026mysql.LookupServerArgs{\n\t\t\tName:              \"existingMySqlServer\",\n\t\t\tResourceGroupName: \"existingResGroup\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getServer.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the MySQL Server.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group for the MySQL Server.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getServer.\n",
        "properties": {
          "administratorLogin": {
            "description": "The Administrator Login for the MySQL Server.\n",
            "type": "string"
          },
          "autoGrowEnabled": {
            "description": "The auto grow setting for this MySQL Server.\n",
            "type": "boolean"
          },
          "backupRetentionDays": {
            "description": "The backup retention days for this MySQL server.\n",
            "type": "integer"
          },
          "fqdn": {
            "description": "The FQDN of the MySQL Server.\n",
            "type": "string"
          },
          "geoRedundantBackupEnabled": {
            "description": "The geo redundant backup setting for this MySQL Server.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "An `identity` block for this MySQL server as defined below.\n",
            "items": {
              "$ref": "#/types/azure:mysql/getServerIdentity:getServerIdentity"
            },
            "type": "array"
          },
          "infrastructureEncryptionEnabled": {
            "description": "Whether or not infrastructure is encrypted for this MySQL Server.\n",
            "type": "boolean"
          },
          "location": {
            "description": "The Azure location where the resource exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether or not public network access is allowed for this MySQL Server.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "restorePointInTime": {
            "type": "string"
          },
          "skuName": {
            "description": "The SKU Name for this MySQL Server.\n",
            "type": "string"
          },
          "sslEnforcementEnabled": {
            "description": "Specifies if SSL should be enforced on connections for this MySQL Server.\n",
            "type": "boolean"
          },
          "sslMinimalTlsVersionEnforced": {
            "description": "The minimum TLS version to support for this MySQL Server.\n",
            "type": "string"
          },
          "storageMb": {
            "description": "Max storage allowed for this MySQL Server.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n---\n",
            "type": "object"
          },
          "threatDetectionPolicies": {
            "description": "Threat detection policy configuration, known in the API as Server Security Alerts Policy. The `threat_detection_policy` block exports fields documented below.\n",
            "items": {
              "$ref": "#/types/azure:mysql/getServerThreatDetectionPolicy:getServerThreatDetectionPolicy"
            },
            "type": "array"
          },
          "version": {
            "description": "The version of this MySQL Server.\n",
            "type": "string"
          }
        },
        "required": [
          "administratorLogin",
          "autoGrowEnabled",
          "backupRetentionDays",
          "fqdn",
          "geoRedundantBackupEnabled",
          "identities",
          "infrastructureEncryptionEnabled",
          "location",
          "name",
          "publicNetworkAccessEnabled",
          "resourceGroupName",
          "restorePointInTime",
          "skuName",
          "sslEnforcementEnabled",
          "sslMinimalTlsVersionEnforced",
          "storageMb",
          "tags",
          "threatDetectionPolicies",
          "version",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:netapp/getAccount:getAccount": {
      "description": "Uses this data source to access information about an existing NetApp Account.\n\n## NetApp Account Usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.netapp.getAccount({\n    resourceGroupName: \"acctestRG\",\n    name: \"acctestnetappaccount\",\n});\nexport const netappAccountId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.netapp.get_account(resource_group_name=\"acctestRG\",\n    name=\"acctestnetappaccount\")\npulumi.export(\"netappAccountId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.NetApp.GetAccount.InvokeAsync(new Azure.NetApp.GetAccountArgs\n        {\n            ResourceGroupName = \"acctestRG\",\n            Name = \"acctestnetappaccount\",\n        }));\n        this.NetappAccountId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"netappAccountId\")]\n    public Output\u003cstring\u003e NetappAccountId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/netapp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := netapp.LookupAccount(ctx, \u0026netapp.LookupAccountArgs{\n\t\t\tResourceGroupName: \"acctestRG\",\n\t\t\tName:              \"acctestnetappaccount\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"netappAccountId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n",
      "inputs": {
        "description": "A collection of arguments for invoking getAccount.\n",
        "properties": {
          "name": {
            "description": "The name of the NetApp Account.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the NetApp Account exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAccount.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the NetApp Account exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:netapp/getPool:getPool": {
      "description": "Uses this data source to access information about an existing NetApp Pool.\n\n\n## NetApp Pool Usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.netapp.getPool({\n    resourceGroupName: \"acctestRG\",\n    accountName: \"acctestnetappaccount\",\n    name: \"acctestnetapppool\",\n});\nexport const netappPoolId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.netapp.get_pool(resource_group_name=\"acctestRG\",\n    account_name=\"acctestnetappaccount\",\n    name=\"acctestnetapppool\")\npulumi.export(\"netappPoolId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.NetApp.GetPool.InvokeAsync(new Azure.NetApp.GetPoolArgs\n        {\n            ResourceGroupName = \"acctestRG\",\n            AccountName = \"acctestnetappaccount\",\n            Name = \"acctestnetapppool\",\n        }));\n        this.NetappPoolId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"netappPoolId\")]\n    public Output\u003cstring\u003e NetappPoolId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/netapp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := netapp.LookupPool(ctx, \u0026netapp.LookupPoolArgs{\n\t\t\tResourceGroupName: \"acctestRG\",\n\t\t\tAccountName:       \"acctestnetappaccount\",\n\t\t\tName:              \"acctestnetapppool\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"netappPoolId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n",
      "inputs": {
        "description": "A collection of arguments for invoking getPool.\n",
        "properties": {
          "accountName": {
            "description": "The name of the NetApp account where the NetApp pool exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the NetApp Pool.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the NetApp Pool exists.\n",
            "type": "string"
          }
        },
        "required": [
          "accountName",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPool.\n",
        "properties": {
          "accountName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the NetApp Pool exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "serviceLevel": {
            "description": "The service level of the file system.\n",
            "type": "string"
          },
          "sizeInTb": {
            "description": "Provisioned size of the pool in TB.\n",
            "type": "integer"
          }
        },
        "required": [
          "accountName",
          "location",
          "name",
          "resourceGroupName",
          "serviceLevel",
          "sizeInTb",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:netapp/getSnapshot:getSnapshot": {
      "description": "Uses this data source to access information about an existing NetApp Snapshot.\n\n## NetApp Snapshot Usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst test = azure.netapp.getSnapshot({\n    resourceGroupName: \"acctestRG\",\n    name: \"acctestnetappsnapshot\",\n    accountName: \"acctestnetappaccount\",\n    poolName: \"acctestnetapppool\",\n    volumeName: \"acctestnetappvolume\",\n});\nexport const netappSnapshotId = data.azurerm_netapp_snapshot.example.id;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ntest = azure.netapp.get_snapshot(resource_group_name=\"acctestRG\",\n    name=\"acctestnetappsnapshot\",\n    account_name=\"acctestnetappaccount\",\n    pool_name=\"acctestnetapppool\",\n    volume_name=\"acctestnetappvolume\")\npulumi.export(\"netappSnapshotId\", data[\"azurerm_netapp_snapshot\"][\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var test = Output.Create(Azure.NetApp.GetSnapshot.InvokeAsync(new Azure.NetApp.GetSnapshotArgs\n        {\n            ResourceGroupName = \"acctestRG\",\n            Name = \"acctestnetappsnapshot\",\n            AccountName = \"acctestnetappaccount\",\n            PoolName = \"acctestnetapppool\",\n            VolumeName = \"acctestnetappvolume\",\n        }));\n        this.NetappSnapshotId = data.Azurerm_netapp_snapshot.Example.Id;\n    }\n\n    [Output(\"netappSnapshotId\")]\n    public Output\u003cstring\u003e NetappSnapshotId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/netapp\"\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 := netapp.LookupSnapshot(ctx, \u0026netapp.LookupSnapshotArgs{\n\t\t\tResourceGroupName: \"acctestRG\",\n\t\t\tName:              \"acctestnetappsnapshot\",\n\t\t\tAccountName:       \"acctestnetappaccount\",\n\t\t\tPoolName:          \"acctestnetapppool\",\n\t\t\tVolumeName:        \"acctestnetappvolume\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"netappSnapshotId\", data.Azurerm_netapp_snapshot.Example.Id)\n\t\treturn nil\n\t})\n}\n```\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSnapshot.\n",
        "properties": {
          "accountName": {
            "description": "The name of the NetApp Account where the NetApp Pool exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the NetApp Snapshot.\n",
            "type": "string"
          },
          "poolName": {
            "description": "The name of the NetApp Pool where the NetApp Volume exists.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the NetApp Snapshot exists.\n",
            "type": "string"
          },
          "volumeName": {
            "description": "The name of the NetApp Volume where the NetApp Snapshot exists.\n",
            "type": "string"
          }
        },
        "required": [
          "accountName",
          "name",
          "poolName",
          "resourceGroupName",
          "volumeName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSnapshot.\n",
        "properties": {
          "accountName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the NetApp Snapshot exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "poolName": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "volumeName": {
            "type": "string"
          }
        },
        "required": [
          "accountName",
          "location",
          "name",
          "poolName",
          "resourceGroupName",
          "volumeName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:netapp/getVolume:getVolume": {
      "description": "Uses this data source to access information about an existing NetApp Volume.\n\n## NetApp Volume Usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.netapp.getVolume({\n    resourceGroupName: \"acctestRG\",\n    accountName: \"acctestnetappaccount\",\n    poolName: \"acctestnetapppool\",\n    name: \"example-volume\",\n});\nexport const netappVolumeId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.netapp.get_volume(resource_group_name=\"acctestRG\",\n    account_name=\"acctestnetappaccount\",\n    pool_name=\"acctestnetapppool\",\n    name=\"example-volume\")\npulumi.export(\"netappVolumeId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.NetApp.GetVolume.InvokeAsync(new Azure.NetApp.GetVolumeArgs\n        {\n            ResourceGroupName = \"acctestRG\",\n            AccountName = \"acctestnetappaccount\",\n            PoolName = \"acctestnetapppool\",\n            Name = \"example-volume\",\n        }));\n        this.NetappVolumeId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"netappVolumeId\")]\n    public Output\u003cstring\u003e NetappVolumeId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/netapp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := netapp.LookupVolume(ctx, \u0026netapp.LookupVolumeArgs{\n\t\t\tResourceGroupName: \"acctestRG\",\n\t\t\tAccountName:       \"acctestnetappaccount\",\n\t\t\tPoolName:          \"acctestnetapppool\",\n\t\t\tName:              \"example-volume\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"netappVolumeId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVolume.\n",
        "properties": {
          "accountName": {
            "description": "The name of the NetApp account where the NetApp pool exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the NetApp Volume.\n",
            "type": "string"
          },
          "poolName": {
            "description": "The name of the NetApp pool where the NetApp volume exists.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the NetApp Volume exists.\n",
            "type": "string"
          },
          "securityStyle": {
            "description": "Volume security style\n",
            "type": "string"
          }
        },
        "required": [
          "accountName",
          "name",
          "poolName",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVolume.\n",
        "properties": {
          "accountName": {
            "type": "string"
          },
          "dataProtectionReplications": {
            "description": "Volume data protection block\n*\n",
            "items": {
              "$ref": "#/types/azure:netapp/getVolumeDataProtectionReplication:getVolumeDataProtectionReplication"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the NetApp Volume exists.\n",
            "type": "string"
          },
          "mountIpAddresses": {
            "description": "A list of IPv4 Addresses which should be used to mount the volume.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "poolName": {
            "type": "string"
          },
          "protocols": {
            "description": "A list of protocol types enabled on volume.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "securityStyle": {
            "description": "Volume security style\n",
            "type": "string"
          },
          "serviceLevel": {
            "description": "The service level of the file system.\n",
            "type": "string"
          },
          "storageQuotaInGb": {
            "description": "The maximum Storage Quota in Gigabytes allowed for a file system.\n",
            "type": "integer"
          },
          "subnetId": {
            "description": "The ID of a Subnet in which the NetApp Volume resides.\n",
            "type": "string"
          },
          "volumePath": {
            "description": "The unique file path of the volume.\n",
            "type": "string"
          }
        },
        "required": [
          "accountName",
          "dataProtectionReplications",
          "location",
          "mountIpAddresses",
          "name",
          "poolName",
          "protocols",
          "resourceGroupName",
          "serviceLevel",
          "storageQuotaInGb",
          "subnetId",
          "volumePath",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getApplicationGateway:getApplicationGateway": {
      "description": "Use this data source to access information about an existing Application Gateway.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getApplicationGateway({\n    name: \"existing-app-gateway\",\n    resourceGroupName: \"existing-resources\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_application_gateway(name=\"existing-app-gateway\",\n    resource_group_name=\"existing-resources\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetApplicationGateway.InvokeAsync(new Azure.Network.GetApplicationGatewayArgs\n        {\n            Name = \"existing-app-gateway\",\n            ResourceGroupName = \"existing-resources\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupApplicationGateway(ctx, \u0026network.LookupApplicationGatewayArgs{\n\t\t\tName:              \"existing-app-gateway\",\n\t\t\tResourceGroupName: \"existing-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getApplicationGateway.\n",
        "properties": {
          "name": {
            "description": "The name of this Application Gateway.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Application Gateway exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getApplicationGateway.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "A `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/getApplicationGatewayIdentity:getApplicationGatewayIdentity"
            },
            "type": "array"
          },
          "location": {
            "description": "The Azure Region where the Application Gateway exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Application Gateway.\n",
            "type": "object"
          }
        },
        "required": [
          "identities",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getApplicationSecurityGroup:getApplicationSecurityGroup": {
      "description": "Use this data source to access information about an existing Application Security Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getApplicationSecurityGroup({\n    name: \"tf-appsecuritygroup\",\n    resourceGroupName: \"my-resource-group\",\n});\nexport const applicationSecurityGroupId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_application_security_group(name=\"tf-appsecuritygroup\",\n    resource_group_name=\"my-resource-group\")\npulumi.export(\"applicationSecurityGroupId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetApplicationSecurityGroup.InvokeAsync(new Azure.Network.GetApplicationSecurityGroupArgs\n        {\n            Name = \"tf-appsecuritygroup\",\n            ResourceGroupName = \"my-resource-group\",\n        }));\n        this.ApplicationSecurityGroupId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"applicationSecurityGroupId\")]\n    public Output\u003cstring\u003e ApplicationSecurityGroupId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupApplicationSecurityGroup(ctx, \u0026network.LookupApplicationSecurityGroupArgs{\n\t\t\tName:              \"tf-appsecuritygroup\",\n\t\t\tResourceGroupName: \"my-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"applicationSecurityGroupId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getApplicationSecurityGroup.\n",
        "properties": {
          "name": {
            "description": "The name of the Application Security Group.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Application Security Group exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getApplicationSecurityGroup.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The supported Azure location where the Application Security Group exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getExpressRouteCircuit:getExpressRouteCircuit": {
      "description": "Use this data source to access information about an existing ExpressRoute circuit.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getExpressRouteCircuit({\n    resourceGroupName: azurerm_resource_group.example.name,\n    name: azurerm_express_route_circuit.example.name,\n});\nexport const expressRouteCircuitId = example.then(example =\u003e example.id);\nexport const serviceKey = example.then(example =\u003e example.serviceKey);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_express_route_circuit(resource_group_name=azurerm_resource_group[\"example\"][\"name\"],\n    name=azurerm_express_route_circuit[\"example\"][\"name\"])\npulumi.export(\"expressRouteCircuitId\", example.id)\npulumi.export(\"serviceKey\", example.service_key)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetExpressRouteCircuit.InvokeAsync(new Azure.Network.GetExpressRouteCircuitArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n            Name = azurerm_express_route_circuit.Example.Name,\n        }));\n        this.ExpressRouteCircuitId = example.Apply(example =\u003e example.Id);\n        this.ServiceKey = example.Apply(example =\u003e example.ServiceKey);\n    }\n\n    [Output(\"expressRouteCircuitId\")]\n    public Output\u003cstring\u003e ExpressRouteCircuitId { get; set; }\n    [Output(\"serviceKey\")]\n    public Output\u003cstring\u003e ServiceKey { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupExpressRouteCircuit(ctx, \u0026network.LookupExpressRouteCircuitArgs{\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t\tName:              azurerm_express_route_circuit.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"expressRouteCircuitId\", example.Id)\n\t\tctx.Export(\"serviceKey\", example.ServiceKey)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getExpressRouteCircuit.\n",
        "properties": {
          "name": {
            "description": "The name of the ExpressRoute circuit.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the ExpressRoute circuit exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getExpressRouteCircuit.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the ExpressRoute circuit exists\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "peerings": {
            "description": "A `peerings` block for the ExpressRoute circuit as documented below\n",
            "items": {
              "$ref": "#/types/azure:network/getExpressRouteCircuitPeering:getExpressRouteCircuitPeering"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "serviceKey": {
            "description": "The string needed by the service provider to provision the ExpressRoute circuit.\n",
            "type": "string"
          },
          "serviceProviderProperties": {
            "description": "A `service_provider_properties` block for the ExpressRoute circuit as documented below\n",
            "items": {
              "$ref": "#/types/azure:network/getExpressRouteCircuitServiceProviderProperty:getExpressRouteCircuitServiceProviderProperty"
            },
            "type": "array"
          },
          "serviceProviderProvisioningState": {
            "description": "The ExpressRoute circuit provisioning state from your chosen service provider. Possible values are \"NotProvisioned\", \"Provisioning\", \"Provisioned\", and \"Deprovisioning\".\n",
            "type": "string"
          },
          "sku": {
            "$ref": "#/types/azure:network/getExpressRouteCircuitSku:getExpressRouteCircuitSku",
            "description": "A `sku` block for the ExpressRoute circuit as documented below.\n"
          }
        },
        "required": [
          "location",
          "name",
          "peerings",
          "resourceGroupName",
          "serviceKey",
          "serviceProviderProperties",
          "serviceProviderProvisioningState",
          "sku",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getFirewall:getFirewall": {
      "description": "Use this data source to access information about an existing Azure Firewall.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getFirewall({\n    name: \"firewall1\",\n    resourceGroupName: \"firewall-RG\",\n});\nexport const firewallPrivateIp = example.then(example =\u003e example.ipConfigurations?[0]?.privateIpAddress);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_firewall(name=\"firewall1\",\n    resource_group_name=\"firewall-RG\")\npulumi.export(\"firewallPrivateIp\", example.ip_configurations[0].private_ip_address)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetFirewall.InvokeAsync(new Azure.Network.GetFirewallArgs\n        {\n            Name = \"firewall1\",\n            ResourceGroupName = \"firewall-RG\",\n        }));\n        this.FirewallPrivateIp = example.Apply(example =\u003e example.IpConfigurations?[0]?.PrivateIpAddress);\n    }\n\n    [Output(\"firewallPrivateIp\")]\n    public Output\u003cstring\u003e FirewallPrivateIp { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupFirewall(ctx, \u0026network.LookupFirewallArgs{\n\t\t\tName:              \"firewall1\",\n\t\t\tResourceGroupName: \"firewall-RG\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firewallPrivateIp\", example.IpConfigurations[0].PrivateIpAddress)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getFirewall.\n",
        "properties": {
          "name": {
            "description": "The name of the Azure Firewall.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Azure Firewall exists.\n",
            "type": "string"
          },
          "zones": {
            "description": "The availability zones in which the Azure Firewall is created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getFirewall.\n",
        "properties": {
          "dnsServers": {
            "description": "The list of DNS servers that the Azure Firewall will direct DNS traffic to the for name resolution.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "firewallPolicyId": {
            "description": "The ID of the Firewall Policy applied to the Azure Firewall.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "ipConfigurations": {
            "description": "A `ip_configuration` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/getFirewallIpConfiguration:getFirewallIpConfiguration"
            },
            "type": "array"
          },
          "location": {
            "description": "The Azure location where the Azure Firewall exists.\n",
            "type": "string"
          },
          "managementIpConfigurations": {
            "description": "A `management_ip_configuration` block as defined below, which allows force-tunnelling of traffic to be performed by the firewall.\n",
            "items": {
              "$ref": "#/types/azure:network/getFirewallManagementIpConfiguration:getFirewallManagementIpConfiguration"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "skuName": {
            "description": "The sku name of the Azure Firewall.\n",
            "type": "string"
          },
          "skuTier": {
            "description": "The sku tier of the Azure Firewall.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Azure Firewall.\n",
            "type": "object"
          },
          "threatIntelMode": {
            "description": "The operation mode for threat intelligence-based filtering.\n",
            "type": "string"
          },
          "virtualHubs": {
            "description": "A `virtual_hub` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/getFirewallVirtualHub:getFirewallVirtualHub"
            },
            "type": "array"
          },
          "zones": {
            "description": "The availability zones in which the Azure Firewall is created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "dnsServers",
          "firewallPolicyId",
          "ipConfigurations",
          "location",
          "managementIpConfigurations",
          "name",
          "resourceGroupName",
          "skuName",
          "skuTier",
          "tags",
          "threatIntelMode",
          "virtualHubs",
          "zones",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getFirewallPolicy:getFirewallPolicy": {
      "description": "Use this data source to access information about an existing Firewall Policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getFirewallPolicy({\n    name: \"existing\",\n    resourceGroupName: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_firewall_policy(name=\"existing\",\n    resource_group_name=\"existing\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetFirewallPolicy.InvokeAsync(new Azure.Network.GetFirewallPolicyArgs\n        {\n            Name = \"existing\",\n            ResourceGroupName = \"existing\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupFirewallPolicy(ctx, \u0026network.LookupFirewallPolicyArgs{\n\t\t\tName:              \"existing\",\n\t\t\tResourceGroupName: \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getFirewallPolicy.\n",
        "properties": {
          "name": {
            "description": "The name of this Firewall Policy.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Firewall Policy exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getFirewallPolicy.\n",
        "properties": {
          "basePolicyId": {
            "type": "string"
          },
          "childPolicies": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dns": {
            "items": {
              "$ref": "#/types/azure:network/getFirewallPolicyDn:getFirewallPolicyDn"
            },
            "type": "array"
          },
          "firewalls": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "ruleCollectionGroups": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Firewall Policy.\n",
            "type": "object"
          },
          "threatIntelligenceAllowlists": {
            "items": {
              "$ref": "#/types/azure:network/getFirewallPolicyThreatIntelligenceAllowlist:getFirewallPolicyThreatIntelligenceAllowlist"
            },
            "type": "array"
          },
          "threatIntelligenceMode": {
            "type": "string"
          }
        },
        "required": [
          "basePolicyId",
          "childPolicies",
          "dns",
          "firewalls",
          "location",
          "name",
          "resourceGroupName",
          "ruleCollectionGroups",
          "tags",
          "threatIntelligenceAllowlists",
          "threatIntelligenceMode",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getGatewayConnection:getGatewayConnection": {
      "description": "Use this data source to access information about an existing Virtual Network Gateway Connection.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getGatewayConnection({\n    name: \"production\",\n    resourceGroupName: \"networking\",\n});\nexport const virtualNetworkGatewayConnectionId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_gateway_connection(name=\"production\",\n    resource_group_name=\"networking\")\npulumi.export(\"virtualNetworkGatewayConnectionId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetGatewayConnection.InvokeAsync(new Azure.Network.GetGatewayConnectionArgs\n        {\n            Name = \"production\",\n            ResourceGroupName = \"networking\",\n        }));\n        this.VirtualNetworkGatewayConnectionId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"virtualNetworkGatewayConnectionId\")]\n    public Output\u003cstring\u003e VirtualNetworkGatewayConnectionId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.GetGatewayConnection(ctx, \u0026network.GetGatewayConnectionArgs{\n\t\t\tName:              \"production\",\n\t\t\tResourceGroupName: \"networking\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"virtualNetworkGatewayConnectionId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getGatewayConnection.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Virtual Network Gateway Connection.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Virtual Network Gateway Connection is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getGatewayConnection.\n",
        "properties": {
          "authorizationKey": {
            "description": "The authorization key associated with the\nExpress Route Circuit. This field is present only if the type is an\nExpressRoute connection.\n",
            "type": "string"
          },
          "connectionProtocol": {
            "type": "string"
          },
          "dpdTimeoutSeconds": {
            "description": "The dead peer detection timeout of this connection in seconds.\n",
            "type": "integer"
          },
          "egressBytesTransferred": {
            "type": "integer"
          },
          "enableBgp": {
            "description": "If `true`, BGP (Border Gateway Protocol) is enabled\nfor this connection.\n",
            "type": "boolean"
          },
          "expressRouteCircuitId": {
            "description": "The ID of the Express Route Circuit\n(i.e. when `type` is `ExpressRoute`).\n",
            "type": "string"
          },
          "expressRouteGatewayBypass": {
            "description": "If `true`, data packets will bypass ExpressRoute Gateway for data forwarding. This is only valid for ExpressRoute connections.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "ingressBytesTransferred": {
            "type": "integer"
          },
          "ipsecPolicies": {
            "items": {
              "$ref": "#/types/azure:network/getGatewayConnectionIpsecPolicy:getGatewayConnectionIpsecPolicy"
            },
            "type": "array"
          },
          "localAzureIpAddressEnabled": {
            "description": "Use private local Azure IP for the connection.\n",
            "type": "boolean"
          },
          "localNetworkGatewayId": {
            "description": "The ID of the local network gateway\nwhen a Site-to-Site connection (i.e. when `type` is `IPsec`).\n",
            "type": "string"
          },
          "location": {
            "description": "The location/region where the connection is\nlocated.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "peerVirtualNetworkGatewayId": {
            "description": "The ID of the peer virtual\nnetwork gateway when a VNet-to-VNet connection (i.e. when `type`\nis `Vnet2Vnet`).\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "resourceGuid": {
            "type": "string"
          },
          "routingWeight": {
            "description": "The routing weight.\n",
            "type": "integer"
          },
          "sharedKey": {
            "description": "The shared IPSec key.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "trafficSelectorPolicies": {
            "items": {
              "$ref": "#/types/azure:network/getGatewayConnectionTrafficSelectorPolicy:getGatewayConnectionTrafficSelectorPolicy"
            },
            "type": "array"
          },
          "type": {
            "description": "The type of connection. Valid options are `IPsec`\n(Site-to-Site), `ExpressRoute` (ExpressRoute), and `Vnet2Vnet` (VNet-to-VNet).\n",
            "type": "string"
          },
          "usePolicyBasedTrafficSelectors": {
            "description": "If `true`, policy-based traffic\nselectors are enabled for this connection. Enabling policy-based traffic\nselectors requires an `ipsec_policy` block.\n",
            "type": "boolean"
          },
          "virtualNetworkGatewayId": {
            "description": "The ID of the Virtual Network Gateway\nin which the connection is created.\n",
            "type": "string"
          }
        },
        "required": [
          "authorizationKey",
          "connectionProtocol",
          "dpdTimeoutSeconds",
          "egressBytesTransferred",
          "enableBgp",
          "expressRouteCircuitId",
          "expressRouteGatewayBypass",
          "ingressBytesTransferred",
          "ipsecPolicies",
          "localAzureIpAddressEnabled",
          "localNetworkGatewayId",
          "location",
          "name",
          "peerVirtualNetworkGatewayId",
          "resourceGroupName",
          "resourceGuid",
          "routingWeight",
          "sharedKey",
          "tags",
          "trafficSelectorPolicies",
          "type",
          "usePolicyBasedTrafficSelectors",
          "virtualNetworkGatewayId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getIpGroup:getIpGroup": {
      "description": "Use this data source to access information about an existing IP Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getIpGroup({\n    name: \"example1-ipgroup\",\n    resourceGroupName: \"example-rg\",\n});\nexport const cidrs = example.then(example =\u003e example.cidrs);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_ip_group(name=\"example1-ipgroup\",\n    resource_group_name=\"example-rg\")\npulumi.export(\"cidrs\", example.cidrs)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetIpGroup.InvokeAsync(new Azure.Network.GetIpGroupArgs\n        {\n            Name = \"example1-ipgroup\",\n            ResourceGroupName = \"example-rg\",\n        }));\n        this.Cidrs = example.Apply(example =\u003e example.Cidrs);\n    }\n\n    [Output(\"cidrs\")]\n    public Output\u003cstring\u003e Cidrs { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.GetIpGroup(ctx, \u0026network.GetIpGroupArgs{\n\t\t\tName:              \"example1-ipgroup\",\n\t\t\tResourceGroupName: \"example-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cidrs\", example.Cidrs)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getIpGroup.\n",
        "properties": {
          "name": {
            "description": "Specifies the Name of the IP Group.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the Name of the Resource Group within which the IP Group exists\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getIpGroup.\n",
        "properties": {
          "cidrs": {
            "description": "A list of CIDRs or IP addresses.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The supported Azure location where the resource exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "cidrs",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getLocalNetworkGateway:getLocalNetworkGateway": {
      "description": "Use this data source to access information about an existing Local Network Gateway.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getLocalNetworkGateway({\n    name: \"existing-local-network-gateway\",\n    resourceGroupName: \"existing-resources\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_local_network_gateway(name=\"existing-local-network-gateway\",\n    resource_group_name=\"existing-resources\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetLocalNetworkGateway.InvokeAsync(new Azure.Network.GetLocalNetworkGatewayArgs\n        {\n            Name = \"existing-local-network-gateway\",\n            ResourceGroupName = \"existing-resources\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupLocalNetworkGateway(ctx, \u0026network.LookupLocalNetworkGatewayArgs{\n\t\t\tName:              \"existing-local-network-gateway\",\n\t\t\tResourceGroupName: \"existing-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getLocalNetworkGateway.\n",
        "properties": {
          "name": {
            "description": "The name of the Local Network Gateway.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Local Network Gateway exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getLocalNetworkGateway.\n",
        "properties": {
          "addressSpaces": {
            "description": "The list of string CIDRs representing the address spaces the gateway exposes.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "bgpSettings": {
            "description": "A `bgp_settings` block as defined below containing the Local Network Gateway's BGP speaker settings.\n",
            "items": {
              "$ref": "#/types/azure:network/getLocalNetworkGatewayBgpSetting:getLocalNetworkGatewayBgpSetting"
            },
            "type": "array"
          },
          "gatewayAddress": {
            "description": "The gateway IP address the Local Network Gateway uses.\n",
            "type": "string"
          },
          "gatewayFqdn": {
            "description": "The gateway FQDN the Local Network Gateway uses.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Local Network Gateway exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Local Network Gateway.\n",
            "type": "object"
          }
        },
        "required": [
          "addressSpaces",
          "bgpSettings",
          "gatewayAddress",
          "gatewayFqdn",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getNatGateway:getNatGateway": {
      "description": "Use this data source to access information about an existing NAT Gateway.\n",
      "inputs": {
        "description": "A collection of arguments for invoking getNatGateway.\n",
        "properties": {
          "name": {
            "description": "Specifies the Name of the NAT Gateway.\n",
            "type": "string"
          },
          "publicIpAddressIds": {
            "description": "A list of existing Public IP Address resource IDs which the NAT Gateway is using.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "publicIpPrefixIds": {
            "description": "A list of existing Public IP Prefix resource IDs which the NAT Gateway is using.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where the NAT Gateway exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNatGateway.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "idleTimeoutInMinutes": {
            "description": "The idle timeout in minutes which is used for the NAT Gateway.\n",
            "type": "integer"
          },
          "location": {
            "description": "The location where the NAT Gateway exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "publicIpAddressIds": {
            "description": "A list of existing Public IP Address resource IDs which the NAT Gateway is using.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "publicIpPrefixIds": {
            "description": "A list of existing Public IP Prefix resource IDs which the NAT Gateway is using.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "resourceGuid": {
            "description": "The Resource GUID of the NAT Gateway.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The SKU used by the NAT Gateway.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "zones": {
            "description": "A list of Availability Zones which the NAT Gateway exists in.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "idleTimeoutInMinutes",
          "location",
          "name",
          "publicIpAddressIds",
          "publicIpPrefixIds",
          "resourceGroupName",
          "resourceGuid",
          "skuName",
          "tags",
          "zones",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getNetworkDdosProtectionPlan:getNetworkDdosProtectionPlan": {
      "description": "Use this data source to access information about an existing Azure Network DDoS Protection Plan.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getNetworkDdosProtectionPlan({\n    name: azurerm_network_ddos_protection_plan.example.name,\n    resourceGroupName: azurerm_network_ddos_protection_plan.example.resource_group_name,\n});\nexport const ddosProtectionPlanId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_network_ddos_protection_plan(name=azurerm_network_ddos_protection_plan[\"example\"][\"name\"],\n    resource_group_name=azurerm_network_ddos_protection_plan[\"example\"][\"resource_group_name\"])\npulumi.export(\"ddosProtectionPlanId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetNetworkDdosProtectionPlan.InvokeAsync(new Azure.Network.GetNetworkDdosProtectionPlanArgs\n        {\n            Name = azurerm_network_ddos_protection_plan.Example.Name,\n            ResourceGroupName = azurerm_network_ddos_protection_plan.Example.Resource_group_name,\n        }));\n        this.DdosProtectionPlanId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"ddosProtectionPlanId\")]\n    public Output\u003cstring\u003e DdosProtectionPlanId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.GetNetworkDdosProtectionPlan(ctx, \u0026network.GetNetworkDdosProtectionPlanArgs{\n\t\t\tName:              azurerm_network_ddos_protection_plan.Example.Name,\n\t\t\tResourceGroupName: azurerm_network_ddos_protection_plan.Example.Resource_group_name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ddosProtectionPlanId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getNetworkDdosProtectionPlan.\n",
        "properties": {
          "name": {
            "description": "The name of the Network DDoS Protection Plan.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the Network DDoS Protection Plan exists.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNetworkDdosProtectionPlan.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "virtualNetworkIds": {
            "description": "A list of ID's of the Virtual Networks associated with this DDoS Protection Plan.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "virtualNetworkIds",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getNetworkInterface:getNetworkInterface": {
      "description": "Use this data source to access information about an existing Network Interface.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getNetworkInterface({\n    name: \"acctest-nic\",\n    resourceGroupName: \"networking\",\n});\nexport const networkInterfaceId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_network_interface(name=\"acctest-nic\",\n    resource_group_name=\"networking\")\npulumi.export(\"networkInterfaceId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetNetworkInterface.InvokeAsync(new Azure.Network.GetNetworkInterfaceArgs\n        {\n            Name = \"acctest-nic\",\n            ResourceGroupName = \"networking\",\n        }));\n        this.NetworkInterfaceId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"networkInterfaceId\")]\n    public Output\u003cstring\u003e NetworkInterfaceId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupNetworkInterface(ctx, \u0026network.LookupNetworkInterfaceArgs{\n\t\t\tName:              \"acctest-nic\",\n\t\t\tResourceGroupName: \"networking\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"networkInterfaceId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getNetworkInterface.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Network Interface.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Network Interface is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNetworkInterface.\n",
        "properties": {
          "appliedDnsServers": {
            "description": "List of DNS servers applied to the specified Network Interface.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dnsServers": {
            "description": "The list of DNS servers used by the specified Network Interface.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "enableAcceleratedNetworking": {
            "description": "Indicates if accelerated networking is set on the specified Network Interface.\n",
            "type": "boolean"
          },
          "enableIpForwarding": {
            "description": "Indicate if IP forwarding is set on the specified Network Interface.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "internalDnsNameLabel": {
            "description": "The internal dns name label of the specified Network Interface.\n",
            "type": "string"
          },
          "ipConfigurations": {
            "description": "One or more `ip_configuration` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/getNetworkInterfaceIpConfiguration:getNetworkInterfaceIpConfiguration"
            },
            "type": "array"
          },
          "location": {
            "description": "The location of the specified Network Interface.\n",
            "type": "string"
          },
          "macAddress": {
            "description": "The MAC address used by the specified Network Interface.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the IP Configuration.\n",
            "type": "string"
          },
          "networkSecurityGroupId": {
            "description": "The ID of the network security group associated to the specified Network Interface.\n",
            "type": "string"
          },
          "privateIpAddress": {
            "description": "The Private IP Address assigned to this Network Interface.\n",
            "type": "string"
          },
          "privateIpAddresses": {
            "description": "The list of private ip addresses associates to the specified Network Interface.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "List the tags associated to the specified Network Interface.\n",
            "type": "object"
          },
          "virtualMachineId": {
            "description": "The ID of the virtual machine that the specified Network Interface is attached to.\n",
            "type": "string"
          }
        },
        "required": [
          "appliedDnsServers",
          "dnsServers",
          "enableAcceleratedNetworking",
          "enableIpForwarding",
          "internalDnsNameLabel",
          "ipConfigurations",
          "location",
          "macAddress",
          "name",
          "networkSecurityGroupId",
          "privateIpAddress",
          "privateIpAddresses",
          "resourceGroupName",
          "tags",
          "virtualMachineId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getNetworkSecurityGroup:getNetworkSecurityGroup": {
      "description": "Use this data source to access information about an existing Network Security Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getNetworkSecurityGroup({\n    name: \"example\",\n    resourceGroupName: azurerm_resource_group.example.name,\n});\nexport const location = example.then(example =\u003e example.location);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_network_security_group(name=\"example\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\npulumi.export(\"location\", example.location)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetNetworkSecurityGroup.InvokeAsync(new Azure.Network.GetNetworkSecurityGroupArgs\n        {\n            Name = \"example\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n        this.Location = example.Apply(example =\u003e example.Location);\n    }\n\n    [Output(\"location\")]\n    public Output\u003cstring\u003e Location { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupNetworkSecurityGroup(ctx, \u0026network.LookupNetworkSecurityGroupArgs{\n\t\t\tName:              \"example\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"location\", example.Location)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getNetworkSecurityGroup.\n",
        "properties": {
          "name": {
            "description": "Specifies the Name of the Network Security Group.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the Name of the Resource Group within which the Network Security Group exists\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNetworkSecurityGroup.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The supported Azure location where the resource exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the security rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "securityRules": {
            "description": "One or more `security_rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/getNetworkSecurityGroupSecurityRule:getNetworkSecurityGroupSecurityRule"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "securityRules",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getNetworkWatcher:getNetworkWatcher": {
      "description": "Use this data source to access information about an existing Network Watcher.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getNetworkWatcher({\n    name: azurerm_network_watcher.example.name,\n    resourceGroupName: azurerm_resource_group.example.name,\n});\nexport const networkWatcherId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_network_watcher(name=azurerm_network_watcher[\"example\"][\"name\"],\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\npulumi.export(\"networkWatcherId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetNetworkWatcher.InvokeAsync(new Azure.Network.GetNetworkWatcherArgs\n        {\n            Name = azurerm_network_watcher.Example.Name,\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n        this.NetworkWatcherId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"networkWatcherId\")]\n    public Output\u003cstring\u003e NetworkWatcherId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupNetworkWatcher(ctx, \u0026network.LookupNetworkWatcherArgs{\n\t\t\tName:              azurerm_network_watcher.Example.Name,\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"networkWatcherId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getNetworkWatcher.\n",
        "properties": {
          "name": {
            "description": "Specifies the Name of the Network Watcher.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the Name of the Resource Group within which the Network Watcher exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNetworkWatcher.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The supported Azure location where the resource exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getPublicIP:getPublicIP": {
      "description": "Use this data source to access information about an existing Public IP Address.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Reference An Existing)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getPublicIP({\n    name: \"name_of_public_ip\",\n    resourceGroupName: \"name_of_resource_group\",\n});\nexport const domainNameLabel = example.then(example =\u003e example.domainNameLabel);\nexport const publicIpAddress = example.then(example =\u003e example.ipAddress);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_public_ip(name=\"name_of_public_ip\",\n    resource_group_name=\"name_of_resource_group\")\npulumi.export(\"domainNameLabel\", example.domain_name_label)\npulumi.export(\"publicIpAddress\", example.ip_address)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetPublicIP.InvokeAsync(new Azure.Network.GetPublicIPArgs\n        {\n            Name = \"name_of_public_ip\",\n            ResourceGroupName = \"name_of_resource_group\",\n        }));\n        this.DomainNameLabel = example.Apply(example =\u003e example.DomainNameLabel);\n        this.PublicIpAddress = example.Apply(example =\u003e example.IpAddress);\n    }\n\n    [Output(\"domainNameLabel\")]\n    public Output\u003cstring\u003e DomainNameLabel { get; set; }\n    [Output(\"publicIpAddress\")]\n    public Output\u003cstring\u003e PublicIpAddress { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.GetPublicIP(ctx, \u0026network.GetPublicIPArgs{\n\t\t\tName:              \"name_of_public_ip\",\n\t\t\tResourceGroupName: \"name_of_resource_group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"domainNameLabel\", example.DomainNameLabel)\n\t\tctx.Export(\"publicIpAddress\", example.IpAddress)\n\t\treturn nil\n\t})\n}\n```\n\n{{% /example %}}\n{{% example %}}\n### Retrieve The Dynamic Public IP Of A New VM)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Dynamic\",\n    idleTimeoutInMinutes: 30,\n    tags: {\n        environment: \"test\",\n    },\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"testconfiguration1\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Static\",\n        privateIpAddress: \"10.0.2.5\",\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst exampleVirtualMachine = new azure.compute.VirtualMachine(\"exampleVirtualMachine\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    networkInterfaceIds: [exampleNetworkInterface.id],\n});\n// ...\nconst examplePublicIP = pulumi.all([examplePublicIp.name, exampleVirtualMachine.resourceGroupName]).apply(([name, resourceGroupName]) =\u003e azure.network.getPublicIP({\n    name: name,\n    resourceGroupName: resourceGroupName,\n}));\nexport const publicIpAddress = examplePublicIp.ipAddress;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Dynamic\",\n    idle_timeout_in_minutes=30,\n    tags={\n        \"environment\": \"test\",\n    })\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"testconfiguration1\",\n        subnet_id=example_subnet.id,\n        private_ip_address_allocation=\"Static\",\n        private_ip_address=\"10.0.2.5\",\n        public_ip_address_id=example_public_ip.id,\n    )])\nexample_virtual_machine = azure.compute.VirtualMachine(\"exampleVirtualMachine\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    network_interface_ids=[example_network_interface.id])\n# ...\nexample_public_ip = pulumi.Output.all(example_public_ip.name, example_virtual_machine.resource_group_name).apply(lambda name, resource_group_name: azure.network.get_public_ip(name=name,\n    resource_group_name=resource_group_name))\npulumi.export(\"publicIpAddress\", example_public_ip.ip_address)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Dynamic\",\n            IdleTimeoutInMinutes = 30,\n            Tags = \n            {\n                { \"environment\", \"test\" },\n            },\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"testconfiguration1\",\n                    SubnetId = exampleSubnet.Id,\n                    PrivateIpAddressAllocation = \"Static\",\n                    PrivateIpAddress = \"10.0.2.5\",\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var exampleVirtualMachine = new Azure.Compute.VirtualMachine(\"exampleVirtualMachine\", new Azure.Compute.VirtualMachineArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            NetworkInterfaceIds = \n            {\n                exampleNetworkInterface.Id,\n            },\n        });\n        // ...\n        var examplePublicIP = Output.Tuple(examplePublicIp.Name, exampleVirtualMachine.ResourceGroupName).Apply(values =\u003e\n        {\n            var name = values.Item1;\n            var resourceGroupName = values.Item2;\n            return Azure.Network.GetPublicIP.InvokeAsync(new Azure.Network.GetPublicIPArgs\n            {\n                Name = name,\n                ResourceGroupName = resourceGroupName,\n            });\n        });\n        this.PublicIpAddress = examplePublicIp.IpAddress;\n    }\n\n    [Output(\"publicIpAddress\")]\n    public Output\u003cstring\u003e PublicIpAddress { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:             exampleResourceGroup.Location,\n\t\t\tResourceGroupName:    exampleResourceGroup.Name,\n\t\t\tAllocationMethod:     pulumi.String(\"Dynamic\"),\n\t\t\tIdleTimeoutInMinutes: pulumi.Int(30),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"test\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkInterface, err := network.NewNetworkInterface(ctx, \"exampleNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"testconfiguration1\"),\n\t\t\t\t\tSubnetId:                   exampleSubnet.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Static\"),\n\t\t\t\t\tPrivateIpAddress:           pulumi.String(\"10.0.2.5\"),\n\t\t\t\t\tPublicIpAddressId:          examplePublicIp.ID(),\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\texampleVirtualMachine, err := compute.NewVirtualMachine(ctx, \"exampleVirtualMachine\", \u0026compute.VirtualMachineArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNetworkInterfaceIds: pulumi.StringArray{\n\t\t\t\texampleNetworkInterface.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"publicIpAddress\", examplePublicIp.IpAddress)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getPublicIP.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the public IP address.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assigned to the resource.\n",
            "type": "object"
          },
          "zones": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPublicIP.\n",
        "properties": {
          "allocationMethod": {
            "type": "string"
          },
          "domainNameLabel": {
            "description": "The label for the Domain Name.\n",
            "type": "string"
          },
          "fqdn": {
            "description": "Fully qualified domain name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "idleTimeoutInMinutes": {
            "description": "Specifies the timeout for the TCP idle connection.\n",
            "type": "integer"
          },
          "ipAddress": {
            "description": "The IP address value that was allocated.\n",
            "type": "string"
          },
          "ipTags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assigned to the resource.\n",
            "type": "object"
          },
          "ipVersion": {
            "description": "The IP version being used, for example `IPv4` or `IPv6`.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "reverseFqdn": {
            "type": "string"
          },
          "sku": {
            "description": "The SKU of the Public IP.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assigned to the resource.\n",
            "type": "object"
          },
          "zones": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "allocationMethod",
          "domainNameLabel",
          "fqdn",
          "idleTimeoutInMinutes",
          "ipAddress",
          "ipTags",
          "ipVersion",
          "location",
          "name",
          "resourceGroupName",
          "reverseFqdn",
          "sku",
          "zones",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getPublicIPs:getPublicIPs": {
      "description": "Use this data source to access information about a set of existing Public IP Addresses.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.network.getPublicIPs({\n    attached: false,\n    resourceGroupName: \"pip-test\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_public_i_ps(attached=False,\n    resource_group_name=\"pip-test\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetPublicIPs.InvokeAsync(new Azure.Network.GetPublicIPsArgs\n        {\n            Attached = false,\n            ResourceGroupName = \"pip-test\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := false\n\t\t_, err := network.GetPublicIPs(ctx, \u0026network.GetPublicIPsArgs{\n\t\t\tAttached:          \u0026opt0,\n\t\t\tResourceGroupName: \"pip-test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getPublicIPs.\n",
        "properties": {
          "allocationType": {
            "description": "The Allocation Type for the Public IP Address. Possible values include `Static` or `Dynamic`.\n",
            "type": "string"
          },
          "attached": {
            "description": "Filter to include IP Addresses which are attached to a device, such as a VM/LB (`true`) or unattached (`false`).\n",
            "type": "boolean"
          },
          "namePrefix": {
            "description": "A prefix match used for the IP Addresses `name` field, case sensitive.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group.\n",
            "type": "string"
          }
        },
        "required": [
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPublicIPs.\n",
        "properties": {
          "allocationType": {
            "type": "string"
          },
          "attached": {
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "namePrefix": {
            "type": "string"
          },
          "publicIps": {
            "description": "A List of `public_ips` blocks as defined below filtered by the criteria above.\n",
            "items": {
              "$ref": "#/types/azure:network/getPublicIPsPublicIp:getPublicIPsPublicIp"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "required": [
          "publicIps",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getPublicIpPrefix:getPublicIpPrefix": {
      "description": "Use this data source to access information about an existing Public IP Prefix.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Reference An Existing)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getPublicIpPrefix({\n    name: \"name_of_public_ip\",\n    resourceGroupName: \"name_of_resource_group\",\n});\nexport const publicIpPrefix = example.then(example =\u003e example.ipPrefix);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_public_ip_prefix(name=\"name_of_public_ip\",\n    resource_group_name=\"name_of_resource_group\")\npulumi.export(\"publicIpPrefix\", example.ip_prefix)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetPublicIpPrefix.InvokeAsync(new Azure.Network.GetPublicIpPrefixArgs\n        {\n            Name = \"name_of_public_ip\",\n            ResourceGroupName = \"name_of_resource_group\",\n        }));\n        this.PublicIpPrefix = example.Apply(example =\u003e example.IpPrefix);\n    }\n\n    [Output(\"publicIpPrefix\")]\n    public Output\u003cstring\u003e PublicIpPrefix { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupPublicIpPrefix(ctx, \u0026network.LookupPublicIpPrefixArgs{\n\t\t\tName:              \"name_of_public_ip\",\n\t\t\tResourceGroupName: \"name_of_resource_group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"publicIpPrefix\", example.IpPrefix)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getPublicIpPrefix.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the public IP prefix.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group.\n",
            "type": "string"
          },
          "zones": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPublicIpPrefix.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "ipPrefix": {
            "type": "string"
          },
          "location": {
            "description": "The supported Azure location where the resource exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Public IP prefix resource.\n",
            "type": "string"
          },
          "prefixLength": {
            "description": "The number of bits of the prefix.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the public IP.\n",
            "type": "string"
          },
          "sku": {
            "description": "The SKU of the Public IP Prefix.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assigned to the resource.\n",
            "type": "object"
          },
          "zones": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "ipPrefix",
          "location",
          "name",
          "prefixLength",
          "resourceGroupName",
          "sku",
          "tags",
          "zones",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getRouteFilter:getRouteFilter": {
      "description": "Use this data source to access information about an existing Route Filter.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getRouteFilter({\n    name: \"existing\",\n    resourceGroupName: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_route_filter(name=\"existing\",\n    resource_group_name=\"existing\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetRouteFilter.InvokeAsync(new Azure.Network.GetRouteFilterArgs\n        {\n            Name = \"existing\",\n            ResourceGroupName = \"existing\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupRouteFilter(ctx, \u0026network.LookupRouteFilterArgs{\n\t\t\tName:              \"existing\",\n\t\t\tResourceGroupName: \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getRouteFilter.\n",
        "properties": {
          "name": {
            "description": "The Name of this Route Filter.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Route Filter exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getRouteFilter.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Route Filter exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The Name of Route Filter Rule\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "rules": {
            "description": "A `rule` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/getRouteFilterRule:getRouteFilterRule"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Route Filter.\n",
            "type": "object"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "rules",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getRouteTable:getRouteTable": {
      "description": "Use this data source to access information about an existing Route Table.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.network.getRouteTable({\n    name: \"myroutetable\",\n    resourceGroupName: \"some-resource-group\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_route_table(name=\"myroutetable\",\n    resource_group_name=\"some-resource-group\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetRouteTable.InvokeAsync(new Azure.Network.GetRouteTableArgs\n        {\n            Name = \"myroutetable\",\n            ResourceGroupName = \"some-resource-group\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\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 := network.LookupRouteTable(ctx, \u0026network.LookupRouteTableArgs{\n\t\t\tName:              \"myroutetable\",\n\t\t\tResourceGroupName: \"some-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getRouteTable.\n",
        "properties": {
          "name": {
            "description": "The name of the Route Table.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Route Table exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getRouteTable.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region in which the Route Table exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Route.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "routes": {
            "description": "One or more `route` blocks as documented below.\n",
            "items": {
              "$ref": "#/types/azure:network/getRouteTableRoute:getRouteTableRoute"
            },
            "type": "array"
          },
          "subnets": {
            "description": "The collection of Subnets associated with this route table.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Route Table.\n",
            "type": "object"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "routes",
          "subnets",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getServiceTags:getServiceTags": {
      "description": "Use this data source to access information about Service Tags.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getServiceTags({\n    location: \"westcentralus\",\n    service: \"AzureKeyVault\",\n    locationFilter: \"northeurope\",\n});\nexport const addressPrefixes = example.then(example =\u003e example.addressPrefixes);\nexport const ipv4Cidrs = example.then(example =\u003e example.ipv4Cidrs);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_service_tags(location=\"westcentralus\",\n    service=\"AzureKeyVault\",\n    location_filter=\"northeurope\")\npulumi.export(\"addressPrefixes\", example.address_prefixes)\npulumi.export(\"ipv4Cidrs\", example.ipv4_cidrs)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetServiceTags.InvokeAsync(new Azure.Network.GetServiceTagsArgs\n        {\n            Location = \"westcentralus\",\n            Service = \"AzureKeyVault\",\n            LocationFilter = \"northeurope\",\n        }));\n        this.AddressPrefixes = example.Apply(example =\u003e example.AddressPrefixes);\n        this.Ipv4Cidrs = example.Apply(example =\u003e example.Ipv4Cidrs);\n    }\n\n    [Output(\"addressPrefixes\")]\n    public Output\u003cstring\u003e AddressPrefixes { get; set; }\n    [Output(\"ipv4Cidrs\")]\n    public Output\u003cstring\u003e Ipv4Cidrs { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"northeurope\"\n\t\texample, err := network.GetServiceTags(ctx, \u0026network.GetServiceTagsArgs{\n\t\t\tLocation:       \"westcentralus\",\n\t\t\tService:        \"AzureKeyVault\",\n\t\t\tLocationFilter: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"addressPrefixes\", example.AddressPrefixes)\n\t\tctx.Export(\"ipv4Cidrs\", example.Ipv4Cidrs)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getServiceTags.\n",
        "properties": {
          "location": {
            "description": "The Azure Region where the Service Tags exists. This value is not used to filter the results but for specifying the region to request. For filtering by region use `location_filter` instead.  More information can be found here: [Service Tags URL parameters](https://docs.microsoft.com/en-us/rest/api/virtualnetwork/servicetags/list#uri-parameters).\n",
            "type": "string"
          },
          "locationFilter": {
            "description": "Changes the scope of the service tags. Can be any value that is also valid for `location`. If this field is empty then all address prefixes are considered instead of only location specific ones.\n",
            "type": "string"
          },
          "service": {
            "description": "The type of the service for which address prefixes will be fetched. Available service tags can be found here: [Available service tags](https://docs.microsoft.com/en-us/azure/virtual-network/service-tags-overview#available-service-tags).\n",
            "type": "string"
          }
        },
        "required": [
          "location",
          "service"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getServiceTags.\n",
        "properties": {
          "addressPrefixes": {
            "description": "List of address prefixes for the service type (and optionally a specific region).\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "ipv4Cidrs": {
            "description": "List of IPv4 addresses for the service type (and optionally a specific region)\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "ipv6Cidrs": {
            "description": "List of IPv6 addresses for the service type (and optionally a specific region)\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "type": "string"
          },
          "locationFilter": {
            "type": "string"
          },
          "service": {
            "type": "string"
          }
        },
        "required": [
          "addressPrefixes",
          "ipv4Cidrs",
          "ipv6Cidrs",
          "location",
          "service",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getSubnet:getSubnet": {
      "description": "Use this data source to access information about an existing Subnet within a Virtual Network.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getSubnet({\n    name: \"backend\",\n    virtualNetworkName: \"production\",\n    resourceGroupName: \"networking\",\n});\nexport const subnetId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_subnet(name=\"backend\",\n    virtual_network_name=\"production\",\n    resource_group_name=\"networking\")\npulumi.export(\"subnetId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetSubnet.InvokeAsync(new Azure.Network.GetSubnetArgs\n        {\n            Name = \"backend\",\n            VirtualNetworkName = \"production\",\n            ResourceGroupName = \"networking\",\n        }));\n        this.SubnetId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"subnetId\")]\n    public Output\u003cstring\u003e SubnetId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupSubnet(ctx, \u0026network.LookupSubnetArgs{\n\t\t\tName:               \"backend\",\n\t\t\tVirtualNetworkName: \"production\",\n\t\t\tResourceGroupName:  \"networking\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"subnetId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSubnet.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Subnet.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Virtual Network is located in.\n",
            "type": "string"
          },
          "virtualNetworkName": {
            "description": "Specifies the name of the Virtual Network this Subnet is located within.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName",
          "virtualNetworkName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSubnet.\n",
        "properties": {
          "addressPrefix": {
            "description": "(Deprecated) The address prefix used for the subnet.\n",
            "type": "string"
          },
          "addressPrefixes": {
            "description": "The address prefixes for the subnet.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "enforcePrivateLinkEndpointNetworkPolicies": {
            "description": "Enable or Disable network policies for the private link endpoint on the subnet.\n",
            "type": "boolean"
          },
          "enforcePrivateLinkServiceNetworkPolicies": {
            "description": "Enable or Disable network policies for the private link service on the subnet.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "networkSecurityGroupId": {
            "description": "The ID of the Network Security Group associated with the subnet.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "routeTableId": {
            "description": "The ID of the Route Table associated with this subnet.\n",
            "type": "string"
          },
          "serviceEndpoints": {
            "description": "A list of Service Endpoints within this subnet.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "virtualNetworkName": {
            "type": "string"
          }
        },
        "required": [
          "addressPrefix",
          "addressPrefixes",
          "enforcePrivateLinkEndpointNetworkPolicies",
          "enforcePrivateLinkServiceNetworkPolicies",
          "name",
          "networkSecurityGroupId",
          "resourceGroupName",
          "routeTableId",
          "serviceEndpoints",
          "virtualNetworkName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getTrafficManager:getTrafficManager": {
      "description": "Use this data source to access the ID of a specified Traffic Manager Geographical Location within the Geographical Hierarchy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### World)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getTrafficManager({\n    name: \"World\",\n});\nexport const locationCode = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_traffic_manager(name=\"World\")\npulumi.export(\"locationCode\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetTrafficManager.InvokeAsync(new Azure.Network.GetTrafficManagerArgs\n        {\n            Name = \"World\",\n        }));\n        this.LocationCode = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"locationCode\")]\n    public Output\u003cstring\u003e LocationCode { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.GetTrafficManager(ctx, \u0026network.GetTrafficManagerArgs{\n\t\t\tName: \"World\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"locationCode\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getTrafficManager.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Location, for example `World`, `Europe` or `Germany`.\n",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getTrafficManager.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getTrafficManagerProfile:getTrafficManagerProfile": {
      "description": "Use this data source to access information about an existing Traffic Manager Profile.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getTrafficManagerProfile({\n    name: \"test\",\n    resourceGroupName: \"test\",\n});\nexport const trafficRoutingMethod = data.azurerm_traffic_manager_profile.traffic_routing_method;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_traffic_manager_profile(name=\"test\",\n    resource_group_name=\"test\")\npulumi.export(\"trafficRoutingMethod\", data[\"azurerm_traffic_manager_profile\"][\"traffic_routing_method\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetTrafficManagerProfile.InvokeAsync(new Azure.Network.GetTrafficManagerProfileArgs\n        {\n            Name = \"test\",\n            ResourceGroupName = \"test\",\n        }));\n        this.TrafficRoutingMethod = data.Azurerm_traffic_manager_profile.Traffic_routing_method;\n    }\n\n    [Output(\"trafficRoutingMethod\")]\n    public Output\u003cstring\u003e TrafficRoutingMethod { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\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 := network.LookupTrafficManagerProfile(ctx, \u0026network.LookupTrafficManagerProfileArgs{\n\t\t\tName:              \"test\",\n\t\t\tResourceGroupName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"trafficRoutingMethod\", data.Azurerm_traffic_manager_profile.Traffic_routing_method)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getTrafficManagerProfile.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Traffic Manager Profile.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Traffic Manager Profile is located in.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "trafficViewEnabled": {
            "description": "Indicates whether Traffic View is enabled for the Traffic Manager profile.\n",
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getTrafficManagerProfile.\n",
        "properties": {
          "dnsConfigs": {
            "description": "This block specifies the DNS configuration of the Profile.\n",
            "items": {
              "$ref": "#/types/azure:network/getTrafficManagerProfileDnsConfig:getTrafficManagerProfileDnsConfig"
            },
            "type": "array"
          },
          "fqdn": {
            "description": "The FQDN of the created Profile.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "monitorConfigs": {
            "description": "This block specifies the Endpoint monitoring configuration for the Profile.\n",
            "items": {
              "$ref": "#/types/azure:network/getTrafficManagerProfileMonitorConfig:getTrafficManagerProfileMonitorConfig"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the custom header.\n",
            "type": "string"
          },
          "profileStatus": {
            "description": "The status of the profile.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "trafficRoutingMethod": {
            "description": "Specifies the algorithm used to route traffic.\n",
            "type": "string"
          },
          "trafficViewEnabled": {
            "description": "Indicates whether Traffic View is enabled for the Traffic Manager profile.\n",
            "type": "boolean"
          }
        },
        "required": [
          "dnsConfigs",
          "fqdn",
          "monitorConfigs",
          "name",
          "profileStatus",
          "resourceGroupName",
          "trafficRoutingMethod",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getVirtualHub:getVirtualHub": {
      "description": "Uses this data source to access information about an existing Virtual Hub.\n\n## Virtual Hub Usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getVirtualHub({\n    name: \"example-hub\",\n    resourceGroupName: \"example-resources\",\n});\nexport const virtualHubId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_virtual_hub(name=\"example-hub\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"virtualHubId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetVirtualHub.InvokeAsync(new Azure.Network.GetVirtualHubArgs\n        {\n            Name = \"example-hub\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.VirtualHubId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"virtualHubId\")]\n    public Output\u003cstring\u003e VirtualHubId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupVirtualHub(ctx, \u0026network.LookupVirtualHubArgs{\n\t\t\tName:              \"example-hub\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"virtualHubId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVirtualHub.\n",
        "properties": {
          "name": {
            "description": "The name of the Virtual Hub.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the Virtual Hub exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVirtualHub.\n",
        "properties": {
          "addressPrefix": {
            "description": "The Address Prefix used for this Virtual Hub.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Virtual Hub exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Virtual Hub.\n",
            "type": "object"
          },
          "virtualWanId": {
            "description": "The ID of the Virtual WAN within which the Virtual Hub exists.\n",
            "type": "string"
          }
        },
        "required": [
          "addressPrefix",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "virtualWanId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getVirtualNetwork:getVirtualNetwork": {
      "description": "Use this data source to access information about an existing Virtual Network.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getVirtualNetwork({\n    name: \"production\",\n    resourceGroupName: \"networking\",\n});\nexport const virtualNetworkId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_virtual_network(name=\"production\",\n    resource_group_name=\"networking\")\npulumi.export(\"virtualNetworkId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetVirtualNetwork.InvokeAsync(new Azure.Network.GetVirtualNetworkArgs\n        {\n            Name = \"production\",\n            ResourceGroupName = \"networking\",\n        }));\n        this.VirtualNetworkId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"virtualNetworkId\")]\n    public Output\u003cstring\u003e VirtualNetworkId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupVirtualNetwork(ctx, \u0026network.LookupVirtualNetworkArgs{\n\t\t\tName:              \"production\",\n\t\t\tResourceGroupName: \"networking\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"virtualNetworkId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getVirtualNetwork.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Virtual Network.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Virtual Network is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVirtualNetwork.\n",
        "properties": {
          "addressSpaces": {
            "description": "The list of address spaces used by the virtual network.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dnsServers": {
            "description": "The list of DNS servers used by the virtual network.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "guid": {
            "description": "The GUID of the virtual network.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "Location of the virtual network.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "subnets": {
            "description": "The list of name of the subnets that are attached to this virtual network.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "vnetPeerings": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of name - virtual network id of the virtual network peerings.\n",
            "type": "object"
          }
        },
        "required": [
          "addressSpaces",
          "dnsServers",
          "guid",
          "location",
          "name",
          "resourceGroupName",
          "subnets",
          "vnetPeerings",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getVirtualNetworkGateway:getVirtualNetworkGateway": {
      "description": "Use this data source to access information about an existing Virtual Network Gateway.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getVirtualNetworkGateway({\n    name: \"production\",\n    resourceGroupName: \"networking\",\n});\nexport const virtualNetworkGatewayId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_virtual_network_gateway(name=\"production\",\n    resource_group_name=\"networking\")\npulumi.export(\"virtualNetworkGatewayId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetVirtualNetworkGateway.InvokeAsync(new Azure.Network.GetVirtualNetworkGatewayArgs\n        {\n            Name = \"production\",\n            ResourceGroupName = \"networking\",\n        }));\n        this.VirtualNetworkGatewayId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"virtualNetworkGatewayId\")]\n    public Output\u003cstring\u003e VirtualNetworkGatewayId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupVirtualNetworkGateway(ctx, \u0026network.LookupVirtualNetworkGatewayArgs{\n\t\t\tName:              \"production\",\n\t\t\tResourceGroupName: \"networking\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"virtualNetworkGatewayId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getVirtualNetworkGateway.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Virtual Network Gateway.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Virtual Network Gateway is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVirtualNetworkGateway.\n",
        "properties": {
          "activeActive": {
            "description": "Is this an Active-Active Gateway?\n",
            "type": "boolean"
          },
          "bgpSettings": {
            "items": {
              "$ref": "#/types/azure:network/getVirtualNetworkGatewayBgpSetting:getVirtualNetworkGatewayBgpSetting"
            },
            "type": "array"
          },
          "customRoutes": {
            "items": {
              "$ref": "#/types/azure:network/getVirtualNetworkGatewayCustomRoute:getVirtualNetworkGatewayCustomRoute"
            },
            "type": "array"
          },
          "defaultLocalNetworkGatewayId": {
            "description": "The ID of the local network gateway\nthrough which outbound Internet traffic from the virtual network in which the\ngateway is created will be routed (*forced tunneling*). Refer to the\n[Azure documentation on forced tunneling](https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-forced-tunneling-rm).\n",
            "type": "string"
          },
          "enableBgp": {
            "description": "Will BGP (Border Gateway Protocol) will be enabled\nfor this Virtual Network Gateway.\n",
            "type": "boolean"
          },
          "generation": {
            "description": "The Generation of the Virtual Network Gateway.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "ipConfigurations": {
            "description": "One or two `ip_configuration` blocks documented below.\n",
            "items": {
              "$ref": "#/types/azure:network/getVirtualNetworkGatewayIpConfiguration:getVirtualNetworkGatewayIpConfiguration"
            },
            "type": "array"
          },
          "location": {
            "description": "The location/region where the Virtual Network Gateway is located.\n",
            "type": "string"
          },
          "name": {
            "description": "The user-defined name of the revoked certificate.\n",
            "type": "string"
          },
          "privateIpAddressEnabled": {
            "description": "Whether a private IP will be used for this  gateway for connections.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sku": {
            "description": "Configuration of the size and capacity of the Virtual Network Gateway.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "type": {
            "description": "The type of the Virtual Network Gateway.\n",
            "type": "string"
          },
          "vpnClientConfigurations": {
            "description": "A `vpn_client_configuration` block which is documented below.\n",
            "items": {
              "$ref": "#/types/azure:network/getVirtualNetworkGatewayVpnClientConfiguration:getVirtualNetworkGatewayVpnClientConfiguration"
            },
            "type": "array"
          },
          "vpnType": {
            "description": "The routing type of the Virtual Network Gateway.\n",
            "type": "string"
          }
        },
        "required": [
          "activeActive",
          "bgpSettings",
          "customRoutes",
          "defaultLocalNetworkGatewayId",
          "enableBgp",
          "generation",
          "ipConfigurations",
          "location",
          "name",
          "privateIpAddressEnabled",
          "resourceGroupName",
          "sku",
          "tags",
          "type",
          "vpnClientConfigurations",
          "vpnType",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getVirtualWan:getVirtualWan": {
      "description": "Use this data source to access information about an existing Virtual Wan.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getVirtualWan({\n    name: \"existing\",\n    resourceGroupName: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\nexport const allowBranchToBranchTraffic = example.then(example =\u003e example.allowBranchToBranchTraffic);\nexport const disableVpnEncryption = data.azurerm_virtual_wan.exemple.disable_vpn_encryption;\nexport const location = data.azurerm_virtual_wan.exemple.location;\nexport const office365LocalBreakoutCategory = data.azurerm_virtual_wan.exemple.office365_local_breakout_category;\nexport const sku = data.azurerm_virtual_wan.exemple.sku;\nexport const tags = data.azurerm_virtual_wan.exemple.tags;\nexport const virtualHubs = data.azurerm_virtual_wan.exemple.virtual_hubs;\nexport const vpnSites = data.azurerm_virtual_wan.exemple.vpn_sites;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_virtual_wan(name=\"existing\",\n    resource_group_name=\"existing\")\npulumi.export(\"id\", example.id)\npulumi.export(\"allowBranchToBranchTraffic\", example.allow_branch_to_branch_traffic)\npulumi.export(\"disableVpnEncryption\", data[\"azurerm_virtual_wan\"][\"exemple\"][\"disable_vpn_encryption\"])\npulumi.export(\"location\", data[\"azurerm_virtual_wan\"][\"exemple\"][\"location\"])\npulumi.export(\"office365LocalBreakoutCategory\", data[\"azurerm_virtual_wan\"][\"exemple\"][\"office365_local_breakout_category\"])\npulumi.export(\"sku\", data[\"azurerm_virtual_wan\"][\"exemple\"][\"sku\"])\npulumi.export(\"tags\", data[\"azurerm_virtual_wan\"][\"exemple\"][\"tags\"])\npulumi.export(\"virtualHubs\", data[\"azurerm_virtual_wan\"][\"exemple\"][\"virtual_hubs\"])\npulumi.export(\"vpnSites\", data[\"azurerm_virtual_wan\"][\"exemple\"][\"vpn_sites\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetVirtualWan.InvokeAsync(new Azure.Network.GetVirtualWanArgs\n        {\n            Name = \"existing\",\n            ResourceGroupName = \"existing\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n        this.AllowBranchToBranchTraffic = example.Apply(example =\u003e example.AllowBranchToBranchTraffic);\n        this.DisableVpnEncryption = data.Azurerm_virtual_wan.Exemple.Disable_vpn_encryption;\n        this.Location = data.Azurerm_virtual_wan.Exemple.Location;\n        this.Office365LocalBreakoutCategory = data.Azurerm_virtual_wan.Exemple.Office365_local_breakout_category;\n        this.Sku = data.Azurerm_virtual_wan.Exemple.Sku;\n        this.Tags = data.Azurerm_virtual_wan.Exemple.Tags;\n        this.VirtualHubs = data.Azurerm_virtual_wan.Exemple.Virtual_hubs;\n        this.VpnSites = data.Azurerm_virtual_wan.Exemple.Vpn_sites;\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n    [Output(\"allowBranchToBranchTraffic\")]\n    public Output\u003cstring\u003e AllowBranchToBranchTraffic { get; set; }\n    [Output(\"disableVpnEncryption\")]\n    public Output\u003cstring\u003e DisableVpnEncryption { get; set; }\n    [Output(\"location\")]\n    public Output\u003cstring\u003e Location { get; set; }\n    [Output(\"office365LocalBreakoutCategory\")]\n    public Output\u003cstring\u003e Office365LocalBreakoutCategory { get; set; }\n    [Output(\"sku\")]\n    public Output\u003cstring\u003e Sku { get; set; }\n    [Output(\"tags\")]\n    public Output\u003cstring\u003e Tags { get; set; }\n    [Output(\"virtualHubs\")]\n    public Output\u003cstring\u003e VirtualHubs { get; set; }\n    [Output(\"vpnSites\")]\n    public Output\u003cstring\u003e VpnSites { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupVirtualWan(ctx, \u0026network.LookupVirtualWanArgs{\n\t\t\tName:              \"existing\",\n\t\t\tResourceGroupName: \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\tctx.Export(\"allowBranchToBranchTraffic\", example.AllowBranchToBranchTraffic)\n\t\tctx.Export(\"disableVpnEncryption\", data.Azurerm_virtual_wan.Exemple.Disable_vpn_encryption)\n\t\tctx.Export(\"location\", data.Azurerm_virtual_wan.Exemple.Location)\n\t\tctx.Export(\"office365LocalBreakoutCategory\", data.Azurerm_virtual_wan.Exemple.Office365_local_breakout_category)\n\t\tctx.Export(\"sku\", data.Azurerm_virtual_wan.Exemple.Sku)\n\t\tctx.Export(\"tags\", data.Azurerm_virtual_wan.Exemple.Tags)\n\t\tctx.Export(\"virtualHubs\", data.Azurerm_virtual_wan.Exemple.Virtual_hubs)\n\t\tctx.Export(\"vpnSites\", data.Azurerm_virtual_wan.Exemple.Vpn_sites)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getVirtualWan.\n",
        "properties": {
          "name": {
            "description": "The name of this Virtual Wan.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Virtual Wan exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVirtualWan.\n",
        "properties": {
          "allowBranchToBranchTraffic": {
            "description": "Is branch to branch traffic is allowed?\n",
            "type": "boolean"
          },
          "disableVpnEncryption": {
            "description": "Is VPN Encryption disabled?\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Virtual Wan exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "office365LocalBreakoutCategory": {
            "description": "The Office365 Local Breakout Category.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sku": {
            "description": "Type of Virtual Wan (Basic or Standard).\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Virtual Wan.\n",
            "type": "object"
          },
          "virtualHubIds": {
            "description": "A list of Virtual Hubs ID's attached to this Virtual WAN.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "vpnSiteIds": {
            "description": "A list of VPN Site ID's attached to this Virtual WAN.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "allowBranchToBranchTraffic",
          "disableVpnEncryption",
          "location",
          "name",
          "office365LocalBreakoutCategory",
          "resourceGroupName",
          "sku",
          "tags",
          "virtualHubIds",
          "vpnSiteIds",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:network/getVpnGateway:getVpnGateway": {
      "description": "Use this data source to access information about an existing VPN Gateway within a Virtual Hub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getVpnGateway({\n    name: \"existing-local-vpn_gateway\",\n    resourceGroupName: \"existing-vpn_gateway\",\n});\nexport const azurermVpnGatewayId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_vpn_gateway(name=\"existing-local-vpn_gateway\",\n    resource_group_name=\"existing-vpn_gateway\")\npulumi.export(\"azurermVpnGatewayId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetVpnGateway.InvokeAsync(new Azure.Network.GetVpnGatewayArgs\n        {\n            Name = \"existing-local-vpn_gateway\",\n            ResourceGroupName = \"existing-vpn_gateway\",\n        }));\n        this.AzurermVpnGatewayId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"azurermVpnGatewayId\")]\n    public Output\u003cstring\u003e AzurermVpnGatewayId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.LookupVpnGateway(ctx, \u0026network.LookupVpnGatewayArgs{\n\t\t\tName:              \"existing-local-vpn_gateway\",\n\t\t\tResourceGroupName: \"existing-vpn_gateway\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"azurermVpnGatewayId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getVpnGateway.\n",
        "properties": {
          "name": {
            "description": "The Name of the VPN Gateway.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the VPN Gateway exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVpnGateway.\n",
        "properties": {
          "bgpSettings": {
            "description": "A `bgp_settings` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/getVpnGatewayBgpSetting:getVpnGatewayBgpSetting"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the VPN Gateway exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "scaleUnit": {
            "description": "The Scale Unit of this VPN Gateway.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the VPN Gateway.\n",
            "type": "object"
          },
          "virtualHubId": {
            "description": "The ID of the Virtual Hub within which this VPN Gateway has been created.\n",
            "type": "string"
          }
        },
        "required": [
          "bgpSettings",
          "location",
          "name",
          "resourceGroupName",
          "scaleUnit",
          "tags",
          "virtualHubId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:notificationhub/getHub:getHub": {
      "description": "Use this data source to access information about an existing Notification Hub within a Notification Hub Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.notificationhub.getHub({\n    name: \"notification-hub\",\n    namespaceName: \"namespace-name\",\n    resourceGroupName: \"resource-group-name\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.notificationhub.get_hub(name=\"notification-hub\",\n    namespace_name=\"namespace-name\",\n    resource_group_name=\"resource-group-name\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.NotificationHub.GetHub.InvokeAsync(new Azure.NotificationHub.GetHubArgs\n        {\n            Name = \"notification-hub\",\n            NamespaceName = \"namespace-name\",\n            ResourceGroupName = \"resource-group-name\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/notificationhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := notificationhub.LookupHub(ctx, \u0026notificationhub.LookupHubArgs{\n\t\t\tName:              \"notification-hub\",\n\t\t\tNamespaceName:     \"namespace-name\",\n\t\t\tResourceGroupName: \"resource-group-name\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getHub.\n",
        "properties": {
          "name": {
            "description": "Specifies the Name of the Notification Hub.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the Name of the Notification Hub Namespace which contains the Notification Hub.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the Name of the Resource Group within which the Notification Hub exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "namespaceName",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getHub.\n",
        "properties": {
          "apnsCredentials": {
            "description": "A `apns_credential` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:notificationhub/getHubApnsCredential:getHubApnsCredential"
            },
            "type": "array"
          },
          "gcmCredentials": {
            "description": "A `gcm_credential` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:notificationhub/getHubGcmCredential:getHubGcmCredential"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region in which this Notification Hub exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "namespaceName": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "apnsCredentials",
          "gcmCredentials",
          "location",
          "name",
          "namespaceName",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:notificationhub/getNamespace:getNamespace": {
      "description": "Use this data source to access information about an existing Notification Hub Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.notificationhub.getNamespace({\n    name: \"my-namespace\",\n    resourceGroupName: \"my-resource-group\",\n});\nexport const servicebusEndpoint = example.then(example =\u003e example.servicebusEndpoint);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.notificationhub.get_namespace(name=\"my-namespace\",\n    resource_group_name=\"my-resource-group\")\npulumi.export(\"servicebusEndpoint\", example.servicebus_endpoint)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.NotificationHub.GetNamespace.InvokeAsync(new Azure.NotificationHub.GetNamespaceArgs\n        {\n            Name = \"my-namespace\",\n            ResourceGroupName = \"my-resource-group\",\n        }));\n        this.ServicebusEndpoint = example.Apply(example =\u003e example.ServicebusEndpoint);\n    }\n\n    [Output(\"servicebusEndpoint\")]\n    public Output\u003cstring\u003e ServicebusEndpoint { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/notificationhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := notificationhub.LookupNamespace(ctx, \u0026notificationhub.LookupNamespaceArgs{\n\t\t\tName:              \"my-namespace\",\n\t\t\tResourceGroupName: \"my-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"servicebusEndpoint\", example.ServicebusEndpoint)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getNamespace.\n",
        "properties": {
          "name": {
            "description": "Specifies the Name of the Notification Hub Namespace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the Name of the Resource Group within which the Notification Hub exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNamespace.\n",
        "properties": {
          "enabled": {
            "description": "Is this Notification Hub Namespace enabled?\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region in which this Notification Hub Namespace exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the SKU to use for this Notification Hub Namespace. Possible values are `Free`, `Basic` or `Standard.`\n",
            "type": "string"
          },
          "namespaceType": {
            "description": "The Type of Namespace, such as `Messaging` or `NotificationHub`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "servicebusEndpoint": {
            "type": "string"
          },
          "sku": {
            "$ref": "#/types/azure:notificationhub/getNamespaceSku:getNamespaceSku",
            "description": "A `sku` block as defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "enabled",
          "location",
          "name",
          "namespaceType",
          "resourceGroupName",
          "servicebusEndpoint",
          "sku",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:operationalinsights/getAnalyticsWorkspace:getAnalyticsWorkspace": {
      "description": "Use this data source to access information about an existing Log Analytics (formally Operational Insights) Workspace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.operationalinsights.getAnalyticsWorkspace({\n    name: \"acctest-01\",\n    resourceGroupName: \"acctest\",\n});\nexport const logAnalyticsWorkspaceId = example.then(example =\u003e example.workspaceId);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.operationalinsights.get_analytics_workspace(name=\"acctest-01\",\n    resource_group_name=\"acctest\")\npulumi.export(\"logAnalyticsWorkspaceId\", example.workspace_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.OperationalInsights.GetAnalyticsWorkspace.InvokeAsync(new Azure.OperationalInsights.GetAnalyticsWorkspaceArgs\n        {\n            Name = \"acctest-01\",\n            ResourceGroupName = \"acctest\",\n        }));\n        this.LogAnalyticsWorkspaceId = example.Apply(example =\u003e example.WorkspaceId);\n    }\n\n    [Output(\"logAnalyticsWorkspaceId\")]\n    public Output\u003cstring\u003e LogAnalyticsWorkspaceId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := operationalinsights.LookupAnalyticsWorkspace(ctx, \u0026operationalinsights.LookupAnalyticsWorkspaceArgs{\n\t\t\tName:              \"acctest-01\",\n\t\t\tResourceGroupName: \"acctest\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"logAnalyticsWorkspaceId\", example.WorkspaceId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAnalyticsWorkspace.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Log Analytics Workspace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Log Analytics workspace is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAnalyticsWorkspace.\n",
        "properties": {
          "dailyQuotaGb": {
            "description": "The workspace daily quota for ingestion in GB.\n",
            "type": "number"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "portalUrl": {
            "deprecationMessage": "this property has been removed from the API and will be removed in version 3.0 of the provider",
            "type": "string"
          },
          "primarySharedKey": {
            "description": "The Primary shared key for the Log Analytics Workspace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "retentionInDays": {
            "description": "The workspace data retention in days.\n",
            "type": "integer"
          },
          "secondarySharedKey": {
            "description": "The Secondary shared key for the Log Analytics Workspace.\n",
            "type": "string"
          },
          "sku": {
            "description": "The Sku of the Log Analytics Workspace.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "workspaceId": {
            "description": "The Workspace (or Customer) ID for the Log Analytics Workspace.\n",
            "type": "string"
          }
        },
        "required": [
          "dailyQuotaGb",
          "location",
          "name",
          "portalUrl",
          "primarySharedKey",
          "resourceGroupName",
          "retentionInDays",
          "secondarySharedKey",
          "sku",
          "tags",
          "workspaceId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:policy/getPolicyDefintion:getPolicyDefintion": {
      "description": "Use this data source to access information about a Policy Definition, both custom and built in. Retrieves Policy Definitions from your current subscription by default.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.policy.getPolicyDefintion({\n    displayName: \"Allowed resource types\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.policy.get_policy_defintion(display_name=\"Allowed resource types\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Policy.GetPolicyDefintion.InvokeAsync(new Azure.Policy.GetPolicyDefintionArgs\n        {\n            DisplayName = \"Allowed resource types\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/policy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"Allowed resource types\"\n\t\texample, err := policy.GetPolicyDefintion(ctx, \u0026policy.GetPolicyDefintionArgs{\n\t\t\tDisplayName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getPolicyDefintion.\n",
        "properties": {
          "displayName": {
            "description": "Specifies the display name of the Policy Definition. Conflicts with `name`.\n",
            "type": "string"
          },
          "managementGroupId": {
            "deprecationMessage": "Deprecated in favour of `management_group_name`",
            "type": "string"
          },
          "managementGroupName": {
            "description": "Only retrieve Policy Definitions from this Management Group.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Policy Definition. Conflicts with `display_name`.\n",
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPolicyDefintion.\n",
        "properties": {
          "description": {
            "description": "The Description of the Policy.\n",
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "managementGroupId": {
            "deprecationMessage": "Deprecated in favour of `management_group_name`",
            "type": "string"
          },
          "managementGroupName": {
            "type": "string"
          },
          "metadata": {
            "description": "Any Metadata defined in the Policy.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parameters": {
            "description": "Any Parameters defined in the Policy.\n",
            "type": "string"
          },
          "policyRule": {
            "description": "The Rule as defined (in JSON) in the Policy.\n",
            "type": "string"
          },
          "policyType": {
            "description": "The Type of the Policy. Possible values are \"BuiltIn\", \"Custom\" and \"NotSpecified\".\n",
            "type": "string"
          },
          "type": {
            "description": "The Type of Policy.\n",
            "type": "string"
          }
        },
        "required": [
          "description",
          "displayName",
          "metadata",
          "name",
          "parameters",
          "policyRule",
          "policyType",
          "type",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:policy/getPolicySetDefinition:getPolicySetDefinition": {
      "description": "Use this data source to access information about an existing Policy Set Definition.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.policy.getPolicySetDefinition({\n    displayName: \"Policy Set Definition Example\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.policy.get_policy_set_definition(display_name=\"Policy Set Definition Example\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Policy.GetPolicySetDefinition.InvokeAsync(new Azure.Policy.GetPolicySetDefinitionArgs\n        {\n            DisplayName = \"Policy Set Definition Example\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/policy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"Policy Set Definition Example\"\n\t\texample, err := policy.LookupPolicySetDefinition(ctx, \u0026policy.LookupPolicySetDefinitionArgs{\n\t\t\tDisplayName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getPolicySetDefinition.\n",
        "properties": {
          "displayName": {
            "description": "Specifies the display name of the Policy Set Definition. Conflicts with `name`.\n",
            "type": "string"
          },
          "managementGroupName": {
            "description": "Only retrieve Policy Set Definitions from this Management Group.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Policy Set Definition. Conflicts with `display_name`.\n",
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPolicySetDefinition.\n",
        "properties": {
          "description": {
            "description": "The description of this policy definition group.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of this policy definition group.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "managementGroupName": {
            "type": "string"
          },
          "metadata": {
            "description": "Any Metadata defined in the Policy Set Definition.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of this policy definition group.\n",
            "type": "string"
          },
          "parameters": {
            "description": "The mapping of the parameter values for the referenced policy rule. The keys are the parameter names.\n",
            "type": "string"
          },
          "policyDefinitionGroups": {
            "description": "One or more `policy_definition_group` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:policy/getPolicySetDefinitionPolicyDefinitionGroup:getPolicySetDefinitionPolicyDefinitionGroup"
            },
            "type": "array"
          },
          "policyDefinitionReferences": {
            "description": "One or more `policy_definition_reference` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:policy/getPolicySetDefinitionPolicyDefinitionReference:getPolicySetDefinitionPolicyDefinitionReference"
            },
            "type": "array"
          },
          "policyDefinitions": {
            "description": "The policy definitions contained within the policy set definition.\n",
            "type": "string"
          },
          "policyType": {
            "description": "The Type of the Policy Set Definition.\n",
            "type": "string"
          }
        },
        "required": [
          "description",
          "displayName",
          "metadata",
          "name",
          "parameters",
          "policyDefinitionGroups",
          "policyDefinitionReferences",
          "policyDefinitions",
          "policyType",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:postgresql/getFlexibleServer:getFlexibleServer": {
      "description": "Use this data source to access information about an existing PostgreSQL Flexible Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.postgresql.getFlexibleServer({\n    name: \"existing-postgresql-fs\",\n    resourceGroupName: \"existing-postgresql-resgroup\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.postgresql.get_flexible_server(name=\"existing-postgresql-fs\",\n    resource_group_name=\"existing-postgresql-resgroup\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.PostgreSql.GetFlexibleServer.InvokeAsync(new Azure.PostgreSql.GetFlexibleServerArgs\n        {\n            Name = \"existing-postgresql-fs\",\n            ResourceGroupName = \"existing-postgresql-resgroup\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := postgresql.LookupFlexibleServer(ctx, \u0026postgresql.LookupFlexibleServerArgs{\n\t\t\tName:              \"existing-postgresql-fs\",\n\t\t\tResourceGroupName: \"existing-postgresql-resgroup\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getFlexibleServer.\n",
        "properties": {
          "name": {
            "description": "The name of this PostgreSQL Flexible Server.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the PostgreSQL Flexible Server exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getFlexibleServer.\n",
        "properties": {
          "administratorLogin": {
            "description": "The Administrator Login for the PostgreSQL Flexible Server.\n",
            "type": "string"
          },
          "backupRetentionDays": {
            "description": "The backup retention days for the PostgreSQL Flexible Server.\n",
            "type": "integer"
          },
          "cmkEnabled": {
            "deprecationMessage": "This attribute has been removed from the API and will be removed in version 3.0 of the provider.",
            "description": "The status showing whether the data encryption is enabled with a customer-managed key.\n",
            "type": "string"
          },
          "delegatedSubnetId": {
            "description": "The ID of the virtual network subnet to create the PostgreSQL Flexible Server.\n",
            "type": "string"
          },
          "fqdn": {
            "description": "The FQDN of the PostgreSQL Flexible Server.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the PostgreSQL Flexible Server exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Is public network access enabled?\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "skuName": {
            "description": "The SKU Name for the PostgreSQL Flexible Server. The name of the SKU, follows the `tier` + `name` pattern (e.g. `B_Standard_B1ms`, `GP_Standard_D2s_v3`, `MO_Standard_E4s_v3`).\n",
            "type": "string"
          },
          "storageMb": {
            "description": "The max storage allowed for the PostgreSQL Flexible Server.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the PostgreSQL Flexible Server.\n",
            "type": "object"
          },
          "version": {
            "description": "The version of PostgreSQL Flexible Server to use.\n",
            "type": "string"
          }
        },
        "required": [
          "administratorLogin",
          "backupRetentionDays",
          "cmkEnabled",
          "delegatedSubnetId",
          "fqdn",
          "location",
          "name",
          "publicNetworkAccessEnabled",
          "resourceGroupName",
          "skuName",
          "storageMb",
          "tags",
          "version",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:postgresql/getServer:getServer": {
      "description": "Use this data source to access information about an existing PostgreSQL Azure Database Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.postgresql.getServer({\n    name: \"postgresql-server-1\",\n    resourceGroupName: \"api-rg-pro\",\n});\nexport const postgresqlServerId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.postgresql.get_server(name=\"postgresql-server-1\",\n    resource_group_name=\"api-rg-pro\")\npulumi.export(\"postgresqlServerId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.PostgreSql.GetServer.InvokeAsync(new Azure.PostgreSql.GetServerArgs\n        {\n            Name = \"postgresql-server-1\",\n            ResourceGroupName = \"api-rg-pro\",\n        }));\n        this.PostgresqlServerId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"postgresqlServerId\")]\n    public Output\u003cstring\u003e PostgresqlServerId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := postgresql.LookupServer(ctx, \u0026postgresql.LookupServerArgs{\n\t\t\tName:              \"postgresql-server-1\",\n\t\t\tResourceGroupName: \"api-rg-pro\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"postgresqlServerId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getServer.\n",
        "properties": {
          "name": {
            "description": "The name of the PostgreSQL Server.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where the PostgreSQL Server exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getServer.\n",
        "properties": {
          "administratorLogin": {
            "description": "The administrator username of the PostgreSQL Server.\n",
            "type": "string"
          },
          "fqdn": {
            "description": "The fully qualified domain name of the PostgreSQL Server.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "An `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:postgresql/getServerIdentity:getServerIdentity"
            },
            "type": "array"
          },
          "location": {
            "description": "The location of the Resource Group in which the PostgreSQL Server exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "skuName": {
            "description": "The SKU name of the PostgreSQL Server.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "version": {
            "description": "The version of the PostgreSQL Server.\n",
            "type": "string"
          }
        },
        "required": [
          "administratorLogin",
          "fqdn",
          "identities",
          "location",
          "name",
          "resourceGroupName",
          "skuName",
          "tags",
          "version",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:privatedns/getDnsZone:getDnsZone": {
      "description": "Use this data source to access information about an existing Private DNS Zone.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.privatedns.getDnsZone({\n    name: \"contoso.internal\",\n    resourceGroupName: \"contoso-dns\",\n});\nexport const privateDnsZoneId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.privatedns.get_dns_zone(name=\"contoso.internal\",\n    resource_group_name=\"contoso-dns\")\npulumi.export(\"privateDnsZoneId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.PrivateDns.GetDnsZone.InvokeAsync(new Azure.PrivateDns.GetDnsZoneArgs\n        {\n            Name = \"contoso.internal\",\n            ResourceGroupName = \"contoso-dns\",\n        }));\n        this.PrivateDnsZoneId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"privateDnsZoneId\")]\n    public Output\u003cstring\u003e PrivateDnsZoneId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatedns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"contoso-dns\"\n\t\texample, err := privatedns.GetDnsZone(ctx, \u0026privatedns.GetDnsZoneArgs{\n\t\t\tName:              \"contoso.internal\",\n\t\t\tResourceGroupName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"privateDnsZoneId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDnsZone.\n",
        "properties": {
          "name": {
            "description": "The name of the Private DNS Zone.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the Private DNS Zone exists.\nIf the Name of the Resource Group is not provided, the first Private DNS Zone from the list of Private\nDNS Zones in your subscription that matches `name` will be returned.\n",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDnsZone.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "maxNumberOfRecordSets": {
            "description": "Maximum number of recordsets that can be created in this Private Zone.\n",
            "type": "integer"
          },
          "maxNumberOfVirtualNetworkLinks": {
            "description": "Maximum number of Virtual Networks that can be linked to this Private Zone.\n",
            "type": "integer"
          },
          "maxNumberOfVirtualNetworkLinksWithRegistration": {
            "description": "Maximum number of Virtual Networks that can be linked to this Private Zone with registration enabled.\n",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "numberOfRecordSets": {
            "description": "The number of recordsets currently in the zone.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags for the zone.\n",
            "type": "object"
          }
        },
        "required": [
          "maxNumberOfRecordSets",
          "maxNumberOfVirtualNetworkLinks",
          "maxNumberOfVirtualNetworkLinksWithRegistration",
          "name",
          "numberOfRecordSets",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:privatelink/getEndpointConnection:getEndpointConnection": {
      "description": "Use this data source to access the connection status information about an existing Private Endpoint Connection.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.privatelink.getEndpointConnection({\n    name: \"example-private-endpoint\",\n    resourceGroupName: \"example-rg\",\n});\nexport const privateEndpointStatus = example.then(example =\u003e example.privateServiceConnections?[0]?.status);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.privatelink.get_endpoint_connection(name=\"example-private-endpoint\",\n    resource_group_name=\"example-rg\")\npulumi.export(\"privateEndpointStatus\", example.private_service_connections[0].status)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.PrivateLink.GetEndpointConnection.InvokeAsync(new Azure.PrivateLink.GetEndpointConnectionArgs\n        {\n            Name = \"example-private-endpoint\",\n            ResourceGroupName = \"example-rg\",\n        }));\n        this.PrivateEndpointStatus = example.Apply(example =\u003e example.PrivateServiceConnections?[0]?.Status);\n    }\n\n    [Output(\"privateEndpointStatus\")]\n    public Output\u003cstring\u003e PrivateEndpointStatus { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatelink\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := privatelink.GetEndpointConnection(ctx, \u0026privatelink.GetEndpointConnectionArgs{\n\t\t\tName:              \"example-private-endpoint\",\n\t\t\tResourceGroupName: \"example-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"privateEndpointStatus\", example.PrivateServiceConnections[0].Status)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getEndpointConnection.\n",
        "properties": {
          "name": {
            "description": "Specifies the Name of the private endpoint.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the Name of the Resource Group within which the private endpoint exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getEndpointConnection.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The supported Azure location where the resource exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the private endpoint.\n",
            "type": "string"
          },
          "privateServiceConnections": {
            "items": {
              "$ref": "#/types/azure:privatelink/getEndpointConnectionPrivateServiceConnection:getEndpointConnectionPrivateServiceConnection"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "required": [
          "location",
          "name",
          "privateServiceConnections",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:privatelink/getService:getService": {
      "description": "Use this data source to access information about an existing Private Link Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.privatelink.getService({\n    name: \"myPrivateLinkService\",\n    resourceGroupName: \"PrivateLinkServiceRG\",\n});\nexport const privateLinkServiceId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.privatelink.get_service(name=\"myPrivateLinkService\",\n    resource_group_name=\"PrivateLinkServiceRG\")\npulumi.export(\"privateLinkServiceId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.PrivateLink.GetService.InvokeAsync(new Azure.PrivateLink.GetServiceArgs\n        {\n            Name = \"myPrivateLinkService\",\n            ResourceGroupName = \"PrivateLinkServiceRG\",\n        }));\n        this.PrivateLinkServiceId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"privateLinkServiceId\")]\n    public Output\u003cstring\u003e PrivateLinkServiceId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatelink\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := privatelink.GetService(ctx, \u0026privatelink.GetServiceArgs{\n\t\t\tName:              \"myPrivateLinkService\",\n\t\t\tResourceGroupName: \"PrivateLinkServiceRG\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"privateLinkServiceId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getService.\n",
        "properties": {
          "name": {
            "description": "The name of the private link service.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the private link service resides.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getService.\n",
        "properties": {
          "alias": {
            "description": "The alias is a globally unique name for your private link service which Azure generates for you. Your can use this alias to request a connection to your private link service.\n",
            "type": "string"
          },
          "autoApprovalSubscriptionIds": {
            "description": "The list of subscription(s) globally unique identifiers that will be auto approved to use the private link service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "enableProxyProtocol": {
            "description": "Does the Private Link Service support the Proxy Protocol?\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "loadBalancerFrontendIpConfigurationIds": {
            "description": "The list of Standard Load Balancer(SLB) resource IDs. The Private Link service is tied to the frontend IP address of a SLB. All traffic destined for the private link service will reach the frontend of the SLB. You can configure SLB rules to direct this traffic to appropriate backend pools where your applications are running.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "The supported Azure location where the resource exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of private link service NAT IP configuration.\n",
            "type": "string"
          },
          "natIpConfigurations": {
            "description": "The `nat_ip_configuration` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:privatelink/getServiceNatIpConfiguration:getServiceNatIpConfiguration"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "visibilitySubscriptionIds": {
            "description": "The list of subscription(s) globally unique identifiers(GUID) that will be able to see the private link service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "alias",
          "autoApprovalSubscriptionIds",
          "enableProxyProtocol",
          "loadBalancerFrontendIpConfigurationIds",
          "location",
          "name",
          "natIpConfigurations",
          "resourceGroupName",
          "tags",
          "visibilitySubscriptionIds",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:privatelink/getServiceEndpointConnections:getServiceEndpointConnections": {
      "description": "Use this data source to access endpoint connection information about an existing Private Link Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.privatelink.getServiceEndpointConnections({\n    serviceId: azurerm_private_link_service.example.id,\n    resourceGroupName: azurerm_resource_group.example.name,\n});\nexport const privateEndpointStatus = example.then(example =\u003e example.privateEndpointConnections?[0]?.status);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.privatelink.get_service_endpoint_connections(service_id=azurerm_private_link_service[\"example\"][\"id\"],\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\npulumi.export(\"privateEndpointStatus\", example.private_endpoint_connections[0].status)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.PrivateLink.GetServiceEndpointConnections.InvokeAsync(new Azure.PrivateLink.GetServiceEndpointConnectionsArgs\n        {\n            ServiceId = azurerm_private_link_service.Example.Id,\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n        this.PrivateEndpointStatus = example.Apply(example =\u003e example.PrivateEndpointConnections?[0]?.Status);\n    }\n\n    [Output(\"privateEndpointStatus\")]\n    public Output\u003cstring\u003e PrivateEndpointStatus { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatelink\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := privatelink.GetServiceEndpointConnections(ctx, \u0026privatelink.GetServiceEndpointConnectionsArgs{\n\t\t\tServiceId:         azurerm_private_link_service.Example.Id,\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"privateEndpointStatus\", example.PrivateEndpointConnections[0].Status)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getServiceEndpointConnections.\n",
        "properties": {
          "resourceGroupName": {
            "description": "The name of the resource group in which the private link service resides.\n",
            "type": "string"
          },
          "serviceId": {
            "description": "The resource ID of the private link service.\n",
            "type": "string"
          }
        },
        "required": [
          "resourceGroupName",
          "serviceId"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getServiceEndpointConnections.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "privateEndpointConnections": {
            "items": {
              "$ref": "#/types/azure:privatelink/getServiceEndpointConnectionsPrivateEndpointConnection:getServiceEndpointConnectionsPrivateEndpointConnection"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "serviceId": {
            "type": "string"
          },
          "serviceName": {
            "description": "The name of the private link service.\n",
            "type": "string"
          }
        },
        "required": [
          "location",
          "privateEndpointConnections",
          "resourceGroupName",
          "serviceId",
          "serviceName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:proximity/getPlacementGroup:getPlacementGroup": {
      "description": "Use this data source to access information about an existing Proximity Placement Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.proximity.getPlacementGroup({\n    name: \"tf-appsecuritygroup\",\n    resourceGroupName: \"my-resource-group\",\n});\nexport const proximityPlacementGroupId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.proximity.get_placement_group(name=\"tf-appsecuritygroup\",\n    resource_group_name=\"my-resource-group\")\npulumi.export(\"proximityPlacementGroupId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Proximity.GetPlacementGroup.InvokeAsync(new Azure.Proximity.GetPlacementGroupArgs\n        {\n            Name = \"tf-appsecuritygroup\",\n            ResourceGroupName = \"my-resource-group\",\n        }));\n        this.ProximityPlacementGroupId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"proximityPlacementGroupId\")]\n    public Output\u003cstring\u003e ProximityPlacementGroupId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/proximity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := proximity.LookupPlacementGroup(ctx, \u0026proximity.LookupPlacementGroupArgs{\n\t\t\tName:              \"tf-appsecuritygroup\",\n\t\t\tResourceGroupName: \"my-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"proximityPlacementGroupId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getPlacementGroup.\n",
        "properties": {
          "name": {
            "description": "The name of the Proximity Placement Group.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Proximity Placement Group exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPlacementGroup.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:recoveryservices/getVault:getVault": {
      "description": "Use this data source to access information about an existing Recovery Services Vault.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst vault = pulumi.output(azure.recoveryservices.getVault({\n    name: \"tfex-recovery_vault\",\n    resourceGroupName: \"tfex-resource_group\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nvault = azure.recoveryservices.get_vault(name=\"tfex-recovery_vault\",\n    resource_group_name=\"tfex-resource_group\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var vault = Output.Create(Azure.RecoveryServices.GetVault.InvokeAsync(new Azure.RecoveryServices.GetVaultArgs\n        {\n            Name = \"tfex-recovery_vault\",\n            ResourceGroupName = \"tfex-resource_group\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices\"\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 := recoveryservices.LookupVault(ctx, \u0026recoveryservices.LookupVaultArgs{\n\t\t\tName:              \"tfex-recovery_vault\",\n\t\t\tResourceGroupName: \"tfex-resource_group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getVault.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Recovery Services Vault.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Recovery Services Vault resides.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVault.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the resource resides.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sku": {
            "description": "The vault's current SKU.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "sku",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:redis/getCache:getCache": {
      "description": "Use this data source to access information about an existing Redis Cache\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.redis.getCache({\n    name: \"myrediscache\",\n    resourceGroupName: \"redis-cache\",\n});\nexport const primaryAccessKey = example.then(example =\u003e example.primaryAccessKey);\nexport const hostname = example.then(example =\u003e example.hostname);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.redis.get_cache(name=\"myrediscache\",\n    resource_group_name=\"redis-cache\")\npulumi.export(\"primaryAccessKey\", example.primary_access_key)\npulumi.export(\"hostname\", example.hostname)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Redis.GetCache.InvokeAsync(new Azure.Redis.GetCacheArgs\n        {\n            Name = \"myrediscache\",\n            ResourceGroupName = \"redis-cache\",\n        }));\n        this.PrimaryAccessKey = example.Apply(example =\u003e example.PrimaryAccessKey);\n        this.Hostname = example.Apply(example =\u003e example.Hostname);\n    }\n\n    [Output(\"primaryAccessKey\")]\n    public Output\u003cstring\u003e PrimaryAccessKey { get; set; }\n    [Output(\"hostname\")]\n    public Output\u003cstring\u003e Hostname { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/redis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := redis.LookupCache(ctx, \u0026redis.LookupCacheArgs{\n\t\t\tName:              \"myrediscache\",\n\t\t\tResourceGroupName: \"redis-cache\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"primaryAccessKey\", example.PrimaryAccessKey)\n\t\tctx.Export(\"hostname\", example.Hostname)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getCache.\n",
        "properties": {
          "name": {
            "description": "The name of the Redis cache\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group the Redis cache instance is located in.\n",
            "type": "string"
          },
          "zones": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCache.\n",
        "properties": {
          "capacity": {
            "description": "The size of the Redis Cache deployed.\n",
            "type": "integer"
          },
          "enableNonSslPort": {
            "description": "Whether the SSL port is enabled.\n",
            "type": "boolean"
          },
          "family": {
            "description": "The SKU family/pricing group used. Possible values are `C` (for Basic/Standard SKU family) and `P` (for `Premium`)\n",
            "type": "string"
          },
          "hostname": {
            "description": "The Hostname of the Redis Instance\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The location of the Redis Cache.\n",
            "type": "string"
          },
          "minimumTlsVersion": {
            "description": "The minimum TLS version.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "patchSchedules": {
            "description": "A list of `patch_schedule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:redis/getCachePatchSchedule:getCachePatchSchedule"
            },
            "type": "array"
          },
          "port": {
            "description": "The non-SSL Port of the Redis Instance\n",
            "type": "integer"
          },
          "primaryAccessKey": {
            "description": "The Primary Access Key for the Redis Instance\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The primary connection string of the Redis Instance.\n",
            "type": "string"
          },
          "privateStaticIpAddress": {
            "type": "string"
          },
          "redisConfigurations": {
            "description": "A `redis_configuration` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:redis/getCacheRedisConfiguration:getCacheRedisConfiguration"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The Secondary Access Key for the Redis Instance\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The secondary connection string of the Redis Instance.\n",
            "type": "string"
          },
          "shardCount": {
            "type": "integer"
          },
          "skuName": {
            "description": "The SKU of Redis used. Possible values are `Basic`, `Standard` and `Premium`.\n",
            "type": "string"
          },
          "sslPort": {
            "description": "The SSL Port of the Redis Instance\n",
            "type": "integer"
          },
          "subnetId": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "zones": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "capacity",
          "enableNonSslPort",
          "family",
          "hostname",
          "location",
          "minimumTlsVersion",
          "name",
          "patchSchedules",
          "port",
          "primaryAccessKey",
          "primaryConnectionString",
          "privateStaticIpAddress",
          "redisConfigurations",
          "resourceGroupName",
          "secondaryAccessKey",
          "secondaryConnectionString",
          "shardCount",
          "skuName",
          "sslPort",
          "subnetId",
          "tags",
          "zones",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:redis/getEnterpriseDatabase:getEnterpriseDatabase": {
      "description": "Use this data source to access information about an existing Redis Enterprise Database\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.redis.getEnterpriseDatabase({\n    name: \"default\",\n    resourceGroupName: azurerm_resource_group.example.name,\n    clusterId: azurerm_redis_enterprise_cluster.example.id,\n});\nexport const redisEnterpriseDatabasePrimaryKey = example.then(example =\u003e example.primaryAccessKey);\nexport const redisEnterpriseDatabaseSecondaryKey = example.then(example =\u003e example.secondaryAccessKey);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.redis.get_enterprise_database(name=\"default\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"],\n    cluster_id=azurerm_redis_enterprise_cluster[\"example\"][\"id\"])\npulumi.export(\"redisEnterpriseDatabasePrimaryKey\", example.primary_access_key)\npulumi.export(\"redisEnterpriseDatabaseSecondaryKey\", example.secondary_access_key)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Redis.GetEnterpriseDatabase.InvokeAsync(new Azure.Redis.GetEnterpriseDatabaseArgs\n        {\n            Name = \"default\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n            ClusterId = azurerm_redis_enterprise_cluster.Example.Id,\n        }));\n        this.RedisEnterpriseDatabasePrimaryKey = example.Apply(example =\u003e example.PrimaryAccessKey);\n        this.RedisEnterpriseDatabaseSecondaryKey = example.Apply(example =\u003e example.SecondaryAccessKey);\n    }\n\n    [Output(\"redisEnterpriseDatabasePrimaryKey\")]\n    public Output\u003cstring\u003e RedisEnterpriseDatabasePrimaryKey { get; set; }\n    [Output(\"redisEnterpriseDatabaseSecondaryKey\")]\n    public Output\u003cstring\u003e RedisEnterpriseDatabaseSecondaryKey { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/redis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := redis.LookupEnterpriseDatabase(ctx, \u0026redis.LookupEnterpriseDatabaseArgs{\n\t\t\tName:              \"default\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t\tClusterId:         azurerm_redis_enterprise_cluster.Example.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"redisEnterpriseDatabasePrimaryKey\", example.PrimaryAccessKey)\n\t\tctx.Export(\"redisEnterpriseDatabaseSecondaryKey\", example.SecondaryAccessKey)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getEnterpriseDatabase.\n",
        "properties": {
          "clusterId": {
            "description": "The resource ID of Redis Enterprise Cluster which hosts the Redis Enterprise Database instance.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Redis Enterprise Database.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group the Redis Enterprise Database instance is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "clusterId",
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getEnterpriseDatabase.\n",
        "properties": {
          "clusterId": {
            "description": "The Redis Enterprise Cluster ID that is hosting the Redis Enterprise Database.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "description": "The Redis Enterprise Database name.\n",
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The Primary Access Key for the Redis Enterprise Database instance.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The Secondary Access Key for the Redis Enterprise Database instance.\n",
            "type": "string"
          }
        },
        "required": [
          "clusterId",
          "name",
          "primaryAccessKey",
          "resourceGroupName",
          "secondaryAccessKey",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:role/getRoleDefinition:getRoleDefinition": {
      "deprecationMessage": "azure.role.getRoleDefinition has been deprecated in favor of azure.authorization.getRoleDefinition",
      "inputs": {
        "description": "A collection of arguments for invoking getRoleDefinition.\n",
        "properties": {
          "name": {
            "type": "string"
          },
          "roleDefinitionId": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getRoleDefinition.\n",
        "properties": {
          "assignableScopes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permissions": {
            "items": {
              "$ref": "#/types/azure:role/getRoleDefinitionPermission:getRoleDefinitionPermission"
            },
            "type": "array"
          },
          "roleDefinitionId": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "assignableScopes",
          "description",
          "name",
          "permissions",
          "roleDefinitionId",
          "type",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:search/getService:getService": {
      "description": "Manages a Search Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = exampleResourceGroup.name.apply(name =\u003e azure.search.getService({\n    name: \"example-search-service\",\n    resourceGroupName: name,\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = example_resource_group.name.apply(lambda name: azure.search.get_service(name=\"example-search-service\",\n    resource_group_name=name))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = exampleResourceGroup.Name.Apply(name =\u003e Azure.Search.GetService.InvokeAsync(new Azure.Search.GetServiceArgs\n        {\n            Name = \"example-search-service\",\n            ResourceGroupName = name,\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/search\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\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{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getService.\n",
        "properties": {
          "name": {
            "description": "The Name of the Search Service.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Search Service exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getService.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "An `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:search/getServiceIdentity:getServiceIdentity"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of this Query Key.\n",
            "type": "string"
          },
          "partitionCount": {
            "description": "The number of partitions which have been created.\n",
            "type": "integer"
          },
          "primaryKey": {
            "description": "The Primary Key used for Search Service Administration.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether or not public network access is enabled for this resource.\n",
            "type": "boolean"
          },
          "queryKeys": {
            "description": "A `query_keys` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:search/getServiceQueryKey:getServiceQueryKey"
            },
            "type": "array"
          },
          "replicaCount": {
            "description": "The number of replica's which have been created.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key used for Search Service Administration.\n",
            "type": "string"
          }
        },
        "required": [
          "identities",
          "name",
          "partitionCount",
          "primaryKey",
          "publicNetworkAccessEnabled",
          "queryKeys",
          "replicaCount",
          "resourceGroupName",
          "secondaryKey",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:sentinel/getAlertRule:getAlertRule": {
      "description": "Use this data source to access information about an existing Sentinel Alert Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleAnalyticsWorkspace = azure.operationalinsights.getAnalyticsWorkspace({\n    name: \"example\",\n    resourceGroupName: \"example-resources\",\n});\nconst exampleAlertRule = exampleAnalyticsWorkspace.then(exampleAnalyticsWorkspace =\u003e azure.sentinel.getAlertRule({\n    name: \"existing\",\n    logAnalyticsWorkspaceId: exampleAnalyticsWorkspace.id,\n}));\nexport const id = exampleAlertRule.then(exampleAlertRule =\u003e exampleAlertRule.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_analytics_workspace = azure.operationalinsights.get_analytics_workspace(name=\"example\",\n    resource_group_name=\"example-resources\")\nexample_alert_rule = azure.sentinel.get_alert_rule(name=\"existing\",\n    log_analytics_workspace_id=example_analytics_workspace.id)\npulumi.export(\"id\", example_alert_rule.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleAnalyticsWorkspace = Output.Create(Azure.OperationalInsights.GetAnalyticsWorkspace.InvokeAsync(new Azure.OperationalInsights.GetAnalyticsWorkspaceArgs\n        {\n            Name = \"example\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        var exampleAlertRule = exampleAnalyticsWorkspace.Apply(exampleAnalyticsWorkspace =\u003e Output.Create(Azure.Sentinel.GetAlertRule.InvokeAsync(new Azure.Sentinel.GetAlertRuleArgs\n        {\n            Name = \"existing\",\n            LogAnalyticsWorkspaceId = exampleAnalyticsWorkspace.Id,\n        })));\n        this.Id = exampleAlertRule.Apply(exampleAlertRule =\u003e exampleAlertRule.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sentinel\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleAnalyticsWorkspace, err := operationalinsights.LookupAnalyticsWorkspace(ctx, \u0026operationalinsights.LookupAnalyticsWorkspaceArgs{\n\t\t\tName:              \"example\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAlertRule, err := sentinel.GetAlertRule(ctx, \u0026sentinel.GetAlertRuleArgs{\n\t\t\tName:                    \"existing\",\n\t\t\tLogAnalyticsWorkspaceId: exampleAnalyticsWorkspace.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", exampleAlertRule.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAlertRule.\n",
        "properties": {
          "logAnalyticsWorkspaceId": {
            "description": "The ID of the Log Analytics Workspace this Sentinel Alert Rule belongs to.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Sentinel Alert Rule.\n",
            "type": "string"
          }
        },
        "required": [
          "logAnalyticsWorkspaceId",
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAlertRule.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "logAnalyticsWorkspaceId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "logAnalyticsWorkspaceId",
          "name",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:sentinel/getAlertRuleTemplate:getAlertRuleTemplate": {
      "description": "Use this data source to access information about an existing Sentinel Alert Rule Template.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.sentinel.getAlertRuleTemplate({\n    logAnalyticsWorkspaceId: \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.OperationalInsights/workspaces/workspace1\",\n    displayName: \"Create incidents based on Azure Security Center for IoT alerts\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.sentinel.get_alert_rule_template(log_analytics_workspace_id=\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.OperationalInsights/workspaces/workspace1\",\n    display_name=\"Create incidents based on Azure Security Center for IoT alerts\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Sentinel.GetAlertRuleTemplate.InvokeAsync(new Azure.Sentinel.GetAlertRuleTemplateArgs\n        {\n            LogAnalyticsWorkspaceId = \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.OperationalInsights/workspaces/workspace1\",\n            DisplayName = \"Create incidents based on Azure Security Center for IoT alerts\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sentinel\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"Create incidents based on Azure Security Center for IoT alerts\"\n\t\texample, err := sentinel.GetAlertRuleTemplate(ctx, \u0026sentinel.GetAlertRuleTemplateArgs{\n\t\t\tLogAnalyticsWorkspaceId: \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.OperationalInsights/workspaces/workspace1\",\n\t\t\tDisplayName:             \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAlertRuleTemplate.\n",
        "properties": {
          "displayName": {
            "description": "The display name of this Sentinel Alert Rule Template. Either `display_name` or `name` have to be specified.\n",
            "type": "string"
          },
          "logAnalyticsWorkspaceId": {
            "description": "The ID of the Log Analytics Workspace.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of this Sentinel Alert Rule Template. Either `display_name` or `name` have to be specified.\n",
            "type": "string"
          }
        },
        "required": [
          "logAnalyticsWorkspaceId"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAlertRuleTemplate.\n",
        "properties": {
          "displayName": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "logAnalyticsWorkspaceId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "scheduledTemplates": {
            "description": "A `scheduled_template` block as defined below. This only applies to Sentinel Scheduled Alert Rule Template.\n",
            "items": {
              "$ref": "#/types/azure:sentinel/getAlertRuleTemplateScheduledTemplate:getAlertRuleTemplateScheduledTemplate"
            },
            "type": "array"
          },
          "securityIncidentTemplates": {
            "description": "A `security_incident_template` block as defined below. This only applies to Sentinel MS Security Incident Alert Rule Template.\n",
            "items": {
              "$ref": "#/types/azure:sentinel/getAlertRuleTemplateSecurityIncidentTemplate:getAlertRuleTemplateSecurityIncidentTemplate"
            },
            "type": "array"
          }
        },
        "required": [
          "displayName",
          "logAnalyticsWorkspaceId",
          "name",
          "scheduledTemplates",
          "securityIncidentTemplates",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:servicebus/getNamespace:getNamespace": {
      "description": "Use this data source to access information about an existing ServiceBus Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.servicebus.getNamespace({\n    name: \"examplenamespace\",\n    resourceGroupName: \"example-resources\",\n});\nexport const location = example.then(example =\u003e example.location);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.servicebus.get_namespace(name=\"examplenamespace\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"location\", example.location)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ServiceBus.GetNamespace.InvokeAsync(new Azure.ServiceBus.GetNamespaceArgs\n        {\n            Name = \"examplenamespace\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.Location = example.Apply(example =\u003e example.Location);\n    }\n\n    [Output(\"location\")]\n    public Output\u003cstring\u003e Location { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := servicebus.LookupNamespace(ctx, \u0026servicebus.LookupNamespaceArgs{\n\t\t\tName:              \"examplenamespace\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"location\", example.Location)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getNamespace.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the ServiceBus Namespace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where the ServiceBus Namespace exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNamespace.\n",
        "properties": {
          "capacity": {
            "description": "The capacity of the ServiceBus Namespace.\n",
            "type": "integer"
          },
          "defaultPrimaryConnectionString": {
            "description": "The primary connection string for the authorization\nrule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultPrimaryKey": {
            "description": "The primary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryConnectionString": {
            "description": "The secondary connection string for the\nauthorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryKey": {
            "description": "The secondary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The location of the Resource Group in which the ServiceBus Namespace exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "sku": {
            "description": "The Tier used for the ServiceBus Namespace.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "zoneRedundant": {
            "description": "Whether or not this ServiceBus Namespace is zone redundant.\n",
            "type": "boolean"
          }
        },
        "required": [
          "capacity",
          "defaultPrimaryConnectionString",
          "defaultPrimaryKey",
          "defaultSecondaryConnectionString",
          "defaultSecondaryKey",
          "location",
          "name",
          "resourceGroupName",
          "sku",
          "tags",
          "zoneRedundant",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:servicebus/getNamespaceAuthorizationRule:getNamespaceAuthorizationRule": {
      "description": "Use this data source to access information about an existing ServiceBus Namespace Authorization Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.servicebus.getNamespaceAuthorizationRule({\n    name: \"examplerule\",\n    namespaceName: \"examplenamespace\",\n    resourceGroupName: \"example-resources\",\n});\nexport const ruleId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.servicebus.get_namespace_authorization_rule(name=\"examplerule\",\n    namespace_name=\"examplenamespace\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"ruleId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ServiceBus.GetNamespaceAuthorizationRule.InvokeAsync(new Azure.ServiceBus.GetNamespaceAuthorizationRuleArgs\n        {\n            Name = \"examplerule\",\n            NamespaceName = \"examplenamespace\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.RuleId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"ruleId\")]\n    public Output\u003cstring\u003e RuleId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := servicebus.LookupNamespaceAuthorizationRule(ctx, \u0026servicebus.LookupNamespaceAuthorizationRuleArgs{\n\t\t\tName:              \"examplerule\",\n\t\t\tNamespaceName:     \"examplenamespace\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ruleId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getNamespaceAuthorizationRule.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the ServiceBus Namespace Authorization Rule.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the ServiceBus Namespace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where the ServiceBus Namespace exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "namespaceName",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNamespaceAuthorizationRule.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "namespaceName": {
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The primary connection string for the authorization rule.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The primary access key for the authorization rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The secondary connection string for the authorization rule.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The secondary access key for the authorization rule.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "namespaceName",
          "primaryConnectionString",
          "primaryConnectionStringAlias",
          "primaryKey",
          "resourceGroupName",
          "secondaryConnectionString",
          "secondaryConnectionStringAlias",
          "secondaryKey",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:servicebus/getNamespaceDisasterRecoveryConfig:getNamespaceDisasterRecoveryConfig": {
      "inputs": {
        "description": "A collection of arguments for invoking getNamespaceDisasterRecoveryConfig.\n",
        "properties": {
          "name": {
            "type": "string"
          },
          "namespaceName": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "namespaceName",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNamespaceDisasterRecoveryConfig.\n",
        "properties": {
          "defaultPrimaryKey": {
            "type": "string"
          },
          "defaultSecondaryKey": {
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "namespaceName": {
            "type": "string"
          },
          "partnerNamespaceId": {
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "type": "string"
          }
        },
        "required": [
          "defaultPrimaryKey",
          "defaultSecondaryKey",
          "name",
          "namespaceName",
          "partnerNamespaceId",
          "primaryConnectionStringAlias",
          "resourceGroupName",
          "secondaryConnectionStringAlias",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:servicebus/getQueue:getQueue": {
      "description": "Use this data source to access information about an existing Service Bus Queue.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.servicebus.getQueue({\n    name: \"existing\",\n    resourceGroupName: \"existing\",\n    namespaceName: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.servicebus.get_queue(name=\"existing\",\n    resource_group_name=\"existing\",\n    namespace_name=\"existing\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ServiceBus.GetQueue.InvokeAsync(new Azure.ServiceBus.GetQueueArgs\n        {\n            Name = \"existing\",\n            ResourceGroupName = \"existing\",\n            NamespaceName = \"existing\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := servicebus.LookupQueue(ctx, \u0026servicebus.LookupQueueArgs{\n\t\t\tName:              \"existing\",\n\t\t\tResourceGroupName: \"existing\",\n\t\t\tNamespaceName:     \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getQueue.\n",
        "properties": {
          "name": {
            "description": "The name of this Service Bus Queue.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the ServiceBus Namespace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Service Bus Queue exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "namespaceName",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getQueue.\n",
        "properties": {
          "autoDeleteOnIdle": {
            "description": "The ISO 8601 timespan duration of the idle interval after which the Queue is automatically deleted, minimum of 5 minutes.\n",
            "type": "string"
          },
          "deadLetteringOnMessageExpiration": {
            "description": "Boolean flag which controls whether the Queue has dead letter support when a message expires.\n",
            "type": "boolean"
          },
          "defaultMessageTtl": {
            "description": "The ISO 8601 timespan duration of the TTL of messages sent to this queue. This is the default value used when TTL is not set on a message itself.\n",
            "type": "string"
          },
          "duplicateDetectionHistoryTimeWindow": {
            "description": "The ISO 8601 timespan duration during which duplicates can be detected.\n",
            "type": "string"
          },
          "enableBatchedOperations": {
            "description": "Boolean flag which controls whether server-side batched operations are enabled.\n",
            "type": "boolean"
          },
          "enableExpress": {
            "description": "Boolean flag which controls whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage.\n",
            "type": "boolean"
          },
          "enablePartitioning": {
            "description": "Boolean flag which controls whether to enable the queue to be partitioned across multiple message brokers.\n",
            "type": "boolean"
          },
          "forwardDeadLetteredMessagesTo": {
            "description": "The name of a Queue or Topic to automatically forward dead lettered messages to.\n",
            "type": "string"
          },
          "forwardTo": {
            "description": "The name of a Queue or Topic to automatically forward messages to. Please [see the documentation](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-auto-forwarding) for more information.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "lockDuration": {
            "description": "The ISO 8601 timespan duration of a peek-lock; that is, the amount of time that the message is locked for other receivers.\n",
            "type": "string"
          },
          "maxDeliveryCount": {
            "description": "Integer value which controls when a message is automatically dead lettered.\n",
            "type": "integer"
          },
          "maxSizeInMegabytes": {
            "description": "Integer value which controls the size of memory allocated for the queue. For supported values see the \"Queue or topic size\" section of [Service Bus Quotas](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas).\n",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "namespaceName": {
            "type": "string"
          },
          "requiresDuplicateDetection": {
            "description": "Boolean flag which controls whether the Queue requires duplicate detection.\n",
            "type": "boolean"
          },
          "requiresSession": {
            "description": "Boolean flag which controls whether the Queue requires sessions. This will allow ordered handling of unbounded sequences of related messages. With sessions enabled a queue can guarantee first-in-first-out delivery of messages.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "status": {
            "description": "The status of the Queue. Possible values are `Active`, `Creating`, `Deleting`, `Disabled`, `ReceiveDisabled`, `Renaming`, `SendDisabled`, `Unknown`.\n",
            "type": "string"
          }
        },
        "required": [
          "autoDeleteOnIdle",
          "deadLetteringOnMessageExpiration",
          "defaultMessageTtl",
          "duplicateDetectionHistoryTimeWindow",
          "enableBatchedOperations",
          "enableExpress",
          "enablePartitioning",
          "forwardDeadLetteredMessagesTo",
          "forwardTo",
          "lockDuration",
          "maxDeliveryCount",
          "maxSizeInMegabytes",
          "name",
          "namespaceName",
          "requiresDuplicateDetection",
          "requiresSession",
          "resourceGroupName",
          "status",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:servicebus/getQueueAuthorizationRule:getQueueAuthorizationRule": {
      "description": "Use this data source to access information about an existing ServiceBus Queue Authorisation Rule within a ServiceBus Queue.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.servicebus.getQueueAuthorizationRule({\n    name: \"example-tfex_name\",\n    resourceGroupName: \"example-resources\",\n    queueName: \"example-servicebus_queue\",\n    namespaceName: \"example-namespace\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.servicebus.get_queue_authorization_rule(name=\"example-tfex_name\",\n    resource_group_name=\"example-resources\",\n    queue_name=\"example-servicebus_queue\",\n    namespace_name=\"example-namespace\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ServiceBus.GetQueueAuthorizationRule.InvokeAsync(new Azure.ServiceBus.GetQueueAuthorizationRuleArgs\n        {\n            Name = \"example-tfex_name\",\n            ResourceGroupName = \"example-resources\",\n            QueueName = \"example-servicebus_queue\",\n            NamespaceName = \"example-namespace\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := servicebus.LookupQueueAuthorizationRule(ctx, \u0026servicebus.LookupQueueAuthorizationRuleArgs{\n\t\t\tName:              \"example-tfex_name\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t\tQueueName:         \"example-servicebus_queue\",\n\t\t\tNamespaceName:     \"example-namespace\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getQueueAuthorizationRule.\n",
        "properties": {
          "name": {
            "description": "The name of this ServiceBus Queue Authorisation Rule.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the ServiceBus Namespace.\n",
            "type": "string"
          },
          "queueName": {
            "description": "The name of the ServiceBus Queue.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the ServiceBus Queue Authorisation Rule exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "namespaceName",
          "queueName",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getQueueAuthorizationRule.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "listen": {
            "type": "boolean"
          },
          "manage": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "namespaceName": {
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the ServiceBus Queue authorization Rule.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the ServiceBus Queue authorization Rule.\n",
            "type": "string"
          },
          "queueName": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the ServiceBus Queue authorization Rule.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the ServiceBus Queue authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "type": "boolean"
          }
        },
        "required": [
          "listen",
          "manage",
          "name",
          "namespaceName",
          "primaryConnectionString",
          "primaryConnectionStringAlias",
          "primaryKey",
          "queueName",
          "resourceGroupName",
          "secondaryConnectionString",
          "secondaryConnectionStringAlias",
          "secondaryKey",
          "send",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:servicebus/getSubscription:getSubscription": {
      "description": "Use this data source to access information about an existing ServiceBus Subscription.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.servicebus.getSubscription({\n    name: \"examplesubscription\",\n    resourceGroupName: \"exampleresources\",\n    namespaceName: \"examplenamespace\",\n    topicName: \"exampletopic\",\n});\nexport const servicebusSubscription = data.azurerm_servicebus_namespace.example;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.servicebus.get_subscription(name=\"examplesubscription\",\n    resource_group_name=\"exampleresources\",\n    namespace_name=\"examplenamespace\",\n    topic_name=\"exampletopic\")\npulumi.export(\"servicebusSubscription\", data[\"azurerm_servicebus_namespace\"][\"example\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ServiceBus.GetSubscription.InvokeAsync(new Azure.ServiceBus.GetSubscriptionArgs\n        {\n            Name = \"examplesubscription\",\n            ResourceGroupName = \"exampleresources\",\n            NamespaceName = \"examplenamespace\",\n            TopicName = \"exampletopic\",\n        }));\n        this.ServicebusSubscription = data.Azurerm_servicebus_namespace.Example;\n    }\n\n    [Output(\"servicebusSubscription\")]\n    public Output\u003cstring\u003e ServicebusSubscription { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\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 := servicebus.LookupSubscription(ctx, \u0026servicebus.LookupSubscriptionArgs{\n\t\t\tName:              \"examplesubscription\",\n\t\t\tResourceGroupName: \"exampleresources\",\n\t\t\tNamespaceName:     \"examplenamespace\",\n\t\t\tTopicName:         \"exampletopic\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"servicebusSubscription\", data.Azurerm_servicebus_namespace.Example)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSubscription.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the ServiceBus Subscription.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the ServiceBus Namespace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where the ServiceBus Namespace exists.\n",
            "type": "string"
          },
          "topicName": {
            "description": "The name of the ServiceBus Topic.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "namespaceName",
          "resourceGroupName",
          "topicName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSubscription.\n",
        "properties": {
          "autoDeleteOnIdle": {
            "description": "The idle interval after which the topic is automatically deleted.\n",
            "type": "string"
          },
          "deadLetteringOnFilterEvaluationError": {
            "description": "Does the ServiceBus Subscription have dead letter support on filter evaluation exceptions?\n",
            "type": "boolean"
          },
          "deadLetteringOnMessageExpiration": {
            "description": "Does the Service Bus Subscription have dead letter support when a message expires?\n",
            "type": "boolean"
          },
          "defaultMessageTtl": {
            "description": "The Default message timespan to live. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.\n",
            "type": "string"
          },
          "enableBatchedOperations": {
            "description": "Are batched operations enabled on this ServiceBus Subscription?\n",
            "type": "boolean"
          },
          "forwardDeadLetteredMessagesTo": {
            "description": "The name of a Queue or Topic to automatically forward Dead Letter messages to.\n",
            "type": "string"
          },
          "forwardTo": {
            "description": "The name of a ServiceBus Queue or ServiceBus Topic where messages are automatically forwarded.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "lockDuration": {
            "description": "The lock duration for the subscription.\n",
            "type": "string"
          },
          "maxDeliveryCount": {
            "description": "The maximum number of deliveries.\n",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "namespaceName": {
            "type": "string"
          },
          "requiresSession": {
            "description": "Whether or not this ServiceBus Subscription supports session.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "topicName": {
            "type": "string"
          }
        },
        "required": [
          "autoDeleteOnIdle",
          "deadLetteringOnFilterEvaluationError",
          "deadLetteringOnMessageExpiration",
          "defaultMessageTtl",
          "enableBatchedOperations",
          "forwardDeadLetteredMessagesTo",
          "forwardTo",
          "lockDuration",
          "maxDeliveryCount",
          "name",
          "namespaceName",
          "requiresSession",
          "resourceGroupName",
          "topicName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:servicebus/getTopic:getTopic": {
      "description": "Use this data source to access information about an existing Service Bus Topic.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.servicebus.getTopic({\n    name: \"existing\",\n    resourceGroupName: \"existing\",\n    namespaceName: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.servicebus.get_topic(name=\"existing\",\n    resource_group_name=\"existing\",\n    namespace_name=\"existing\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ServiceBus.GetTopic.InvokeAsync(new Azure.ServiceBus.GetTopicArgs\n        {\n            Name = \"existing\",\n            ResourceGroupName = \"existing\",\n            NamespaceName = \"existing\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := servicebus.LookupTopic(ctx, \u0026servicebus.LookupTopicArgs{\n\t\t\tName:              \"existing\",\n\t\t\tResourceGroupName: \"existing\",\n\t\t\tNamespaceName:     \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getTopic.\n",
        "properties": {
          "name": {
            "description": "The name of this Service Bus Topic.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the Service Bus Namespace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Service Bus Topic exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "namespaceName",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getTopic.\n",
        "properties": {
          "autoDeleteOnIdle": {
            "description": "The ISO 8601 timespan duration of the idle interval after which the Topic is automatically deleted, minimum of 5 minutes.\n",
            "type": "string"
          },
          "defaultMessageTtl": {
            "description": "The ISO 8601 timespan duration of TTL of messages sent to this topic if no TTL value is set on the message itself.\n",
            "type": "string"
          },
          "duplicateDetectionHistoryTimeWindow": {
            "description": "The ISO 8601 timespan duration during which duplicates can be detected.\n",
            "type": "string"
          },
          "enableBatchedOperations": {
            "description": "Boolean flag which controls if server-side batched operations are enabled.\n",
            "type": "boolean"
          },
          "enableExpress": {
            "description": "Boolean flag which controls whether Express Entities are enabled. An express topic holds a message in memory temporarily before writing it to persistent storage.\n",
            "type": "boolean"
          },
          "enablePartitioning": {
            "description": "Boolean flag which controls whether to enable the topic to be partitioned across multiple message brokers.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "maxSizeInMegabytes": {
            "description": "Integer value which controls the size of memory allocated for the topic. For supported values see the \"Queue/topic size\" section of [this document](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas).\n",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "namespaceName": {
            "type": "string"
          },
          "requiresDuplicateDetection": {
            "description": "Boolean flag which controls whether the Topic requires duplicate detection.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "status": {
            "description": "The Status of the Service Bus Topic. Acceptable values are Active or Disabled.\n",
            "type": "string"
          },
          "supportOrdering": {
            "description": "Boolean flag which controls whether the Topic supports ordering.\n",
            "type": "boolean"
          }
        },
        "required": [
          "autoDeleteOnIdle",
          "defaultMessageTtl",
          "duplicateDetectionHistoryTimeWindow",
          "enableBatchedOperations",
          "enableExpress",
          "enablePartitioning",
          "maxSizeInMegabytes",
          "name",
          "namespaceName",
          "requiresDuplicateDetection",
          "resourceGroupName",
          "status",
          "supportOrdering",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:servicebus/getTopicAuthorizationRule:getTopicAuthorizationRule": {
      "description": "Use this data source to access information about a ServiceBus Topic Authorization Rule within a ServiceBus Topic.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.servicebus.getTopicAuthorizationRule({\n    name: \"example-tfex_name\",\n    namespaceName: \"example-namespace\",\n    resourceGroupName: \"example-resources\",\n    topicName: \"example-servicebus_topic\",\n}));\n\nexport const servicebusAuthorizationRuleId = azurem_servicebus_topic_authorization_rule_example.id;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.servicebus.get_topic_authorization_rule(name=\"example-tfex_name\",\n    namespace_name=\"example-namespace\",\n    resource_group_name=\"example-resources\",\n    topic_name=\"example-servicebus_topic\")\npulumi.export(\"servicebusAuthorizationRuleId\", data[\"azurem_servicebus_topic_authorization_rule\"][\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.ServiceBus.GetTopicAuthorizationRule.InvokeAsync(new Azure.ServiceBus.GetTopicAuthorizationRuleArgs\n        {\n            Name = \"example-tfex_name\",\n            NamespaceName = \"example-namespace\",\n            ResourceGroupName = \"example-resources\",\n            TopicName = \"example-servicebus_topic\",\n        }));\n        this.ServicebusAuthorizationRuleId = data.Azurem_servicebus_topic_authorization_rule.Example.Id;\n    }\n\n    [Output(\"servicebusAuthorizationRuleId\")]\n    public Output\u003cstring\u003e ServicebusAuthorizationRuleId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\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 := servicebus.LookupTopicAuthorizationRule(ctx, \u0026servicebus.LookupTopicAuthorizationRuleArgs{\n\t\t\tName:              \"example-tfex_name\",\n\t\t\tNamespaceName:     \"example-namespace\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t\tTopicName:         \"example-servicebus_topic\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"servicebusAuthorizationRuleId\", data.Azurem_servicebus_topic_authorization_rule.Example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getTopicAuthorizationRule.\n",
        "properties": {
          "name": {
            "description": "The name of the ServiceBus Topic Authorization Rule resource.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the ServiceBus Namespace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the ServiceBus Namespace exists.\n",
            "type": "string"
          },
          "topicName": {
            "description": "The name of the ServiceBus Topic.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "namespaceName",
          "resourceGroupName",
          "topicName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getTopicAuthorizationRule.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "listen": {
            "type": "boolean"
          },
          "manage": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "namespaceName": {
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the ServiceBus Topic authorization Rule.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the ServiceBus Topic authorization Rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the ServiceBus Topic authorization Rule.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the ServiceBus Topic authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "type": "boolean"
          },
          "topicName": {
            "type": "string"
          }
        },
        "required": [
          "listen",
          "manage",
          "name",
          "namespaceName",
          "primaryConnectionString",
          "primaryConnectionStringAlias",
          "primaryKey",
          "resourceGroupName",
          "secondaryConnectionString",
          "secondaryConnectionStringAlias",
          "secondaryKey",
          "send",
          "topicName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:signalr/getService:getService": {
      "description": "Use this data source to access information about an existing Azure SignalR service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.signalr.getService({\n    name: \"test-signalr\",\n    resourceGroupName: \"signalr-resource-group\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.signalr.get_service(name=\"test-signalr\",\n    resource_group_name=\"signalr-resource-group\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.SignalR.GetService.InvokeAsync(new Azure.SignalR.GetServiceArgs\n        {\n            Name = \"test-signalr\",\n            ResourceGroupName = \"signalr-resource-group\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/signalr\"\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 := signalr.LookupService(ctx, \u0026signalr.LookupServiceArgs{\n\t\t\tName:              \"test-signalr\",\n\t\t\tResourceGroupName: \"signalr-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getService.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the SignalR service.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the SignalR service is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getService.\n",
        "properties": {
          "hostname": {
            "description": "The FQDN of the SignalR service.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "ipAddress": {
            "description": "The publicly accessible IP of the SignalR service.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the SignalR service exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The primary access key of the SignalR service.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The primary connection string of the SignalR service.\n",
            "type": "string"
          },
          "publicPort": {
            "description": "The publicly accessible port of the SignalR service which is designed for browser/client use.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The secondary access key of the SignalR service.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The secondary connection string of the SignalR service.\n",
            "type": "string"
          },
          "serverPort": {
            "description": "The publicly accessible port of the SignalR service which is designed for customer server side use.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "hostname",
          "ipAddress",
          "location",
          "name",
          "primaryAccessKey",
          "primaryConnectionString",
          "publicPort",
          "resourceGroupName",
          "secondaryAccessKey",
          "secondaryConnectionString",
          "serverPort",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:sql/getDatabase:getDatabase": {
      "description": "Use this data source to access information about an existing SQL Azure Database.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.sql.getDatabase({\n    name: \"example_db\",\n    serverName: \"example_db_server\",\n    resourceGroupName: \"example-resources\",\n});\nexport const sqlDatabaseId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.sql.get_database(name=\"example_db\",\n    server_name=\"example_db_server\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"sqlDatabaseId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Sql.GetDatabase.InvokeAsync(new Azure.Sql.GetDatabaseArgs\n        {\n            Name = \"example_db\",\n            ServerName = \"example_db_server\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.SqlDatabaseId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"sqlDatabaseId\")]\n    public Output\u003cstring\u003e SqlDatabaseId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := sql.LookupDatabase(ctx, \u0026sql.LookupDatabaseArgs{\n\t\t\tName:              \"example_db\",\n\t\t\tServerName:        \"example_db_server\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"sqlDatabaseId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getDatabase.\n",
        "properties": {
          "name": {
            "description": "The name of the SQL Database.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where the Azure SQL Database exists.\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the SQL Server.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "name",
          "resourceGroupName",
          "serverName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDatabase.\n",
        "properties": {
          "collation": {
            "description": "The name of the collation.\n",
            "type": "string"
          },
          "defaultSecondaryLocation": {
            "description": "The default secondary location of the SQL Database.\n",
            "type": "string"
          },
          "edition": {
            "description": "The edition of the database.\n",
            "type": "string"
          },
          "elasticPoolName": {
            "description": "The name of the elastic database pool the database belongs to.\n",
            "type": "string"
          },
          "failoverGroupId": {
            "description": "The ID of the failover group the database belongs to.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "description": "The location of the Resource Group in which the SQL Server exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the database.\n",
            "type": "string"
          },
          "readScale": {
            "description": "Indicate if read-only connections will be redirected to a high-available replica.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the database resides. This will always be the same resource group as the Database Server.\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the SQL Server on which to create the database.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "collation",
          "defaultSecondaryLocation",
          "edition",
          "elasticPoolName",
          "failoverGroupId",
          "location",
          "name",
          "readScale",
          "resourceGroupName",
          "serverName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:sql/getServer:getServer": {
      "description": "Use this data source to access information about an existing SQL Azure Database Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.sql.getServer({\n    name: \"examplesqlservername\",\n    resourceGroupName: \"example-resources\",\n});\nexport const sqlServerId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.sql.get_server(name=\"examplesqlservername\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"sqlServerId\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Sql.GetServer.InvokeAsync(new Azure.Sql.GetServerArgs\n        {\n            Name = \"examplesqlservername\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.SqlServerId = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"sqlServerId\")]\n    public Output\u003cstring\u003e SqlServerId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := sql.GetServer(ctx, \u0026sql.GetServerArgs{\n\t\t\tName:              \"examplesqlservername\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"sqlServerId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getServer.\n",
        "properties": {
          "name": {
            "description": "The name of the SQL Server.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where the SQL Server exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getServer.\n",
        "properties": {
          "administratorLogin": {
            "description": "The administrator username of the SQL Server.\n",
            "type": "string"
          },
          "fqdn": {
            "description": "The fully qualified domain name of the SQL Server.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "An `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:sql/getServerIdentity:getServerIdentity"
            },
            "type": "array"
          },
          "location": {
            "description": "The location of the Resource Group in which the SQL Server exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "version": {
            "description": "The version of the SQL Server.\n",
            "type": "string"
          }
        },
        "required": [
          "administratorLogin",
          "fqdn",
          "identities",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "version",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:storage/getAccount:getAccount": {
      "description": "Use this data source to access information about an existing Storage Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.storage.getAccount({\n    name: \"packerimages\",\n    resourceGroupName: \"packer-storage\",\n});\nexport const storageAccountTier = example.then(example =\u003e example.accountTier);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.storage.get_account(name=\"packerimages\",\n    resource_group_name=\"packer-storage\")\npulumi.export(\"storageAccountTier\", example.account_tier)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Storage.GetAccount.InvokeAsync(new Azure.Storage.GetAccountArgs\n        {\n            Name = \"packerimages\",\n            ResourceGroupName = \"packer-storage\",\n        }));\n        this.StorageAccountTier = example.Apply(example =\u003e example.AccountTier);\n    }\n\n    [Output(\"storageAccountTier\")]\n    public Output\u003cstring\u003e StorageAccountTier { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"packer-storage\"\n\t\texample, err := storage.LookupAccount(ctx, \u0026storage.LookupAccountArgs{\n\t\t\tName:              \"packerimages\",\n\t\t\tResourceGroupName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"storageAccountTier\", example.AccountTier)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAccount.\n",
        "properties": {
          "minTlsVersion": {
            "description": "The minimum supported TLS version for this storage account.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Storage Account\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Storage Account is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAccount.\n",
        "properties": {
          "accessTier": {
            "description": "The access tier for `BlobStorage` accounts.\n",
            "type": "string"
          },
          "accountKind": {
            "description": "The Kind of account.\n",
            "type": "string"
          },
          "accountReplicationType": {
            "description": "The type of replication used for this storage account.\n",
            "type": "string"
          },
          "accountTier": {
            "description": "The Tier of this storage account.\n",
            "type": "string"
          },
          "allowBlobPublicAccess": {
            "description": "Is public access allowed to all blobs or containers in the storage account?\n",
            "type": "boolean"
          },
          "customDomains": {
            "description": "A `custom_domain` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:storage/getAccountCustomDomain:getAccountCustomDomain"
            },
            "type": "array"
          },
          "enableHttpsTrafficOnly": {
            "description": "Is traffic only allowed via HTTPS? See [here](https://docs.microsoft.com/en-us/azure/storage/storage-require-secure-transfer/)\nfor more information.\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "isHnsEnabled": {
            "description": "Is Hierarchical Namespace enabled?\n",
            "type": "boolean"
          },
          "location": {
            "description": "The Azure location where the Storage Account exists\n",
            "type": "string"
          },
          "minTlsVersion": {
            "description": "The minimum supported TLS version for this storage account.\n",
            "type": "string"
          },
          "name": {
            "description": "The Custom Domain Name used for the Storage Account.\n",
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The primary access key for the Storage Account.\n",
            "type": "string"
          },
          "primaryBlobConnectionString": {
            "description": "The connection string associated with the primary blob location\n",
            "type": "string"
          },
          "primaryBlobEndpoint": {
            "description": "The endpoint URL for blob storage in the primary location.\n",
            "type": "string"
          },
          "primaryBlobHost": {
            "description": "The hostname with port if applicable for blob storage in the primary location.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The connection string associated with the primary location\n",
            "type": "string"
          },
          "primaryDfsEndpoint": {
            "description": "The endpoint URL for DFS storage in the primary location.\n",
            "type": "string"
          },
          "primaryDfsHost": {
            "description": "The hostname with port if applicable for DFS storage in the primary location.\n",
            "type": "string"
          },
          "primaryFileEndpoint": {
            "description": "The endpoint URL for file storage in the primary location.\n",
            "type": "string"
          },
          "primaryFileHost": {
            "description": "The hostname with port if applicable for file storage in the primary location.\n",
            "type": "string"
          },
          "primaryLocation": {
            "description": "The primary location of the Storage Account.\n",
            "type": "string"
          },
          "primaryQueueEndpoint": {
            "description": "The endpoint URL for queue storage in the primary location.\n",
            "type": "string"
          },
          "primaryQueueHost": {
            "description": "The hostname with port if applicable for queue storage in the primary location.\n",
            "type": "string"
          },
          "primaryTableEndpoint": {
            "description": "The endpoint URL for table storage in the primary location.\n",
            "type": "string"
          },
          "primaryTableHost": {
            "description": "The hostname with port if applicable for table storage in the primary location.\n",
            "type": "string"
          },
          "primaryWebEndpoint": {
            "description": "The endpoint URL for web storage in the primary location.\n",
            "type": "string"
          },
          "primaryWebHost": {
            "description": "The hostname with port if applicable for web storage in the primary location.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The secondary access key for the Storage Account.\n",
            "type": "string"
          },
          "secondaryBlobConnectionString": {
            "description": "The connection string associated with the secondary blob location\n",
            "type": "string"
          },
          "secondaryBlobEndpoint": {
            "description": "The endpoint URL for blob storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryBlobHost": {
            "description": "The hostname with port if applicable for blob storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The connection string associated with the secondary location\n",
            "type": "string"
          },
          "secondaryDfsEndpoint": {
            "description": "The endpoint URL for DFS storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryDfsHost": {
            "description": "The hostname with port if applicable for DFS storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryFileEndpoint": {
            "description": "The endpoint URL for file storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryFileHost": {
            "description": "The hostname with port if applicable for file storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryLocation": {
            "description": "The secondary location of the Storage Account.\n",
            "type": "string"
          },
          "secondaryQueueEndpoint": {
            "description": "The endpoint URL for queue storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryQueueHost": {
            "description": "The hostname with port if applicable for queue storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryTableEndpoint": {
            "description": "The endpoint URL for table storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryTableHost": {
            "description": "The hostname with port if applicable for table storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryWebEndpoint": {
            "description": "The endpoint URL for web storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryWebHost": {
            "description": "The hostname with port if applicable for web storage in the secondary location.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "accessTier",
          "accountKind",
          "accountReplicationType",
          "accountTier",
          "allowBlobPublicAccess",
          "customDomains",
          "enableHttpsTrafficOnly",
          "isHnsEnabled",
          "location",
          "name",
          "primaryAccessKey",
          "primaryBlobConnectionString",
          "primaryBlobEndpoint",
          "primaryBlobHost",
          "primaryConnectionString",
          "primaryDfsEndpoint",
          "primaryDfsHost",
          "primaryFileEndpoint",
          "primaryFileHost",
          "primaryLocation",
          "primaryQueueEndpoint",
          "primaryQueueHost",
          "primaryTableEndpoint",
          "primaryTableHost",
          "primaryWebEndpoint",
          "primaryWebHost",
          "resourceGroupName",
          "secondaryAccessKey",
          "secondaryBlobConnectionString",
          "secondaryBlobEndpoint",
          "secondaryBlobHost",
          "secondaryConnectionString",
          "secondaryDfsEndpoint",
          "secondaryDfsHost",
          "secondaryFileEndpoint",
          "secondaryFileHost",
          "secondaryLocation",
          "secondaryQueueEndpoint",
          "secondaryQueueHost",
          "secondaryTableEndpoint",
          "secondaryTableHost",
          "secondaryWebEndpoint",
          "secondaryWebHost",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:storage/getAccountBlobContainerSAS:getAccountBlobContainerSAS": {
      "description": "Use this data source to obtain a Shared Access Signature (SAS Token) for an existing Storage Account Blob Container.\n\nShared access signatures allow fine-grained, ephemeral access control to various aspects of an Azure Storage Account Blob Container.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst storage = new azure.storage.Account(\"storage\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst container = new azure.storage.Container(\"container\", {\n    storageAccountName: storage.name,\n    containerAccessType: \"private\",\n});\nconst example = pulumi.all([storage.primaryConnectionString, container.name]).apply(([primaryConnectionString, name]) =\u003e azure.storage.getAccountBlobContainerSAS({\n    connectionString: primaryConnectionString,\n    containerName: name,\n    httpsOnly: true,\n    ipAddress: \"168.1.5.65\",\n    start: \"2018-03-21\",\n    expiry: \"2018-03-21\",\n    permissions: {\n        read: true,\n        add: true,\n        create: false,\n        write: false,\n        \"delete\": true,\n        list: true,\n    },\n    cacheControl: \"max-age=5\",\n    contentDisposition: \"inline\",\n    contentEncoding: \"deflate\",\n    contentLanguage: \"en-US\",\n    contentType: \"application/json\",\n}));\nexport const sasUrlQueryString = example.apply(example =\u003e example.sas);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nstorage = azure.storage.Account(\"storage\",\n    resource_group_name=rg.name,\n    location=rg.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\ncontainer = azure.storage.Container(\"container\",\n    storage_account_name=storage.name,\n    container_access_type=\"private\")\nexample = pulumi.Output.all(storage.primary_connection_string, container.name).apply(lambda primary_connection_string, name: azure.storage.get_account_blob_container_sas(connection_string=primary_connection_string,\n    container_name=name,\n    https_only=True,\n    ip_address=\"168.1.5.65\",\n    start=\"2018-03-21\",\n    expiry=\"2018-03-21\",\n    permissions=azure.storage.GetAccountBlobContainerSASPermissionsArgs(\n        read=True,\n        add=True,\n        create=False,\n        write=False,\n        delete=True,\n        list=True,\n    ),\n    cache_control=\"max-age=5\",\n    content_disposition=\"inline\",\n    content_encoding=\"deflate\",\n    content_language=\"en-US\",\n    content_type=\"application/json\"))\npulumi.export(\"sasUrlQueryString\", example.sas)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var storage = new Azure.Storage.Account(\"storage\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var container = new Azure.Storage.Container(\"container\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = storage.Name,\n            ContainerAccessType = \"private\",\n        });\n        var example = Output.Tuple(storage.PrimaryConnectionString, container.Name).Apply(values =\u003e\n        {\n            var primaryConnectionString = values.Item1;\n            var name = values.Item2;\n            return Azure.Storage.GetAccountBlobContainerSAS.InvokeAsync(new Azure.Storage.GetAccountBlobContainerSASArgs\n            {\n                ConnectionString = primaryConnectionString,\n                ContainerName = name,\n                HttpsOnly = true,\n                IpAddress = \"168.1.5.65\",\n                Start = \"2018-03-21\",\n                Expiry = \"2018-03-21\",\n                Permissions = new Azure.Storage.Inputs.GetAccountBlobContainerSASPermissionsArgs\n                {\n                    Read = true,\n                    Add = true,\n                    Create = false,\n                    Write = false,\n                    Delete = true,\n                    List = true,\n                },\n                CacheControl = \"max-age=5\",\n                ContentDisposition = \"inline\",\n                ContentEncoding = \"deflate\",\n                ContentLanguage = \"en-US\",\n                ContentType = \"application/json\",\n            });\n        });\n        this.SasUrlQueryString = example.Apply(example =\u003e example.Sas);\n    }\n\n    [Output(\"sasUrlQueryString\")]\n    public Output\u003cstring\u003e SasUrlQueryString { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstorage, err := storage.NewAccount(ctx, \"storage\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      rg.Name,\n\t\t\tLocation:               rg.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcontainer, err := storage.NewContainer(ctx, \"container\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  storage.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"sasUrlQueryString\", example.ApplyT(func(example storage.GetAccountBlobContainerSASResult) (string, error) {\n\t\t\treturn example.Sas, nil\n\t\t}).(pulumi.StringOutput))\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAccountBlobContainerSAS.\n",
        "properties": {
          "cacheControl": {
            "description": "The `Cache-Control` response header that is sent when this SAS token is used.\n",
            "type": "string"
          },
          "connectionString": {
            "description": "The connection string for the storage account to which this SAS applies. Typically directly from the `primary_connection_string` attribute of an `azure.storage.Account` resource.\n",
            "type": "string"
          },
          "containerName": {
            "description": "Name of the container.\n",
            "type": "string"
          },
          "contentDisposition": {
            "description": "The `Content-Disposition` response header that is sent when this SAS token is used.\n",
            "type": "string"
          },
          "contentEncoding": {
            "description": "The `Content-Encoding` response header that is sent when this SAS token is used.\n",
            "type": "string"
          },
          "contentLanguage": {
            "description": "The `Content-Language` response header that is sent when this SAS token is used.\n",
            "type": "string"
          },
          "contentType": {
            "description": "The `Content-Type` response header that is sent when this SAS token is used.\n",
            "type": "string"
          },
          "expiry": {
            "description": "The expiration time and date of this SAS. Must be a valid ISO-8601 format time/date string.\n",
            "type": "string"
          },
          "httpsOnly": {
            "description": "Only permit `https` access. If `false`, both `http` and `https` are permitted. Defaults to `true`.\n",
            "type": "boolean"
          },
          "ipAddress": {
            "description": "Single ipv4 address or range (connected with a dash) of ipv4 addresses.\n",
            "type": "string"
          },
          "permissions": {
            "$ref": "#/types/azure:storage/getAccountBlobContainerSASPermissions:getAccountBlobContainerSASPermissions",
            "description": "A `permissions` block as defined below.\n"
          },
          "start": {
            "description": "The starting time and date of validity of this SAS. Must be a valid ISO-8601 format time/date string.\n",
            "type": "string"
          }
        },
        "required": [
          "connectionString",
          "containerName",
          "expiry",
          "permissions",
          "start"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAccountBlobContainerSAS.\n",
        "properties": {
          "cacheControl": {
            "type": "string"
          },
          "connectionString": {
            "type": "string"
          },
          "containerName": {
            "type": "string"
          },
          "contentDisposition": {
            "type": "string"
          },
          "contentEncoding": {
            "type": "string"
          },
          "contentLanguage": {
            "type": "string"
          },
          "contentType": {
            "type": "string"
          },
          "expiry": {
            "type": "string"
          },
          "httpsOnly": {
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "ipAddress": {
            "type": "string"
          },
          "permissions": {
            "$ref": "#/types/azure:storage/getAccountBlobContainerSASPermissions:getAccountBlobContainerSASPermissions"
          },
          "sas": {
            "description": "The computed Blob Container Shared Access Signature (SAS).\n",
            "type": "string"
          },
          "start": {
            "type": "string"
          }
        },
        "required": [
          "connectionString",
          "containerName",
          "expiry",
          "permissions",
          "sas",
          "start",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:storage/getAccountSAS:getAccountSAS": {
      "description": "Use this data source to obtain a Shared Access Signature (SAS Token) for an existing Storage Account.\n\nShared access signatures allow fine-grained, ephemeral access control to various aspects of an Azure Storage Account.\n\nNote that this is an [Account SAS](https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas)\nand *not* a [Service SAS](https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: \"westus\",\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n    tags: {\n        environment: \"staging\",\n    },\n});\nconst exampleAccountSAS = exampleAccount.primaryConnectionString.apply(primaryConnectionString =\u003e azure.storage.getAccountSAS({\n    connectionString: primaryConnectionString,\n    httpsOnly: true,\n    signedVersion: \"2017-07-29\",\n    resourceTypes: {\n        service: true,\n        container: false,\n        object: false,\n    },\n    services: {\n        blob: true,\n        queue: false,\n        table: false,\n        file: false,\n    },\n    start: \"2018-03-21T00:00:00Z\",\n    expiry: \"2020-03-21T00:00:00Z\",\n    permissions: {\n        read: true,\n        write: true,\n        \"delete\": false,\n        list: false,\n        add: true,\n        create: true,\n        update: false,\n        process: false,\n    },\n}));\nexport const sasUrlQueryString = exampleAccountSAS.apply(exampleAccountSAS =\u003e exampleAccountSAS.sas);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=\"westus\",\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\",\n    tags={\n        \"environment\": \"staging\",\n    })\nexample_account_sas = example_account.primary_connection_string.apply(lambda primary_connection_string: azure.storage.get_account_sas(connection_string=primary_connection_string,\n    https_only=True,\n    signed_version=\"2017-07-29\",\n    resource_types=azure.storage.GetAccountSASResourceTypesArgs(\n        service=True,\n        container=False,\n        object=False,\n    ),\n    services=azure.storage.GetAccountSASServicesArgs(\n        blob=True,\n        queue=False,\n        table=False,\n        file=False,\n    ),\n    start=\"2018-03-21T00:00:00Z\",\n    expiry=\"2020-03-21T00:00:00Z\",\n    permissions=azure.storage.GetAccountSASPermissionsArgs(\n        read=True,\n        write=True,\n        delete=False,\n        list=False,\n        add=True,\n        create=True,\n        update=False,\n        process=False,\n    )))\npulumi.export(\"sasUrlQueryString\", example_account_sas.sas)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = \"westus\",\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n        var exampleAccountSAS = exampleAccount.PrimaryConnectionString.Apply(primaryConnectionString =\u003e Azure.Storage.GetAccountSAS.InvokeAsync(new Azure.Storage.GetAccountSASArgs\n        {\n            ConnectionString = primaryConnectionString,\n            HttpsOnly = true,\n            SignedVersion = \"2017-07-29\",\n            ResourceTypes = new Azure.Storage.Inputs.GetAccountSASResourceTypesArgs\n            {\n                Service = true,\n                Container = false,\n                Object = false,\n            },\n            Services = new Azure.Storage.Inputs.GetAccountSASServicesArgs\n            {\n                Blob = true,\n                Queue = false,\n                Table = false,\n                File = false,\n            },\n            Start = \"2018-03-21T00:00:00Z\",\n            Expiry = \"2020-03-21T00:00:00Z\",\n            Permissions = new Azure.Storage.Inputs.GetAccountSASPermissionsArgs\n            {\n                Read = true,\n                Write = true,\n                Delete = false,\n                List = false,\n                Add = true,\n                Create = true,\n                Update = false,\n                Process = false,\n            },\n        }));\n        this.SasUrlQueryString = exampleAccountSAS.Apply(exampleAccountSAS =\u003e exampleAccountSAS.Sas);\n    }\n\n    [Output(\"sasUrlQueryString\")]\n    public Output\u003cstring\u003e SasUrlQueryString { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               pulumi.String(\"westus\"),\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"sasUrlQueryString\", exampleAccountSAS.ApplyT(func(exampleAccountSAS storage.GetAccountSASResult) (string, error) {\n\t\t\treturn exampleAccountSAS.Sas, nil\n\t\t}).(pulumi.StringOutput))\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getAccountSAS.\n",
        "properties": {
          "connectionString": {
            "description": "The connection string for the storage account to which this SAS applies. Typically directly from the `primary_connection_string` attribute of a `azure.storage.Account` resource.\n",
            "type": "string"
          },
          "expiry": {
            "description": "The expiration time and date of this SAS. Must be a valid ISO-8601 format time/date string.\n",
            "type": "string"
          },
          "httpsOnly": {
            "description": "Only permit `https` access. If `false`, both `http` and `https` are permitted. Defaults to `true`.\n",
            "type": "boolean"
          },
          "ipAddresses": {
            "description": "IP address, or a range of IP addresses, from which to accept requests. When specifying a range, note that the range is inclusive.\n",
            "type": "string"
          },
          "permissions": {
            "$ref": "#/types/azure:storage/getAccountSASPermissions:getAccountSASPermissions",
            "description": "A `permissions` block as defined below.\n"
          },
          "resourceTypes": {
            "$ref": "#/types/azure:storage/getAccountSASResourceTypes:getAccountSASResourceTypes",
            "description": "A `resource_types` block as defined below.\n"
          },
          "services": {
            "$ref": "#/types/azure:storage/getAccountSASServices:getAccountSASServices",
            "description": "A `services` block as defined below.\n"
          },
          "signedVersion": {
            "description": "Specifies the signed storage service version to use to authorize requests made with this account SAS. Defaults to `2017-07-29`.\n",
            "type": "string"
          },
          "start": {
            "description": "The starting time and date of validity of this SAS. Must be a valid ISO-8601 format time/date string.\n",
            "type": "string"
          }
        },
        "required": [
          "connectionString",
          "expiry",
          "permissions",
          "resourceTypes",
          "services",
          "start"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getAccountSAS.\n",
        "properties": {
          "connectionString": {
            "type": "string"
          },
          "expiry": {
            "type": "string"
          },
          "httpsOnly": {
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "ipAddresses": {
            "type": "string"
          },
          "permissions": {
            "$ref": "#/types/azure:storage/getAccountSASPermissions:getAccountSASPermissions"
          },
          "resourceTypes": {
            "$ref": "#/types/azure:storage/getAccountSASResourceTypes:getAccountSASResourceTypes"
          },
          "sas": {
            "description": "The computed Account Shared Access Signature (SAS).\n",
            "type": "string"
          },
          "services": {
            "$ref": "#/types/azure:storage/getAccountSASServices:getAccountSASServices"
          },
          "signedVersion": {
            "type": "string"
          },
          "start": {
            "type": "string"
          }
        },
        "required": [
          "connectionString",
          "expiry",
          "permissions",
          "resourceTypes",
          "sas",
          "services",
          "start",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:storage/getBlob:getBlob": {
      "description": "Use this data source to access information about an existing Storage Blob.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.storage.getBlob({\n    name: \"example-blob-name\",\n    storageAccountName: \"example-storage-account-name\",\n    storageContainerName: \"example-storage-container-name\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.storage.get_blob(name=\"example-blob-name\",\n    storage_account_name=\"example-storage-account-name\",\n    storage_container_name=\"example-storage-container-name\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Storage.GetBlob.InvokeAsync(new Azure.Storage.GetBlobArgs\n        {\n            Name = \"example-blob-name\",\n            StorageAccountName = \"example-storage-account-name\",\n            StorageContainerName = \"example-storage-container-name\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\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 := storage.LookupBlob(ctx, \u0026storage.LookupBlobArgs{\n\t\t\tName:                 \"example-blob-name\",\n\t\t\tStorageAccountName:   \"example-storage-account-name\",\n\t\t\tStorageContainerName: \"example-storage-container-name\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getBlob.\n",
        "properties": {
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of custom blob metadata.\n",
            "type": "object"
          },
          "name": {
            "description": "The name of the Blob.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "The name of the Storage Account where the Container exists.\n",
            "type": "string"
          },
          "storageContainerName": {
            "description": "The name of the Storage Container where the Blob exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "storageAccountName",
          "storageContainerName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getBlob.\n",
        "properties": {
          "accessTier": {
            "description": "The access tier of the storage blob.\n",
            "type": "string"
          },
          "contentMd5": {
            "description": "The MD5 sum of the blob contents.\n",
            "type": "string"
          },
          "contentType": {
            "description": "The content type of the storage blob.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of custom blob metadata.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "storageAccountName": {
            "type": "string"
          },
          "storageContainerName": {
            "type": "string"
          },
          "type": {
            "description": "The type of the storage blob\n",
            "type": "string"
          },
          "url": {
            "description": "The URL of the storage blob.\n",
            "type": "string"
          }
        },
        "required": [
          "accessTier",
          "contentMd5",
          "contentType",
          "metadata",
          "name",
          "storageAccountName",
          "storageContainerName",
          "type",
          "url",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:storage/getEncryptionScope:getEncryptionScope": {
      "description": "Use this data source to access information about an existing Storage Encryption Scope.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleAccount = azure.storage.getAccount({\n    name: \"storageaccountname\",\n    resourceGroupName: \"resourcegroupname\",\n});\nconst exampleEncryptionScope = exampleAccount.then(exampleAccount =\u003e azure.storage.getEncryptionScope({\n    name: \"existingStorageES\",\n    storageAccountId: exampleAccount.id,\n}));\nexport const id = exampleEncryptionScope.then(exampleEncryptionScope =\u003e exampleEncryptionScope.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_account = azure.storage.get_account(name=\"storageaccountname\",\n    resource_group_name=\"resourcegroupname\")\nexample_encryption_scope = azure.storage.get_encryption_scope(name=\"existingStorageES\",\n    storage_account_id=example_account.id)\npulumi.export(\"id\", example_encryption_scope.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleAccount = Output.Create(Azure.Storage.GetAccount.InvokeAsync(new Azure.Storage.GetAccountArgs\n        {\n            Name = \"storageaccountname\",\n            ResourceGroupName = \"resourcegroupname\",\n        }));\n        var exampleEncryptionScope = exampleAccount.Apply(exampleAccount =\u003e Output.Create(Azure.Storage.GetEncryptionScope.InvokeAsync(new Azure.Storage.GetEncryptionScopeArgs\n        {\n            Name = \"existingStorageES\",\n            StorageAccountId = exampleAccount.Id,\n        })));\n        this.Id = exampleEncryptionScope.Apply(exampleEncryptionScope =\u003e exampleEncryptionScope.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"resourcegroupname\"\n\t\texampleAccount, err := storage.LookupAccount(ctx, \u0026storage.LookupAccountArgs{\n\t\t\tName:              \"storageaccountname\",\n\t\t\tResourceGroupName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEncryptionScope, err := storage.LookupEncryptionScope(ctx, \u0026storage.LookupEncryptionScopeArgs{\n\t\t\tName:             \"existingStorageES\",\n\t\t\tStorageAccountId: exampleAccount.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", exampleEncryptionScope.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getEncryptionScope.\n",
        "properties": {
          "name": {
            "description": "The name of this Storage Encryption Scope.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of the Storage Account where this Storage Encryption Scope exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "storageAccountId"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getEncryptionScope.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "keyVaultKeyId": {
            "description": "The ID of the Key Vault Key.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "source": {
            "description": "The source of the Storage Encryption Scope.\n",
            "type": "string"
          },
          "storageAccountId": {
            "type": "string"
          }
        },
        "required": [
          "keyVaultKeyId",
          "name",
          "source",
          "storageAccountId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:storage/getPolicy:getPolicy": {
      "description": "Use this data source to access information about an existing Storage Management Policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleAccount = azure.storage.getAccount({\n    name: \"storageaccountname\",\n    resourceGroupName: \"resourcegroupname\",\n});\nconst examplePolicy = azure.storage.getPolicy({\n    storageAccountId: azurerm_storage_account.example.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_account = azure.storage.get_account(name=\"storageaccountname\",\n    resource_group_name=\"resourcegroupname\")\nexample_policy = azure.storage.get_policy(storage_account_id=azurerm_storage_account[\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleAccount = Output.Create(Azure.Storage.GetAccount.InvokeAsync(new Azure.Storage.GetAccountArgs\n        {\n            Name = \"storageaccountname\",\n            ResourceGroupName = \"resourcegroupname\",\n        }));\n        var examplePolicy = Output.Create(Azure.Storage.GetPolicy.InvokeAsync(new Azure.Storage.GetPolicyArgs\n        {\n            StorageAccountId = azurerm_storage_account.Example.Id,\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"resourcegroupname\"\n\t\t_, err := storage.LookupAccount(ctx, \u0026storage.LookupAccountArgs{\n\t\t\tName:              \"storageaccountname\",\n\t\t\tResourceGroupName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.GetPolicy(ctx, \u0026storage.GetPolicyArgs{\n\t\t\tStorageAccountId: azurerm_storage_account.Example.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getPolicy.\n",
        "properties": {
          "storageAccountId": {
            "description": "Specifies the id of the storage account to retrieve the management policy for.\n",
            "type": "string"
          }
        },
        "required": [
          "storageAccountId"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPolicy.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "rules": {
            "description": "A `rule` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:storage/getPolicyRule:getPolicyRule"
            },
            "type": "array"
          },
          "storageAccountId": {
            "type": "string"
          }
        },
        "required": [
          "rules",
          "storageAccountId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:storage/getShare:getShare": {
      "description": "Use this data source to access information about an existing File Share.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.storage.getShare({\n    name: \"existing\",\n    storageAccountName: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.storage.get_share(name=\"existing\",\n    storage_account_name=\"existing\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Storage.GetShare.InvokeAsync(new Azure.Storage.GetShareArgs\n        {\n            Name = \"existing\",\n            StorageAccountName = \"existing\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := storage.LookupShare(ctx, \u0026storage.LookupShareArgs{\n\t\t\tName:               \"existing\",\n\t\t\tStorageAccountName: \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getShare.\n",
        "properties": {
          "acls": {
            "description": "One or more acl blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:storage/getShareAcl:getShareAcl"
            },
            "type": "array"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of custom file share metadata.\n",
            "type": "object"
          },
          "name": {
            "description": "The name of the share.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "The name of the storage account.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "storageAccountName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getShare.\n",
        "properties": {
          "acls": {
            "description": "One or more acl blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:storage/getShareAcl:getShareAcl"
            },
            "type": "array"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of custom file share metadata.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "quota": {
            "description": "The quota of the File Share in GB.\n",
            "type": "integer"
          },
          "resourceManagerId": {
            "type": "string"
          },
          "storageAccountName": {
            "type": "string"
          }
        },
        "required": [
          "metadata",
          "name",
          "quota",
          "resourceManagerId",
          "storageAccountName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:storage/getStorageContainer:getStorageContainer": {
      "description": "Use this data source to access information about an existing Storage Container.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.storage.getStorageContainer({\n    name: \"example-container-name\",\n    storageAccountName: \"example-storage-account-name\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.storage.get_storage_container(name=\"example-container-name\",\n    storage_account_name=\"example-storage-account-name\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Storage.GetStorageContainer.InvokeAsync(new Azure.Storage.GetStorageContainerArgs\n        {\n            Name = \"example-container-name\",\n            StorageAccountName = \"example-storage-account-name\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\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 := storage.GetStorageContainer(ctx, \u0026storage.GetStorageContainerArgs{\n\t\t\tName:               \"example-container-name\",\n\t\t\tStorageAccountName: \"example-storage-account-name\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getStorageContainer.\n",
        "properties": {
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of MetaData for this Container.\n",
            "type": "object"
          },
          "name": {
            "description": "The name of the Container.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "The name of the Storage Account where the Container exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "storageAccountName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getStorageContainer.\n",
        "properties": {
          "containerAccessType": {
            "description": "The Access Level configured for this Container.\n",
            "type": "string"
          },
          "hasImmutabilityPolicy": {
            "description": "Is there an Immutability Policy configured on this Storage Container?\n",
            "type": "boolean"
          },
          "hasLegalHold": {
            "description": "Is there a Legal Hold configured on this Storage Container?\n",
            "type": "boolean"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of MetaData for this Container.\n",
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "resourceManagerId": {
            "description": "The Resource Manager ID of this Storage Container.\n",
            "type": "string"
          },
          "storageAccountName": {
            "type": "string"
          }
        },
        "required": [
          "containerAccessType",
          "hasImmutabilityPolicy",
          "hasLegalHold",
          "metadata",
          "name",
          "resourceManagerId",
          "storageAccountName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:storage/getSync:getSync": {
      "description": "Use this data source to access information about an existing Storage Sync.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.storage.getSync({\n    name: \"existingStorageSyncName\",\n    resourceGroupName: \"existingResGroup\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.storage.get_sync(name=\"existingStorageSyncName\",\n    resource_group_name=\"existingResGroup\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Storage.GetSync.InvokeAsync(new Azure.Storage.GetSyncArgs\n        {\n            Name = \"existingStorageSyncName\",\n            ResourceGroupName = \"existingResGroup\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := storage.LookupSync(ctx, \u0026storage.LookupSyncArgs{\n\t\t\tName:              \"existingStorageSyncName\",\n\t\t\tResourceGroupName: \"existingResGroup\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSync.\n",
        "properties": {
          "name": {
            "description": "The name of this Storage Sync.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Storage Sync exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSync.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "incomingTrafficPolicy": {
            "description": "Incoming traffic policy.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Storage Sync exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the Storage Sync.\n",
            "type": "object"
          }
        },
        "required": [
          "incomingTrafficPolicy",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:storage/getSyncGroup:getSyncGroup": {
      "description": "Use this data source to access information about an existing Storage Sync Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.storage.getSyncGroup({\n    name: \"existing-ss-group\",\n    storageSyncId: \"existing-ss-id\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.storage.get_sync_group(name=\"existing-ss-group\",\n    storage_sync_id=\"existing-ss-id\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Storage.GetSyncGroup.InvokeAsync(new Azure.Storage.GetSyncGroupArgs\n        {\n            Name = \"existing-ss-group\",\n            StorageSyncId = \"existing-ss-id\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := storage.LookupSyncGroup(ctx, \u0026storage.LookupSyncGroupArgs{\n\t\t\tName:          \"existing-ss-group\",\n\t\t\tStorageSyncId: \"existing-ss-id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getSyncGroup.\n",
        "properties": {
          "name": {
            "description": "The name of this Storage Sync Group.\n",
            "type": "string"
          },
          "storageSyncId": {
            "description": "The resource ID of the Storage Sync where this Storage Sync Group is.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "storageSyncId"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSyncGroup.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "storageSyncId": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "storageSyncId",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:storage/getTableEntity:getTableEntity": {
      "description": "Use this data source to access information about an existing Storage Table Entity.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = pulumi.output(azure.storage.getTableEntity({\n    partitionKey: \"example-parition-key\",\n    rowKey: \"example-row-key\",\n    storageAccountName: \"example-storage-account-name\",\n    tableName: \"example-table-name\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.storage.get_table_entity(partition_key=\"example-parition-key\",\n    row_key=\"example-row-key\",\n    storage_account_name=\"example-storage-account-name\",\n    table_name=\"example-table-name\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Storage.GetTableEntity.InvokeAsync(new Azure.Storage.GetTableEntityArgs\n        {\n            PartitionKey = \"example-parition-key\",\n            RowKey = \"example-row-key\",\n            StorageAccountName = \"example-storage-account-name\",\n            TableName = \"example-table-name\",\n        }));\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\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 := storage.LookupTableEntity(ctx, \u0026storage.LookupTableEntityArgs{\n\t\t\tPartitionKey:       \"example-parition-key\",\n\t\t\tRowKey:             \"example-row-key\",\n\t\t\tStorageAccountName: \"example-storage-account-name\",\n\t\t\tTableName:          \"example-table-name\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getTableEntity.\n",
        "properties": {
          "partitionKey": {
            "description": "The key for the partition where the entity will be retrieved.\n",
            "type": "string"
          },
          "rowKey": {
            "description": "The key for the row where the entity will be retrieved.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "The name of the Storage Account where the Table exists.\n",
            "type": "string"
          },
          "tableName": {
            "description": "The name of the Table.\n",
            "type": "string"
          }
        },
        "required": [
          "partitionKey",
          "rowKey",
          "storageAccountName",
          "tableName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getTableEntity.\n",
        "properties": {
          "entity": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of key/value pairs that describe the entity to be stored in the storage table.\n",
            "type": "object"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "partitionKey": {
            "type": "string"
          },
          "rowKey": {
            "type": "string"
          },
          "storageAccountName": {
            "type": "string"
          },
          "tableName": {
            "type": "string"
          }
        },
        "required": [
          "entity",
          "partitionKey",
          "rowKey",
          "storageAccountName",
          "tableName",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:streamanalytics/getJob:getJob": {
      "description": "Use this data source to access information about an existing Stream Analytics Job.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.streamanalytics.getJob({\n    name: \"example-job\",\n    resourceGroupName: \"example-resources\",\n});\nexport const jobId = example.then(example =\u003e example.jobId);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.streamanalytics.get_job(name=\"example-job\",\n    resource_group_name=\"example-resources\")\npulumi.export(\"jobId\", example.job_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.StreamAnalytics.GetJob.InvokeAsync(new Azure.StreamAnalytics.GetJobArgs\n        {\n            Name = \"example-job\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        this.JobId = example.Apply(example =\u003e example.JobId);\n    }\n\n    [Output(\"jobId\")]\n    public Output\u003cstring\u003e JobId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/streamanalytics\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := streamanalytics.LookupJob(ctx, \u0026streamanalytics.LookupJobArgs{\n\t\t\tName:              \"example-job\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"jobId\", example.JobId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getJob.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Stream Analytics Job.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Stream Analytics Job is located in.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getJob.\n",
        "properties": {
          "compatibilityLevel": {
            "description": "The compatibility level for this job.\n",
            "type": "string"
          },
          "dataLocale": {
            "description": "The Data Locale of the Job.\n",
            "type": "string"
          },
          "eventsLateArrivalMaxDelayInSeconds": {
            "description": "The maximum tolerable delay in seconds where events arriving late could be included.\n",
            "type": "integer"
          },
          "eventsOutOfOrderMaxDelayInSeconds": {
            "description": "The maximum tolerable delay in seconds where out-of-order events can be adjusted to be back in order.\n",
            "type": "integer"
          },
          "eventsOutOfOrderPolicy": {
            "description": "The policy which should be applied to events which arrive out of order in the input event stream.\n",
            "type": "string"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "(Optional) An `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:streamanalytics/getJobIdentity:getJobIdentity"
            },
            "type": "array"
          },
          "jobId": {
            "description": "The Job ID assigned by the Stream Analytics Job.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the Stream Analytics Job exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "outputErrorPolicy": {
            "description": "The policy which should be applied to events which arrive at the output and cannot be written to the external storage due to being malformed (such as missing column values, column values of wrong type or size).\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "streamingUnits": {
            "description": "The number of streaming units that the streaming job uses.\n",
            "type": "integer"
          },
          "transformationQuery": {
            "description": "The query that will be run in the streaming job, [written in Stream Analytics Query Language (SAQL)](https://msdn.microsoft.com/library/azure/dn834998).\n",
            "type": "string"
          }
        },
        "required": [
          "compatibilityLevel",
          "dataLocale",
          "eventsLateArrivalMaxDelayInSeconds",
          "eventsOutOfOrderMaxDelayInSeconds",
          "eventsOutOfOrderPolicy",
          "identities",
          "jobId",
          "location",
          "name",
          "outputErrorPolicy",
          "resourceGroupName",
          "streamingUnits",
          "transformationQuery",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:synapse/getWorkspace:getWorkspace": {
      "description": "Use this data source to access information about an existing Synapse Workspace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.synapse.getWorkspace({\n    name: \"existing\",\n    resourceGroupName: \"example-resource-group\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.synapse.get_workspace(name=\"existing\",\n    resource_group_name=\"example-resource-group\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Synapse.GetWorkspace.InvokeAsync(new Azure.Synapse.GetWorkspaceArgs\n        {\n            Name = \"existing\",\n            ResourceGroupName = \"example-resource-group\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/synapse\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := synapse.LookupWorkspace(ctx, \u0026synapse.LookupWorkspaceArgs{\n\t\t\tName:              \"existing\",\n\t\t\tResourceGroupName: \"example-resource-group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getWorkspace.\n",
        "properties": {
          "name": {
            "description": "The name of this Synapse Workspace.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Synapse Workspace exists.\n",
            "type": "string"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getWorkspace.\n",
        "properties": {
          "connectivityEndpoints": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A list of Connectivity endpoints for this Synapse Workspace.\n",
            "type": "object"
          },
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "identities": {
            "description": "An `identity` block as defined below, which contains the Managed Service Identity information for this Synapse Workspace.\n",
            "items": {
              "$ref": "#/types/azure:synapse/getWorkspaceIdentity:getWorkspaceIdentity"
            },
            "type": "array"
          },
          "location": {
            "description": "The Azure location where the Synapse Workspace exists.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "required": [
          "connectivityEndpoints",
          "identities",
          "location",
          "name",
          "resourceGroupName",
          "tags",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:trafficmanager/getGeographicalLocation:getGeographicalLocation": {
      "deprecationMessage": "azure.trafficmanager.getGeographicalLocation has been deprecated in favor of azure.network.getTrafficManager",
      "description": "Use this data source to access the ID of a specified Traffic Manager Geographical Location within the Geographical Hierarchy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### World)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getTrafficManager({\n    name: \"World\",\n});\nexport const locationCode = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_traffic_manager(name=\"World\")\npulumi.export(\"locationCode\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Network.GetTrafficManager.InvokeAsync(new Azure.Network.GetTrafficManagerArgs\n        {\n            Name = \"World\",\n        }));\n        this.LocationCode = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"locationCode\")]\n    public Output\u003cstring\u003e LocationCode { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.GetTrafficManager(ctx, \u0026network.GetTrafficManagerArgs{\n\t\t\tName: \"World\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"locationCode\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getGeographicalLocation.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Location, for example `World`, `Europe` or `Germany`.\n",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getGeographicalLocation.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "id"
        ],
        "type": "object"
      }
    },
    "azure:waf/getFirewallPolicy:getFirewallPolicy": {
      "description": "Use this data source to access information about an existing Web Application Firewall Policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.waf.getFirewallPolicy({\n    resourceGroupName: \"existing\",\n    name: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.waf.get_firewall_policy(resource_group_name=\"existing\",\n    name=\"existing\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = Output.Create(Azure.Waf.GetFirewallPolicy.InvokeAsync(new Azure.Waf.GetFirewallPolicyArgs\n        {\n            ResourceGroupName = \"existing\",\n            Name = \"existing\",\n        }));\n        this.Id = example.Apply(example =\u003e example.Id);\n    }\n\n    [Output(\"id\")]\n    public Output\u003cstring\u003e Id { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/waf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := waf.GetFirewallPolicy(ctx, \u0026waf.GetFirewallPolicyArgs{\n\t\t\tResourceGroupName: \"existing\",\n\t\t\tName:              \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputs": {
        "description": "A collection of arguments for invoking getFirewallPolicy.\n",
        "properties": {
          "name": {
            "description": "The name of the Web Application Firewall Policy\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Web Application Firewall Policy exists.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "name",
          "resourceGroupName"
        ],
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getFirewallPolicy.\n",
        "properties": {
          "id": {
            "description": "The provider-assigned unique ID for this managed resource.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "location",
          "name",
          "resourceGroupName",
          "id"
        ],
        "type": "object"
      }
    }
  },
  "homepage": "https://pulumi.io",
  "keywords": [
    "pulumi",
    "azure"
  ],
  "language": {
    "csharp": {
      "compatibility": "tfbridge20",
      "namespaces": {
        "advisor": "Advisor",
        "analysisservices": "AnalysisServices",
        "apimanagement": "ApiManagement",
        "appconfiguration": "AppConfiguration",
        "appinsights": "AppInsights",
        "appplatform": "AppPlatform",
        "appservice": "AppService",
        "attestation": "Attestation",
        "authorization": "Authorization",
        "automation": "Automation",
        "avs": "Avs",
        "azure": "Azure",
        "backup": "Backup",
        "batch": "Batch",
        "billing": "Billing",
        "blueprint": "Blueprint",
        "bot": "Bot",
        "cdn": "Cdn",
        "cognitive": "Cognitive",
        "communication": "Communication",
        "compute": "Compute",
        "consumption": "Consumption",
        "containerservice": "ContainerService",
        "core": "Core",
        "cosmosdb": "CosmosDB",
        "costmanagement": "CostManagement",
        "dashboard": "Dashboard",
        "databasemigration": "DatabaseMigration",
        "databoxedge": "DataboxEdge",
        "databricks": "DataBricks",
        "datafactory": "DataFactory",
        "datalake": "DataLake",
        "dataprotection": "DataProtection",
        "datashare": "DataShare",
        "desktopvirtualization": "DesktopVirtualization",
        "devspace": "DevSpace",
        "devtest": "DevTest",
        "digitaltwins": "DigitalTwins",
        "dns": "Dns",
        "domainservices": "DomainServices",
        "eventgrid": "EventGrid",
        "eventhub": "EventHub",
        "frontdoor": "FrontDoor",
        "hdinsight": "HDInsight",
        "healthcare": "Healthcare",
        "hpc": "Hpc",
        "hsm": "Hsm",
        "iot": "Iot",
        "iotcentral": "IotCentral",
        "keyvault": "KeyVault",
        "kusto": "Kusto",
        "lb": "Lb",
        "lighthouse": "Lighthouse",
        "loganalytics": "LogAnalytics",
        "logicapps": "LogicApps",
        "machinelearning": "MachineLearning",
        "maintenance": "Maintenance",
        "managedapplication": "ManagedApplication",
        "management": "Management",
        "managementgroups": "ManagementGroups",
        "managementresource": "ManagementResource",
        "maps": "Maps",
        "mariadb": "MariaDB",
        "marketplace": "Marketplace",
        "media": "Media",
        "mediaservices": "MediaServices",
        "mixedreality": "MixedReality",
        "monitoring": "Monitoring",
        "msi": "Msi",
        "mssql": "MSSql",
        "mysql": "MySql",
        "netapp": "NetApp",
        "network": "Network",
        "notificationhub": "NotificationHub",
        "operationalinsights": "OperationalInsights",
        "policy": "Policy",
        "postgresql": "PostgreSql",
        "powerbi": "PowerBI",
        "privatedns": "PrivateDns",
        "privatelink": "PrivateLink",
        "proximity": "Proximity",
        "purview": "Purview",
        "recoveryservices": "RecoveryServices",
        "redis": "Redis",
        "relay": "Relay",
        "role": "Role",
        "search": "Search",
        "securitycenter": "SecurityCenter",
        "sentinel": "Sentinel",
        "servicebus": "ServiceBus",
        "servicefabric": "ServiceFabric",
        "signalr": "SignalR",
        "siterecovery": "SiteRecovery",
        "sql": "Sql",
        "stack": "Stack",
        "storage": "Storage",
        "streamanalytics": "StreamAnalytics",
        "synapse": "Synapse",
        "trafficmanager": "TrafficManager",
        "videoanalyzer": "VideoAnalyzer",
        "waf": "Waf"
      },
      "packageReferences": {
        "Pulumi": "3.*"
      }
    },
    "go": {
      "generateResourceContainerTypes": true,
      "importBasePath": "github.com/pulumi/pulumi-azure/sdk/v4/go/azure"
    },
    "nodejs": {
      "compatibility": "tfbridge20",
      "dependencies": {
        "@azure/functions": "=1.2.2",
        "@azure/ms-rest-azure-js": "^2.0.1",
        "@azure/ms-rest-nodeauth": "^3.0.0",
        "@pulumi/pulumi": "^3.0.0",
        "azure-eventgrid": "^1.6.0",
        "azure-functions-ts-essentials": "^1.3.2",
        "moment": "2.24.0"
      },
      "devDependencies": {
        "@types/node": "^10.0.0",
        "@types/node-fetch": "^2.5.8"
      },
      "disableUnionOutputTypes": true,
      "packageDescription": "A Pulumi package based on the azurerm Terraform Provider for creating and managing Microsoft Azure cloud resources. Consider using the Pulumi Azure Native package for full coverage of Azure resources.",
      "packageName": "",
      "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-azurerm)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi/pulumi-azure` repo](https://github.com/pulumi/pulumi-azure/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`hashicorp/terraform-provider-azurerm` repo](https://github.com/hashicorp/terraform-provider-azurerm/issues).",
      "typescriptVersion": ""
    },
    "python": {
      "compatibility": "tfbridge20",
      "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-azurerm)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi/pulumi-azure` repo](https://github.com/pulumi/pulumi-azure/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`hashicorp/terraform-provider-azurerm` repo](https://github.com/hashicorp/terraform-provider-azurerm/issues).",
      "requires": {
        "pulumi": "\u003e=3.0.0,\u003c4.0.0"
      }
    }
  },
  "license": "Apache-2.0",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "name": "azure",
  "provider": {
    "description": "The provider type for the azurerm 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": {
      "auxiliaryTenantIds": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "clientCertificatePassword": {
        "description": "The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client\nCertificate\n",
        "type": "string"
      },
      "clientCertificatePath": {
        "description": "The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service\nPrincipal using a Client Certificate.\n",
        "type": "string"
      },
      "clientId": {
        "description": "The Client ID which should be used.\n",
        "type": "string"
      },
      "clientSecret": {
        "description": "The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret.\n",
        "type": "string"
      },
      "disableCorrelationRequestId": {
        "description": "This will disable the x-ms-correlation-request-id header.\n",
        "type": "boolean"
      },
      "disableTerraformPartnerId": {
        "description": "This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified.\n",
        "type": "boolean"
      },
      "environment": {
        "default": "public",
        "defaultInfo": {
          "environment": [
            "AZURE_ENVIRONMENT",
            "ARM_ENVIRONMENT"
          ]
        },
        "description": "The Cloud Environment which should be used. Possible values are public, usgovernment, german, and china. Defaults to\npublic.\n",
        "type": "string"
      },
      "features": {
        "$ref": "#/types/azure:index/ProviderFeatures:ProviderFeatures"
      },
      "metadataHost": {
        "defaultInfo": {
          "environment": [
            "ARM_METADATA_HOSTNAME"
          ]
        },
        "description": "The Hostname which should be used for the Azure Metadata Service.\n",
        "type": "string"
      },
      "metadataUrl": {
        "defaultInfo": {
          "environment": [
            "ARM_METADATA_URL"
          ]
        },
        "deprecationMessage": "use `metadata_host` instead",
        "description": "Deprecated - replaced by `metadata_host`.\n",
        "type": "string"
      },
      "msiEndpoint": {
        "description": "The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected\nautomatically.\n",
        "type": "string"
      },
      "partnerId": {
        "description": "A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution.\n",
        "type": "string"
      },
      "skipCredentialsValidation": {
        "deprecationMessage": "This field is deprecated and will be removed in version 3.0 of the Azure Provider",
        "description": "[DEPRECATED] This will cause the AzureRM Provider to skip verifying the credentials being used are valid.\n",
        "type": "boolean"
      },
      "skipProviderRegistration": {
        "default": false,
        "defaultInfo": {
          "environment": [
            "ARM_SKIP_PROVIDER_REGISTRATION"
          ]
        },
        "description": "Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already\nregistered?\n",
        "type": "boolean"
      },
      "storageUseAzuread": {
        "default": false,
        "defaultInfo": {
          "environment": [
            "ARM_STORAGE_USE_AZUREAD"
          ]
        },
        "description": "Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?\n",
        "type": "boolean"
      },
      "subscriptionId": {
        "default": "",
        "defaultInfo": {
          "environment": [
            "ARM_SUBSCRIPTION_ID"
          ]
        },
        "description": "The Subscription ID which should be used.\n",
        "type": "string"
      },
      "tenantId": {
        "description": "The Tenant ID which should be used.\n",
        "type": "string"
      },
      "useMsi": {
        "description": "Allowed Managed Service Identity be used for Authentication.\n",
        "type": "boolean"
      }
    },
    "properties": {
      "auxiliaryTenantIds": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "clientCertificatePassword": {
        "description": "The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client\nCertificate\n",
        "type": "string"
      },
      "clientCertificatePath": {
        "description": "The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service\nPrincipal using a Client Certificate.\n",
        "type": "string"
      },
      "clientId": {
        "description": "The Client ID which should be used.\n",
        "type": "string"
      },
      "clientSecret": {
        "description": "The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret.\n",
        "type": "string"
      },
      "disableCorrelationRequestId": {
        "description": "This will disable the x-ms-correlation-request-id header.\n",
        "type": "boolean"
      },
      "disableTerraformPartnerId": {
        "description": "This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified.\n",
        "type": "boolean"
      },
      "environment": {
        "description": "The Cloud Environment which should be used. Possible values are public, usgovernment, german, and china. Defaults to\npublic.\n",
        "type": "string"
      },
      "features": {
        "$ref": "#/types/azure:index/ProviderFeatures:ProviderFeatures"
      },
      "metadataHost": {
        "description": "The Hostname which should be used for the Azure Metadata Service.\n",
        "type": "string"
      },
      "metadataUrl": {
        "deprecationMessage": "use `metadata_host` instead",
        "description": "Deprecated - replaced by `metadata_host`.\n",
        "type": "string"
      },
      "msiEndpoint": {
        "description": "The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected\nautomatically.\n",
        "type": "string"
      },
      "partnerId": {
        "description": "A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution.\n",
        "type": "string"
      },
      "skipCredentialsValidation": {
        "deprecationMessage": "This field is deprecated and will be removed in version 3.0 of the Azure Provider",
        "description": "[DEPRECATED] This will cause the AzureRM Provider to skip verifying the credentials being used are valid.\n",
        "type": "boolean"
      },
      "skipProviderRegistration": {
        "description": "Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already\nregistered?\n",
        "type": "boolean"
      },
      "storageUseAzuread": {
        "description": "Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?\n",
        "type": "boolean"
      },
      "subscriptionId": {
        "description": "The Subscription ID which should be used.\n",
        "type": "string"
      },
      "tenantId": {
        "description": "The Tenant ID which should be used.\n",
        "type": "string"
      },
      "useMsi": {
        "description": "Allowed Managed Service Identity be used for Authentication.\n",
        "type": "boolean"
      }
    }
  },
  "repository": "https://github.com/pulumi/pulumi-azure",
  "resources": {
    "azure:analysisservices/server:Server": {
      "description": "Manages an Analysis Services Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst server = new azure.analysisservices.Server(\"server\", {\n    location: \"northeurope\",\n    resourceGroupName: rg.name,\n    sku: \"S0\",\n    adminUsers: [\"myuser@domain.tld\"],\n    enablePowerBiService: true,\n    ipv4FirewallRules: [{\n        name: \"myRule1\",\n        rangeStart: \"210.117.252.0\",\n        rangeEnd: \"210.117.252.255\",\n    }],\n    tags: {\n        abc: 123,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nserver = azure.analysisservices.Server(\"server\",\n    location=\"northeurope\",\n    resource_group_name=rg.name,\n    sku=\"S0\",\n    admin_users=[\"myuser@domain.tld\"],\n    enable_power_bi_service=True,\n    ipv4_firewall_rules=[azure.analysisservices.ServerIpv4FirewallRuleArgs(\n        name=\"myRule1\",\n        range_start=\"210.117.252.0\",\n        range_end=\"210.117.252.255\",\n    )],\n    tags={\n        \"abc\": \"123\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var server = new Azure.AnalysisServices.Server(\"server\", new Azure.AnalysisServices.ServerArgs\n        {\n            Location = \"northeurope\",\n            ResourceGroupName = rg.Name,\n            Sku = \"S0\",\n            AdminUsers = \n            {\n                \"myuser@domain.tld\",\n            },\n            EnablePowerBiService = true,\n            Ipv4FirewallRules = \n            {\n                new Azure.AnalysisServices.Inputs.ServerIpv4FirewallRuleArgs\n                {\n                    Name = \"myRule1\",\n                    RangeStart = \"210.117.252.0\",\n                    RangeEnd = \"210.117.252.255\",\n                },\n            },\n            Tags = \n            {\n                { \"abc\", \"123\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/analysisservices\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = analysisservices.NewServer(ctx, \"server\", \u0026analysisservices.ServerArgs{\n\t\t\tLocation:          pulumi.String(\"northeurope\"),\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tSku:               pulumi.String(\"S0\"),\n\t\t\tAdminUsers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"myuser@domain.tld\"),\n\t\t\t},\n\t\t\tEnablePowerBiService: pulumi.Bool(true),\n\t\t\tIpv4FirewallRules: analysisservices.ServerIpv4FirewallRuleArray{\n\t\t\t\t\u0026analysisservices.ServerIpv4FirewallRuleArgs{\n\t\t\t\t\tName:       pulumi.String(\"myRule1\"),\n\t\t\t\t\tRangeStart: pulumi.String(\"210.117.252.0\"),\n\t\t\t\t\tRangeEnd:   pulumi.String(\"210.117.252.255\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"abc\": pulumi.String(\"123\"),\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\n\u003e **NOTE:** The server resource will automatically be started and stopped during an update if it is in `paused` state.\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAnalysis Services Server can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:analysisservices/server:Server server /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourcegroup1/providers/Microsoft.AnalysisServices/servers/server1\n```\n\n ",
      "inputProperties": {
        "adminUsers": {
          "description": "List of email addresses of admin users.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "backupBlobContainerUri": {
          "description": "URI and SAS token for a blob container to store backups.\n",
          "type": "string"
        },
        "enablePowerBiService": {
          "description": "Indicates if the Power BI service is allowed to access or not.\n",
          "type": "boolean"
        },
        "ipv4FirewallRules": {
          "description": "One or more `ipv4_firewall_rule` block(s) as defined below.\n",
          "items": {
            "$ref": "#/types/azure:analysisservices/ServerIpv4FirewallRule:ServerIpv4FirewallRule"
          },
          "type": "array"
        },
        "location": {
          "description": "The Azure location where the Analysis Services Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the firewall rule.\n",
          "type": "string"
        },
        "querypoolConnectionMode": {
          "description": "Controls how the read-write server is used in the query pool. If this value is set to `All` then read-write servers are also used for queries. Otherwise with `ReadOnly` these servers do not participate in query operations.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Analysis Services Server should be exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "SKU for the Analysis Services Server. Possible values are: `D1`, `B1`, `B2`, `S0`, `S1`, `S2`, `S4`, `S8`, `S9`, `S8v2` and `S9v2`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "properties": {
        "adminUsers": {
          "description": "List of email addresses of admin users.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "backupBlobContainerUri": {
          "description": "URI and SAS token for a blob container to store backups.\n",
          "type": "string"
        },
        "enablePowerBiService": {
          "description": "Indicates if the Power BI service is allowed to access or not.\n",
          "type": "boolean"
        },
        "ipv4FirewallRules": {
          "description": "One or more `ipv4_firewall_rule` block(s) as defined below.\n",
          "items": {
            "$ref": "#/types/azure:analysisservices/ServerIpv4FirewallRule:ServerIpv4FirewallRule"
          },
          "type": "array"
        },
        "location": {
          "description": "The Azure location where the Analysis Services Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the firewall rule.\n",
          "type": "string"
        },
        "querypoolConnectionMode": {
          "description": "Controls how the read-write server is used in the query pool. If this value is set to `All` then read-write servers are also used for queries. Otherwise with `ReadOnly` these servers do not participate in query operations.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Analysis Services Server should be exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverFullName": {
          "description": "The full name of the Analysis Services Server.\n",
          "type": "string"
        },
        "sku": {
          "description": "SKU for the Analysis Services Server. Possible values are: `D1`, `B1`, `B2`, `S0`, `S1`, `S2`, `S4`, `S8`, `S9`, `S8v2` and `S9v2`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "querypoolConnectionMode",
        "resourceGroupName",
        "serverFullName",
        "sku"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Server resources.\n",
        "properties": {
          "adminUsers": {
            "description": "List of email addresses of admin users.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "backupBlobContainerUri": {
            "description": "URI and SAS token for a blob container to store backups.\n",
            "type": "string"
          },
          "enablePowerBiService": {
            "description": "Indicates if the Power BI service is allowed to access or not.\n",
            "type": "boolean"
          },
          "ipv4FirewallRules": {
            "description": "One or more `ipv4_firewall_rule` block(s) as defined below.\n",
            "items": {
              "$ref": "#/types/azure:analysisservices/ServerIpv4FirewallRule:ServerIpv4FirewallRule"
            },
            "type": "array"
          },
          "location": {
            "description": "The Azure location where the Analysis Services Server exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the firewall rule.\n",
            "type": "string"
          },
          "querypoolConnectionMode": {
            "description": "Controls how the read-write server is used in the query pool. If this value is set to `All` then read-write servers are also used for queries. Otherwise with `ReadOnly` these servers do not participate in query operations.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Analysis Services Server should be exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverFullName": {
            "description": "The full name of the Analysis Services Server.\n",
            "type": "string"
          },
          "sku": {
            "description": "SKU for the Analysis Services Server. Possible values are: `D1`, `B1`, `B2`, `S0`, `S1`, `S2`, `S4`, `S8`, `S9`, `S8v2` and `S9v2`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/api:Api": {
      "description": "Manages an API within an API Management Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@exmaple.com\",\n    skuName: \"Developer_1\",\n});\nconst exampleApi = new azure.apimanagement.Api(\"exampleApi\", {\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    revision: \"1\",\n    displayName: \"Example API\",\n    path: \"example\",\n    protocols: [\"https\"],\n    \"import\": {\n        contentFormat: \"swagger-link-json\",\n        contentValue: \"http://conferenceapi.azurewebsites.net/?format=json\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@exmaple.com\",\n    sku_name=\"Developer_1\")\nexample_api = azure.apimanagement.Api(\"exampleApi\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    revision=\"1\",\n    display_name=\"Example API\",\n    path=\"example\",\n    protocols=[\"https\"],\n    import_=azure.apimanagement.ApiImportArgs(\n        content_format=\"swagger-link-json\",\n        content_value=\"http://conferenceapi.azurewebsites.net/?format=json\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@exmaple.com\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleApi = new Azure.ApiManagement.Api(\"exampleApi\", new Azure.ApiManagement.ApiArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            Revision = \"1\",\n            DisplayName = \"Example API\",\n            Path = \"example\",\n            Protocols = \n            {\n                \"https\",\n            },\n            Import = new Azure.ApiManagement.Inputs.ApiImportArgs\n            {\n                ContentFormat = \"swagger-link-json\",\n                ContentValue = \"http://conferenceapi.azurewebsites.net/?format=json\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@exmaple.com\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewApi(ctx, \"exampleApi\", \u0026apimanagement.ApiArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tRevision:          pulumi.String(\"1\"),\n\t\t\tDisplayName:       pulumi.String(\"Example API\"),\n\t\t\tPath:              pulumi.String(\"example\"),\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https\"),\n\t\t\t},\n\t\t\tImport: \u0026apimanagement.ApiImportArgs{\n\t\t\t\tContentFormat: pulumi.String(\"swagger-link-json\"),\n\t\t\t\tContentValue:  pulumi.String(\"http://conferenceapi.azurewebsites.net/?format=json\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management API's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/api:Api example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/apis/api1\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where this API should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "A description of the API Management API, which may include HTML formatting tags.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the API.\n",
          "type": "string"
        },
        "import": {
          "$ref": "#/types/azure:apimanagement/ApiImport:ApiImport",
          "description": "A `import` block as documented below.\n"
        },
        "name": {
          "description": "The name of the API Management API. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "oauth2Authorization": {
          "$ref": "#/types/azure:apimanagement/ApiOauth2Authorization:ApiOauth2Authorization",
          "description": "An `oauth2_authorization` block as documented below.\n"
        },
        "openidAuthentication": {
          "$ref": "#/types/azure:apimanagement/ApiOpenidAuthentication:ApiOpenidAuthentication",
          "description": "An `openid_authentication` block as documented below.\n"
        },
        "path": {
          "description": "The Path for this API Management API, which is a relative URL which uniquely identifies this API and all of its resource paths within the API Management Service.\n",
          "type": "string"
        },
        "protocols": {
          "description": "A list of protocols the operations in this API can be invoked. Possible values are `http` and `https`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management API exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "revision": {
          "description": "The Revision which used for this API.\n",
          "type": "string"
        },
        "revisionDescription": {
          "description": "The description of the Api Revision of the API Management API.\n",
          "type": "string"
        },
        "serviceUrl": {
          "description": "Absolute URL of the backend service implementing this API.\n",
          "type": "string"
        },
        "soapPassThrough": {
          "description": "Should this API expose a SOAP frontend, rather than a HTTP frontend? Defaults to `false`.\n",
          "type": "boolean"
        },
        "sourceApiId": {
          "description": "The API id of the source API, which could be in format `azurerm_api_management_api.example.id` or in format `azurerm_api_management_api.example.id;rev=1`\n",
          "type": "string"
        },
        "subscriptionKeyParameterNames": {
          "$ref": "#/types/azure:apimanagement/ApiSubscriptionKeyParameterNames:ApiSubscriptionKeyParameterNames",
          "description": "A `subscription_key_parameter_names` block as documented below.\n"
        },
        "subscriptionRequired": {
          "description": "Should this API require a subscription key?\n",
          "type": "boolean"
        },
        "version": {
          "description": "The Version number of this API, if this API is versioned.\n",
          "type": "string"
        },
        "versionDescription": {
          "description": "The description of the Api Version of the API Management API.\n",
          "type": "string"
        },
        "versionSetId": {
          "description": "The ID of the Version Set which this API is associated with.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where this API should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "A description of the API Management API, which may include HTML formatting tags.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the API.\n",
          "type": "string"
        },
        "import": {
          "$ref": "#/types/azure:apimanagement/ApiImport:ApiImport",
          "description": "A `import` block as documented below.\n"
        },
        "isCurrent": {
          "description": "Is this the current API Revision?\n",
          "type": "boolean"
        },
        "isOnline": {
          "description": "Is this API Revision online/accessible via the Gateway?\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the API Management API. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "oauth2Authorization": {
          "$ref": "#/types/azure:apimanagement/ApiOauth2Authorization:ApiOauth2Authorization",
          "description": "An `oauth2_authorization` block as documented below.\n"
        },
        "openidAuthentication": {
          "$ref": "#/types/azure:apimanagement/ApiOpenidAuthentication:ApiOpenidAuthentication",
          "description": "An `openid_authentication` block as documented below.\n"
        },
        "path": {
          "description": "The Path for this API Management API, which is a relative URL which uniquely identifies this API and all of its resource paths within the API Management Service.\n",
          "type": "string"
        },
        "protocols": {
          "description": "A list of protocols the operations in this API can be invoked. Possible values are `http` and `https`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management API exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "revision": {
          "description": "The Revision which used for this API.\n",
          "type": "string"
        },
        "revisionDescription": {
          "description": "The description of the Api Revision of the API Management API.\n",
          "type": "string"
        },
        "serviceUrl": {
          "description": "Absolute URL of the backend service implementing this API.\n",
          "type": "string"
        },
        "soapPassThrough": {
          "description": "Should this API expose a SOAP frontend, rather than a HTTP frontend? Defaults to `false`.\n",
          "type": "boolean"
        },
        "sourceApiId": {
          "description": "The API id of the source API, which could be in format `azurerm_api_management_api.example.id` or in format `azurerm_api_management_api.example.id;rev=1`\n",
          "type": "string"
        },
        "subscriptionKeyParameterNames": {
          "$ref": "#/types/azure:apimanagement/ApiSubscriptionKeyParameterNames:ApiSubscriptionKeyParameterNames",
          "description": "A `subscription_key_parameter_names` block as documented below.\n"
        },
        "subscriptionRequired": {
          "description": "Should this API require a subscription key?\n",
          "type": "boolean"
        },
        "version": {
          "description": "The Version number of this API, if this API is versioned.\n",
          "type": "string"
        },
        "versionDescription": {
          "description": "The description of the Api Version of the API Management API.\n",
          "type": "string"
        },
        "versionSetId": {
          "description": "The ID of the Version Set which this API is associated with.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "displayName",
        "isCurrent",
        "isOnline",
        "name",
        "path",
        "protocols",
        "resourceGroupName",
        "revision",
        "serviceUrl",
        "subscriptionKeyParameterNames",
        "version",
        "versionSetId"
      ],
      "requiredInputs": [
        "apiManagementName",
        "resourceGroupName",
        "revision"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Api resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The Name of the API Management Service where this API should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "A description of the API Management API, which may include HTML formatting tags.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the API.\n",
            "type": "string"
          },
          "import": {
            "$ref": "#/types/azure:apimanagement/ApiImport:ApiImport",
            "description": "A `import` block as documented below.\n"
          },
          "isCurrent": {
            "description": "Is this the current API Revision?\n",
            "type": "boolean"
          },
          "isOnline": {
            "description": "Is this API Revision online/accessible via the Gateway?\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name of the API Management API. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "oauth2Authorization": {
            "$ref": "#/types/azure:apimanagement/ApiOauth2Authorization:ApiOauth2Authorization",
            "description": "An `oauth2_authorization` block as documented below.\n"
          },
          "openidAuthentication": {
            "$ref": "#/types/azure:apimanagement/ApiOpenidAuthentication:ApiOpenidAuthentication",
            "description": "An `openid_authentication` block as documented below.\n"
          },
          "path": {
            "description": "The Path for this API Management API, which is a relative URL which uniquely identifies this API and all of its resource paths within the API Management Service.\n",
            "type": "string"
          },
          "protocols": {
            "description": "A list of protocols the operations in this API can be invoked. Possible values are `http` and `https`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the API Management API exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "revision": {
            "description": "The Revision which used for this API.\n",
            "type": "string"
          },
          "revisionDescription": {
            "description": "The description of the Api Revision of the API Management API.\n",
            "type": "string"
          },
          "serviceUrl": {
            "description": "Absolute URL of the backend service implementing this API.\n",
            "type": "string"
          },
          "soapPassThrough": {
            "description": "Should this API expose a SOAP frontend, rather than a HTTP frontend? Defaults to `false`.\n",
            "type": "boolean"
          },
          "sourceApiId": {
            "description": "The API id of the source API, which could be in format `azurerm_api_management_api.example.id` or in format `azurerm_api_management_api.example.id;rev=1`\n",
            "type": "string"
          },
          "subscriptionKeyParameterNames": {
            "$ref": "#/types/azure:apimanagement/ApiSubscriptionKeyParameterNames:ApiSubscriptionKeyParameterNames",
            "description": "A `subscription_key_parameter_names` block as documented below.\n"
          },
          "subscriptionRequired": {
            "description": "Should this API require a subscription key?\n",
            "type": "boolean"
          },
          "version": {
            "description": "The Version number of this API, if this API is versioned.\n",
            "type": "string"
          },
          "versionDescription": {
            "description": "The description of the Api Version of the API Management API.\n",
            "type": "string"
          },
          "versionSetId": {
            "description": "The ID of the Version Set which this API is associated with.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/apiDiagnostic:ApiDiagnostic": {
      "description": "Manages a API Management Service API Diagnostics Logs.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"web\",\n});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@mycompany.io\",\n    skuName: \"Developer_1\",\n});\nconst exampleApi = new azure.apimanagement.Api(\"exampleApi\", {\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    revision: \"1\",\n    displayName: \"Example API\",\n    path: \"example\",\n    protocols: [\"https\"],\n    \"import\": {\n        contentFormat: \"swagger-link-json\",\n        contentValue: \"http://conferenceapi.azurewebsites.net/?format=json\",\n    },\n});\nconst exampleLogger = new azure.apimanagement.Logger(\"exampleLogger\", {\n    apiManagementName: exampleService.name,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationInsights: {\n        instrumentationKey: exampleInsights.instrumentationKey,\n    },\n});\nconst exampleApiDiagnostic = new azure.apimanagement.ApiDiagnostic(\"exampleApiDiagnostic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    apiName: exampleApi.name,\n    apiManagementLoggerId: exampleLogger.id,\n    samplingPercentage: 5,\n    alwaysLogErrors: true,\n    logClientIp: true,\n    verbosity: \"Verbose\",\n    httpCorrelationProtocol: \"W3C\",\n    frontendRequest: {\n        bodyBytes: 32,\n        headersToLogs: [\n            \"content-type\",\n            \"accept\",\n            \"origin\",\n        ],\n    },\n    frontendResponse: {\n        bodyBytes: 32,\n        headersToLogs: [\n            \"content-type\",\n            \"content-length\",\n            \"origin\",\n        ],\n    },\n    backendRequest: {\n        bodyBytes: 32,\n        headersToLogs: [\n            \"content-type\",\n            \"accept\",\n            \"origin\",\n        ],\n    },\n    backendResponse: {\n        bodyBytes: 32,\n        headersToLogs: [\n            \"content-type\",\n            \"content-length\",\n            \"origin\",\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_type=\"web\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@mycompany.io\",\n    sku_name=\"Developer_1\")\nexample_api = azure.apimanagement.Api(\"exampleApi\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    revision=\"1\",\n    display_name=\"Example API\",\n    path=\"example\",\n    protocols=[\"https\"],\n    import_=azure.apimanagement.ApiImportArgs(\n        content_format=\"swagger-link-json\",\n        content_value=\"http://conferenceapi.azurewebsites.net/?format=json\",\n    ))\nexample_logger = azure.apimanagement.Logger(\"exampleLogger\",\n    api_management_name=example_service.name,\n    resource_group_name=example_resource_group.name,\n    application_insights=azure.apimanagement.LoggerApplicationInsightsArgs(\n        instrumentation_key=example_insights.instrumentation_key,\n    ))\nexample_api_diagnostic = azure.apimanagement.ApiDiagnostic(\"exampleApiDiagnostic\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    api_name=example_api.name,\n    api_management_logger_id=example_logger.id,\n    sampling_percentage=5,\n    always_log_errors=True,\n    log_client_ip=True,\n    verbosity=\"Verbose\",\n    http_correlation_protocol=\"W3C\",\n    frontend_request=azure.apimanagement.ApiDiagnosticFrontendRequestArgs(\n        body_bytes=32,\n        headers_to_logs=[\n            \"content-type\",\n            \"accept\",\n            \"origin\",\n        ],\n    ),\n    frontend_response=azure.apimanagement.ApiDiagnosticFrontendResponseArgs(\n        body_bytes=32,\n        headers_to_logs=[\n            \"content-type\",\n            \"content-length\",\n            \"origin\",\n        ],\n    ),\n    backend_request=azure.apimanagement.ApiDiagnosticBackendRequestArgs(\n        body_bytes=32,\n        headers_to_logs=[\n            \"content-type\",\n            \"accept\",\n            \"origin\",\n        ],\n    ),\n    backend_response=azure.apimanagement.ApiDiagnosticBackendResponseArgs(\n        body_bytes=32,\n        headers_to_logs=[\n            \"content-type\",\n            \"content-length\",\n            \"origin\",\n        ],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"web\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@mycompany.io\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleApi = new Azure.ApiManagement.Api(\"exampleApi\", new Azure.ApiManagement.ApiArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            Revision = \"1\",\n            DisplayName = \"Example API\",\n            Path = \"example\",\n            Protocols = \n            {\n                \"https\",\n            },\n            Import = new Azure.ApiManagement.Inputs.ApiImportArgs\n            {\n                ContentFormat = \"swagger-link-json\",\n                ContentValue = \"http://conferenceapi.azurewebsites.net/?format=json\",\n            },\n        });\n        var exampleLogger = new Azure.ApiManagement.Logger(\"exampleLogger\", new Azure.ApiManagement.LoggerArgs\n        {\n            ApiManagementName = exampleService.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationInsights = new Azure.ApiManagement.Inputs.LoggerApplicationInsightsArgs\n            {\n                InstrumentationKey = exampleInsights.InstrumentationKey,\n            },\n        });\n        var exampleApiDiagnostic = new Azure.ApiManagement.ApiDiagnostic(\"exampleApiDiagnostic\", new Azure.ApiManagement.ApiDiagnosticArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            ApiName = exampleApi.Name,\n            ApiManagementLoggerId = exampleLogger.Id,\n            SamplingPercentage = 5,\n            AlwaysLogErrors = true,\n            LogClientIp = true,\n            Verbosity = \"Verbose\",\n            HttpCorrelationProtocol = \"W3C\",\n            FrontendRequest = new Azure.ApiManagement.Inputs.ApiDiagnosticFrontendRequestArgs\n            {\n                BodyBytes = 32,\n                HeadersToLogs = \n                {\n                    \"content-type\",\n                    \"accept\",\n                    \"origin\",\n                },\n            },\n            FrontendResponse = new Azure.ApiManagement.Inputs.ApiDiagnosticFrontendResponseArgs\n            {\n                BodyBytes = 32,\n                HeadersToLogs = \n                {\n                    \"content-type\",\n                    \"content-length\",\n                    \"origin\",\n                },\n            },\n            BackendRequest = new Azure.ApiManagement.Inputs.ApiDiagnosticBackendRequestArgs\n            {\n                BodyBytes = 32,\n                HeadersToLogs = \n                {\n                    \"content-type\",\n                    \"accept\",\n                    \"origin\",\n                },\n            },\n            BackendResponse = new Azure.ApiManagement.Inputs.ApiDiagnosticBackendResponseArgs\n            {\n                BodyBytes = 32,\n                HeadersToLogs = \n                {\n                    \"content-type\",\n                    \"content-length\",\n                    \"origin\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@mycompany.io\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleApi, err := apimanagement.NewApi(ctx, \"exampleApi\", \u0026apimanagement.ApiArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tRevision:          pulumi.String(\"1\"),\n\t\t\tDisplayName:       pulumi.String(\"Example API\"),\n\t\t\tPath:              pulumi.String(\"example\"),\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https\"),\n\t\t\t},\n\t\t\tImport: \u0026apimanagement.ApiImportArgs{\n\t\t\t\tContentFormat: pulumi.String(\"swagger-link-json\"),\n\t\t\t\tContentValue:  pulumi.String(\"http://conferenceapi.azurewebsites.net/?format=json\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLogger, err := apimanagement.NewLogger(ctx, \"exampleLogger\", \u0026apimanagement.LoggerArgs{\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationInsights: \u0026apimanagement.LoggerApplicationInsightsArgs{\n\t\t\t\tInstrumentationKey: exampleInsights.InstrumentationKey,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewApiDiagnostic(ctx, \"exampleApiDiagnostic\", \u0026apimanagement.ApiDiagnosticArgs{\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tApiManagementName:       exampleService.Name,\n\t\t\tApiName:                 exampleApi.Name,\n\t\t\tApiManagementLoggerId:   exampleLogger.ID(),\n\t\t\tSamplingPercentage:      pulumi.Float64(5),\n\t\t\tAlwaysLogErrors:         pulumi.Bool(true),\n\t\t\tLogClientIp:             pulumi.Bool(true),\n\t\t\tVerbosity:               pulumi.String(\"Verbose\"),\n\t\t\tHttpCorrelationProtocol: pulumi.String(\"W3C\"),\n\t\t\tFrontendRequest: \u0026apimanagement.ApiDiagnosticFrontendRequestArgs{\n\t\t\t\tBodyBytes: pulumi.Int(32),\n\t\t\t\tHeadersToLogs: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"content-type\"),\n\t\t\t\t\tpulumi.String(\"accept\"),\n\t\t\t\t\tpulumi.String(\"origin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendResponse: \u0026apimanagement.ApiDiagnosticFrontendResponseArgs{\n\t\t\t\tBodyBytes: pulumi.Int(32),\n\t\t\t\tHeadersToLogs: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"content-type\"),\n\t\t\t\t\tpulumi.String(\"content-length\"),\n\t\t\t\t\tpulumi.String(\"origin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackendRequest: \u0026apimanagement.ApiDiagnosticBackendRequestArgs{\n\t\t\t\tBodyBytes: pulumi.Int(32),\n\t\t\t\tHeadersToLogs: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"content-type\"),\n\t\t\t\t\tpulumi.String(\"accept\"),\n\t\t\t\t\tpulumi.String(\"origin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackendResponse: \u0026apimanagement.ApiDiagnosticBackendResponseArgs{\n\t\t\t\tBodyBytes: pulumi.Int(32),\n\t\t\t\tHeadersToLogs: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"content-type\"),\n\t\t\t\t\tpulumi.String(\"content-length\"),\n\t\t\t\t\tpulumi.String(\"origin\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Service API Diagnostics Logs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/apiDiagnostic:ApiDiagnostic example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/instance1/apis/api1/diagnostics/diagnostic1/loggers/logger1\n```\n\n ",
      "inputProperties": {
        "alwaysLogErrors": {
          "description": "Always log errors. Send telemetry if there is an erroneous condition, regardless of sampling settings.\n",
          "type": "boolean"
        },
        "apiManagementLoggerId": {
          "description": "The ID (name) of the Diagnostics Logger.\n",
          "type": "string"
        },
        "apiManagementName": {
          "description": "The name of the API Management Service instance. Changing this forces a new API Management Service API Diagnostics Logs to be created.\n",
          "type": "string"
        },
        "apiName": {
          "description": "The name of the API on which to configure the Diagnostics Logs. Changing this forces a new API Management Service API Diagnostics Logs to be created.\n",
          "type": "string"
        },
        "backendRequest": {
          "$ref": "#/types/azure:apimanagement/ApiDiagnosticBackendRequest:ApiDiagnosticBackendRequest",
          "description": "A `backend_request` block as defined below.\n"
        },
        "backendResponse": {
          "$ref": "#/types/azure:apimanagement/ApiDiagnosticBackendResponse:ApiDiagnosticBackendResponse",
          "description": "A `backend_response` block as defined below.\n"
        },
        "frontendRequest": {
          "$ref": "#/types/azure:apimanagement/ApiDiagnosticFrontendRequest:ApiDiagnosticFrontendRequest",
          "description": "A `frontend_request` block as defined below.\n"
        },
        "frontendResponse": {
          "$ref": "#/types/azure:apimanagement/ApiDiagnosticFrontendResponse:ApiDiagnosticFrontendResponse",
          "description": "A `frontend_response` block as defined below.\n"
        },
        "httpCorrelationProtocol": {
          "description": "The HTTP Correlation Protocol to use. Possible values are `None`, `Legacy` or `W3C`.\n",
          "type": "string"
        },
        "identifier": {
          "description": "Identifier of the Diagnostics Logs. Possible values are `applicationinsights` and `azuremonitor`. Changing this forces a new API Management Service API Diagnostics Logs to be created.\n",
          "type": "string"
        },
        "logClientIp": {
          "description": "Log client IP address.\n",
          "type": "boolean"
        },
        "operationNameFormat": {
          "description": "The format of the Operation Name for Application Insights telemetries. Possible values are `Name`, and `Url`. Defaults to `Name`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the API Management Service API Diagnostics Logs should exist. Changing this forces a new API Management Service API Diagnostics Logs to be created.\n",
          "type": "string"
        },
        "samplingPercentage": {
          "description": "Sampling (%). For high traffic APIs, please read this [documentation](https://docs.microsoft.com/azure/api-management/api-management-howto-app-insights#performance-implications-and-log-sampling) to understand performance implications and log sampling. Valid values are between `0.0` and `100.0`.\n",
          "type": "number"
        },
        "verbosity": {
          "description": "Logging verbosity. Possible values are `verbose`, `information` or `error`.\n",
          "type": "string"
        }
      },
      "properties": {
        "alwaysLogErrors": {
          "description": "Always log errors. Send telemetry if there is an erroneous condition, regardless of sampling settings.\n",
          "type": "boolean"
        },
        "apiManagementLoggerId": {
          "description": "The ID (name) of the Diagnostics Logger.\n",
          "type": "string"
        },
        "apiManagementName": {
          "description": "The name of the API Management Service instance. Changing this forces a new API Management Service API Diagnostics Logs to be created.\n",
          "type": "string"
        },
        "apiName": {
          "description": "The name of the API on which to configure the Diagnostics Logs. Changing this forces a new API Management Service API Diagnostics Logs to be created.\n",
          "type": "string"
        },
        "backendRequest": {
          "$ref": "#/types/azure:apimanagement/ApiDiagnosticBackendRequest:ApiDiagnosticBackendRequest",
          "description": "A `backend_request` block as defined below.\n"
        },
        "backendResponse": {
          "$ref": "#/types/azure:apimanagement/ApiDiagnosticBackendResponse:ApiDiagnosticBackendResponse",
          "description": "A `backend_response` block as defined below.\n"
        },
        "frontendRequest": {
          "$ref": "#/types/azure:apimanagement/ApiDiagnosticFrontendRequest:ApiDiagnosticFrontendRequest",
          "description": "A `frontend_request` block as defined below.\n"
        },
        "frontendResponse": {
          "$ref": "#/types/azure:apimanagement/ApiDiagnosticFrontendResponse:ApiDiagnosticFrontendResponse",
          "description": "A `frontend_response` block as defined below.\n"
        },
        "httpCorrelationProtocol": {
          "description": "The HTTP Correlation Protocol to use. Possible values are `None`, `Legacy` or `W3C`.\n",
          "type": "string"
        },
        "identifier": {
          "description": "Identifier of the Diagnostics Logs. Possible values are `applicationinsights` and `azuremonitor`. Changing this forces a new API Management Service API Diagnostics Logs to be created.\n",
          "type": "string"
        },
        "logClientIp": {
          "description": "Log client IP address.\n",
          "type": "boolean"
        },
        "operationNameFormat": {
          "description": "The format of the Operation Name for Application Insights telemetries. Possible values are `Name`, and `Url`. Defaults to `Name`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the API Management Service API Diagnostics Logs should exist. Changing this forces a new API Management Service API Diagnostics Logs to be created.\n",
          "type": "string"
        },
        "samplingPercentage": {
          "description": "Sampling (%). For high traffic APIs, please read this [documentation](https://docs.microsoft.com/azure/api-management/api-management-howto-app-insights#performance-implications-and-log-sampling) to understand performance implications and log sampling. Valid values are between `0.0` and `100.0`.\n",
          "type": "number"
        },
        "verbosity": {
          "description": "Logging verbosity. Possible values are `verbose`, `information` or `error`.\n",
          "type": "string"
        }
      },
      "required": [
        "alwaysLogErrors",
        "apiManagementLoggerId",
        "apiManagementName",
        "apiName",
        "backendRequest",
        "backendResponse",
        "frontendRequest",
        "frontendResponse",
        "httpCorrelationProtocol",
        "identifier",
        "logClientIp",
        "resourceGroupName",
        "samplingPercentage",
        "verbosity"
      ],
      "requiredInputs": [
        "apiManagementLoggerId",
        "apiManagementName",
        "apiName",
        "identifier",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApiDiagnostic resources.\n",
        "properties": {
          "alwaysLogErrors": {
            "description": "Always log errors. Send telemetry if there is an erroneous condition, regardless of sampling settings.\n",
            "type": "boolean"
          },
          "apiManagementLoggerId": {
            "description": "The ID (name) of the Diagnostics Logger.\n",
            "type": "string"
          },
          "apiManagementName": {
            "description": "The name of the API Management Service instance. Changing this forces a new API Management Service API Diagnostics Logs to be created.\n",
            "type": "string"
          },
          "apiName": {
            "description": "The name of the API on which to configure the Diagnostics Logs. Changing this forces a new API Management Service API Diagnostics Logs to be created.\n",
            "type": "string"
          },
          "backendRequest": {
            "$ref": "#/types/azure:apimanagement/ApiDiagnosticBackendRequest:ApiDiagnosticBackendRequest",
            "description": "A `backend_request` block as defined below.\n"
          },
          "backendResponse": {
            "$ref": "#/types/azure:apimanagement/ApiDiagnosticBackendResponse:ApiDiagnosticBackendResponse",
            "description": "A `backend_response` block as defined below.\n"
          },
          "frontendRequest": {
            "$ref": "#/types/azure:apimanagement/ApiDiagnosticFrontendRequest:ApiDiagnosticFrontendRequest",
            "description": "A `frontend_request` block as defined below.\n"
          },
          "frontendResponse": {
            "$ref": "#/types/azure:apimanagement/ApiDiagnosticFrontendResponse:ApiDiagnosticFrontendResponse",
            "description": "A `frontend_response` block as defined below.\n"
          },
          "httpCorrelationProtocol": {
            "description": "The HTTP Correlation Protocol to use. Possible values are `None`, `Legacy` or `W3C`.\n",
            "type": "string"
          },
          "identifier": {
            "description": "Identifier of the Diagnostics Logs. Possible values are `applicationinsights` and `azuremonitor`. Changing this forces a new API Management Service API Diagnostics Logs to be created.\n",
            "type": "string"
          },
          "logClientIp": {
            "description": "Log client IP address.\n",
            "type": "boolean"
          },
          "operationNameFormat": {
            "description": "The format of the Operation Name for Application Insights telemetries. Possible values are `Name`, and `Url`. Defaults to `Name`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the API Management Service API Diagnostics Logs should exist. Changing this forces a new API Management Service API Diagnostics Logs to be created.\n",
            "type": "string"
          },
          "samplingPercentage": {
            "description": "Sampling (%). For high traffic APIs, please read this [documentation](https://docs.microsoft.com/azure/api-management/api-management-howto-app-insights#performance-implications-and-log-sampling) to understand performance implications and log sampling. Valid values are between `0.0` and `100.0`.\n",
            "type": "number"
          },
          "verbosity": {
            "description": "Logging verbosity. Possible values are `verbose`, `information` or `error`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/apiOperation:ApiOperation": {
      "description": "Manages an API Operation within an API Management Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleApi = azure.apimanagement.getApi({\n    name: \"search-api\",\n    apiManagementName: \"search-api-management\",\n    resourceGroupName: \"search-service\",\n    revision: \"2\",\n});\nconst exampleApiOperation = new azure.apimanagement.ApiOperation(\"exampleApiOperation\", {\n    operationId: \"user-delete\",\n    apiName: exampleApi.then(exampleApi =\u003e exampleApi.name),\n    apiManagementName: exampleApi.then(exampleApi =\u003e exampleApi.apiManagementName),\n    resourceGroupName: exampleApi.then(exampleApi =\u003e exampleApi.resourceGroupName),\n    displayName: \"Delete User Operation\",\n    method: \"DELETE\",\n    urlTemplate: \"/users/{id}/delete\",\n    description: \"This can only be done by the logged in user.\",\n    responses: [{\n        statusCode: 200,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_api = azure.apimanagement.get_api(name=\"search-api\",\n    api_management_name=\"search-api-management\",\n    resource_group_name=\"search-service\",\n    revision=\"2\")\nexample_api_operation = azure.apimanagement.ApiOperation(\"exampleApiOperation\",\n    operation_id=\"user-delete\",\n    api_name=example_api.name,\n    api_management_name=example_api.api_management_name,\n    resource_group_name=example_api.resource_group_name,\n    display_name=\"Delete User Operation\",\n    method=\"DELETE\",\n    url_template=\"/users/{id}/delete\",\n    description=\"This can only be done by the logged in user.\",\n    responses=[azure.apimanagement.ApiOperationResponseArgs(\n        status_code=200,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleApi = Output.Create(Azure.ApiManagement.GetApi.InvokeAsync(new Azure.ApiManagement.GetApiArgs\n        {\n            Name = \"search-api\",\n            ApiManagementName = \"search-api-management\",\n            ResourceGroupName = \"search-service\",\n            Revision = \"2\",\n        }));\n        var exampleApiOperation = new Azure.ApiManagement.ApiOperation(\"exampleApiOperation\", new Azure.ApiManagement.ApiOperationArgs\n        {\n            OperationId = \"user-delete\",\n            ApiName = exampleApi.Apply(exampleApi =\u003e exampleApi.Name),\n            ApiManagementName = exampleApi.Apply(exampleApi =\u003e exampleApi.ApiManagementName),\n            ResourceGroupName = exampleApi.Apply(exampleApi =\u003e exampleApi.ResourceGroupName),\n            DisplayName = \"Delete User Operation\",\n            Method = \"DELETE\",\n            UrlTemplate = \"/users/{id}/delete\",\n            Description = \"This can only be done by the logged in user.\",\n            Responses = \n            {\n                new Azure.ApiManagement.Inputs.ApiOperationResponseArgs\n                {\n                    StatusCode = 200,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleApi, err := apimanagement.LookupApi(ctx, \u0026apimanagement.LookupApiArgs{\n\t\t\tName:              \"search-api\",\n\t\t\tApiManagementName: \"search-api-management\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t\tRevision:          \"2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewApiOperation(ctx, \"exampleApiOperation\", \u0026apimanagement.ApiOperationArgs{\n\t\t\tOperationId:       pulumi.String(\"user-delete\"),\n\t\t\tApiName:           pulumi.String(exampleApi.Name),\n\t\t\tApiManagementName: pulumi.String(exampleApi.ApiManagementName),\n\t\t\tResourceGroupName: pulumi.String(exampleApi.ResourceGroupName),\n\t\t\tDisplayName:       pulumi.String(\"Delete User Operation\"),\n\t\t\tMethod:            pulumi.String(\"DELETE\"),\n\t\t\tUrlTemplate:       pulumi.String(\"/users/{id}/delete\"),\n\t\t\tDescription:       pulumi.String(\"This can only be done by the logged in user.\"),\n\t\t\tResponses: apimanagement.ApiOperationResponseArray{\n\t\t\t\t\u0026apimanagement.ApiOperationResponseArgs{\n\t\t\t\t\tStatusCode: pulumi.Int(200),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management API Operation's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/apiOperation:ApiOperation example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/apis/api1/operations/operation1\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where the API exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "apiName": {
          "description": "The name of the API within the API Management Service where this API Operation should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this API Operation, which may include HTML formatting tags.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The Display Name for this API Management Operation.\n",
          "type": "string"
        },
        "method": {
          "description": "The HTTP Method used for this API Management Operation, like `GET`, `DELETE`, `PUT` or `POST` - but not limited to these values.\n",
          "type": "string"
        },
        "operationId": {
          "description": "A unique identifier for this API Operation. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "request": {
          "$ref": "#/types/azure:apimanagement/ApiOperationRequest:ApiOperationRequest",
          "description": "A `request` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "responses": {
          "description": "One or more `response` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiOperationResponse:ApiOperationResponse"
          },
          "type": "array"
        },
        "templateParameters": {
          "description": "One or more `template_parameter` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiOperationTemplateParameter:ApiOperationTemplateParameter"
          },
          "type": "array"
        },
        "urlTemplate": {
          "description": "The relative URL Template identifying the target resource for this operation, which may include parameters.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where the API exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "apiName": {
          "description": "The name of the API within the API Management Service where this API Operation should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this API Operation, which may include HTML formatting tags.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The Display Name for this API Management Operation.\n",
          "type": "string"
        },
        "method": {
          "description": "The HTTP Method used for this API Management Operation, like `GET`, `DELETE`, `PUT` or `POST` - but not limited to these values.\n",
          "type": "string"
        },
        "operationId": {
          "description": "A unique identifier for this API Operation. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "request": {
          "$ref": "#/types/azure:apimanagement/ApiOperationRequest:ApiOperationRequest",
          "description": "A `request` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "responses": {
          "description": "One or more `response` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiOperationResponse:ApiOperationResponse"
          },
          "type": "array"
        },
        "templateParameters": {
          "description": "One or more `template_parameter` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiOperationTemplateParameter:ApiOperationTemplateParameter"
          },
          "type": "array"
        },
        "urlTemplate": {
          "description": "The relative URL Template identifying the target resource for this operation, which may include parameters.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "apiName",
        "displayName",
        "method",
        "operationId",
        "request",
        "resourceGroupName",
        "urlTemplate"
      ],
      "requiredInputs": [
        "apiManagementName",
        "apiName",
        "displayName",
        "method",
        "operationId",
        "resourceGroupName",
        "urlTemplate"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApiOperation resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The Name of the API Management Service where the API exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "apiName": {
            "description": "The name of the API within the API Management Service where this API Operation should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "A description for this API Operation, which may include HTML formatting tags.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The Display Name for this API Management Operation.\n",
            "type": "string"
          },
          "method": {
            "description": "The HTTP Method used for this API Management Operation, like `GET`, `DELETE`, `PUT` or `POST` - but not limited to these values.\n",
            "type": "string"
          },
          "operationId": {
            "description": "A unique identifier for this API Operation. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "request": {
            "$ref": "#/types/azure:apimanagement/ApiOperationRequest:ApiOperationRequest",
            "description": "A `request` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "responses": {
            "description": "One or more `response` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/ApiOperationResponse:ApiOperationResponse"
            },
            "type": "array"
          },
          "templateParameters": {
            "description": "One or more `template_parameter` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/ApiOperationTemplateParameter:ApiOperationTemplateParameter"
            },
            "type": "array"
          },
          "urlTemplate": {
            "description": "The relative URL Template identifying the target resource for this operation, which may include parameters.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/apiOperationPolicy:ApiOperationPolicy": {
      "description": "Manages an API Management API Operation Policy\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleApiOperation = new azure.apimanagement.ApiOperation(\"exampleApiOperation\", {});\n//...\nconst exampleApiOperationPolicy = new azure.apimanagement.ApiOperationPolicy(\"exampleApiOperationPolicy\", {\n    apiName: exampleApiOperation.apiName,\n    apiManagementName: exampleApiOperation.apiManagementName,\n    resourceGroupName: exampleApiOperation.resourceGroupName,\n    operationId: exampleApiOperation.operationId,\n    xmlContent: `\u003cpolicies\u003e\n  \u003cinbound\u003e\n    \u003cfind-and-replace from=\"xyz\" to=\"abc\" /\u003e\n  \u003c/inbound\u003e\n\u003c/policies\u003e\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_api_operation = azure.apimanagement.ApiOperation(\"exampleApiOperation\")\n#...\nexample_api_operation_policy = azure.apimanagement.ApiOperationPolicy(\"exampleApiOperationPolicy\",\n    api_name=example_api_operation.api_name,\n    api_management_name=example_api_operation.api_management_name,\n    resource_group_name=example_api_operation.resource_group_name,\n    operation_id=example_api_operation.operation_id,\n    xml_content=\"\"\"\u003cpolicies\u003e\n  \u003cinbound\u003e\n    \u003cfind-and-replace from=\"xyz\" to=\"abc\" /\u003e\n  \u003c/inbound\u003e\n\u003c/policies\u003e\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleApiOperation = new Azure.ApiManagement.ApiOperation(\"exampleApiOperation\", new Azure.ApiManagement.ApiOperationArgs\n        {\n        });\n        //...\n        var exampleApiOperationPolicy = new Azure.ApiManagement.ApiOperationPolicy(\"exampleApiOperationPolicy\", new Azure.ApiManagement.ApiOperationPolicyArgs\n        {\n            ApiName = exampleApiOperation.ApiName,\n            ApiManagementName = exampleApiOperation.ApiManagementName,\n            ResourceGroupName = exampleApiOperation.ResourceGroupName,\n            OperationId = exampleApiOperation.OperationId,\n            XmlContent = @\"\u003cpolicies\u003e\n  \u003cinbound\u003e\n    \u003cfind-and-replace from=\"\"xyz\"\" to=\"\"abc\"\" /\u003e\n  \u003c/inbound\u003e\n\u003c/policies\u003e\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleApiOperation, err := apimanagement.NewApiOperation(ctx, \"exampleApiOperation\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewApiOperationPolicy(ctx, \"exampleApiOperationPolicy\", \u0026apimanagement.ApiOperationPolicyArgs{\n\t\t\tApiName:           exampleApiOperation.ApiName,\n\t\t\tApiManagementName: exampleApiOperation.ApiManagementName,\n\t\t\tResourceGroupName: exampleApiOperation.ResourceGroupName,\n\t\t\tOperationId:       exampleApiOperation.OperationId,\n\t\t\tXmlContent:        pulumi.String(fmt.Sprintf(\"%v%v%v%v%v\", \"\u003cpolicies\u003e\\n\", \"  \u003cinbound\u003e\\n\", \"    \u003cfind-and-replace from=\\\"xyz\\\" to=\\\"abc\\\" /\u003e\\n\", \"  \u003c/inbound\u003e\\n\", \"\u003c/policies\u003e\\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management API Operation Policy can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/apiOperationPolicy:ApiOperationPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/instance1/apis/api1/operations/operation1/policies/policy\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "apiName": {
          "description": "The ID of the API Management API Operation within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "operationId": {
          "description": "The operation identifier within an API. Must be unique in the current API Management service instance.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "xmlContent": {
          "description": "The XML Content for this Policy.\n",
          "type": "string"
        },
        "xmlLink": {
          "description": "A link to a Policy XML Document, which must be publicly available.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "apiName": {
          "description": "The ID of the API Management API Operation within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "operationId": {
          "description": "The operation identifier within an API. Must be unique in the current API Management service instance.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "xmlContent": {
          "description": "The XML Content for this Policy.\n",
          "type": "string"
        },
        "xmlLink": {
          "description": "A link to a Policy XML Document, which must be publicly available.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "apiName",
        "operationId",
        "resourceGroupName",
        "xmlContent"
      ],
      "requiredInputs": [
        "apiManagementName",
        "apiName",
        "operationId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApiOperationPolicy resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "apiName": {
            "description": "The ID of the API Management API Operation within the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "operationId": {
            "description": "The operation identifier within an API. Must be unique in the current API Management service instance.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "xmlContent": {
            "description": "The XML Content for this Policy.\n",
            "type": "string"
          },
          "xmlLink": {
            "description": "A link to a Policy XML Document, which must be publicly available.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/apiOperationTag:ApiOperationTag": {
      "description": "Manages a API Management API Operation Tag.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleApi = azure.apimanagement.getApi({\n    name: \"search-api\",\n    apiManagementName: \"search-api-management\",\n    resourceGroupName: \"search-service\",\n    revision: \"2\",\n});\nconst exampleApiOperation = new azure.apimanagement.ApiOperation(\"exampleApiOperation\", {\n    operationId: \"user-delete\",\n    apiName: exampleApi.then(exampleApi =\u003e exampleApi.name),\n    apiManagementName: exampleApi.then(exampleApi =\u003e exampleApi.apiManagementName),\n    resourceGroupName: exampleApi.then(exampleApi =\u003e exampleApi.resourceGroupName),\n    displayName: \"Delete User Operation\",\n    method: \"DELETE\",\n    urlTemplate: \"/users/{id}/delete\",\n    description: \"This can only be done by the logged in user.\",\n    responses: [{\n        statusCode: 200,\n    }],\n});\nconst exampleApiOperationTag = new azure.apimanagement.ApiOperationTag(\"exampleApiOperationTag\", {apiOperationId: exampleApiOperation.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_api = azure.apimanagement.get_api(name=\"search-api\",\n    api_management_name=\"search-api-management\",\n    resource_group_name=\"search-service\",\n    revision=\"2\")\nexample_api_operation = azure.apimanagement.ApiOperation(\"exampleApiOperation\",\n    operation_id=\"user-delete\",\n    api_name=example_api.name,\n    api_management_name=example_api.api_management_name,\n    resource_group_name=example_api.resource_group_name,\n    display_name=\"Delete User Operation\",\n    method=\"DELETE\",\n    url_template=\"/users/{id}/delete\",\n    description=\"This can only be done by the logged in user.\",\n    responses=[azure.apimanagement.ApiOperationResponseArgs(\n        status_code=200,\n    )])\nexample_api_operation_tag = azure.apimanagement.ApiOperationTag(\"exampleApiOperationTag\", api_operation_id=example_api_operation.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleApi = Output.Create(Azure.ApiManagement.GetApi.InvokeAsync(new Azure.ApiManagement.GetApiArgs\n        {\n            Name = \"search-api\",\n            ApiManagementName = \"search-api-management\",\n            ResourceGroupName = \"search-service\",\n            Revision = \"2\",\n        }));\n        var exampleApiOperation = new Azure.ApiManagement.ApiOperation(\"exampleApiOperation\", new Azure.ApiManagement.ApiOperationArgs\n        {\n            OperationId = \"user-delete\",\n            ApiName = exampleApi.Apply(exampleApi =\u003e exampleApi.Name),\n            ApiManagementName = exampleApi.Apply(exampleApi =\u003e exampleApi.ApiManagementName),\n            ResourceGroupName = exampleApi.Apply(exampleApi =\u003e exampleApi.ResourceGroupName),\n            DisplayName = \"Delete User Operation\",\n            Method = \"DELETE\",\n            UrlTemplate = \"/users/{id}/delete\",\n            Description = \"This can only be done by the logged in user.\",\n            Responses = \n            {\n                new Azure.ApiManagement.Inputs.ApiOperationResponseArgs\n                {\n                    StatusCode = 200,\n                },\n            },\n        });\n        var exampleApiOperationTag = new Azure.ApiManagement.ApiOperationTag(\"exampleApiOperationTag\", new Azure.ApiManagement.ApiOperationTagArgs\n        {\n            ApiOperationId = exampleApiOperation.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleApi, err := apimanagement.LookupApi(ctx, \u0026apimanagement.LookupApiArgs{\n\t\t\tName:              \"search-api\",\n\t\t\tApiManagementName: \"search-api-management\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t\tRevision:          \"2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleApiOperation, err := apimanagement.NewApiOperation(ctx, \"exampleApiOperation\", \u0026apimanagement.ApiOperationArgs{\n\t\t\tOperationId:       pulumi.String(\"user-delete\"),\n\t\t\tApiName:           pulumi.String(exampleApi.Name),\n\t\t\tApiManagementName: pulumi.String(exampleApi.ApiManagementName),\n\t\t\tResourceGroupName: pulumi.String(exampleApi.ResourceGroupName),\n\t\t\tDisplayName:       pulumi.String(\"Delete User Operation\"),\n\t\t\tMethod:            pulumi.String(\"DELETE\"),\n\t\t\tUrlTemplate:       pulumi.String(\"/users/{id}/delete\"),\n\t\t\tDescription:       pulumi.String(\"This can only be done by the logged in user.\"),\n\t\t\tResponses: apimanagement.ApiOperationResponseArray{\n\t\t\t\t\u0026apimanagement.ApiOperationResponseArgs{\n\t\t\t\t\tStatusCode: pulumi.Int(200),\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 = apimanagement.NewApiOperationTag(ctx, \"exampleApiOperationTag\", \u0026apimanagement.ApiOperationTagArgs{\n\t\t\tApiOperationId: exampleApiOperation.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management API Operation Tags can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/apiOperationTag:ApiOperationTag example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/apis/api1/operations/operation1/tags/tag1\n```\n\n ",
      "inputProperties": {
        "apiOperationId": {
          "description": "The ID of the API Management API Operation. Changing this forces a new API Management API Operation Tag to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the API Management API Operation Tag.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this API Management API Operation Tag. Changing this forces a new API Management API Operation Tag to be created. The name must be unique in the API Management Service.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiOperationId": {
          "description": "The ID of the API Management API Operation. Changing this forces a new API Management API Operation Tag to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the API Management API Operation Tag.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this API Management API Operation Tag. Changing this forces a new API Management API Operation Tag to be created. The name must be unique in the API Management Service.\n",
          "type": "string"
        }
      },
      "required": [
        "apiOperationId",
        "displayName",
        "name"
      ],
      "requiredInputs": [
        "apiOperationId",
        "displayName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApiOperationTag resources.\n",
        "properties": {
          "apiOperationId": {
            "description": "The ID of the API Management API Operation. Changing this forces a new API Management API Operation Tag to be created.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the API Management API Operation Tag.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this API Management API Operation Tag. Changing this forces a new API Management API Operation Tag to be created. The name must be unique in the API Management Service.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/apiPolicy:ApiPolicy": {
      "description": "Manages an API Management API Policy\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleApi = azure.apimanagement.getApi({\n    apiName: \"my-api\",\n    apiManagementName: \"example-apim\",\n    resourceGroupName: \"search-service\",\n});\nconst exampleApiPolicy = new azure.apimanagement.ApiPolicy(\"exampleApiPolicy\", {\n    apiName: exampleApi.then(exampleApi =\u003e exampleApi.name),\n    apiManagementName: exampleApi.then(exampleApi =\u003e exampleApi.apiManagementName),\n    resourceGroupName: exampleApi.then(exampleApi =\u003e exampleApi.resourceGroupName),\n    xmlContent: `\u003cpolicies\u003e\n  \u003cinbound\u003e\n    \u003cfind-and-replace from=\"xyz\" to=\"abc\" /\u003e\n  \u003c/inbound\u003e\n\u003c/policies\u003e\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_api = azure.apimanagement.get_api(api_name=\"my-api\",\n    api_management_name=\"example-apim\",\n    resource_group_name=\"search-service\")\nexample_api_policy = azure.apimanagement.ApiPolicy(\"exampleApiPolicy\",\n    api_name=example_api.name,\n    api_management_name=example_api.api_management_name,\n    resource_group_name=example_api.resource_group_name,\n    xml_content=\"\"\"\u003cpolicies\u003e\n  \u003cinbound\u003e\n    \u003cfind-and-replace from=\"xyz\" to=\"abc\" /\u003e\n  \u003c/inbound\u003e\n\u003c/policies\u003e\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleApi = Output.Create(Azure.ApiManagement.GetApi.InvokeAsync(new Azure.ApiManagement.GetApiArgs\n        {\n            ApiName = \"my-api\",\n            ApiManagementName = \"example-apim\",\n            ResourceGroupName = \"search-service\",\n        }));\n        var exampleApiPolicy = new Azure.ApiManagement.ApiPolicy(\"exampleApiPolicy\", new Azure.ApiManagement.ApiPolicyArgs\n        {\n            ApiName = exampleApi.Apply(exampleApi =\u003e exampleApi.Name),\n            ApiManagementName = exampleApi.Apply(exampleApi =\u003e exampleApi.ApiManagementName),\n            ResourceGroupName = exampleApi.Apply(exampleApi =\u003e exampleApi.ResourceGroupName),\n            XmlContent = @\"\u003cpolicies\u003e\n  \u003cinbound\u003e\n    \u003cfind-and-replace from=\"\"xyz\"\" to=\"\"abc\"\" /\u003e\n  \u003c/inbound\u003e\n\u003c/policies\u003e\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleApi, err := apimanagement.LookupApi(ctx, \u0026apimanagement.LookupApiArgs{\n\t\t\tApiName:           \"my-api\",\n\t\t\tApiManagementName: \"example-apim\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewApiPolicy(ctx, \"exampleApiPolicy\", \u0026apimanagement.ApiPolicyArgs{\n\t\t\tApiName:           pulumi.String(exampleApi.Name),\n\t\t\tApiManagementName: pulumi.String(exampleApi.ApiManagementName),\n\t\t\tResourceGroupName: pulumi.String(exampleApi.ResourceGroupName),\n\t\t\tXmlContent:        pulumi.String(fmt.Sprintf(\"%v%v%v%v%v\", \"\u003cpolicies\u003e\\n\", \"  \u003cinbound\u003e\\n\", \"    \u003cfind-and-replace from=\\\"xyz\\\" to=\\\"abc\\\" /\u003e\\n\", \"  \u003c/inbound\u003e\\n\", \"\u003c/policies\u003e\\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management API Policy can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/apiPolicy:ApiPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/apis/exampleId/policies/policy\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "apiName": {
          "description": "The ID of the API Management API within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "xmlContent": {
          "description": "The XML Content for this Policy as a string.\n",
          "type": "string"
        },
        "xmlLink": {
          "description": "A link to a Policy XML Document, which must be publicly available.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "apiName": {
          "description": "The ID of the API Management API within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "xmlContent": {
          "description": "The XML Content for this Policy as a string.\n",
          "type": "string"
        },
        "xmlLink": {
          "description": "A link to a Policy XML Document, which must be publicly available.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "apiName",
        "resourceGroupName",
        "xmlContent"
      ],
      "requiredInputs": [
        "apiManagementName",
        "apiName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApiPolicy resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "apiName": {
            "description": "The ID of the API Management API within the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "xmlContent": {
            "description": "The XML Content for this Policy as a string.\n",
            "type": "string"
          },
          "xmlLink": {
            "description": "A link to a Policy XML Document, which must be publicly available.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/apiRelease:ApiRelease": {
      "description": "Manages a API Management API Release.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@terraform.io\",\n    skuName: \"Developer_1\",\n});\nconst exampleApi = new azure.apimanagement.Api(\"exampleApi\", {\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    revision: \"1\",\n    displayName: \"Example API\",\n    path: \"example\",\n    protocols: [\"https\"],\n    \"import\": {\n        contentFormat: \"swagger-link-json\",\n        contentValue: \"http://conferenceapi.azurewebsites.net/?format=json\",\n    },\n});\nconst exampleApiRelease = new azure.apimanagement.ApiRelease(\"exampleApiRelease\", {apiId: exampleApi.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@terraform.io\",\n    sku_name=\"Developer_1\")\nexample_api = azure.apimanagement.Api(\"exampleApi\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    revision=\"1\",\n    display_name=\"Example API\",\n    path=\"example\",\n    protocols=[\"https\"],\n    import_=azure.apimanagement.ApiImportArgs(\n        content_format=\"swagger-link-json\",\n        content_value=\"http://conferenceapi.azurewebsites.net/?format=json\",\n    ))\nexample_api_release = azure.apimanagement.ApiRelease(\"exampleApiRelease\", api_id=example_api.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@terraform.io\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleApi = new Azure.ApiManagement.Api(\"exampleApi\", new Azure.ApiManagement.ApiArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            Revision = \"1\",\n            DisplayName = \"Example API\",\n            Path = \"example\",\n            Protocols = \n            {\n                \"https\",\n            },\n            Import = new Azure.ApiManagement.Inputs.ApiImportArgs\n            {\n                ContentFormat = \"swagger-link-json\",\n                ContentValue = \"http://conferenceapi.azurewebsites.net/?format=json\",\n            },\n        });\n        var exampleApiRelease = new Azure.ApiManagement.ApiRelease(\"exampleApiRelease\", new Azure.ApiManagement.ApiReleaseArgs\n        {\n            ApiId = exampleApi.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@terraform.io\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleApi, err := apimanagement.NewApi(ctx, \"exampleApi\", \u0026apimanagement.ApiArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tRevision:          pulumi.String(\"1\"),\n\t\t\tDisplayName:       pulumi.String(\"Example API\"),\n\t\t\tPath:              pulumi.String(\"example\"),\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https\"),\n\t\t\t},\n\t\t\tImport: \u0026apimanagement.ApiImportArgs{\n\t\t\t\tContentFormat: pulumi.String(\"swagger-link-json\"),\n\t\t\t\tContentValue:  pulumi.String(\"http://conferenceapi.azurewebsites.net/?format=json\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewApiRelease(ctx, \"exampleApiRelease\", \u0026apimanagement.ApiReleaseArgs{\n\t\t\tApiId: exampleApi.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management API Releases can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/apiRelease:ApiRelease example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/apis/api1/releases/release1\n```\n\n ",
      "inputProperties": {
        "apiId": {
          "description": "The ID of the API Management API. Changing this forces a new API Management API Release to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this API Management API Release. Changing this forces a new API Management API Release to be created.\n",
          "type": "string"
        },
        "notes": {
          "description": "The Release Notes.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiId": {
          "description": "The ID of the API Management API. Changing this forces a new API Management API Release to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this API Management API Release. Changing this forces a new API Management API Release to be created.\n",
          "type": "string"
        },
        "notes": {
          "description": "The Release Notes.\n",
          "type": "string"
        }
      },
      "required": [
        "apiId",
        "name"
      ],
      "requiredInputs": [
        "apiId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApiRelease resources.\n",
        "properties": {
          "apiId": {
            "description": "The ID of the API Management API. Changing this forces a new API Management API Release to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this API Management API Release. Changing this forces a new API Management API Release to be created.\n",
            "type": "string"
          },
          "notes": {
            "description": "The Release Notes.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/apiSchema:ApiSchema": {
      "description": "Manages an API Schema within an API Management Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * from \"fs\";\n\nconst exampleApi = azure.apimanagement.getApi({\n    name: \"search-api\",\n    apiManagementName: \"search-api-management\",\n    resourceGroupName: \"search-service\",\n    revision: \"2\",\n});\nconst exampleApiSchema = new azure.apimanagement.ApiSchema(\"exampleApiSchema\", {\n    apiName: exampleApi.then(exampleApi =\u003e exampleApi.name),\n    apiManagementName: exampleApi.then(exampleApi =\u003e exampleApi.apiManagementName),\n    resourceGroupName: exampleApi.then(exampleApi =\u003e exampleApi.resourceGroupName),\n    schemaId: \"example-sche,a\",\n    contentType: \"application/vnd.ms-azure-apim.xsd+xml\",\n    value: fs.readFileSync(\"api_management_api_schema.xml\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_api = azure.apimanagement.get_api(name=\"search-api\",\n    api_management_name=\"search-api-management\",\n    resource_group_name=\"search-service\",\n    revision=\"2\")\nexample_api_schema = azure.apimanagement.ApiSchema(\"exampleApiSchema\",\n    api_name=example_api.name,\n    api_management_name=example_api.api_management_name,\n    resource_group_name=example_api.resource_group_name,\n    schema_id=\"example-sche,a\",\n    content_type=\"application/vnd.ms-azure-apim.xsd+xml\",\n    value=(lambda path: open(path).read())(\"api_management_api_schema.xml\"))\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleApi = Output.Create(Azure.ApiManagement.GetApi.InvokeAsync(new Azure.ApiManagement.GetApiArgs\n        {\n            Name = \"search-api\",\n            ApiManagementName = \"search-api-management\",\n            ResourceGroupName = \"search-service\",\n            Revision = \"2\",\n        }));\n        var exampleApiSchema = new Azure.ApiManagement.ApiSchema(\"exampleApiSchema\", new Azure.ApiManagement.ApiSchemaArgs\n        {\n            ApiName = exampleApi.Apply(exampleApi =\u003e exampleApi.Name),\n            ApiManagementName = exampleApi.Apply(exampleApi =\u003e exampleApi.ApiManagementName),\n            ResourceGroupName = exampleApi.Apply(exampleApi =\u003e exampleApi.ResourceGroupName),\n            SchemaId = \"example-sche,a\",\n            ContentType = \"application/vnd.ms-azure-apim.xsd+xml\",\n            Value = File.ReadAllText(\"api_management_api_schema.xml\"),\n        });\n    }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management API Schema's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/apiSchema:ApiSchema example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/schemas/schema1\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where the API exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "apiName": {
          "description": "The name of the API within the API Management Service where this API Schema should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "contentType": {
          "description": "The content type of the API Schema.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "schemaId": {
          "description": "A unique identifier for this API Schema. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "The JSON escaped string defining the document representing the Schema.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where the API exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "apiName": {
          "description": "The name of the API within the API Management Service where this API Schema should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "contentType": {
          "description": "The content type of the API Schema.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "schemaId": {
          "description": "A unique identifier for this API Schema. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "The JSON escaped string defining the document representing the Schema.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "apiName",
        "contentType",
        "resourceGroupName",
        "schemaId",
        "value"
      ],
      "requiredInputs": [
        "apiManagementName",
        "apiName",
        "contentType",
        "resourceGroupName",
        "schemaId",
        "value"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApiSchema resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The Name of the API Management Service where the API exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "apiName": {
            "description": "The name of the API within the API Management Service where this API Schema should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "contentType": {
            "description": "The content type of the API Schema.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "schemaId": {
            "description": "A unique identifier for this API Schema. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "value": {
            "description": "The JSON escaped string defining the document representing the Schema.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/apiVersionSet:ApiVersionSet": {
      "description": "Manages an API Version Set within an API Management Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"pub1\",\n    publisherEmail: \"pub1@email.com\",\n    skuName: \"Developer_1\",\n});\nconst exampleApiVersionSet = new azure.apimanagement.ApiVersionSet(\"exampleApiVersionSet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    displayName: \"ExampleAPIVersionSet\",\n    versioningScheme: \"Segment\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"pub1\",\n    publisher_email=\"pub1@email.com\",\n    sku_name=\"Developer_1\")\nexample_api_version_set = azure.apimanagement.ApiVersionSet(\"exampleApiVersionSet\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    display_name=\"ExampleAPIVersionSet\",\n    versioning_scheme=\"Segment\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"pub1\",\n            PublisherEmail = \"pub1@email.com\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleApiVersionSet = new Azure.ApiManagement.ApiVersionSet(\"exampleApiVersionSet\", new Azure.ApiManagement.ApiVersionSetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            DisplayName = \"ExampleAPIVersionSet\",\n            VersioningScheme = \"Segment\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"pub1\"),\n\t\t\tPublisherEmail:    pulumi.String(\"pub1@email.com\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewApiVersionSet(ctx, \"exampleApiVersionSet\", \u0026apimanagement.ApiVersionSetArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tDisplayName:       pulumi.String(\"ExampleAPIVersionSet\"),\n\t\t\tVersioningScheme:  pulumi.String(\"Segment\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Version Set can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/apiVersionSet:ApiVersionSet example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/apiVersionSets/set1\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which the API Version Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of API Version Set.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of this API Version Set.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the API Version Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the parent API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "versionHeaderName": {
          "description": "The name of the Header which should be read from Inbound Requests which defines the API Version.\n",
          "type": "string"
        },
        "versionQueryName": {
          "description": "The name of the Query String which should be read from Inbound Requests which defines the API Version.\n",
          "type": "string"
        },
        "versioningScheme": {
          "description": "Specifies where in an Inbound HTTP Request that the API Version should be read from. Possible values are `Header`, `Query` and `Segment`.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which the API Version Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of API Version Set.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of this API Version Set.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the API Version Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the parent API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "versionHeaderName": {
          "description": "The name of the Header which should be read from Inbound Requests which defines the API Version.\n",
          "type": "string"
        },
        "versionQueryName": {
          "description": "The name of the Query String which should be read from Inbound Requests which defines the API Version.\n",
          "type": "string"
        },
        "versioningScheme": {
          "description": "Specifies where in an Inbound HTTP Request that the API Version should be read from. Possible values are `Header`, `Query` and `Segment`.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "displayName",
        "name",
        "resourceGroupName",
        "versioningScheme"
      ],
      "requiredInputs": [
        "apiManagementName",
        "displayName",
        "resourceGroupName",
        "versioningScheme"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApiVersionSet resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service in which the API Version Set should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of API Version Set.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of this API Version Set.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the API Version Set. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the parent API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "versionHeaderName": {
            "description": "The name of the Header which should be read from Inbound Requests which defines the API Version.\n",
            "type": "string"
          },
          "versionQueryName": {
            "description": "The name of the Query String which should be read from Inbound Requests which defines the API Version.\n",
            "type": "string"
          },
          "versioningScheme": {
            "description": "Specifies where in an Inbound HTTP Request that the API Version should be read from. Possible values are `Header`, `Query` and `Segment`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/authorizationServer:AuthorizationServer": {
      "description": "Manages an Authorization Server within an API Management Service.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleApi = azure.apimanagement.getApi({\n    name: \"search-api\",\n    apiManagementName: \"search-api-management\",\n    resourceGroupName: \"search-service\",\n    revision: \"2\",\n});\nconst exampleAuthorizationServer = new azure.apimanagement.AuthorizationServer(\"exampleAuthorizationServer\", {\n    apiManagementName: data.azurerm_api_management.example.name,\n    resourceGroupName: data.azurerm_api_management.example.resource_group_name,\n    displayName: \"Test Server\",\n    authorizationEndpoint: \"https://example.mydomain.com/client/authorize\",\n    clientId: \"42424242-4242-4242-4242-424242424242\",\n    clientRegistrationEndpoint: \"https://example.mydomain.com/client/register\",\n    grantTypes: [\"authorizationCode\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_api = azure.apimanagement.get_api(name=\"search-api\",\n    api_management_name=\"search-api-management\",\n    resource_group_name=\"search-service\",\n    revision=\"2\")\nexample_authorization_server = azure.apimanagement.AuthorizationServer(\"exampleAuthorizationServer\",\n    api_management_name=data[\"azurerm_api_management\"][\"example\"][\"name\"],\n    resource_group_name=data[\"azurerm_api_management\"][\"example\"][\"resource_group_name\"],\n    display_name=\"Test Server\",\n    authorization_endpoint=\"https://example.mydomain.com/client/authorize\",\n    client_id=\"42424242-4242-4242-4242-424242424242\",\n    client_registration_endpoint=\"https://example.mydomain.com/client/register\",\n    grant_types=[\"authorizationCode\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleApi = Output.Create(Azure.ApiManagement.GetApi.InvokeAsync(new Azure.ApiManagement.GetApiArgs\n        {\n            Name = \"search-api\",\n            ApiManagementName = \"search-api-management\",\n            ResourceGroupName = \"search-service\",\n            Revision = \"2\",\n        }));\n        var exampleAuthorizationServer = new Azure.ApiManagement.AuthorizationServer(\"exampleAuthorizationServer\", new Azure.ApiManagement.AuthorizationServerArgs\n        {\n            ApiManagementName = data.Azurerm_api_management.Example.Name,\n            ResourceGroupName = data.Azurerm_api_management.Example.Resource_group_name,\n            DisplayName = \"Test Server\",\n            AuthorizationEndpoint = \"https://example.mydomain.com/client/authorize\",\n            ClientId = \"42424242-4242-4242-4242-424242424242\",\n            ClientRegistrationEndpoint = \"https://example.mydomain.com/client/register\",\n            GrantTypes = \n            {\n                \"authorizationCode\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\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 := apimanagement.LookupApi(ctx, \u0026apimanagement.LookupApiArgs{\n\t\t\tName:              \"search-api\",\n\t\t\tApiManagementName: \"search-api-management\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t\tRevision:          \"2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewAuthorizationServer(ctx, \"exampleAuthorizationServer\", \u0026apimanagement.AuthorizationServerArgs{\n\t\t\tApiManagementName:          pulumi.Any(data.Azurerm_api_management.Example.Name),\n\t\t\tResourceGroupName:          pulumi.Any(data.Azurerm_api_management.Example.Resource_group_name),\n\t\t\tDisplayName:                pulumi.String(\"Test Server\"),\n\t\t\tAuthorizationEndpoint:      pulumi.String(\"https://example.mydomain.com/client/authorize\"),\n\t\t\tClientId:                   pulumi.String(\"42424242-4242-4242-4242-424242424242\"),\n\t\t\tClientRegistrationEndpoint: pulumi.String(\"https://example.mydomain.com/client/register\"),\n\t\t\tGrantTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"authorizationCode\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Authorization Servers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/authorizationServer:AuthorizationServer example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/authorizationServers/server1\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which this Authorization Server should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "authorizationEndpoint": {
          "description": "The OAUTH Authorization Endpoint.\n",
          "type": "string"
        },
        "authorizationMethods": {
          "description": "The HTTP Verbs supported by the Authorization Endpoint. Possible values are `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT` and `TRACE`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "bearerTokenSendingMethods": {
          "description": "The mechanism by which Access Tokens are passed to the API. Possible values are `authorizationHeader` and `query`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "clientAuthenticationMethods": {
          "description": "The Authentication Methods supported by the Token endpoint of this Authorization Server.. Possible values are `Basic` and `Body`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "clientId": {
          "description": "The Client/App ID registered with this Authorization Server.\n",
          "type": "string"
        },
        "clientRegistrationEndpoint": {
          "description": "The URI of page where Client/App Registration is performed for this Authorization Server.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "The Client/App Secret registered with this Authorization Server.\n",
          "type": "string"
        },
        "defaultScope": {
          "description": "The Default Scope used when requesting an Access Token, specified as a string containing space-delimited values.\n",
          "type": "string"
        },
        "description": {
          "description": "A description of the Authorization Server, which may contain HTML formatting tags.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The user-friendly name of this Authorization Server.\n",
          "type": "string"
        },
        "grantTypes": {
          "description": "Form of Authorization Grants required when requesting an Access Token. Possible values are `authorizationCode`, `clientCredentials`, `implicit` and `resourceOwnerPassword`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of this Authorization Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceOwnerPassword": {
          "description": "The password associated with the Resource Owner.\n",
          "type": "string"
        },
        "resourceOwnerUsername": {
          "description": "The username associated with the Resource Owner.\n",
          "type": "string"
        },
        "supportState": {
          "description": "Does this Authorization Server support State? If this is set to `true` the client may use the state parameter to raise protocol security.\n",
          "type": "boolean"
        },
        "tokenBodyParameters": {
          "description": "A `token_body_parameter` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/AuthorizationServerTokenBodyParameter:AuthorizationServerTokenBodyParameter"
          },
          "type": "array"
        },
        "tokenEndpoint": {
          "description": "The OAUTH Token Endpoint.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which this Authorization Server should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "authorizationEndpoint": {
          "description": "The OAUTH Authorization Endpoint.\n",
          "type": "string"
        },
        "authorizationMethods": {
          "description": "The HTTP Verbs supported by the Authorization Endpoint. Possible values are `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT` and `TRACE`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "bearerTokenSendingMethods": {
          "description": "The mechanism by which Access Tokens are passed to the API. Possible values are `authorizationHeader` and `query`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "clientAuthenticationMethods": {
          "description": "The Authentication Methods supported by the Token endpoint of this Authorization Server.. Possible values are `Basic` and `Body`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "clientId": {
          "description": "The Client/App ID registered with this Authorization Server.\n",
          "type": "string"
        },
        "clientRegistrationEndpoint": {
          "description": "The URI of page where Client/App Registration is performed for this Authorization Server.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "The Client/App Secret registered with this Authorization Server.\n",
          "type": "string"
        },
        "defaultScope": {
          "description": "The Default Scope used when requesting an Access Token, specified as a string containing space-delimited values.\n",
          "type": "string"
        },
        "description": {
          "description": "A description of the Authorization Server, which may contain HTML formatting tags.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The user-friendly name of this Authorization Server.\n",
          "type": "string"
        },
        "grantTypes": {
          "description": "Form of Authorization Grants required when requesting an Access Token. Possible values are `authorizationCode`, `clientCredentials`, `implicit` and `resourceOwnerPassword`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of this Authorization Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceOwnerPassword": {
          "description": "The password associated with the Resource Owner.\n",
          "type": "string"
        },
        "resourceOwnerUsername": {
          "description": "The username associated with the Resource Owner.\n",
          "type": "string"
        },
        "supportState": {
          "description": "Does this Authorization Server support State? If this is set to `true` the client may use the state parameter to raise protocol security.\n",
          "type": "boolean"
        },
        "tokenBodyParameters": {
          "description": "A `token_body_parameter` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/AuthorizationServerTokenBodyParameter:AuthorizationServerTokenBodyParameter"
          },
          "type": "array"
        },
        "tokenEndpoint": {
          "description": "The OAUTH Token Endpoint.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "authorizationEndpoint",
        "authorizationMethods",
        "clientId",
        "clientRegistrationEndpoint",
        "displayName",
        "grantTypes",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "apiManagementName",
        "authorizationEndpoint",
        "authorizationMethods",
        "clientId",
        "clientRegistrationEndpoint",
        "displayName",
        "grantTypes",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AuthorizationServer resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service in which this Authorization Server should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "authorizationEndpoint": {
            "description": "The OAUTH Authorization Endpoint.\n",
            "type": "string"
          },
          "authorizationMethods": {
            "description": "The HTTP Verbs supported by the Authorization Endpoint. Possible values are `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT` and `TRACE`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "bearerTokenSendingMethods": {
            "description": "The mechanism by which Access Tokens are passed to the API. Possible values are `authorizationHeader` and `query`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "clientAuthenticationMethods": {
            "description": "The Authentication Methods supported by the Token endpoint of this Authorization Server.. Possible values are `Basic` and `Body`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "clientId": {
            "description": "The Client/App ID registered with this Authorization Server.\n",
            "type": "string"
          },
          "clientRegistrationEndpoint": {
            "description": "The URI of page where Client/App Registration is performed for this Authorization Server.\n",
            "type": "string"
          },
          "clientSecret": {
            "description": "The Client/App Secret registered with this Authorization Server.\n",
            "type": "string"
          },
          "defaultScope": {
            "description": "The Default Scope used when requesting an Access Token, specified as a string containing space-delimited values.\n",
            "type": "string"
          },
          "description": {
            "description": "A description of the Authorization Server, which may contain HTML formatting tags.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The user-friendly name of this Authorization Server.\n",
            "type": "string"
          },
          "grantTypes": {
            "description": "Form of Authorization Grants required when requesting an Access Token. Possible values are `authorizationCode`, `clientCredentials`, `implicit` and `resourceOwnerPassword`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of this Authorization Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceOwnerPassword": {
            "description": "The password associated with the Resource Owner.\n",
            "type": "string"
          },
          "resourceOwnerUsername": {
            "description": "The username associated with the Resource Owner.\n",
            "type": "string"
          },
          "supportState": {
            "description": "Does this Authorization Server support State? If this is set to `true` the client may use the state parameter to raise protocol security.\n",
            "type": "boolean"
          },
          "tokenBodyParameters": {
            "description": "A `token_body_parameter` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/AuthorizationServerTokenBodyParameter:AuthorizationServerTokenBodyParameter"
            },
            "type": "array"
          },
          "tokenEndpoint": {
            "description": "The OAUTH Token Endpoint.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/backend:Backend": {
      "description": "Manages a backend within an API Management Service.\n\n\n## Import\n\nAPI Management backends can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/backend:Backend example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/backends/backend1\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where this backend should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "credentials": {
          "$ref": "#/types/azure:apimanagement/BackendCredentials:BackendCredentials",
          "description": "A `credentials` block as documented below.\n"
        },
        "description": {
          "description": "The description of the backend.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the API Management backend. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "protocol": {
          "description": "The protocol used by the backend host. Possible values are `http` or `soap`.\n",
          "type": "string"
        },
        "proxy": {
          "$ref": "#/types/azure:apimanagement/BackendProxy:BackendProxy",
          "description": "A `proxy` block as documented below.\n"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceId": {
          "description": "The management URI of the backend host in an external system. This URI can be the ARM Resource ID of Logic Apps, Function Apps or API Apps, or the management endpoint of a Service Fabric cluster.\n",
          "type": "string"
        },
        "serviceFabricCluster": {
          "$ref": "#/types/azure:apimanagement/BackendServiceFabricCluster:BackendServiceFabricCluster",
          "description": "A `service_fabric_cluster` block as documented below.\n"
        },
        "title": {
          "description": "The title of the backend.\n",
          "type": "string"
        },
        "tls": {
          "$ref": "#/types/azure:apimanagement/BackendTls:BackendTls",
          "description": "A `tls` block as documented below.\n"
        },
        "url": {
          "description": "The URL of the backend host.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where this backend should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "credentials": {
          "$ref": "#/types/azure:apimanagement/BackendCredentials:BackendCredentials",
          "description": "A `credentials` block as documented below.\n"
        },
        "description": {
          "description": "The description of the backend.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the API Management backend. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "protocol": {
          "description": "The protocol used by the backend host. Possible values are `http` or `soap`.\n",
          "type": "string"
        },
        "proxy": {
          "$ref": "#/types/azure:apimanagement/BackendProxy:BackendProxy",
          "description": "A `proxy` block as documented below.\n"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceId": {
          "description": "The management URI of the backend host in an external system. This URI can be the ARM Resource ID of Logic Apps, Function Apps or API Apps, or the management endpoint of a Service Fabric cluster.\n",
          "type": "string"
        },
        "serviceFabricCluster": {
          "$ref": "#/types/azure:apimanagement/BackendServiceFabricCluster:BackendServiceFabricCluster",
          "description": "A `service_fabric_cluster` block as documented below.\n"
        },
        "title": {
          "description": "The title of the backend.\n",
          "type": "string"
        },
        "tls": {
          "$ref": "#/types/azure:apimanagement/BackendTls:BackendTls",
          "description": "A `tls` block as documented below.\n"
        },
        "url": {
          "description": "The URL of the backend host.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "name",
        "protocol",
        "resourceGroupName",
        "url"
      ],
      "requiredInputs": [
        "apiManagementName",
        "protocol",
        "resourceGroupName",
        "url"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Backend resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The Name of the API Management Service where this backend should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "credentials": {
            "$ref": "#/types/azure:apimanagement/BackendCredentials:BackendCredentials",
            "description": "A `credentials` block as documented below.\n"
          },
          "description": {
            "description": "The description of the backend.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the API Management backend. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "protocol": {
            "description": "The protocol used by the backend host. Possible values are `http` or `soap`.\n",
            "type": "string"
          },
          "proxy": {
            "$ref": "#/types/azure:apimanagement/BackendProxy:BackendProxy",
            "description": "A `proxy` block as documented below.\n"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceId": {
            "description": "The management URI of the backend host in an external system. This URI can be the ARM Resource ID of Logic Apps, Function Apps or API Apps, or the management endpoint of a Service Fabric cluster.\n",
            "type": "string"
          },
          "serviceFabricCluster": {
            "$ref": "#/types/azure:apimanagement/BackendServiceFabricCluster:BackendServiceFabricCluster",
            "description": "A `service_fabric_cluster` block as documented below.\n"
          },
          "title": {
            "description": "The title of the backend.\n",
            "type": "string"
          },
          "tls": {
            "$ref": "#/types/azure:apimanagement/BackendTls:BackendTls",
            "description": "A `tls` block as documented below.\n"
          },
          "url": {
            "description": "The URL of the backend host.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/certificate:Certificate": {
      "description": "Manages an Certificate within an API Management Service.\n\n{{% examples %}}\n## Example Usage\n{{% /examples %}}\n\n## Import\n\nAPI Management Certificates can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/certificate:Certificate example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/certificates/certificate1\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where this Service should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "data": {
          "description": "The base-64 encoded certificate data, which must be a PFX file. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "keyVaultIdentityClientId": {
          "description": "The Client ID of the User Assigned Managed Identity to use for retrieving certificate.\n",
          "type": "string"
        },
        "keyVaultSecretId": {
          "description": "The ID of the Key Vault Secret containing the SSL Certificate, which must be of the type `application/x-pkcs12`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the API Management Certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "password": {
          "description": "The password used for this certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where this Service should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "data": {
          "description": "The base-64 encoded certificate data, which must be a PFX file. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "expiration": {
          "description": "The Expiration Date of this Certificate, formatted as an RFC3339 string.\n",
          "type": "string"
        },
        "keyVaultIdentityClientId": {
          "description": "The Client ID of the User Assigned Managed Identity to use for retrieving certificate.\n",
          "type": "string"
        },
        "keyVaultSecretId": {
          "description": "The ID of the Key Vault Secret containing the SSL Certificate, which must be of the type `application/x-pkcs12`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the API Management Certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "password": {
          "description": "The password used for this certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subject": {
          "description": "The Subject of this Certificate.\n",
          "type": "string"
        },
        "thumbprint": {
          "description": "The Thumbprint of this Certificate.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "expiration",
        "name",
        "resourceGroupName",
        "subject",
        "thumbprint"
      ],
      "requiredInputs": [
        "apiManagementName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Certificate resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The Name of the API Management Service where this Service should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "data": {
            "description": "The base-64 encoded certificate data, which must be a PFX file. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "expiration": {
            "description": "The Expiration Date of this Certificate, formatted as an RFC3339 string.\n",
            "type": "string"
          },
          "keyVaultIdentityClientId": {
            "description": "The Client ID of the User Assigned Managed Identity to use for retrieving certificate.\n",
            "type": "string"
          },
          "keyVaultSecretId": {
            "description": "The ID of the Key Vault Secret containing the SSL Certificate, which must be of the type `application/x-pkcs12`.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the API Management Certificate. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "password": {
            "description": "The password used for this certificate. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subject": {
            "description": "The Subject of this Certificate.\n",
            "type": "string"
          },
          "thumbprint": {
            "description": "The Thumbprint of this Certificate.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/customDomain:CustomDomain": {
      "description": "Manages a API Management Custom Domain.\n\n## Disclaimers\n\n\u003e **Note:** It's possible to define Custom Domains both within the `azure.apimanagement.Service` resource via the `hostname_configurations` block and by using this resource. However it's not possible to use both methods to manage Custom Domains within an API Management Service, since there will be conflicts.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: azurerm_resource_group.test.location,\n    resourceGroupName: azurerm_resource_group.test.name,\n    publisherName: \"pub1\",\n    publisherEmail: \"pub1@email.com\",\n    skuName: \"Developer_1\",\n});\nconst exampleCertificate = new azure.keyvault.Certificate(\"exampleCertificate\", {\n    keyVaultId: azurerm_key_vault.test.id,\n    certificatePolicy: {\n        issuerParameters: {\n            name: \"Self\",\n        },\n        keyProperties: {\n            exportable: true,\n            keySize: 2048,\n            keyType: \"RSA\",\n            reuseKey: true,\n        },\n        lifetimeActions: [{\n            action: {\n                actionType: \"AutoRenew\",\n            },\n            trigger: {\n                daysBeforeExpiry: 30,\n            },\n        }],\n        secretProperties: {\n            contentType: \"application/x-pkcs12\",\n        },\n        x509CertificateProperties: {\n            keyUsages: [\n                \"cRLSign\",\n                \"dataEncipherment\",\n                \"digitalSignature\",\n                \"keyAgreement\",\n                \"keyCertSign\",\n                \"keyEncipherment\",\n            ],\n            subject: \"CN=api.example.com\",\n            validityInMonths: 12,\n            subjectAlternativeNames: {\n                dnsNames: [\n                    \"api.example.com\",\n                    \"portal.example.com\",\n                ],\n            },\n        },\n    },\n});\nconst exampleCustomDomain = new azure.apimanagement.CustomDomain(\"exampleCustomDomain\", {\n    apiManagementId: exampleService.id,\n    proxies: [{\n        hostName: \"api.example.com\",\n        keyVaultId: azurerm_key_vault_certificate.test.secret_id,\n    }],\n    developerPortals: [{\n        hostName: \"portal.example.com\",\n        keyVaultId: azurerm_key_vault_certificate.test.secret_id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=azurerm_resource_group[\"test\"][\"location\"],\n    resource_group_name=azurerm_resource_group[\"test\"][\"name\"],\n    publisher_name=\"pub1\",\n    publisher_email=\"pub1@email.com\",\n    sku_name=\"Developer_1\")\nexample_certificate = azure.keyvault.Certificate(\"exampleCertificate\",\n    key_vault_id=azurerm_key_vault[\"test\"][\"id\"],\n    certificate_policy=azure.keyvault.CertificateCertificatePolicyArgs(\n        issuer_parameters=azure.keyvault.CertificateCertificatePolicyIssuerParametersArgs(\n            name=\"Self\",\n        ),\n        key_properties={\n            \"exportable\": True,\n            \"key_size\": 2048,\n            \"key_type\": \"RSA\",\n            \"reuseKey\": True,\n        },\n        lifetime_actions=[azure.keyvault.CertificateCertificatePolicyLifetimeActionArgs(\n            action=azure.keyvault.CertificateCertificatePolicyLifetimeActionActionArgs(\n                action_type=\"AutoRenew\",\n            ),\n            trigger=azure.keyvault.CertificateCertificatePolicyLifetimeActionTriggerArgs(\n                days_before_expiry=30,\n            ),\n        )],\n        secret_properties=azure.keyvault.CertificateCertificatePolicySecretPropertiesArgs(\n            content_type=\"application/x-pkcs12\",\n        ),\n        x509_certificate_properties=azure.keyvault.CertificateCertificatePolicyX509CertificatePropertiesArgs(\n            key_usages=[\n                \"cRLSign\",\n                \"dataEncipherment\",\n                \"digitalSignature\",\n                \"keyAgreement\",\n                \"keyCertSign\",\n                \"keyEncipherment\",\n            ],\n            subject=\"CN=api.example.com\",\n            validity_in_months=12,\n            subject_alternative_names=azure.keyvault.CertificateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNamesArgs(\n                dns_names=[\n                    \"api.example.com\",\n                    \"portal.example.com\",\n                ],\n            ),\n        ),\n    ))\nexample_custom_domain = azure.apimanagement.CustomDomain(\"exampleCustomDomain\",\n    api_management_id=example_service.id,\n    proxies=[azure.apimanagement.CustomDomainProxyArgs(\n        host_name=\"api.example.com\",\n        key_vault_id=azurerm_key_vault_certificate[\"test\"][\"secret_id\"],\n    )],\n    developer_portals=[azure.apimanagement.CustomDomainDeveloperPortalArgs(\n        host_name=\"portal.example.com\",\n        key_vault_id=azurerm_key_vault_certificate[\"test\"][\"secret_id\"],\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = azurerm_resource_group.Test.Location,\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n            PublisherName = \"pub1\",\n            PublisherEmail = \"pub1@email.com\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleCertificate = new Azure.KeyVault.Certificate(\"exampleCertificate\", new Azure.KeyVault.CertificateArgs\n        {\n            KeyVaultId = azurerm_key_vault.Test.Id,\n            CertificatePolicy = new Azure.KeyVault.Inputs.CertificateCertificatePolicyArgs\n            {\n                IssuerParameters = new Azure.KeyVault.Inputs.CertificateCertificatePolicyIssuerParametersArgs\n                {\n                    Name = \"Self\",\n                },\n                KeyProperties = new Azure.KeyVault.Inputs.CertificateCertificatePolicyKeyPropertiesArgs\n                {\n                    Exportable = true,\n                    KeySize = 2048,\n                    KeyType = \"RSA\",\n                    ReuseKey = true,\n                },\n                LifetimeActions = \n                {\n                    new Azure.KeyVault.Inputs.CertificateCertificatePolicyLifetimeActionArgs\n                    {\n                        Action = new Azure.KeyVault.Inputs.CertificateCertificatePolicyLifetimeActionActionArgs\n                        {\n                            ActionType = \"AutoRenew\",\n                        },\n                        Trigger = new Azure.KeyVault.Inputs.CertificateCertificatePolicyLifetimeActionTriggerArgs\n                        {\n                            DaysBeforeExpiry = 30,\n                        },\n                    },\n                },\n                SecretProperties = new Azure.KeyVault.Inputs.CertificateCertificatePolicySecretPropertiesArgs\n                {\n                    ContentType = \"application/x-pkcs12\",\n                },\n                X509CertificateProperties = new Azure.KeyVault.Inputs.CertificateCertificatePolicyX509CertificatePropertiesArgs\n                {\n                    KeyUsages = \n                    {\n                        \"cRLSign\",\n                        \"dataEncipherment\",\n                        \"digitalSignature\",\n                        \"keyAgreement\",\n                        \"keyCertSign\",\n                        \"keyEncipherment\",\n                    },\n                    Subject = \"CN=api.example.com\",\n                    ValidityInMonths = 12,\n                    SubjectAlternativeNames = new Azure.KeyVault.Inputs.CertificateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNamesArgs\n                    {\n                        DnsNames = \n                        {\n                            \"api.example.com\",\n                            \"portal.example.com\",\n                        },\n                    },\n                },\n            },\n        });\n        var exampleCustomDomain = new Azure.ApiManagement.CustomDomain(\"exampleCustomDomain\", new Azure.ApiManagement.CustomDomainArgs\n        {\n            ApiManagementId = exampleService.Id,\n            Proxies = \n            {\n                new Azure.ApiManagement.Inputs.CustomDomainProxyArgs\n                {\n                    HostName = \"api.example.com\",\n                    KeyVaultId = azurerm_key_vault_certificate.Test.Secret_id,\n                },\n            },\n            DeveloperPortals = \n            {\n                new Azure.ApiManagement.Inputs.CustomDomainDeveloperPortalArgs\n                {\n                    HostName = \"portal.example.com\",\n                    KeyVaultId = azurerm_key_vault_certificate.Test.Secret_id,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\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 := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          pulumi.Any(azurerm_resource_group.Test.Location),\n\t\t\tResourceGroupName: pulumi.Any(azurerm_resource_group.Test.Name),\n\t\t\tPublisherName:     pulumi.String(\"pub1\"),\n\t\t\tPublisherEmail:    pulumi.String(\"pub1@email.com\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = keyvault.NewCertificate(ctx, \"exampleCertificate\", \u0026keyvault.CertificateArgs{\n\t\t\tKeyVaultId: pulumi.Any(azurerm_key_vault.Test.Id),\n\t\t\tCertificatePolicy: \u0026keyvault.CertificateCertificatePolicyArgs{\n\t\t\t\tIssuerParameters: \u0026keyvault.CertificateCertificatePolicyIssuerParametersArgs{\n\t\t\t\t\tName: pulumi.String(\"Self\"),\n\t\t\t\t},\n\t\t\t\tKeyProperties: \u0026keyvault.CertificateCertificatePolicyKeyPropertiesArgs{\n\t\t\t\t\tExportable: pulumi.Bool(true),\n\t\t\t\t\tKeySize:    pulumi.Int(2048),\n\t\t\t\t\tKeyType:    pulumi.String(\"RSA\"),\n\t\t\t\t\tReuseKey:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tLifetimeActions: keyvault.CertificateCertificatePolicyLifetimeActionArray{\n\t\t\t\t\t\u0026keyvault.CertificateCertificatePolicyLifetimeActionArgs{\n\t\t\t\t\t\tAction: \u0026keyvault.CertificateCertificatePolicyLifetimeActionActionArgs{\n\t\t\t\t\t\t\tActionType: pulumi.String(\"AutoRenew\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTrigger: \u0026keyvault.CertificateCertificatePolicyLifetimeActionTriggerArgs{\n\t\t\t\t\t\t\tDaysBeforeExpiry: pulumi.Int(30),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSecretProperties: \u0026keyvault.CertificateCertificatePolicySecretPropertiesArgs{\n\t\t\t\t\tContentType: pulumi.String(\"application/x-pkcs12\"),\n\t\t\t\t},\n\t\t\t\tX509CertificateProperties: \u0026keyvault.CertificateCertificatePolicyX509CertificatePropertiesArgs{\n\t\t\t\t\tKeyUsages: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"cRLSign\"),\n\t\t\t\t\t\tpulumi.String(\"dataEncipherment\"),\n\t\t\t\t\t\tpulumi.String(\"digitalSignature\"),\n\t\t\t\t\t\tpulumi.String(\"keyAgreement\"),\n\t\t\t\t\t\tpulumi.String(\"keyCertSign\"),\n\t\t\t\t\t\tpulumi.String(\"keyEncipherment\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubject:          pulumi.String(\"CN=api.example.com\"),\n\t\t\t\t\tValidityInMonths: pulumi.Int(12),\n\t\t\t\t\tSubjectAlternativeNames: \u0026keyvault.CertificateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNamesArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"api.example.com\"),\n\t\t\t\t\t\t\tpulumi.String(\"portal.example.com\"),\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 = apimanagement.NewCustomDomain(ctx, \"exampleCustomDomain\", \u0026apimanagement.CustomDomainArgs{\n\t\t\tApiManagementId: exampleService.ID(),\n\t\t\tProxies: apimanagement.CustomDomainProxyArray{\n\t\t\t\t\u0026apimanagement.CustomDomainProxyArgs{\n\t\t\t\t\tHostName:   pulumi.String(\"api.example.com\"),\n\t\t\t\t\tKeyVaultId: pulumi.Any(azurerm_key_vault_certificate.Test.Secret_id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeveloperPortals: apimanagement.CustomDomainDeveloperPortalArray{\n\t\t\t\t\u0026apimanagement.CustomDomainDeveloperPortalArgs{\n\t\t\t\t\tHostName:   pulumi.String(\"portal.example.com\"),\n\t\t\t\t\tKeyVaultId: pulumi.Any(azurerm_key_vault_certificate.Test.Secret_id),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Custom Domains can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/customDomain:CustomDomain example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/customDomains/default\n```\n\n ",
      "inputProperties": {
        "apiManagementId": {
          "description": "The ID of the API Management service for which to configure Custom Domains. Changing this forces a new API Management Custom Domain resource to be created.\n",
          "type": "string"
        },
        "developerPortals": {
          "description": "One or more `developer_portal` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/CustomDomainDeveloperPortal:CustomDomainDeveloperPortal"
          },
          "type": "array"
        },
        "managements": {
          "description": "One or more `management` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/CustomDomainManagement:CustomDomainManagement"
          },
          "type": "array"
        },
        "portals": {
          "description": "One or more `portal` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/CustomDomainPortal:CustomDomainPortal"
          },
          "type": "array"
        },
        "proxies": {
          "description": "One or more `proxy` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/CustomDomainProxy:CustomDomainProxy"
          },
          "type": "array"
        },
        "scms": {
          "description": "One or more `scm` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/CustomDomainScm:CustomDomainScm"
          },
          "type": "array"
        }
      },
      "properties": {
        "apiManagementId": {
          "description": "The ID of the API Management service for which to configure Custom Domains. Changing this forces a new API Management Custom Domain resource to be created.\n",
          "type": "string"
        },
        "developerPortals": {
          "description": "One or more `developer_portal` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/CustomDomainDeveloperPortal:CustomDomainDeveloperPortal"
          },
          "type": "array"
        },
        "managements": {
          "description": "One or more `management` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/CustomDomainManagement:CustomDomainManagement"
          },
          "type": "array"
        },
        "portals": {
          "description": "One or more `portal` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/CustomDomainPortal:CustomDomainPortal"
          },
          "type": "array"
        },
        "proxies": {
          "description": "One or more `proxy` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/CustomDomainProxy:CustomDomainProxy"
          },
          "type": "array"
        },
        "scms": {
          "description": "One or more `scm` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/CustomDomainScm:CustomDomainScm"
          },
          "type": "array"
        }
      },
      "required": [
        "apiManagementId"
      ],
      "requiredInputs": [
        "apiManagementId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CustomDomain resources.\n",
        "properties": {
          "apiManagementId": {
            "description": "The ID of the API Management service for which to configure Custom Domains. Changing this forces a new API Management Custom Domain resource to be created.\n",
            "type": "string"
          },
          "developerPortals": {
            "description": "One or more `developer_portal` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/CustomDomainDeveloperPortal:CustomDomainDeveloperPortal"
            },
            "type": "array"
          },
          "managements": {
            "description": "One or more `management` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/CustomDomainManagement:CustomDomainManagement"
            },
            "type": "array"
          },
          "portals": {
            "description": "One or more `portal` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/CustomDomainPortal:CustomDomainPortal"
            },
            "type": "array"
          },
          "proxies": {
            "description": "One or more `proxy` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/CustomDomainProxy:CustomDomainProxy"
            },
            "type": "array"
          },
          "scms": {
            "description": "One or more `scm` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/CustomDomainScm:CustomDomainScm"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/diagnostic:Diagnostic": {
      "description": "Manages an API Management Service Diagnostic.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"web\",\n});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@mycompany.io\",\n    skuName: \"Developer_1\",\n});\nconst exampleLogger = new azure.apimanagement.Logger(\"exampleLogger\", {\n    apiManagementName: exampleService.name,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationInsights: {\n        instrumentationKey: exampleInsights.instrumentationKey,\n    },\n});\nconst exampleDiagnostic = new azure.apimanagement.Diagnostic(\"exampleDiagnostic\", {\n    identifier: \"applicationinsights\",\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    apiManagementLoggerId: exampleLogger.id,\n    samplingPercentage: 5,\n    alwaysLogErrors: true,\n    logClientIp: true,\n    verbosity: \"verbose\",\n    httpCorrelationProtocol: \"W3C\",\n    frontendRequest: {\n        bodyBytes: 32,\n        headersToLogs: [\n            \"content-type\",\n            \"accept\",\n            \"origin\",\n        ],\n    },\n    frontendResponse: {\n        bodyBytes: 32,\n        headersToLogs: [\n            \"content-type\",\n            \"content-length\",\n            \"origin\",\n        ],\n    },\n    backendRequest: {\n        bodyBytes: 32,\n        headersToLogs: [\n            \"content-type\",\n            \"accept\",\n            \"origin\",\n        ],\n    },\n    backendResponse: {\n        bodyBytes: 32,\n        headersToLogs: [\n            \"content-type\",\n            \"content-length\",\n            \"origin\",\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_type=\"web\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@mycompany.io\",\n    sku_name=\"Developer_1\")\nexample_logger = azure.apimanagement.Logger(\"exampleLogger\",\n    api_management_name=example_service.name,\n    resource_group_name=example_resource_group.name,\n    application_insights=azure.apimanagement.LoggerApplicationInsightsArgs(\n        instrumentation_key=example_insights.instrumentation_key,\n    ))\nexample_diagnostic = azure.apimanagement.Diagnostic(\"exampleDiagnostic\",\n    identifier=\"applicationinsights\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    api_management_logger_id=example_logger.id,\n    sampling_percentage=5,\n    always_log_errors=True,\n    log_client_ip=True,\n    verbosity=\"verbose\",\n    http_correlation_protocol=\"W3C\",\n    frontend_request=azure.apimanagement.DiagnosticFrontendRequestArgs(\n        body_bytes=32,\n        headers_to_logs=[\n            \"content-type\",\n            \"accept\",\n            \"origin\",\n        ],\n    ),\n    frontend_response=azure.apimanagement.DiagnosticFrontendResponseArgs(\n        body_bytes=32,\n        headers_to_logs=[\n            \"content-type\",\n            \"content-length\",\n            \"origin\",\n        ],\n    ),\n    backend_request=azure.apimanagement.DiagnosticBackendRequestArgs(\n        body_bytes=32,\n        headers_to_logs=[\n            \"content-type\",\n            \"accept\",\n            \"origin\",\n        ],\n    ),\n    backend_response=azure.apimanagement.DiagnosticBackendResponseArgs(\n        body_bytes=32,\n        headers_to_logs=[\n            \"content-type\",\n            \"content-length\",\n            \"origin\",\n        ],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"web\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@mycompany.io\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleLogger = new Azure.ApiManagement.Logger(\"exampleLogger\", new Azure.ApiManagement.LoggerArgs\n        {\n            ApiManagementName = exampleService.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationInsights = new Azure.ApiManagement.Inputs.LoggerApplicationInsightsArgs\n            {\n                InstrumentationKey = exampleInsights.InstrumentationKey,\n            },\n        });\n        var exampleDiagnostic = new Azure.ApiManagement.Diagnostic(\"exampleDiagnostic\", new Azure.ApiManagement.DiagnosticArgs\n        {\n            Identifier = \"applicationinsights\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            ApiManagementLoggerId = exampleLogger.Id,\n            SamplingPercentage = 5,\n            AlwaysLogErrors = true,\n            LogClientIp = true,\n            Verbosity = \"verbose\",\n            HttpCorrelationProtocol = \"W3C\",\n            FrontendRequest = new Azure.ApiManagement.Inputs.DiagnosticFrontendRequestArgs\n            {\n                BodyBytes = 32,\n                HeadersToLogs = \n                {\n                    \"content-type\",\n                    \"accept\",\n                    \"origin\",\n                },\n            },\n            FrontendResponse = new Azure.ApiManagement.Inputs.DiagnosticFrontendResponseArgs\n            {\n                BodyBytes = 32,\n                HeadersToLogs = \n                {\n                    \"content-type\",\n                    \"content-length\",\n                    \"origin\",\n                },\n            },\n            BackendRequest = new Azure.ApiManagement.Inputs.DiagnosticBackendRequestArgs\n            {\n                BodyBytes = 32,\n                HeadersToLogs = \n                {\n                    \"content-type\",\n                    \"accept\",\n                    \"origin\",\n                },\n            },\n            BackendResponse = new Azure.ApiManagement.Inputs.DiagnosticBackendResponseArgs\n            {\n                BodyBytes = 32,\n                HeadersToLogs = \n                {\n                    \"content-type\",\n                    \"content-length\",\n                    \"origin\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@mycompany.io\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLogger, err := apimanagement.NewLogger(ctx, \"exampleLogger\", \u0026apimanagement.LoggerArgs{\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationInsights: \u0026apimanagement.LoggerApplicationInsightsArgs{\n\t\t\t\tInstrumentationKey: exampleInsights.InstrumentationKey,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewDiagnostic(ctx, \"exampleDiagnostic\", \u0026apimanagement.DiagnosticArgs{\n\t\t\tIdentifier:              pulumi.String(\"applicationinsights\"),\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tApiManagementName:       exampleService.Name,\n\t\t\tApiManagementLoggerId:   exampleLogger.ID(),\n\t\t\tSamplingPercentage:      pulumi.Float64(5),\n\t\t\tAlwaysLogErrors:         pulumi.Bool(true),\n\t\t\tLogClientIp:             pulumi.Bool(true),\n\t\t\tVerbosity:               pulumi.String(\"verbose\"),\n\t\t\tHttpCorrelationProtocol: pulumi.String(\"W3C\"),\n\t\t\tFrontendRequest: \u0026apimanagement.DiagnosticFrontendRequestArgs{\n\t\t\t\tBodyBytes: pulumi.Int(32),\n\t\t\t\tHeadersToLogs: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"content-type\"),\n\t\t\t\t\tpulumi.String(\"accept\"),\n\t\t\t\t\tpulumi.String(\"origin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendResponse: \u0026apimanagement.DiagnosticFrontendResponseArgs{\n\t\t\t\tBodyBytes: pulumi.Int(32),\n\t\t\t\tHeadersToLogs: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"content-type\"),\n\t\t\t\t\tpulumi.String(\"content-length\"),\n\t\t\t\t\tpulumi.String(\"origin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackendRequest: \u0026apimanagement.DiagnosticBackendRequestArgs{\n\t\t\t\tBodyBytes: pulumi.Int(32),\n\t\t\t\tHeadersToLogs: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"content-type\"),\n\t\t\t\t\tpulumi.String(\"accept\"),\n\t\t\t\t\tpulumi.String(\"origin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackendResponse: \u0026apimanagement.DiagnosticBackendResponseArgs{\n\t\t\t\tBodyBytes: pulumi.Int(32),\n\t\t\t\tHeadersToLogs: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"content-type\"),\n\t\t\t\t\tpulumi.String(\"content-length\"),\n\t\t\t\t\tpulumi.String(\"origin\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Diagnostics can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/diagnostic:Diagnostic example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/diagnostics/applicationinsights\n```\n\n ",
      "inputProperties": {
        "alwaysLogErrors": {
          "description": "Always log errors. Send telemetry if there is an erroneous condition, regardless of sampling settings.\n",
          "type": "boolean"
        },
        "apiManagementLoggerId": {
          "description": "The id of the target API Management Logger where the API Management Diagnostic should be saved.\n",
          "type": "string"
        },
        "apiManagementName": {
          "description": "The Name of the API Management Service where this Diagnostic should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "backendRequest": {
          "$ref": "#/types/azure:apimanagement/DiagnosticBackendRequest:DiagnosticBackendRequest",
          "description": "A `backend_request` block as defined below.\n"
        },
        "backendResponse": {
          "$ref": "#/types/azure:apimanagement/DiagnosticBackendResponse:DiagnosticBackendResponse",
          "description": "A `backend_response` block as defined below.\n"
        },
        "enabled": {
          "deprecationMessage": "this property has been removed from the API and will be removed in version 3.0 of the provider",
          "type": "boolean"
        },
        "frontendRequest": {
          "$ref": "#/types/azure:apimanagement/DiagnosticFrontendRequest:DiagnosticFrontendRequest",
          "description": "A `frontend_request` block as defined below.\n"
        },
        "frontendResponse": {
          "$ref": "#/types/azure:apimanagement/DiagnosticFrontendResponse:DiagnosticFrontendResponse",
          "description": "A `frontend_response` block as defined below.\n"
        },
        "httpCorrelationProtocol": {
          "description": "The HTTP Correlation Protocol to use. Possible values are `None`, `Legacy` or `W3C`.\n",
          "type": "string"
        },
        "identifier": {
          "description": "The diagnostic identifier for the API Management Service. At this time the only supported value is `applicationinsights`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logClientIp": {
          "description": "Log client IP address.\n",
          "type": "boolean"
        },
        "operationNameFormat": {
          "description": "The format of the Operation Name for Application Insights telemetries. Possible values are `Name`, and `Url`. Defaults to `Name`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "samplingPercentage": {
          "description": "Sampling (%). For high traffic APIs, please read this [documentation](https://docs.microsoft.com/azure/api-management/api-management-howto-app-insights#performance-implications-and-log-sampling) to understand performance implications and log sampling. Valid values are between `0.0` and `100.0`.\n",
          "type": "number"
        },
        "verbosity": {
          "description": "Logging verbosity. Possible values are `verbose`, `information` or `error`.\n",
          "type": "string"
        }
      },
      "properties": {
        "alwaysLogErrors": {
          "description": "Always log errors. Send telemetry if there is an erroneous condition, regardless of sampling settings.\n",
          "type": "boolean"
        },
        "apiManagementLoggerId": {
          "description": "The id of the target API Management Logger where the API Management Diagnostic should be saved.\n",
          "type": "string"
        },
        "apiManagementName": {
          "description": "The Name of the API Management Service where this Diagnostic should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "backendRequest": {
          "$ref": "#/types/azure:apimanagement/DiagnosticBackendRequest:DiagnosticBackendRequest",
          "description": "A `backend_request` block as defined below.\n"
        },
        "backendResponse": {
          "$ref": "#/types/azure:apimanagement/DiagnosticBackendResponse:DiagnosticBackendResponse",
          "description": "A `backend_response` block as defined below.\n"
        },
        "enabled": {
          "deprecationMessage": "this property has been removed from the API and will be removed in version 3.0 of the provider",
          "type": "boolean"
        },
        "frontendRequest": {
          "$ref": "#/types/azure:apimanagement/DiagnosticFrontendRequest:DiagnosticFrontendRequest",
          "description": "A `frontend_request` block as defined below.\n"
        },
        "frontendResponse": {
          "$ref": "#/types/azure:apimanagement/DiagnosticFrontendResponse:DiagnosticFrontendResponse",
          "description": "A `frontend_response` block as defined below.\n"
        },
        "httpCorrelationProtocol": {
          "description": "The HTTP Correlation Protocol to use. Possible values are `None`, `Legacy` or `W3C`.\n",
          "type": "string"
        },
        "identifier": {
          "description": "The diagnostic identifier for the API Management Service. At this time the only supported value is `applicationinsights`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logClientIp": {
          "description": "Log client IP address.\n",
          "type": "boolean"
        },
        "operationNameFormat": {
          "description": "The format of the Operation Name for Application Insights telemetries. Possible values are `Name`, and `Url`. Defaults to `Name`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "samplingPercentage": {
          "description": "Sampling (%). For high traffic APIs, please read this [documentation](https://docs.microsoft.com/azure/api-management/api-management-howto-app-insights#performance-implications-and-log-sampling) to understand performance implications and log sampling. Valid values are between `0.0` and `100.0`.\n",
          "type": "number"
        },
        "verbosity": {
          "description": "Logging verbosity. Possible values are `verbose`, `information` or `error`.\n",
          "type": "string"
        }
      },
      "required": [
        "alwaysLogErrors",
        "apiManagementLoggerId",
        "apiManagementName",
        "backendRequest",
        "backendResponse",
        "frontendRequest",
        "frontendResponse",
        "httpCorrelationProtocol",
        "identifier",
        "logClientIp",
        "resourceGroupName",
        "samplingPercentage",
        "verbosity"
      ],
      "requiredInputs": [
        "apiManagementLoggerId",
        "apiManagementName",
        "identifier",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Diagnostic resources.\n",
        "properties": {
          "alwaysLogErrors": {
            "description": "Always log errors. Send telemetry if there is an erroneous condition, regardless of sampling settings.\n",
            "type": "boolean"
          },
          "apiManagementLoggerId": {
            "description": "The id of the target API Management Logger where the API Management Diagnostic should be saved.\n",
            "type": "string"
          },
          "apiManagementName": {
            "description": "The Name of the API Management Service where this Diagnostic should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "backendRequest": {
            "$ref": "#/types/azure:apimanagement/DiagnosticBackendRequest:DiagnosticBackendRequest",
            "description": "A `backend_request` block as defined below.\n"
          },
          "backendResponse": {
            "$ref": "#/types/azure:apimanagement/DiagnosticBackendResponse:DiagnosticBackendResponse",
            "description": "A `backend_response` block as defined below.\n"
          },
          "enabled": {
            "deprecationMessage": "this property has been removed from the API and will be removed in version 3.0 of the provider",
            "type": "boolean"
          },
          "frontendRequest": {
            "$ref": "#/types/azure:apimanagement/DiagnosticFrontendRequest:DiagnosticFrontendRequest",
            "description": "A `frontend_request` block as defined below.\n"
          },
          "frontendResponse": {
            "$ref": "#/types/azure:apimanagement/DiagnosticFrontendResponse:DiagnosticFrontendResponse",
            "description": "A `frontend_response` block as defined below.\n"
          },
          "httpCorrelationProtocol": {
            "description": "The HTTP Correlation Protocol to use. Possible values are `None`, `Legacy` or `W3C`.\n",
            "type": "string"
          },
          "identifier": {
            "description": "The diagnostic identifier for the API Management Service. At this time the only supported value is `applicationinsights`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "logClientIp": {
            "description": "Log client IP address.\n",
            "type": "boolean"
          },
          "operationNameFormat": {
            "description": "The format of the Operation Name for Application Insights telemetries. Possible values are `Name`, and `Url`. Defaults to `Name`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "samplingPercentage": {
            "description": "Sampling (%). For high traffic APIs, please read this [documentation](https://docs.microsoft.com/azure/api-management/api-management-howto-app-insights#performance-implications-and-log-sampling) to understand performance implications and log sampling. Valid values are between `0.0` and `100.0`.\n",
            "type": "number"
          },
          "verbosity": {
            "description": "Logging verbosity. Possible values are `verbose`, `information` or `error`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/emailTemplate:EmailTemplate": {
      "description": "Manages a API Management Email Template.\n\n\n## Import\n\nAPI Management Email Templates can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/emailTemplate:EmailTemplate example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/instance1/templates/template1\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which the Email Template should exist. Changing this forces a new API Management Email Template to be created.\n",
          "type": "string"
        },
        "body": {
          "description": "The body of the Email. Its format has to be a well-formed HTML document.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the API Management Email Template should exist. Changing this forces a new API Management Email Template to be created.\n",
          "type": "string"
        },
        "subject": {
          "description": "The subject of the Email.\n",
          "type": "string"
        },
        "templateName": {
          "description": "The name of the Email Template. Possible values are `AccountClosedDeveloper`, `ApplicationApprovedNotificationMessage`, `ConfirmSignUpIdentityDefault`, `EmailChangeIdentityDefault`, `InviteUserNotificationMessage`, `NewCommentNotificationMessage`, `NewDeveloperNotificationMessage`, `NewIssueNotificationMessage`, `PasswordResetByAdminNotificationMessage`, `PasswordResetIdentityDefault`, `PurchaseDeveloperNotificationMessage`, `QuotaLimitApproachingDeveloperNotificationMessage`, `RejectDeveloperNotificationMessage`, `RequestDeveloperNotificationMessage`. Changing this forces a new API Management Email Template to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which the Email Template should exist. Changing this forces a new API Management Email Template to be created.\n",
          "type": "string"
        },
        "body": {
          "description": "The body of the Email. Its format has to be a well-formed HTML document.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Email Template.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the API Management Email Template should exist. Changing this forces a new API Management Email Template to be created.\n",
          "type": "string"
        },
        "subject": {
          "description": "The subject of the Email.\n",
          "type": "string"
        },
        "templateName": {
          "description": "The name of the Email Template. Possible values are `AccountClosedDeveloper`, `ApplicationApprovedNotificationMessage`, `ConfirmSignUpIdentityDefault`, `EmailChangeIdentityDefault`, `InviteUserNotificationMessage`, `NewCommentNotificationMessage`, `NewDeveloperNotificationMessage`, `NewIssueNotificationMessage`, `PasswordResetByAdminNotificationMessage`, `PasswordResetIdentityDefault`, `PurchaseDeveloperNotificationMessage`, `QuotaLimitApproachingDeveloperNotificationMessage`, `RejectDeveloperNotificationMessage`, `RequestDeveloperNotificationMessage`. Changing this forces a new API Management Email Template to be created.\n",
          "type": "string"
        },
        "title": {
          "description": "The title of the Email Template.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "body",
        "description",
        "resourceGroupName",
        "subject",
        "templateName",
        "title"
      ],
      "requiredInputs": [
        "apiManagementName",
        "body",
        "resourceGroupName",
        "subject",
        "templateName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EmailTemplate resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service in which the Email Template should exist. Changing this forces a new API Management Email Template to be created.\n",
            "type": "string"
          },
          "body": {
            "description": "The body of the Email. Its format has to be a well-formed HTML document.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the Email Template.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the API Management Email Template should exist. Changing this forces a new API Management Email Template to be created.\n",
            "type": "string"
          },
          "subject": {
            "description": "The subject of the Email.\n",
            "type": "string"
          },
          "templateName": {
            "description": "The name of the Email Template. Possible values are `AccountClosedDeveloper`, `ApplicationApprovedNotificationMessage`, `ConfirmSignUpIdentityDefault`, `EmailChangeIdentityDefault`, `InviteUserNotificationMessage`, `NewCommentNotificationMessage`, `NewDeveloperNotificationMessage`, `NewIssueNotificationMessage`, `PasswordResetByAdminNotificationMessage`, `PasswordResetIdentityDefault`, `PurchaseDeveloperNotificationMessage`, `QuotaLimitApproachingDeveloperNotificationMessage`, `RejectDeveloperNotificationMessage`, `RequestDeveloperNotificationMessage`. Changing this forces a new API Management Email Template to be created.\n",
            "type": "string"
          },
          "title": {
            "description": "The title of the Email Template.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/gateway:Gateway": {
      "description": "Manages an API Management Gateway.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"pub1\",\n    publisherEmail: \"pub1@email.com\",\n    skuName: \"Consumption_0\",\n});\nconst exampleGateway = new azure.apimanagement.Gateway(\"exampleGateway\", {\n    apiManagementId: exampleService.id,\n    description: \"Example API Management gateway\",\n    locationData: {\n        name: \"example name\",\n        city: \"example city\",\n        district: \"example district\",\n        region: \"example region\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"pub1\",\n    publisher_email=\"pub1@email.com\",\n    sku_name=\"Consumption_0\")\nexample_gateway = azure.apimanagement.Gateway(\"exampleGateway\",\n    api_management_id=example_service.id,\n    description=\"Example API Management gateway\",\n    location_data=azure.apimanagement.GatewayLocationDataArgs(\n        name=\"example name\",\n        city=\"example city\",\n        district=\"example district\",\n        region=\"example region\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"pub1\",\n            PublisherEmail = \"pub1@email.com\",\n            SkuName = \"Consumption_0\",\n        });\n        var exampleGateway = new Azure.ApiManagement.Gateway(\"exampleGateway\", new Azure.ApiManagement.GatewayArgs\n        {\n            ApiManagementId = exampleService.Id,\n            Description = \"Example API Management gateway\",\n            LocationData = new Azure.ApiManagement.Inputs.GatewayLocationDataArgs\n            {\n                Name = \"example name\",\n                City = \"example city\",\n                District = \"example district\",\n                Region = \"example region\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"pub1\"),\n\t\t\tPublisherEmail:    pulumi.String(\"pub1@email.com\"),\n\t\t\tSkuName:           pulumi.String(\"Consumption_0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewGateway(ctx, \"exampleGateway\", \u0026apimanagement.GatewayArgs{\n\t\t\tApiManagementId: exampleService.ID(),\n\t\t\tDescription:     pulumi.String(\"Example API Management gateway\"),\n\t\t\tLocationData: \u0026apimanagement.GatewayLocationDataArgs{\n\t\t\t\tName:     pulumi.String(\"example name\"),\n\t\t\t\tCity:     pulumi.String(\"example city\"),\n\t\t\t\tDistrict: pulumi.String(\"example district\"),\n\t\t\t\tRegion:   pulumi.String(\"example region\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Gateways can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/gateway:Gateway example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/gateways/gateway1\n```\n\n ",
      "inputProperties": {
        "apiManagementId": {
          "type": "string"
        },
        "description": {
          "description": "The description of the API Management Gateway.\n",
          "type": "string"
        },
        "locationData": {
          "$ref": "#/types/azure:apimanagement/GatewayLocationData:GatewayLocationData",
          "description": "A `location_data` block as documented below.\n"
        },
        "name": {
          "description": "The name which should be used for the API Management Gateway. Changing this forces a new API Management Gateway to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementId": {
          "type": "string"
        },
        "description": {
          "description": "The description of the API Management Gateway.\n",
          "type": "string"
        },
        "locationData": {
          "$ref": "#/types/azure:apimanagement/GatewayLocationData:GatewayLocationData",
          "description": "A `location_data` block as documented below.\n"
        },
        "name": {
          "description": "The name which should be used for the API Management Gateway. Changing this forces a new API Management Gateway to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementId",
        "locationData",
        "name"
      ],
      "requiredInputs": [
        "apiManagementId",
        "locationData"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Gateway resources.\n",
        "properties": {
          "apiManagementId": {
            "type": "string"
          },
          "description": {
            "description": "The description of the API Management Gateway.\n",
            "type": "string"
          },
          "locationData": {
            "$ref": "#/types/azure:apimanagement/GatewayLocationData:GatewayLocationData",
            "description": "A `location_data` block as documented below.\n"
          },
          "name": {
            "description": "The name which should be used for the API Management Gateway. Changing this forces a new API Management Gateway to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/gatewayApi:GatewayApi": {
      "description": "Manages a API Management Gateway API.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleService = azure.apimanagement.getService({\n    name: \"example-api\",\n    resourceGroupName: \"example-resources\",\n});\nconst exampleApi = Promise.all([exampleService, exampleService]).then(([exampleService, exampleService1]) =\u003e azure.apimanagement.getApi({\n    name: \"search-api\",\n    apiManagementName: exampleService.name,\n    resourceGroupName: exampleService1.resourceGroupName,\n    revision: \"2\",\n}));\nconst exampleGateway = azure.apimanagement.getGateway({\n    gatewayId: \"my-gateway\",\n    apiManagementName: exampleService.then(exampleService =\u003e exampleService.name),\n    resourceGroupName: exampleService.then(exampleService =\u003e exampleService.resourceGroupName),\n});\nconst exampleGatewayApi = new azure.apimanagement.GatewayApi(\"exampleGatewayApi\", {\n    gatewayId: exampleGateway.then(exampleGateway =\u003e exampleGateway.id),\n    apiId: exampleApi.then(exampleApi =\u003e exampleApi.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_service = azure.apimanagement.get_service(name=\"example-api\",\n    resource_group_name=\"example-resources\")\nexample_api = azure.apimanagement.get_api(name=\"search-api\",\n    api_management_name=example_service.name,\n    resource_group_name=example_service.resource_group_name,\n    revision=\"2\")\nexample_gateway = azure.apimanagement.get_gateway(gateway_id=\"my-gateway\",\n    api_management_name=example_service.name,\n    resource_group_name=example_service.resource_group_name)\nexample_gateway_api = azure.apimanagement.GatewayApi(\"exampleGatewayApi\",\n    gateway_id=example_gateway.id,\n    api_id=example_api.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleService = Output.Create(Azure.ApiManagement.GetService.InvokeAsync(new Azure.ApiManagement.GetServiceArgs\n        {\n            Name = \"example-api\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        var exampleApi = Output.Tuple(exampleService, exampleService).Apply(values =\u003e\n        {\n            var exampleService = values.Item1;\n            var exampleService1 = values.Item2;\n            return Output.Create(Azure.ApiManagement.GetApi.InvokeAsync(new Azure.ApiManagement.GetApiArgs\n            {\n                Name = \"search-api\",\n                ApiManagementName = exampleService.Name,\n                ResourceGroupName = exampleService1.ResourceGroupName,\n                Revision = \"2\",\n            }));\n        });\n        var exampleGateway = Output.Create(Azure.ApiManagement.GetGateway.InvokeAsync(new Azure.ApiManagement.GetGatewayArgs\n        {\n            GatewayId = \"my-gateway\",\n            ApiManagementName = exampleService.Apply(exampleService =\u003e exampleService.Name),\n            ResourceGroupName = exampleService.Apply(exampleService =\u003e exampleService.ResourceGroupName),\n        }));\n        var exampleGatewayApi = new Azure.ApiManagement.GatewayApi(\"exampleGatewayApi\", new Azure.ApiManagement.GatewayApiArgs\n        {\n            GatewayId = exampleGateway.Apply(exampleGateway =\u003e exampleGateway.Id),\n            ApiId = exampleApi.Apply(exampleApi =\u003e exampleApi.Id),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleService, err := apimanagement.LookupService(ctx, \u0026apimanagement.LookupServiceArgs{\n\t\t\tName:              \"example-api\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleApi, err := apimanagement.LookupApi(ctx, \u0026apimanagement.LookupApiArgs{\n\t\t\tName:              \"search-api\",\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tResourceGroupName: exampleService.ResourceGroupName,\n\t\t\tRevision:          \"2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGateway, err := apimanagement.LookupGateway(ctx, \u0026apimanagement.LookupGatewayArgs{\n\t\t\tGatewayId:         \"my-gateway\",\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tResourceGroupName: exampleService.ResourceGroupName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewGatewayApi(ctx, \"exampleGatewayApi\", \u0026apimanagement.GatewayApiArgs{\n\t\t\tGatewayId: pulumi.String(exampleGateway.Id),\n\t\t\tApiId:     pulumi.String(exampleApi.Id),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Gateway APIs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/gatewayApi:GatewayApi example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.ApiManagement/service/service1/gateways/gateway1/apis/api1\n```\n\n ",
      "inputProperties": {
        "apiId": {
          "description": "The Identifier of the API Management API within the API Management Service. Changing this forces a new API Management Gateway API to be created.\n",
          "type": "string"
        },
        "gatewayId": {
          "description": "The Identifier for the API Management Gateway. Changing this forces a new API Management Gateway API to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiId": {
          "description": "The Identifier of the API Management API within the API Management Service. Changing this forces a new API Management Gateway API to be created.\n",
          "type": "string"
        },
        "gatewayId": {
          "description": "The Identifier for the API Management Gateway. Changing this forces a new API Management Gateway API to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "apiId",
        "gatewayId"
      ],
      "requiredInputs": [
        "apiId",
        "gatewayId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GatewayApi resources.\n",
        "properties": {
          "apiId": {
            "description": "The Identifier of the API Management API within the API Management Service. Changing this forces a new API Management Gateway API to be created.\n",
            "type": "string"
          },
          "gatewayId": {
            "description": "The Identifier for the API Management Gateway. Changing this forces a new API Management Gateway API to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/group:Group": {
      "description": "Manages an API Management Group.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"pub1\",\n    publisherEmail: \"pub1@email.com\",\n    skuName: \"Developer_1\",\n});\nconst exampleGroup = new azure.apimanagement.Group(\"exampleGroup\", {\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    displayName: \"Example Group\",\n    description: \"This is an example API management group.\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"pub1\",\n    publisher_email=\"pub1@email.com\",\n    sku_name=\"Developer_1\")\nexample_group = azure.apimanagement.Group(\"exampleGroup\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    display_name=\"Example Group\",\n    description=\"This is an example API management group.\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"pub1\",\n            PublisherEmail = \"pub1@email.com\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleGroup = new Azure.ApiManagement.Group(\"exampleGroup\", new Azure.ApiManagement.GroupArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            DisplayName = \"Example Group\",\n            Description = \"This is an example API management group.\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"pub1\"),\n\t\t\tPublisherEmail:    pulumi.String(\"pub1@email.com\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewGroup(ctx, \"exampleGroup\", \u0026apimanagement.GroupArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tDisplayName:       pulumi.String(\"Example Group\"),\n\t\t\tDescription:       pulumi.String(\"This is an example API management 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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/group:Group example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-resources/providers/Microsoft.ApiManagement/service/example-apim/groups/example-apimg\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which the API Management Group should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of this API Management Group.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of this API Management Group.\n",
          "type": "string"
        },
        "externalId": {
          "description": "The identifier of the external Group. For example, an Azure Active Directory group `aad://\u003ctenant\u003e.onmicrosoft.com/groups/\u003cgroup object id\u003e`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the API Management Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Group should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "type": {
          "description": "The type of this API Management Group. Possible values are `custom` and `external`. Default is `custom`.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which the API Management Group should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of this API Management Group.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of this API Management Group.\n",
          "type": "string"
        },
        "externalId": {
          "description": "The identifier of the external Group. For example, an Azure Active Directory group `aad://\u003ctenant\u003e.onmicrosoft.com/groups/\u003cgroup object id\u003e`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the API Management Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Group should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "type": {
          "description": "The type of this API Management Group. Possible values are `custom` and `external`. Default is `custom`.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "displayName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "apiManagementName",
        "displayName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Group resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service in which the API Management Group should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of this API Management Group.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of this API Management Group.\n",
            "type": "string"
          },
          "externalId": {
            "description": "The identifier of the external Group. For example, an Azure Active Directory group `aad://\u003ctenant\u003e.onmicrosoft.com/groups/\u003cgroup object id\u003e`.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the API Management Group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Group should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "type": {
            "description": "The type of this API Management Group. Possible values are `custom` and `external`. Default is `custom`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/groupUser:GroupUser": {
      "description": "Manages an API Management User Assignment to a Group.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleUser = azure.apimanagement.getUser({\n    userId: \"my-user\",\n    apiManagementName: \"example-apim\",\n    resourceGroupName: \"search-service\",\n});\nconst exampleGroupUser = new azure.apimanagement.GroupUser(\"exampleGroupUser\", {\n    userId: exampleUser.then(exampleUser =\u003e exampleUser.id),\n    groupName: \"example-group\",\n    resourceGroupName: exampleUser.then(exampleUser =\u003e exampleUser.resourceGroupName),\n    apiManagementName: exampleUser.then(exampleUser =\u003e exampleUser.apiManagementName),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_user = azure.apimanagement.get_user(user_id=\"my-user\",\n    api_management_name=\"example-apim\",\n    resource_group_name=\"search-service\")\nexample_group_user = azure.apimanagement.GroupUser(\"exampleGroupUser\",\n    user_id=example_user.id,\n    group_name=\"example-group\",\n    resource_group_name=example_user.resource_group_name,\n    api_management_name=example_user.api_management_name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleUser = Output.Create(Azure.ApiManagement.GetUser.InvokeAsync(new Azure.ApiManagement.GetUserArgs\n        {\n            UserId = \"my-user\",\n            ApiManagementName = \"example-apim\",\n            ResourceGroupName = \"search-service\",\n        }));\n        var exampleGroupUser = new Azure.ApiManagement.GroupUser(\"exampleGroupUser\", new Azure.ApiManagement.GroupUserArgs\n        {\n            UserId = exampleUser.Apply(exampleUser =\u003e exampleUser.Id),\n            GroupName = \"example-group\",\n            ResourceGroupName = exampleUser.Apply(exampleUser =\u003e exampleUser.ResourceGroupName),\n            ApiManagementName = exampleUser.Apply(exampleUser =\u003e exampleUser.ApiManagementName),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleUser, err := apimanagement.LookupUser(ctx, \u0026apimanagement.LookupUserArgs{\n\t\t\tUserId:            \"my-user\",\n\t\t\tApiManagementName: \"example-apim\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewGroupUser(ctx, \"exampleGroupUser\", \u0026apimanagement.GroupUserArgs{\n\t\t\tUserId:            pulumi.String(exampleUser.Id),\n\t\t\tGroupName:         pulumi.String(\"example-group\"),\n\t\t\tResourceGroupName: pulumi.String(exampleUser.ResourceGroupName),\n\t\t\tApiManagementName: pulumi.String(exampleUser.ApiManagementName),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Group Users can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/groupUser:GroupUser example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/groups/groupId/users/user123\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "groupName": {
          "description": "The Name of the API Management Group within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "userId": {
          "description": "The ID of the API Management User which should be assigned to this API Management Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "groupName": {
          "description": "The Name of the API Management Group within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "userId": {
          "description": "The ID of the API Management User which should be assigned to this API Management Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "groupName",
        "resourceGroupName",
        "userId"
      ],
      "requiredInputs": [
        "apiManagementName",
        "groupName",
        "resourceGroupName",
        "userId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GroupUser resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "groupName": {
            "description": "The Name of the API Management Group within the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "userId": {
            "description": "The ID of the API Management User which should be assigned to this API Management Group. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/identityProviderAad:IdentityProviderAad": {
      "description": "Manages an API Management AAD Identity Provider.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@mycompany.io\",\n    skuName: \"Developer_1\",\n});\nconst exampleIdentityProviderAad = new azure.apimanagement.IdentityProviderAad(\"exampleIdentityProviderAad\", {\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    clientId: \"00000000-0000-0000-0000-000000000000\",\n    clientSecret: \"00000000000000000000000000000000\",\n    allowedTenants: [\"00000000-0000-0000-0000-000000000000\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@mycompany.io\",\n    sku_name=\"Developer_1\")\nexample_identity_provider_aad = azure.apimanagement.IdentityProviderAad(\"exampleIdentityProviderAad\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    client_id=\"00000000-0000-0000-0000-000000000000\",\n    client_secret=\"00000000000000000000000000000000\",\n    allowed_tenants=[\"00000000-0000-0000-0000-000000000000\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@mycompany.io\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleIdentityProviderAad = new Azure.ApiManagement.IdentityProviderAad(\"exampleIdentityProviderAad\", new Azure.ApiManagement.IdentityProviderAadArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            ClientId = \"00000000-0000-0000-0000-000000000000\",\n            ClientSecret = \"00000000000000000000000000000000\",\n            AllowedTenants = \n            {\n                \"00000000-0000-0000-0000-000000000000\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@mycompany.io\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewIdentityProviderAad(ctx, \"exampleIdentityProviderAad\", \u0026apimanagement.IdentityProviderAadArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tClientId:          pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tClientSecret:      pulumi.String(\"00000000000000000000000000000000\"),\n\t\t\tAllowedTenants: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"00000000-0000-0000-0000-000000000000\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management AAD Identity Provider can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/identityProviderAad:IdentityProviderAad example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/identityProviders/aad\n```\n\n ",
      "inputProperties": {
        "allowedTenants": {
          "description": "List of allowed AAD Tenants.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "apiManagementName": {
          "description": "The Name of the API Management Service where this AAD Identity Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clientId": {
          "description": "Client Id of the Application in the AAD Identity Provider.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "Client secret of the Application in the AAD Identity Provider.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "signinTenant": {
          "description": "The AAD Tenant to use instead of Common when logging into Active Directory\n",
          "type": "string"
        }
      },
      "properties": {
        "allowedTenants": {
          "description": "List of allowed AAD Tenants.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "apiManagementName": {
          "description": "The Name of the API Management Service where this AAD Identity Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clientId": {
          "description": "Client Id of the Application in the AAD Identity Provider.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "Client secret of the Application in the AAD Identity Provider.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "signinTenant": {
          "description": "The AAD Tenant to use instead of Common when logging into Active Directory\n",
          "type": "string"
        }
      },
      "required": [
        "allowedTenants",
        "apiManagementName",
        "clientId",
        "clientSecret",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "allowedTenants",
        "apiManagementName",
        "clientId",
        "clientSecret",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityProviderAad resources.\n",
        "properties": {
          "allowedTenants": {
            "description": "List of allowed AAD Tenants.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "apiManagementName": {
            "description": "The Name of the API Management Service where this AAD Identity Provider should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "clientId": {
            "description": "Client Id of the Application in the AAD Identity Provider.\n",
            "type": "string"
          },
          "clientSecret": {
            "description": "Client secret of the Application in the AAD Identity Provider.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "signinTenant": {
            "description": "The AAD Tenant to use instead of Common when logging into Active Directory\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/identityProviderAadb2c:IdentityProviderAadb2c": {
      "description": "Manages an API Management Azure AD B2C Identity Provider.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as azuread from \"@pulumi/azuread\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@terraform.io\",\n    skuName: \"Developer_1\",\n});\nconst exampleApplication = new azuread.Application(\"exampleApplication\", {\n    oauth2AllowImplicitFlow: true,\n    replyUrls: [`https://${azurerm_api_management.test.name}.developer.azure-api.net/signin`],\n});\nconst exampleApplicationPassword = new azuread.ApplicationPassword(\"exampleApplicationPassword\", {\n    applicationObjectId: azuread_application.test.object_id,\n    endDateRelative: \"36h\",\n    value: `P@55w0rD!%[7]s`,\n});\nconst exampleIdentityProviderAadb2c = new azure.apimanagement.IdentityProviderAadb2c(\"exampleIdentityProviderAadb2c\", {\n    apiManagementId: exampleService.id,\n    clientId: exampleApplication.applicationId,\n    clientSecret: `P@55w0rD!%[7]s`,\n    allowedTenant: \"myb2ctenant.onmicrosoft.com\",\n    signinTenant: \"myb2ctenant.onmicrosoft.com\",\n    authority: \"myb2ctenant.b2clogin.com\",\n    signinPolicy: \"B2C_1_Login\",\n    signupPolicy: \"B2C_1_Signup\",\n}, {\n    dependsOn: [exampleApplicationPassword],\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Azure AD B2C Identity Providers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/identityProviderAadb2c:IdentityProviderAadb2c example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service1/identityProviders/AadB2C\n```\n\n ",
      "inputProperties": {
        "allowedTenant": {
          "description": "The allowed AAD tenant, usually your B2C tenant domain.\n",
          "type": "string"
        },
        "apiManagementName": {
          "description": "The Name of the API Management Service where this AAD Identity Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "authority": {
          "description": "OpenID Connect discovery endpoint hostname, usually your b2clogin.com domain.\n",
          "type": "string"
        },
        "clientId": {
          "description": "Client ID of the Application in your B2C tenant.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "Client secret of the Application in your B2C tenant.\n",
          "type": "string"
        },
        "passwordResetPolicy": {
          "description": "Password reset Policy Name.\n",
          "type": "string"
        },
        "profileEditingPolicy": {
          "description": "Profile editing Policy Name.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "signinPolicy": {
          "description": "Signin Policy Name.\n",
          "type": "string"
        },
        "signinTenant": {
          "description": "The tenant to use instead of Common when logging into Active Directory, usually your B2C tenant domain.\n",
          "type": "string"
        },
        "signupPolicy": {
          "description": "Signup Policy Name.\n",
          "type": "string"
        }
      },
      "properties": {
        "allowedTenant": {
          "description": "The allowed AAD tenant, usually your B2C tenant domain.\n",
          "type": "string"
        },
        "apiManagementName": {
          "description": "The Name of the API Management Service where this AAD Identity Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "authority": {
          "description": "OpenID Connect discovery endpoint hostname, usually your b2clogin.com domain.\n",
          "type": "string"
        },
        "clientId": {
          "description": "Client ID of the Application in your B2C tenant.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "Client secret of the Application in your B2C tenant.\n",
          "type": "string"
        },
        "passwordResetPolicy": {
          "description": "Password reset Policy Name.\n",
          "type": "string"
        },
        "profileEditingPolicy": {
          "description": "Profile editing Policy Name.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "signinPolicy": {
          "description": "Signin Policy Name.\n",
          "type": "string"
        },
        "signinTenant": {
          "description": "The tenant to use instead of Common when logging into Active Directory, usually your B2C tenant domain.\n",
          "type": "string"
        },
        "signupPolicy": {
          "description": "Signup Policy Name.\n",
          "type": "string"
        }
      },
      "required": [
        "allowedTenant",
        "apiManagementName",
        "authority",
        "clientId",
        "clientSecret",
        "resourceGroupName",
        "signinPolicy",
        "signinTenant",
        "signupPolicy"
      ],
      "requiredInputs": [
        "allowedTenant",
        "apiManagementName",
        "authority",
        "clientId",
        "clientSecret",
        "resourceGroupName",
        "signinPolicy",
        "signinTenant",
        "signupPolicy"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityProviderAadb2c resources.\n",
        "properties": {
          "allowedTenant": {
            "description": "The allowed AAD tenant, usually your B2C tenant domain.\n",
            "type": "string"
          },
          "apiManagementName": {
            "description": "The Name of the API Management Service where this AAD Identity Provider should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "authority": {
            "description": "OpenID Connect discovery endpoint hostname, usually your b2clogin.com domain.\n",
            "type": "string"
          },
          "clientId": {
            "description": "Client ID of the Application in your B2C tenant.\n",
            "type": "string"
          },
          "clientSecret": {
            "description": "Client secret of the Application in your B2C tenant.\n",
            "type": "string"
          },
          "passwordResetPolicy": {
            "description": "Password reset Policy Name.\n",
            "type": "string"
          },
          "profileEditingPolicy": {
            "description": "Profile editing Policy Name.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "signinPolicy": {
            "description": "Signin Policy Name.\n",
            "type": "string"
          },
          "signinTenant": {
            "description": "The tenant to use instead of Common when logging into Active Directory, usually your B2C tenant domain.\n",
            "type": "string"
          },
          "signupPolicy": {
            "description": "Signup Policy Name.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/identityProviderFacebook:IdentityProviderFacebook": {
      "description": "Manages an API Management Facebook Identity Provider.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@mycompany.io\",\n    skuName: \"Developer_1\",\n});\nconst exampleIdentityProviderFacebook = new azure.apimanagement.IdentityProviderFacebook(\"exampleIdentityProviderFacebook\", {\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    appId: \"00000000000000000000000000000000\",\n    appSecret: \"00000000000000000000000000000000\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@mycompany.io\",\n    sku_name=\"Developer_1\")\nexample_identity_provider_facebook = azure.apimanagement.IdentityProviderFacebook(\"exampleIdentityProviderFacebook\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    app_id=\"00000000000000000000000000000000\",\n    app_secret=\"00000000000000000000000000000000\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@mycompany.io\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleIdentityProviderFacebook = new Azure.ApiManagement.IdentityProviderFacebook(\"exampleIdentityProviderFacebook\", new Azure.ApiManagement.IdentityProviderFacebookArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            AppId = \"00000000000000000000000000000000\",\n            AppSecret = \"00000000000000000000000000000000\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@mycompany.io\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewIdentityProviderFacebook(ctx, \"exampleIdentityProviderFacebook\", \u0026apimanagement.IdentityProviderFacebookArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tAppId:             pulumi.String(\"00000000000000000000000000000000\"),\n\t\t\tAppSecret:         pulumi.String(\"00000000000000000000000000000000\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Facebook Identity Provider can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/identityProviderFacebook:IdentityProviderFacebook example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/identityProviders/facebook\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where this Facebook Identity Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "appId": {
          "description": "App ID for Facebook.\n",
          "type": "string"
        },
        "appSecret": {
          "description": "App Secret for Facebook.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where this Facebook Identity Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "appId": {
          "description": "App ID for Facebook.\n",
          "type": "string"
        },
        "appSecret": {
          "description": "App Secret for Facebook.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "appId",
        "appSecret",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "apiManagementName",
        "appId",
        "appSecret",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityProviderFacebook resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The Name of the API Management Service where this Facebook Identity Provider should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "appId": {
            "description": "App ID for Facebook.\n",
            "type": "string"
          },
          "appSecret": {
            "description": "App Secret for Facebook.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/identityProviderGoogle:IdentityProviderGoogle": {
      "description": "Manages an API Management Google Identity Provider.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@mycompany.io\",\n    skuName: \"Developer_1\",\n});\nconst exampleIdentityProviderGoogle = new azure.apimanagement.IdentityProviderGoogle(\"exampleIdentityProviderGoogle\", {\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    clientId: \"00000000.apps.googleusercontent.com\",\n    clientSecret: \"00000000000000000000000000000000\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@mycompany.io\",\n    sku_name=\"Developer_1\")\nexample_identity_provider_google = azure.apimanagement.IdentityProviderGoogle(\"exampleIdentityProviderGoogle\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    client_id=\"00000000.apps.googleusercontent.com\",\n    client_secret=\"00000000000000000000000000000000\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@mycompany.io\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleIdentityProviderGoogle = new Azure.ApiManagement.IdentityProviderGoogle(\"exampleIdentityProviderGoogle\", new Azure.ApiManagement.IdentityProviderGoogleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            ClientId = \"00000000.apps.googleusercontent.com\",\n            ClientSecret = \"00000000000000000000000000000000\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@mycompany.io\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewIdentityProviderGoogle(ctx, \"exampleIdentityProviderGoogle\", \u0026apimanagement.IdentityProviderGoogleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tClientId:          pulumi.String(\"00000000.apps.googleusercontent.com\"),\n\t\t\tClientSecret:      pulumi.String(\"00000000000000000000000000000000\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Google Identity Provider can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/identityProviderGoogle:IdentityProviderGoogle example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/identityProviders/google\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where this Google Identity Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clientId": {
          "description": "Client Id for Google Sign-in.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "Client secret for Google Sign-in.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where this Google Identity Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clientId": {
          "description": "Client Id for Google Sign-in.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "Client secret for Google Sign-in.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "clientId",
        "clientSecret",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "apiManagementName",
        "clientId",
        "clientSecret",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityProviderGoogle resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The Name of the API Management Service where this Google Identity Provider should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "clientId": {
            "description": "Client Id for Google Sign-in.\n",
            "type": "string"
          },
          "clientSecret": {
            "description": "Client secret for Google Sign-in.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/identityProviderMicrosoft:IdentityProviderMicrosoft": {
      "description": "Manages an API Management Microsoft Identity Provider.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@mycompany.io\",\n    skuName: \"Developer_1\",\n});\nconst exampleIdentityProviderMicrosoft = new azure.apimanagement.IdentityProviderMicrosoft(\"exampleIdentityProviderMicrosoft\", {\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    clientId: \"00000000-0000-0000-0000-000000000000\",\n    clientSecret: \"00000000000000000000000000000000\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@mycompany.io\",\n    sku_name=\"Developer_1\")\nexample_identity_provider_microsoft = azure.apimanagement.IdentityProviderMicrosoft(\"exampleIdentityProviderMicrosoft\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    client_id=\"00000000-0000-0000-0000-000000000000\",\n    client_secret=\"00000000000000000000000000000000\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@mycompany.io\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleIdentityProviderMicrosoft = new Azure.ApiManagement.IdentityProviderMicrosoft(\"exampleIdentityProviderMicrosoft\", new Azure.ApiManagement.IdentityProviderMicrosoftArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            ClientId = \"00000000-0000-0000-0000-000000000000\",\n            ClientSecret = \"00000000000000000000000000000000\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@mycompany.io\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewIdentityProviderMicrosoft(ctx, \"exampleIdentityProviderMicrosoft\", \u0026apimanagement.IdentityProviderMicrosoftArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tClientId:          pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tClientSecret:      pulumi.String(\"00000000000000000000000000000000\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Microsoft Identity Provider can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/identityProviderMicrosoft:IdentityProviderMicrosoft example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/identityProviders/microsoft\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where this Microsoft Identity Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clientId": {
          "description": "Client Id of the Azure AD Application.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "Client secret of the Azure AD Application.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The Name of the API Management Service where this Microsoft Identity Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clientId": {
          "description": "Client Id of the Azure AD Application.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "Client secret of the Azure AD Application.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "clientId",
        "clientSecret",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "apiManagementName",
        "clientId",
        "clientSecret",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityProviderMicrosoft resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The Name of the API Management Service where this Microsoft Identity Provider should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "clientId": {
            "description": "Client Id of the Azure AD Application.\n",
            "type": "string"
          },
          "clientSecret": {
            "description": "Client secret of the Azure AD Application.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/identityProviderTwitter:IdentityProviderTwitter": {
      "description": "Manages an API Management Twitter Identity Provider.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@mycompany.io\",\n    skuName: \"Developer_1\",\n});\nconst exampleIdentityProviderTwitter = new azure.apimanagement.IdentityProviderTwitter(\"exampleIdentityProviderTwitter\", {\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    apiKey: \"00000000000000000000000000000000\",\n    apiSecretKey: \"00000000000000000000000000000000\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@mycompany.io\",\n    sku_name=\"Developer_1\")\nexample_identity_provider_twitter = azure.apimanagement.IdentityProviderTwitter(\"exampleIdentityProviderTwitter\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    api_key=\"00000000000000000000000000000000\",\n    api_secret_key=\"00000000000000000000000000000000\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@mycompany.io\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleIdentityProviderTwitter = new Azure.ApiManagement.IdentityProviderTwitter(\"exampleIdentityProviderTwitter\", new Azure.ApiManagement.IdentityProviderTwitterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            ApiKey = \"00000000000000000000000000000000\",\n            ApiSecretKey = \"00000000000000000000000000000000\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@mycompany.io\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewIdentityProviderTwitter(ctx, \"exampleIdentityProviderTwitter\", \u0026apimanagement.IdentityProviderTwitterArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tApiKey:            pulumi.String(\"00000000000000000000000000000000\"),\n\t\t\tApiSecretKey:      pulumi.String(\"00000000000000000000000000000000\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Twitter Identity Provider can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/identityProviderTwitter:IdentityProviderTwitter example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/identityProviders/twitter\n```\n\n ",
      "inputProperties": {
        "apiKey": {
          "description": "App Consumer API key for Twitter.\n",
          "type": "string"
        },
        "apiManagementName": {
          "description": "The Name of the API Management Service where this Twitter Identity Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "apiSecretKey": {
          "description": "App Consumer API secret key for Twitter.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiKey": {
          "description": "App Consumer API key for Twitter.\n",
          "type": "string"
        },
        "apiManagementName": {
          "description": "The Name of the API Management Service where this Twitter Identity Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "apiSecretKey": {
          "description": "App Consumer API secret key for Twitter.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "apiKey",
        "apiManagementName",
        "apiSecretKey",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "apiKey",
        "apiManagementName",
        "apiSecretKey",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IdentityProviderTwitter resources.\n",
        "properties": {
          "apiKey": {
            "description": "App Consumer API key for Twitter.\n",
            "type": "string"
          },
          "apiManagementName": {
            "description": "The Name of the API Management Service where this Twitter Identity Provider should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "apiSecretKey": {
            "description": "App Consumer API secret key for Twitter.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/logger:Logger": {
      "description": "Manages a Logger within an API Management Service.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"other\",\n});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@exmaple.com\",\n    skuName: \"Developer_1\",\n});\nconst exampleLogger = new azure.apimanagement.Logger(\"exampleLogger\", {\n    apiManagementName: exampleService.name,\n    resourceGroupName: exampleResourceGroup.name,\n    resourceId: exampleInsights.id,\n    applicationInsights: {\n        instrumentationKey: exampleInsights.instrumentationKey,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_type=\"other\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@exmaple.com\",\n    sku_name=\"Developer_1\")\nexample_logger = azure.apimanagement.Logger(\"exampleLogger\",\n    api_management_name=example_service.name,\n    resource_group_name=example_resource_group.name,\n    resource_id=example_insights.id,\n    application_insights=azure.apimanagement.LoggerApplicationInsightsArgs(\n        instrumentation_key=example_insights.instrumentation_key,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"other\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@exmaple.com\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleLogger = new Azure.ApiManagement.Logger(\"exampleLogger\", new Azure.ApiManagement.LoggerArgs\n        {\n            ApiManagementName = exampleService.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ResourceId = exampleInsights.Id,\n            ApplicationInsights = new Azure.ApiManagement.Inputs.LoggerApplicationInsightsArgs\n            {\n                InstrumentationKey = exampleInsights.InstrumentationKey,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"other\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@exmaple.com\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewLogger(ctx, \"exampleLogger\", \u0026apimanagement.LoggerArgs{\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tResourceId:        exampleInsights.ID(),\n\t\t\tApplicationInsights: \u0026apimanagement.LoggerApplicationInsightsArgs{\n\t\t\t\tInstrumentationKey: exampleInsights.InstrumentationKey,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Loggers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/logger:Logger example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/example-rg/Microsoft.ApiManagement/service/example-apim/loggers/example-logger\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "applicationInsights": {
          "$ref": "#/types/azure:apimanagement/LoggerApplicationInsights:LoggerApplicationInsights",
          "description": "An `application_insights` block as documented below.\n"
        },
        "buffered": {
          "description": "Specifies whether records should be buffered in the Logger prior to publishing. Defaults to `true`.\n",
          "type": "boolean"
        },
        "description": {
          "description": "A description of this Logger.\n",
          "type": "string"
        },
        "eventhub": {
          "$ref": "#/types/azure:apimanagement/LoggerEventhub:LoggerEventhub",
          "description": "An `eventhub` block as documented below.\n"
        },
        "name": {
          "description": "The name of this Logger, which must be unique within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceId": {
          "description": "The target resource id which will be linked in the API-Management portal page.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "applicationInsights": {
          "$ref": "#/types/azure:apimanagement/LoggerApplicationInsights:LoggerApplicationInsights",
          "description": "An `application_insights` block as documented below.\n"
        },
        "buffered": {
          "description": "Specifies whether records should be buffered in the Logger prior to publishing. Defaults to `true`.\n",
          "type": "boolean"
        },
        "description": {
          "description": "A description of this Logger.\n",
          "type": "string"
        },
        "eventhub": {
          "$ref": "#/types/azure:apimanagement/LoggerEventhub:LoggerEventhub",
          "description": "An `eventhub` block as documented below.\n"
        },
        "name": {
          "description": "The name of this Logger, which must be unique within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceId": {
          "description": "The target resource id which will be linked in the API-Management portal page.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "apiManagementName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Logger resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "applicationInsights": {
            "$ref": "#/types/azure:apimanagement/LoggerApplicationInsights:LoggerApplicationInsights",
            "description": "An `application_insights` block as documented below.\n"
          },
          "buffered": {
            "description": "Specifies whether records should be buffered in the Logger prior to publishing. Defaults to `true`.\n",
            "type": "boolean"
          },
          "description": {
            "description": "A description of this Logger.\n",
            "type": "string"
          },
          "eventhub": {
            "$ref": "#/types/azure:apimanagement/LoggerEventhub:LoggerEventhub",
            "description": "An `eventhub` block as documented below.\n"
          },
          "name": {
            "description": "The name of this Logger, which must be unique within the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceId": {
            "description": "The target resource id which will be linked in the API-Management portal page.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/namedValue:NamedValue": {
      "description": "Manages an API Management Named Value.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"pub1\",\n    publisherEmail: \"pub1@email.com\",\n    skuName: \"Developer_1\",\n});\nconst exampleNamedValue = new azure.apimanagement.NamedValue(\"exampleNamedValue\", {\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    displayName: \"ExampleProperty\",\n    value: \"Example Value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"pub1\",\n    publisher_email=\"pub1@email.com\",\n    sku_name=\"Developer_1\")\nexample_named_value = azure.apimanagement.NamedValue(\"exampleNamedValue\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    display_name=\"ExampleProperty\",\n    value=\"Example Value\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"pub1\",\n            PublisherEmail = \"pub1@email.com\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleNamedValue = new Azure.ApiManagement.NamedValue(\"exampleNamedValue\", new Azure.ApiManagement.NamedValueArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            DisplayName = \"ExampleProperty\",\n            Value = \"Example Value\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"pub1\"),\n\t\t\tPublisherEmail:    pulumi.String(\"pub1@email.com\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewNamedValue(ctx, \"exampleNamedValue\", \u0026apimanagement.NamedValueArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tDisplayName:       pulumi.String(\"ExampleProperty\"),\n\t\t\tValue:             pulumi.String(\"Example Value\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Properties can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/namedValue:NamedValue example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-resources/providers/Microsoft.ApiManagement/service/example-apim/namedValues/example-apimp\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which the API Management Named Value should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of this API Management Named Value.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the API Management Named Value. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Named Value should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secret": {
          "description": "Specifies whether the API Management Named Value is secret. Valid values are `true` or `false`. The default value is `false`.\n",
          "type": "boolean"
        },
        "tags": {
          "description": "A list of tags to be applied to the API Management Named Value.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "value": {
          "description": "The value of this API Management Named Value.\n",
          "type": "string"
        },
        "valueFromKeyVault": {
          "$ref": "#/types/azure:apimanagement/NamedValueValueFromKeyVault:NamedValueValueFromKeyVault",
          "description": "A `value_from_key_vault` block as defined below.\n"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which the API Management Named Value should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of this API Management Named Value.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the API Management Named Value. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Named Value should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secret": {
          "description": "Specifies whether the API Management Named Value is secret. Valid values are `true` or `false`. The default value is `false`.\n",
          "type": "boolean"
        },
        "tags": {
          "description": "A list of tags to be applied to the API Management Named Value.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "value": {
          "description": "The value of this API Management Named Value.\n",
          "type": "string"
        },
        "valueFromKeyVault": {
          "$ref": "#/types/azure:apimanagement/NamedValueValueFromKeyVault:NamedValueValueFromKeyVault",
          "description": "A `value_from_key_vault` block as defined below.\n"
        }
      },
      "required": [
        "apiManagementName",
        "displayName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "apiManagementName",
        "displayName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NamedValue resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service in which the API Management Named Value should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of this API Management Named Value.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the API Management Named Value. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Named Value should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secret": {
            "description": "Specifies whether the API Management Named Value is secret. Valid values are `true` or `false`. The default value is `false`.\n",
            "type": "boolean"
          },
          "tags": {
            "description": "A list of tags to be applied to the API Management Named Value.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "value": {
            "description": "The value of this API Management Named Value.\n",
            "type": "string"
          },
          "valueFromKeyVault": {
            "$ref": "#/types/azure:apimanagement/NamedValueValueFromKeyVault:NamedValueValueFromKeyVault",
            "description": "A `value_from_key_vault` block as defined below.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/notificationRecipientEmail:NotificationRecipientEmail": {
      "description": "Manages a API Management Notification Recipient Email.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@terraform.io\",\n    skuName: \"Developer_1\",\n});\nconst exampleNotificationRecipientEmail = new azure.apimanagement.NotificationRecipientEmail(\"exampleNotificationRecipientEmail\", {\n    apiManagementId: exampleService.id,\n    notificationType: \"AccountClosedPublisher\",\n    email: \"foo@bar.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@terraform.io\",\n    sku_name=\"Developer_1\")\nexample_notification_recipient_email = azure.apimanagement.NotificationRecipientEmail(\"exampleNotificationRecipientEmail\",\n    api_management_id=example_service.id,\n    notification_type=\"AccountClosedPublisher\",\n    email=\"foo@bar.com\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@terraform.io\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleNotificationRecipientEmail = new Azure.ApiManagement.NotificationRecipientEmail(\"exampleNotificationRecipientEmail\", new Azure.ApiManagement.NotificationRecipientEmailArgs\n        {\n            ApiManagementId = exampleService.Id,\n            NotificationType = \"AccountClosedPublisher\",\n            Email = \"foo@bar.com\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@terraform.io\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewNotificationRecipientEmail(ctx, \"exampleNotificationRecipientEmail\", \u0026apimanagement.NotificationRecipientEmailArgs{\n\t\t\tApiManagementId:  exampleService.ID(),\n\t\t\tNotificationType: pulumi.String(\"AccountClosedPublisher\"),\n\t\t\tEmail:            pulumi.String(\"foo@bar.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Notification Recipient Emails can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/notificationRecipientEmail:NotificationRecipientEmail example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/notifications/notificationName1/recipientEmails/email1\n```\n\n ",
      "inputProperties": {
        "apiManagementId": {
          "description": "The ID of the API Management Service from which to create this Notification Recipient Email. Changing this forces a new API Management Notification Recipient Email to be created.\n",
          "type": "string"
        },
        "email": {
          "description": "The recipient email address. Changing this forces a new API Management Notification Recipient Email to be created.\n",
          "type": "string"
        },
        "notificationType": {
          "description": "The Notification Name to be received. Changing this forces a new API Management Notification Recipient Email to be created. Possible values are `AccountClosedPublisher`, `BCC`, `NewApplicationNotificationMessage`, `NewIssuePublisherNotificationMessage`, `PurchasePublisherNotificationMessage`, `QuotaLimitApproachingPublisherNotificationMessage`, and `RequestPublisherNotificationMessage`.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementId": {
          "description": "The ID of the API Management Service from which to create this Notification Recipient Email. Changing this forces a new API Management Notification Recipient Email to be created.\n",
          "type": "string"
        },
        "email": {
          "description": "The recipient email address. Changing this forces a new API Management Notification Recipient Email to be created.\n",
          "type": "string"
        },
        "notificationType": {
          "description": "The Notification Name to be received. Changing this forces a new API Management Notification Recipient Email to be created. Possible values are `AccountClosedPublisher`, `BCC`, `NewApplicationNotificationMessage`, `NewIssuePublisherNotificationMessage`, `PurchasePublisherNotificationMessage`, `QuotaLimitApproachingPublisherNotificationMessage`, and `RequestPublisherNotificationMessage`.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementId",
        "email",
        "notificationType"
      ],
      "requiredInputs": [
        "apiManagementId",
        "email",
        "notificationType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NotificationRecipientEmail resources.\n",
        "properties": {
          "apiManagementId": {
            "description": "The ID of the API Management Service from which to create this Notification Recipient Email. Changing this forces a new API Management Notification Recipient Email to be created.\n",
            "type": "string"
          },
          "email": {
            "description": "The recipient email address. Changing this forces a new API Management Notification Recipient Email to be created.\n",
            "type": "string"
          },
          "notificationType": {
            "description": "The Notification Name to be received. Changing this forces a new API Management Notification Recipient Email to be created. Possible values are `AccountClosedPublisher`, `BCC`, `NewApplicationNotificationMessage`, `NewIssuePublisherNotificationMessage`, `PurchasePublisherNotificationMessage`, `QuotaLimitApproachingPublisherNotificationMessage`, and `RequestPublisherNotificationMessage`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/openIdConnectProvider:OpenIdConnectProvider": {
      "description": "Manages an OpenID Connect Provider within a API Management Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@exmaple.com\",\n    skuName: \"Developer_1\",\n});\nconst exampleOpenIdConnectProvider = new azure.apimanagement.OpenIdConnectProvider(\"exampleOpenIdConnectProvider\", {\n    apiManagementName: exampleService.name,\n    resourceGroupName: exampleResourceGroup.name,\n    clientId: \"00001111-2222-3333-4444-555566667777\",\n    displayName: \"Example Provider\",\n    metadataEndpoint: \"https://example.com/example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@exmaple.com\",\n    sku_name=\"Developer_1\")\nexample_open_id_connect_provider = azure.apimanagement.OpenIdConnectProvider(\"exampleOpenIdConnectProvider\",\n    api_management_name=example_service.name,\n    resource_group_name=example_resource_group.name,\n    client_id=\"00001111-2222-3333-4444-555566667777\",\n    display_name=\"Example Provider\",\n    metadata_endpoint=\"https://example.com/example\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@exmaple.com\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleOpenIdConnectProvider = new Azure.ApiManagement.OpenIdConnectProvider(\"exampleOpenIdConnectProvider\", new Azure.ApiManagement.OpenIdConnectProviderArgs\n        {\n            ApiManagementName = exampleService.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ClientId = \"00001111-2222-3333-4444-555566667777\",\n            DisplayName = \"Example Provider\",\n            MetadataEndpoint = \"https://example.com/example\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@exmaple.com\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewOpenIdConnectProvider(ctx, \"exampleOpenIdConnectProvider\", \u0026apimanagement.OpenIdConnectProviderArgs{\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tClientId:          pulumi.String(\"00001111-2222-3333-4444-555566667777\"),\n\t\t\tDisplayName:       pulumi.String(\"Example Provider\"),\n\t\t\tMetadataEndpoint:  pulumi.String(\"https://example.com/example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management OpenID Connect Providers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/openIdConnectProvider:OpenIdConnectProvider example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/openidConnectProviders/provider1\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which this OpenID Connect Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clientId": {
          "description": "The Client ID used for the Client Application.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "The Client Secret used for the Client Application.\n",
          "type": "string"
        },
        "description": {
          "description": "A description of this OpenID Connect Provider.\n",
          "type": "string"
        },
        "displayName": {
          "description": "A user-friendly name for this OpenID Connect Provider.\n",
          "type": "string"
        },
        "metadataEndpoint": {
          "description": "The URI of the Metadata endpoint.\n",
          "type": "string"
        },
        "name": {
          "description": "the Name of the OpenID Connect Provider which should be created within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which this OpenID Connect Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clientId": {
          "description": "The Client ID used for the Client Application.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "The Client Secret used for the Client Application.\n",
          "type": "string"
        },
        "description": {
          "description": "A description of this OpenID Connect Provider.\n",
          "type": "string"
        },
        "displayName": {
          "description": "A user-friendly name for this OpenID Connect Provider.\n",
          "type": "string"
        },
        "metadataEndpoint": {
          "description": "The URI of the Metadata endpoint.\n",
          "type": "string"
        },
        "name": {
          "description": "the Name of the OpenID Connect Provider which should be created within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "clientId",
        "clientSecret",
        "displayName",
        "metadataEndpoint",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "apiManagementName",
        "clientId",
        "clientSecret",
        "displayName",
        "metadataEndpoint",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering OpenIdConnectProvider resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service in which this OpenID Connect Provider should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "clientId": {
            "description": "The Client ID used for the Client Application.\n",
            "type": "string"
          },
          "clientSecret": {
            "description": "The Client Secret used for the Client Application.\n",
            "type": "string"
          },
          "description": {
            "description": "A description of this OpenID Connect Provider.\n",
            "type": "string"
          },
          "displayName": {
            "description": "A user-friendly name for this OpenID Connect Provider.\n",
            "type": "string"
          },
          "metadataEndpoint": {
            "description": "The URI of the Metadata endpoint.\n",
            "type": "string"
          },
          "name": {
            "description": "the Name of the OpenID Connect Provider which should be created within the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/policy:Policy": {
      "description": "Manages a API Management service Policy.\n\n\u003e **NOTE:** This resource will, upon creation, **overwrite any existing policy in the API Management service**, as there is no feasible way to test whether the policy has been modified from the default. Similarly, when this resource is destroyed, the API Management service will revert to its default policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * from \"fs\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"pub1\",\n    publisherEmail: \"pub1@email.com\",\n    skuName: \"Developer_1\",\n});\nconst exampleNamedValue = new azure.apimanagement.NamedValue(\"exampleNamedValue\", {\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    displayName: \"ExampleProperty\",\n    value: \"Example Value\",\n});\nconst examplePolicy = new azure.apimanagement.Policy(\"examplePolicy\", {\n    apiManagementId: exampleService.id,\n    xmlContent: fs.readFileSync(\"example.xml\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"pub1\",\n    publisher_email=\"pub1@email.com\",\n    sku_name=\"Developer_1\")\nexample_named_value = azure.apimanagement.NamedValue(\"exampleNamedValue\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    display_name=\"ExampleProperty\",\n    value=\"Example Value\")\nexample_policy = azure.apimanagement.Policy(\"examplePolicy\",\n    api_management_id=example_service.id,\n    xml_content=(lambda path: open(path).read())(\"example.xml\"))\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"pub1\",\n            PublisherEmail = \"pub1@email.com\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleNamedValue = new Azure.ApiManagement.NamedValue(\"exampleNamedValue\", new Azure.ApiManagement.NamedValueArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            DisplayName = \"ExampleProperty\",\n            Value = \"Example Value\",\n        });\n        var examplePolicy = new Azure.ApiManagement.Policy(\"examplePolicy\", new Azure.ApiManagement.PolicyArgs\n        {\n            ApiManagementId = exampleService.Id,\n            XmlContent = File.ReadAllText(\"example.xml\"),\n        });\n    }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management service Policys can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/policy:Policy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/instance1/policies/policy\n```\n\n ",
      "inputProperties": {
        "apiManagementId": {
          "description": "The ID of the API Management service. Changing this forces a new API Management service Policy to be created.\n",
          "type": "string"
        },
        "xmlContent": {
          "description": "The XML Content for this Policy as a string.\n",
          "type": "string"
        },
        "xmlLink": {
          "description": "A link to a Policy XML Document, which must be publicly available.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementId": {
          "description": "The ID of the API Management service. Changing this forces a new API Management service Policy to be created.\n",
          "type": "string"
        },
        "xmlContent": {
          "description": "The XML Content for this Policy as a string.\n",
          "type": "string"
        },
        "xmlLink": {
          "description": "A link to a Policy XML Document, which must be publicly available.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementId",
        "xmlContent"
      ],
      "requiredInputs": [
        "apiManagementId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Policy resources.\n",
        "properties": {
          "apiManagementId": {
            "description": "The ID of the API Management service. Changing this forces a new API Management service Policy to be created.\n",
            "type": "string"
          },
          "xmlContent": {
            "description": "The XML Content for this Policy as a string.\n",
            "type": "string"
          },
          "xmlLink": {
            "description": "A link to a Policy XML Document, which must be publicly available.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/product:Product": {
      "description": "Manages an API Management Product.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@exmaple.com\",\n    skuName: \"Developer_1\",\n});\nconst exampleProduct = new azure.apimanagement.Product(\"exampleProduct\", {\n    productId: \"test-product\",\n    apiManagementName: exampleService.name,\n    resourceGroupName: exampleResourceGroup.name,\n    displayName: \"Test Product\",\n    subscriptionRequired: true,\n    approvalRequired: true,\n    published: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@exmaple.com\",\n    sku_name=\"Developer_1\")\nexample_product = azure.apimanagement.Product(\"exampleProduct\",\n    product_id=\"test-product\",\n    api_management_name=example_service.name,\n    resource_group_name=example_resource_group.name,\n    display_name=\"Test Product\",\n    subscription_required=True,\n    approval_required=True,\n    published=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@exmaple.com\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleProduct = new Azure.ApiManagement.Product(\"exampleProduct\", new Azure.ApiManagement.ProductArgs\n        {\n            ProductId = \"test-product\",\n            ApiManagementName = exampleService.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            DisplayName = \"Test Product\",\n            SubscriptionRequired = true,\n            ApprovalRequired = true,\n            Published = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@exmaple.com\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewProduct(ctx, \"exampleProduct\", \u0026apimanagement.ProductArgs{\n\t\t\tProductId:            pulumi.String(\"test-product\"),\n\t\t\tApiManagementName:    exampleService.Name,\n\t\t\tResourceGroupName:    exampleResourceGroup.Name,\n\t\t\tDisplayName:          pulumi.String(\"Test Product\"),\n\t\t\tSubscriptionRequired: pulumi.Bool(true),\n\t\t\tApprovalRequired:     pulumi.Bool(true),\n\t\t\tPublished:            pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Products can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/product:Product example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/products/myproduct\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "approvalRequired": {
          "description": "Do subscribers need to be approved prior to being able to use the Product?\n",
          "type": "boolean"
        },
        "description": {
          "description": "A description of this Product, which may include HTML formatting tags.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The Display Name for this API Management Product.\n",
          "type": "string"
        },
        "productId": {
          "description": "The Identifier for this Product, which must be unique within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "published": {
          "description": "Is this Product Published?\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service should be exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subscriptionRequired": {
          "description": "Is a Subscription required to access API's included in this Product?\n",
          "type": "boolean"
        },
        "subscriptionsLimit": {
          "description": "The number of subscriptions a user can have to this Product at the same time.\n",
          "type": "integer"
        },
        "terms": {
          "description": "The Terms and Conditions for this Product, which must be accepted by Developers before they can begin the Subscription process.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "approvalRequired": {
          "description": "Do subscribers need to be approved prior to being able to use the Product?\n",
          "type": "boolean"
        },
        "description": {
          "description": "A description of this Product, which may include HTML formatting tags.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The Display Name for this API Management Product.\n",
          "type": "string"
        },
        "productId": {
          "description": "The Identifier for this Product, which must be unique within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "published": {
          "description": "Is this Product Published?\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service should be exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subscriptionRequired": {
          "description": "Is a Subscription required to access API's included in this Product?\n",
          "type": "boolean"
        },
        "subscriptionsLimit": {
          "description": "The number of subscriptions a user can have to this Product at the same time.\n",
          "type": "integer"
        },
        "terms": {
          "description": "The Terms and Conditions for this Product, which must be accepted by Developers before they can begin the Subscription process.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "displayName",
        "productId",
        "published",
        "resourceGroupName",
        "subscriptionRequired"
      ],
      "requiredInputs": [
        "apiManagementName",
        "displayName",
        "productId",
        "published",
        "resourceGroupName",
        "subscriptionRequired"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Product resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "approvalRequired": {
            "description": "Do subscribers need to be approved prior to being able to use the Product?\n",
            "type": "boolean"
          },
          "description": {
            "description": "A description of this Product, which may include HTML formatting tags.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The Display Name for this API Management Product.\n",
            "type": "string"
          },
          "productId": {
            "description": "The Identifier for this Product, which must be unique within the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "published": {
            "description": "Is this Product Published?\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Service should be exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subscriptionRequired": {
            "description": "Is a Subscription required to access API's included in this Product?\n",
            "type": "boolean"
          },
          "subscriptionsLimit": {
            "description": "The number of subscriptions a user can have to this Product at the same time.\n",
            "type": "integer"
          },
          "terms": {
            "description": "The Terms and Conditions for this Product, which must be accepted by Developers before they can begin the Subscription process.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/productApi:ProductApi": {
      "description": "Manages an API Management API Assignment to a Product.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleService = azure.apimanagement.getService({\n    name: \"example-api\",\n    resourceGroupName: \"example-resources\",\n});\nconst exampleApi = Promise.all([exampleService, exampleService]).then(([exampleService, exampleService1]) =\u003e azure.apimanagement.getApi({\n    name: \"search-api\",\n    apiManagementName: exampleService.name,\n    resourceGroupName: exampleService1.resourceGroupName,\n    revision: \"2\",\n}));\nconst exampleProduct = Promise.all([exampleService, exampleService]).then(([exampleService, exampleService1]) =\u003e azure.apimanagement.getProduct({\n    productId: \"my-product\",\n    apiManagementName: exampleService.name,\n    resourceGroupName: exampleService1.resourceGroupName,\n}));\nconst exampleProductApi = new azure.apimanagement.ProductApi(\"exampleProductApi\", {\n    apiName: exampleApi.then(exampleApi =\u003e exampleApi.name),\n    productId: exampleProduct.then(exampleProduct =\u003e exampleProduct.productId),\n    apiManagementName: exampleService.then(exampleService =\u003e exampleService.name),\n    resourceGroupName: exampleService.then(exampleService =\u003e exampleService.resourceGroupName),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_service = azure.apimanagement.get_service(name=\"example-api\",\n    resource_group_name=\"example-resources\")\nexample_api = azure.apimanagement.get_api(name=\"search-api\",\n    api_management_name=example_service.name,\n    resource_group_name=example_service.resource_group_name,\n    revision=\"2\")\nexample_product = azure.apimanagement.get_product(product_id=\"my-product\",\n    api_management_name=example_service.name,\n    resource_group_name=example_service.resource_group_name)\nexample_product_api = azure.apimanagement.ProductApi(\"exampleProductApi\",\n    api_name=example_api.name,\n    product_id=example_product.product_id,\n    api_management_name=example_service.name,\n    resource_group_name=example_service.resource_group_name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleService = Output.Create(Azure.ApiManagement.GetService.InvokeAsync(new Azure.ApiManagement.GetServiceArgs\n        {\n            Name = \"example-api\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        var exampleApi = Output.Tuple(exampleService, exampleService).Apply(values =\u003e\n        {\n            var exampleService = values.Item1;\n            var exampleService1 = values.Item2;\n            return Output.Create(Azure.ApiManagement.GetApi.InvokeAsync(new Azure.ApiManagement.GetApiArgs\n            {\n                Name = \"search-api\",\n                ApiManagementName = exampleService.Name,\n                ResourceGroupName = exampleService1.ResourceGroupName,\n                Revision = \"2\",\n            }));\n        });\n        var exampleProduct = Output.Tuple(exampleService, exampleService).Apply(values =\u003e\n        {\n            var exampleService = values.Item1;\n            var exampleService1 = values.Item2;\n            return Output.Create(Azure.ApiManagement.GetProduct.InvokeAsync(new Azure.ApiManagement.GetProductArgs\n            {\n                ProductId = \"my-product\",\n                ApiManagementName = exampleService.Name,\n                ResourceGroupName = exampleService1.ResourceGroupName,\n            }));\n        });\n        var exampleProductApi = new Azure.ApiManagement.ProductApi(\"exampleProductApi\", new Azure.ApiManagement.ProductApiArgs\n        {\n            ApiName = exampleApi.Apply(exampleApi =\u003e exampleApi.Name),\n            ProductId = exampleProduct.Apply(exampleProduct =\u003e exampleProduct.ProductId),\n            ApiManagementName = exampleService.Apply(exampleService =\u003e exampleService.Name),\n            ResourceGroupName = exampleService.Apply(exampleService =\u003e exampleService.ResourceGroupName),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleService, err := apimanagement.LookupService(ctx, \u0026apimanagement.LookupServiceArgs{\n\t\t\tName:              \"example-api\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleApi, err := apimanagement.LookupApi(ctx, \u0026apimanagement.LookupApiArgs{\n\t\t\tName:              \"search-api\",\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tResourceGroupName: exampleService.ResourceGroupName,\n\t\t\tRevision:          \"2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleProduct, err := apimanagement.LookupProduct(ctx, \u0026apimanagement.LookupProductArgs{\n\t\t\tProductId:         \"my-product\",\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tResourceGroupName: exampleService.ResourceGroupName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewProductApi(ctx, \"exampleProductApi\", \u0026apimanagement.ProductApiArgs{\n\t\t\tApiName:           pulumi.String(exampleApi.Name),\n\t\t\tProductId:         pulumi.String(exampleProduct.ProductId),\n\t\t\tApiManagementName: pulumi.String(exampleService.Name),\n\t\t\tResourceGroupName: pulumi.String(exampleService.ResourceGroupName),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Product API's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/productApi:ProductApi example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/products/exampleId/apis/apiId\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "apiName": {
          "description": "The Name of the API Management API within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "productId": {
          "description": "The ID of the API Management Product within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "apiName": {
          "description": "The Name of the API Management API within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "productId": {
          "description": "The ID of the API Management Product within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "apiName",
        "productId",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "apiManagementName",
        "apiName",
        "productId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ProductApi resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "apiName": {
            "description": "The Name of the API Management API within the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "productId": {
            "description": "The ID of the API Management Product within the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/productGroup:ProductGroup": {
      "description": "Manages an API Management Product Assignment to a Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleService = azure.apimanagement.getService({\n    name: \"example-api\",\n    resourceGroupName: \"example-resources\",\n});\nconst exampleProduct = Promise.all([exampleService, exampleService]).then(([exampleService, exampleService1]) =\u003e azure.apimanagement.getProduct({\n    productId: \"my-product\",\n    apiManagementName: exampleService.name,\n    resourceGroupName: exampleService1.resourceGroupName,\n}));\nconst exampleGroup = Promise.all([exampleService, exampleService]).then(([exampleService, exampleService1]) =\u003e azure.apimanagement.getGroup({\n    name: \"my-group\",\n    apiManagementName: exampleService.name,\n    resourceGroupName: exampleService1.resourceGroupName,\n}));\nconst exampleProductGroup = new azure.apimanagement.ProductGroup(\"exampleProductGroup\", {\n    productId: exampleProduct.then(exampleProduct =\u003e exampleProduct.productId),\n    groupName: exampleGroup.then(exampleGroup =\u003e exampleGroup.name),\n    apiManagementName: exampleService.then(exampleService =\u003e exampleService.name),\n    resourceGroupName: exampleService.then(exampleService =\u003e exampleService.resourceGroupName),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_service = azure.apimanagement.get_service(name=\"example-api\",\n    resource_group_name=\"example-resources\")\nexample_product = azure.apimanagement.get_product(product_id=\"my-product\",\n    api_management_name=example_service.name,\n    resource_group_name=example_service.resource_group_name)\nexample_group = azure.apimanagement.get_group(name=\"my-group\",\n    api_management_name=example_service.name,\n    resource_group_name=example_service.resource_group_name)\nexample_product_group = azure.apimanagement.ProductGroup(\"exampleProductGroup\",\n    product_id=example_product.product_id,\n    group_name=example_group.name,\n    api_management_name=example_service.name,\n    resource_group_name=example_service.resource_group_name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleService = Output.Create(Azure.ApiManagement.GetService.InvokeAsync(new Azure.ApiManagement.GetServiceArgs\n        {\n            Name = \"example-api\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        var exampleProduct = Output.Tuple(exampleService, exampleService).Apply(values =\u003e\n        {\n            var exampleService = values.Item1;\n            var exampleService1 = values.Item2;\n            return Output.Create(Azure.ApiManagement.GetProduct.InvokeAsync(new Azure.ApiManagement.GetProductArgs\n            {\n                ProductId = \"my-product\",\n                ApiManagementName = exampleService.Name,\n                ResourceGroupName = exampleService1.ResourceGroupName,\n            }));\n        });\n        var exampleGroup = Output.Tuple(exampleService, exampleService).Apply(values =\u003e\n        {\n            var exampleService = values.Item1;\n            var exampleService1 = values.Item2;\n            return Output.Create(Azure.ApiManagement.GetGroup.InvokeAsync(new Azure.ApiManagement.GetGroupArgs\n            {\n                Name = \"my-group\",\n                ApiManagementName = exampleService.Name,\n                ResourceGroupName = exampleService1.ResourceGroupName,\n            }));\n        });\n        var exampleProductGroup = new Azure.ApiManagement.ProductGroup(\"exampleProductGroup\", new Azure.ApiManagement.ProductGroupArgs\n        {\n            ProductId = exampleProduct.Apply(exampleProduct =\u003e exampleProduct.ProductId),\n            GroupName = exampleGroup.Apply(exampleGroup =\u003e exampleGroup.Name),\n            ApiManagementName = exampleService.Apply(exampleService =\u003e exampleService.Name),\n            ResourceGroupName = exampleService.Apply(exampleService =\u003e exampleService.ResourceGroupName),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleService, err := apimanagement.LookupService(ctx, \u0026apimanagement.LookupServiceArgs{\n\t\t\tName:              \"example-api\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleProduct, err := apimanagement.LookupProduct(ctx, \u0026apimanagement.LookupProductArgs{\n\t\t\tProductId:         \"my-product\",\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tResourceGroupName: exampleService.ResourceGroupName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGroup, err := apimanagement.LookupGroup(ctx, \u0026apimanagement.LookupGroupArgs{\n\t\t\tName:              \"my-group\",\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tResourceGroupName: exampleService.ResourceGroupName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewProductGroup(ctx, \"exampleProductGroup\", \u0026apimanagement.ProductGroupArgs{\n\t\t\tProductId:         pulumi.String(exampleProduct.ProductId),\n\t\t\tGroupName:         pulumi.String(exampleGroup.Name),\n\t\t\tApiManagementName: pulumi.String(exampleService.Name),\n\t\t\tResourceGroupName: pulumi.String(exampleService.ResourceGroupName),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Product Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/productGroup:ProductGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/products/exampleId/groups/groupId\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "groupName": {
          "description": "The Name of the API Management Group within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "productId": {
          "description": "The ID of the API Management Product within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "groupName": {
          "description": "The Name of the API Management Group within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "productId": {
          "description": "The ID of the API Management Product within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "groupName",
        "productId",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "apiManagementName",
        "groupName",
        "productId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ProductGroup resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "groupName": {
            "description": "The Name of the API Management Group within the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "productId": {
            "description": "The ID of the API Management Product within the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/productPolicy:ProductPolicy": {
      "description": "Manages an API Management Product Policy\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleProduct = azure.apimanagement.getProduct({\n    productId: \"my-product\",\n    apiManagementName: \"example-apim\",\n    resourceGroupName: \"search-service\",\n});\nconst exampleProductPolicy = new azure.apimanagement.ProductPolicy(\"exampleProductPolicy\", {\n    productId: exampleProduct.then(exampleProduct =\u003e exampleProduct.productId),\n    apiManagementName: exampleProduct.then(exampleProduct =\u003e exampleProduct.apiManagementName),\n    resourceGroupName: exampleProduct.then(exampleProduct =\u003e exampleProduct.resourceGroupName),\n    xmlContent: `\u003cpolicies\u003e\n  \u003cinbound\u003e\n    \u003cfind-and-replace from=\"xyz\" to=\"abc\" /\u003e\n  \u003c/inbound\u003e\n\u003c/policies\u003e\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_product = azure.apimanagement.get_product(product_id=\"my-product\",\n    api_management_name=\"example-apim\",\n    resource_group_name=\"search-service\")\nexample_product_policy = azure.apimanagement.ProductPolicy(\"exampleProductPolicy\",\n    product_id=example_product.product_id,\n    api_management_name=example_product.api_management_name,\n    resource_group_name=example_product.resource_group_name,\n    xml_content=\"\"\"\u003cpolicies\u003e\n  \u003cinbound\u003e\n    \u003cfind-and-replace from=\"xyz\" to=\"abc\" /\u003e\n  \u003c/inbound\u003e\n\u003c/policies\u003e\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleProduct = Output.Create(Azure.ApiManagement.GetProduct.InvokeAsync(new Azure.ApiManagement.GetProductArgs\n        {\n            ProductId = \"my-product\",\n            ApiManagementName = \"example-apim\",\n            ResourceGroupName = \"search-service\",\n        }));\n        var exampleProductPolicy = new Azure.ApiManagement.ProductPolicy(\"exampleProductPolicy\", new Azure.ApiManagement.ProductPolicyArgs\n        {\n            ProductId = exampleProduct.Apply(exampleProduct =\u003e exampleProduct.ProductId),\n            ApiManagementName = exampleProduct.Apply(exampleProduct =\u003e exampleProduct.ApiManagementName),\n            ResourceGroupName = exampleProduct.Apply(exampleProduct =\u003e exampleProduct.ResourceGroupName),\n            XmlContent = @\"\u003cpolicies\u003e\n  \u003cinbound\u003e\n    \u003cfind-and-replace from=\"\"xyz\"\" to=\"\"abc\"\" /\u003e\n  \u003c/inbound\u003e\n\u003c/policies\u003e\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleProduct, err := apimanagement.LookupProduct(ctx, \u0026apimanagement.LookupProductArgs{\n\t\t\tProductId:         \"my-product\",\n\t\t\tApiManagementName: \"example-apim\",\n\t\t\tResourceGroupName: \"search-service\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewProductPolicy(ctx, \"exampleProductPolicy\", \u0026apimanagement.ProductPolicyArgs{\n\t\t\tProductId:         pulumi.String(exampleProduct.ProductId),\n\t\t\tApiManagementName: pulumi.String(exampleProduct.ApiManagementName),\n\t\t\tResourceGroupName: pulumi.String(exampleProduct.ResourceGroupName),\n\t\t\tXmlContent:        pulumi.String(fmt.Sprintf(\"%v%v%v%v%v\", \"\u003cpolicies\u003e\\n\", \"  \u003cinbound\u003e\\n\", \"    \u003cfind-and-replace from=\\\"xyz\\\" to=\\\"abc\\\" /\u003e\\n\", \"  \u003c/inbound\u003e\\n\", \"\u003c/policies\u003e\\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Product Policy can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/productPolicy:ProductPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/products/exampleId/policies/policy\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "productId": {
          "description": "The ID of the API Management Product within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "xmlContent": {
          "description": "The XML Content for this Policy.\n",
          "type": "string"
        },
        "xmlLink": {
          "description": "A link to a Policy XML Document, which must be publicly available.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "productId": {
          "description": "The ID of the API Management Product within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "xmlContent": {
          "description": "The XML Content for this Policy.\n",
          "type": "string"
        },
        "xmlLink": {
          "description": "A link to a Policy XML Document, which must be publicly available.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "productId",
        "resourceGroupName",
        "xmlContent"
      ],
      "requiredInputs": [
        "apiManagementName",
        "productId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ProductPolicy resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "productId": {
            "description": "The ID of the API Management Product within the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "xmlContent": {
            "description": "The XML Content for this Policy.\n",
            "type": "string"
          },
          "xmlLink": {
            "description": "A link to a Policy XML Document, which must be publicly available.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/property:Property": {
      "description": "Manages an API Management Property.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"pub1\",\n    publisherEmail: \"pub1@email.com\",\n    skuName: \"Developer_1\",\n});\nconst exampleProperty = new azure.apimanagement.Property(\"exampleProperty\", {\n    resourceGroupName: exampleResourceGroup.name,\n    apiManagementName: exampleService.name,\n    displayName: \"ExampleProperty\",\n    value: \"Example Value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"pub1\",\n    publisher_email=\"pub1@email.com\",\n    sku_name=\"Developer_1\")\nexample_property = azure.apimanagement.Property(\"exampleProperty\",\n    resource_group_name=example_resource_group.name,\n    api_management_name=example_service.name,\n    display_name=\"ExampleProperty\",\n    value=\"Example Value\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"pub1\",\n            PublisherEmail = \"pub1@email.com\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleProperty = new Azure.ApiManagement.Property(\"exampleProperty\", new Azure.ApiManagement.PropertyArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApiManagementName = exampleService.Name,\n            DisplayName = \"ExampleProperty\",\n            Value = \"Example Value\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"pub1\"),\n\t\t\tPublisherEmail:    pulumi.String(\"pub1@email.com\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewProperty(ctx, \"exampleProperty\", \u0026apimanagement.PropertyArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tDisplayName:       pulumi.String(\"ExampleProperty\"),\n\t\t\tValue:             pulumi.String(\"Example Value\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Properties can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/property:Property example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-resources/providers/Microsoft.ApiManagement/service/example-apim/namedValues/example-apimp\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which the API Management Property should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of this API Management Property.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the API Management Property. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Property should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secret": {
          "description": "Specifies whether the API Management Property is secret. Valid values are `true` or `false`. The default value is `false`.\n",
          "type": "boolean"
        },
        "tags": {
          "description": "A list of tags to be applied to the API Management Property.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "value": {
          "description": "The value of this API Management Property.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which the API Management Property should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of this API Management Property.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the API Management Property. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Property should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secret": {
          "description": "Specifies whether the API Management Property is secret. Valid values are `true` or `false`. The default value is `false`.\n",
          "type": "boolean"
        },
        "tags": {
          "description": "A list of tags to be applied to the API Management Property.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "value": {
          "description": "The value of this API Management Property.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "displayName",
        "name",
        "resourceGroupName",
        "value"
      ],
      "requiredInputs": [
        "apiManagementName",
        "displayName",
        "resourceGroupName",
        "value"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Property resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service in which the API Management Property should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of this API Management Property.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the API Management Property. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Property should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secret": {
            "description": "Specifies whether the API Management Property is secret. Valid values are `true` or `false`. The default value is `false`.\n",
            "type": "boolean"
          },
          "tags": {
            "description": "A list of tags to be applied to the API Management Property.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "value": {
            "description": "The value of this API Management Property.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/redisCache:RedisCache": {
      "description": "Manages a API Management Redis Cache.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"pub1\",\n    publisherEmail: \"pub1@email.com\",\n    skuName: \"Consumption_0\",\n});\nconst exampleCache = new azure.redis.Cache(\"exampleCache\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    capacity: 1,\n    family: \"C\",\n    skuName: \"Basic\",\n    enableNonSslPort: false,\n    minimumTlsVersion: \"1.2\",\n    redisConfiguration: {},\n});\nconst exampleRedisCache = new azure.apimanagement.RedisCache(\"exampleRedisCache\", {\n    apiManagementId: exampleService.id,\n    connectionString: exampleCache.primaryConnectionString,\n    description: \"Redis cache instances\",\n    redisCacheId: exampleCache.id,\n    cacheLocation: \"East Us\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"pub1\",\n    publisher_email=\"pub1@email.com\",\n    sku_name=\"Consumption_0\")\nexample_cache = azure.redis.Cache(\"exampleCache\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    capacity=1,\n    family=\"C\",\n    sku_name=\"Basic\",\n    enable_non_ssl_port=False,\n    minimum_tls_version=\"1.2\",\n    redis_configuration=azure.redis.CacheRedisConfigurationArgs())\nexample_redis_cache = azure.apimanagement.RedisCache(\"exampleRedisCache\",\n    api_management_id=example_service.id,\n    connection_string=example_cache.primary_connection_string,\n    description=\"Redis cache instances\",\n    redis_cache_id=example_cache.id,\n    cache_location=\"East Us\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"pub1\",\n            PublisherEmail = \"pub1@email.com\",\n            SkuName = \"Consumption_0\",\n        });\n        var exampleCache = new Azure.Redis.Cache(\"exampleCache\", new Azure.Redis.CacheArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Capacity = 1,\n            Family = \"C\",\n            SkuName = \"Basic\",\n            EnableNonSslPort = false,\n            MinimumTlsVersion = \"1.2\",\n            RedisConfiguration = ,\n        });\n        var exampleRedisCache = new Azure.ApiManagement.RedisCache(\"exampleRedisCache\", new Azure.ApiManagement.RedisCacheArgs\n        {\n            ApiManagementId = exampleService.Id,\n            ConnectionString = exampleCache.PrimaryConnectionString,\n            Description = \"Redis cache instances\",\n            RedisCacheId = exampleCache.Id,\n            CacheLocation = \"East Us\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/redis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"pub1\"),\n\t\t\tPublisherEmail:    pulumi.String(\"pub1@email.com\"),\n\t\t\tSkuName:           pulumi.String(\"Consumption_0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCache, err := redis.NewCache(ctx, \"exampleCache\", \u0026redis.CacheArgs{\n\t\t\tLocation:           exampleResourceGroup.Location,\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tCapacity:           pulumi.Int(1),\n\t\t\tFamily:             pulumi.String(\"C\"),\n\t\t\tSkuName:            pulumi.String(\"Basic\"),\n\t\t\tEnableNonSslPort:   pulumi.Bool(false),\n\t\t\tMinimumTlsVersion:  pulumi.String(\"1.2\"),\n\t\t\tRedisConfiguration: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewRedisCache(ctx, \"exampleRedisCache\", \u0026apimanagement.RedisCacheArgs{\n\t\t\tApiManagementId:  exampleService.ID(),\n\t\t\tConnectionString: exampleCache.PrimaryConnectionString,\n\t\t\tDescription:      pulumi.String(\"Redis cache instances\"),\n\t\t\tRedisCacheId:     exampleCache.ID(),\n\t\t\tCacheLocation:    pulumi.String(\"East Us\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Redis Caches can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/redisCache:RedisCache example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/caches/cache1\n```\n\n ",
      "inputProperties": {
        "apiManagementId": {
          "description": "The resource ID of the Api Management Service from which to create this external cache. Changing this forces a new API Management Redis Cache to be created.\n",
          "type": "string"
        },
        "cacheLocation": {
          "description": "The location where to use cache from. Possible values are `default` and valid Azure regions. Defaults to `default`.\n",
          "type": "string"
        },
        "connectionString": {
          "description": "The connection string to the Cache for Redis.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the API Management Redis Cache.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this API Management Redis Cache. Changing this forces a new API Management Redis Cache to be created.\n",
          "type": "string"
        },
        "redisCacheId": {
          "description": "The resource ID of the Cache for Redis.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementId": {
          "description": "The resource ID of the Api Management Service from which to create this external cache. Changing this forces a new API Management Redis Cache to be created.\n",
          "type": "string"
        },
        "cacheLocation": {
          "description": "The location where to use cache from. Possible values are `default` and valid Azure regions. Defaults to `default`.\n",
          "type": "string"
        },
        "connectionString": {
          "description": "The connection string to the Cache for Redis.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the API Management Redis Cache.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this API Management Redis Cache. Changing this forces a new API Management Redis Cache to be created.\n",
          "type": "string"
        },
        "redisCacheId": {
          "description": "The resource ID of the Cache for Redis.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementId",
        "connectionString",
        "name"
      ],
      "requiredInputs": [
        "apiManagementId",
        "connectionString"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RedisCache resources.\n",
        "properties": {
          "apiManagementId": {
            "description": "The resource ID of the Api Management Service from which to create this external cache. Changing this forces a new API Management Redis Cache to be created.\n",
            "type": "string"
          },
          "cacheLocation": {
            "description": "The location where to use cache from. Possible values are `default` and valid Azure regions. Defaults to `default`.\n",
            "type": "string"
          },
          "connectionString": {
            "description": "The connection string to the Cache for Redis.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the API Management Redis Cache.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this API Management Redis Cache. Changing this forces a new API Management Redis Cache to be created.\n",
            "type": "string"
          },
          "redisCacheId": {
            "description": "The resource ID of the Cache for Redis.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/service:Service": {
      "description": "Manages an API Management Service.\n\n## Disclaimers\n\n\u003e **Note:** It's possible to define Custom Domains both within the `azure.apimanagement.Service` resource via the `hostname_configurations` block and by using the `azure.apimanagement.CustomDomain` resource. However it's not possible to use both methods to manage Custom Domains within an API Management Service, since there'll be conflicts.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@exmaple.com\",\n    skuName: \"Developer_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@exmaple.com\",\n    sku_name=\"Developer_1\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@exmaple.com\",\n            SkuName = \"Developer_1\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@exmaple.com\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Services can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/service:Service example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1\n```\n\n ",
      "inputProperties": {
        "additionalLocations": {
          "description": "One or more `additional_location` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ServiceAdditionalLocation:ServiceAdditionalLocation"
          },
          "type": "array"
        },
        "certificates": {
          "description": "One or more (up to 10) `certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ServiceCertificate:ServiceCertificate"
          },
          "type": "array"
        },
        "clientCertificateEnabled": {
          "description": "Enforce a client certificate to be presented on each request to the gateway? This is only supported when sku type is `Consumption`.\n",
          "type": "boolean"
        },
        "gatewayDisabled": {
          "description": "Disable the gateway in main region? This is only supported when `additional_location` is set.\n",
          "type": "boolean"
        },
        "hostnameConfiguration": {
          "$ref": "#/types/azure:apimanagement/ServiceHostnameConfiguration:ServiceHostnameConfiguration",
          "description": "A `hostname_configuration` block as defined below.\n"
        },
        "identity": {
          "$ref": "#/types/azure:apimanagement/ServiceIdentity:ServiceIdentity",
          "description": "An `identity` block is documented below.\n"
        },
        "location": {
          "description": "The Azure location where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "minApiVersion": {
          "description": "The version which the control plane API calls to API Management service are limited with version equal to or newer than.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notificationSenderEmail": {
          "description": "Email address from which the notification will be sent.\n",
          "type": "string"
        },
        "policy": {
          "$ref": "#/types/azure:apimanagement/ServicePolicy:ServicePolicy",
          "description": "A `policy` block as defined below.\n"
        },
        "protocols": {
          "$ref": "#/types/azure:apimanagement/ServiceProtocols:ServiceProtocols",
          "description": "A `protocols` block as defined below.\n"
        },
        "publisherEmail": {
          "description": "The email of publisher/company.\n",
          "type": "string"
        },
        "publisherName": {
          "description": "The name of publisher/company.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service should be exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "security": {
          "$ref": "#/types/azure:apimanagement/ServiceSecurity:ServiceSecurity",
          "description": "A `security` block as defined below.\n"
        },
        "signIn": {
          "$ref": "#/types/azure:apimanagement/ServiceSignIn:ServiceSignIn",
          "description": "A `sign_in` block as defined below.\n"
        },
        "signUp": {
          "$ref": "#/types/azure:apimanagement/ServiceSignUp:ServiceSignUp",
          "description": "A `sign_up` block as defined below.\n"
        },
        "skuName": {
          "description": "`sku_name` is a string consisting of two parts separated by an underscore(\\_). The first part is the `name`, valid values include: `Consumption`, `Developer`, `Basic`, `Standard` and `Premium`. The second part is the `capacity` (e.g. the number of deployed units of the `sku`), which must be a positive `integer` (e.g. `Developer_1`).\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "type": "object"
        },
        "tenantAccess": {
          "$ref": "#/types/azure:apimanagement/ServiceTenantAccess:ServiceTenantAccess",
          "description": "A `tenant_access` block as defined below.\n"
        },
        "virtualNetworkConfiguration": {
          "$ref": "#/types/azure:apimanagement/ServiceVirtualNetworkConfiguration:ServiceVirtualNetworkConfiguration",
          "description": "A `virtual_network_configuration` block as defined below. Required when `virtual_network_type` is `External` or `Internal`.\n"
        },
        "virtualNetworkType": {
          "description": "The type of virtual network you want to use, valid values include: `None`, `External`, `Internal`. \n\u003e **NOTE:** Please ensure that in the subnet, inbound port 3443 is open when `virtual_network_type` is `Internal` or `External`. And please ensure other necessary ports are open according to [api management network configuration](https://docs.microsoft.com/en-us/azure/api-management/api-management-using-with-vnet#-common-network-configuration-issues).\n",
          "type": "string"
        },
        "zones": {
          "description": "A list of availability zones.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "additionalLocations": {
          "description": "One or more `additional_location` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ServiceAdditionalLocation:ServiceAdditionalLocation"
          },
          "type": "array"
        },
        "certificates": {
          "description": "One or more (up to 10) `certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ServiceCertificate:ServiceCertificate"
          },
          "type": "array"
        },
        "clientCertificateEnabled": {
          "description": "Enforce a client certificate to be presented on each request to the gateway? This is only supported when sku type is `Consumption`.\n",
          "type": "boolean"
        },
        "developerPortalUrl": {
          "description": "The URL for the Developer Portal associated with this API Management service.\n",
          "type": "string"
        },
        "gatewayDisabled": {
          "description": "Disable the gateway in main region? This is only supported when `additional_location` is set.\n",
          "type": "boolean"
        },
        "gatewayRegionalUrl": {
          "description": "The URL of the Regional Gateway for the API Management Service in the specified region.\n",
          "type": "string"
        },
        "gatewayUrl": {
          "description": "The URL of the Gateway for the API Management Service.\n",
          "type": "string"
        },
        "hostnameConfiguration": {
          "$ref": "#/types/azure:apimanagement/ServiceHostnameConfiguration:ServiceHostnameConfiguration",
          "description": "A `hostname_configuration` block as defined below.\n"
        },
        "identity": {
          "$ref": "#/types/azure:apimanagement/ServiceIdentity:ServiceIdentity",
          "description": "An `identity` block is documented below.\n"
        },
        "location": {
          "description": "The Azure location where the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managementApiUrl": {
          "description": "The URL for the Management API associated with this API Management service.\n",
          "type": "string"
        },
        "minApiVersion": {
          "description": "The version which the control plane API calls to API Management service are limited with version equal to or newer than.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notificationSenderEmail": {
          "description": "Email address from which the notification will be sent.\n",
          "type": "string"
        },
        "policy": {
          "$ref": "#/types/azure:apimanagement/ServicePolicy:ServicePolicy",
          "description": "A `policy` block as defined below.\n"
        },
        "portalUrl": {
          "description": "The URL for the Publisher Portal associated with this API Management service.\n",
          "type": "string"
        },
        "privateIpAddresses": {
          "description": "The Private IP addresses of the API Management Service.  Available only when the API Manager instance is using Virtual Network mode.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "protocols": {
          "$ref": "#/types/azure:apimanagement/ServiceProtocols:ServiceProtocols",
          "description": "A `protocols` block as defined below.\n"
        },
        "publicIpAddresses": {
          "description": "Public Static Load Balanced IP addresses of the API Management service in the additional location. Available only for Basic, Standard and Premium SKU.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "publisherEmail": {
          "description": "The email of publisher/company.\n",
          "type": "string"
        },
        "publisherName": {
          "description": "The name of publisher/company.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service should be exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scmUrl": {
          "description": "The URL for the SCM (Source Code Management) Endpoint associated with this API Management service.\n",
          "type": "string"
        },
        "security": {
          "$ref": "#/types/azure:apimanagement/ServiceSecurity:ServiceSecurity",
          "description": "A `security` block as defined below.\n"
        },
        "signIn": {
          "$ref": "#/types/azure:apimanagement/ServiceSignIn:ServiceSignIn",
          "description": "A `sign_in` block as defined below.\n"
        },
        "signUp": {
          "$ref": "#/types/azure:apimanagement/ServiceSignUp:ServiceSignUp",
          "description": "A `sign_up` block as defined below.\n"
        },
        "skuName": {
          "description": "`sku_name` is a string consisting of two parts separated by an underscore(\\_). The first part is the `name`, valid values include: `Consumption`, `Developer`, `Basic`, `Standard` and `Premium`. The second part is the `capacity` (e.g. the number of deployed units of the `sku`), which must be a positive `integer` (e.g. `Developer_1`).\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "type": "object"
        },
        "tenantAccess": {
          "$ref": "#/types/azure:apimanagement/ServiceTenantAccess:ServiceTenantAccess",
          "description": "A `tenant_access` block as defined below.\n"
        },
        "virtualNetworkConfiguration": {
          "$ref": "#/types/azure:apimanagement/ServiceVirtualNetworkConfiguration:ServiceVirtualNetworkConfiguration",
          "description": "A `virtual_network_configuration` block as defined below. Required when `virtual_network_type` is `External` or `Internal`.\n"
        },
        "virtualNetworkType": {
          "description": "The type of virtual network you want to use, valid values include: `None`, `External`, `Internal`. \n\u003e **NOTE:** Please ensure that in the subnet, inbound port 3443 is open when `virtual_network_type` is `Internal` or `External`. And please ensure other necessary ports are open according to [api management network configuration](https://docs.microsoft.com/en-us/azure/api-management/api-management-using-with-vnet#-common-network-configuration-issues).\n",
          "type": "string"
        },
        "zones": {
          "description": "A list of availability zones.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "developerPortalUrl",
        "gatewayRegionalUrl",
        "gatewayUrl",
        "hostnameConfiguration",
        "location",
        "managementApiUrl",
        "name",
        "notificationSenderEmail",
        "policy",
        "portalUrl",
        "privateIpAddresses",
        "protocols",
        "publicIpAddresses",
        "publisherEmail",
        "publisherName",
        "resourceGroupName",
        "scmUrl",
        "security",
        "signIn",
        "signUp",
        "skuName",
        "tenantAccess"
      ],
      "requiredInputs": [
        "publisherEmail",
        "publisherName",
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Service resources.\n",
        "properties": {
          "additionalLocations": {
            "description": "One or more `additional_location` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/ServiceAdditionalLocation:ServiceAdditionalLocation"
            },
            "type": "array"
          },
          "certificates": {
            "description": "One or more (up to 10) `certificate` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:apimanagement/ServiceCertificate:ServiceCertificate"
            },
            "type": "array"
          },
          "clientCertificateEnabled": {
            "description": "Enforce a client certificate to be presented on each request to the gateway? This is only supported when sku type is `Consumption`.\n",
            "type": "boolean"
          },
          "developerPortalUrl": {
            "description": "The URL for the Developer Portal associated with this API Management service.\n",
            "type": "string"
          },
          "gatewayDisabled": {
            "description": "Disable the gateway in main region? This is only supported when `additional_location` is set.\n",
            "type": "boolean"
          },
          "gatewayRegionalUrl": {
            "description": "The URL of the Regional Gateway for the API Management Service in the specified region.\n",
            "type": "string"
          },
          "gatewayUrl": {
            "description": "The URL of the Gateway for the API Management Service.\n",
            "type": "string"
          },
          "hostnameConfiguration": {
            "$ref": "#/types/azure:apimanagement/ServiceHostnameConfiguration:ServiceHostnameConfiguration",
            "description": "A `hostname_configuration` block as defined below.\n"
          },
          "identity": {
            "$ref": "#/types/azure:apimanagement/ServiceIdentity:ServiceIdentity",
            "description": "An `identity` block is documented below.\n"
          },
          "location": {
            "description": "The Azure location where the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "managementApiUrl": {
            "description": "The URL for the Management API associated with this API Management service.\n",
            "type": "string"
          },
          "minApiVersion": {
            "description": "The version which the control plane API calls to API Management service are limited with version equal to or newer than.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "notificationSenderEmail": {
            "description": "Email address from which the notification will be sent.\n",
            "type": "string"
          },
          "policy": {
            "$ref": "#/types/azure:apimanagement/ServicePolicy:ServicePolicy",
            "description": "A `policy` block as defined below.\n"
          },
          "portalUrl": {
            "description": "The URL for the Publisher Portal associated with this API Management service.\n",
            "type": "string"
          },
          "privateIpAddresses": {
            "description": "The Private IP addresses of the API Management Service.  Available only when the API Manager instance is using Virtual Network mode.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "protocols": {
            "$ref": "#/types/azure:apimanagement/ServiceProtocols:ServiceProtocols",
            "description": "A `protocols` block as defined below.\n"
          },
          "publicIpAddresses": {
            "description": "Public Static Load Balanced IP addresses of the API Management service in the additional location. Available only for Basic, Standard and Premium SKU.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "publisherEmail": {
            "description": "The email of publisher/company.\n",
            "type": "string"
          },
          "publisherName": {
            "description": "The name of publisher/company.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Service should be exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scmUrl": {
            "description": "The URL for the SCM (Source Code Management) Endpoint associated with this API Management service.\n",
            "type": "string"
          },
          "security": {
            "$ref": "#/types/azure:apimanagement/ServiceSecurity:ServiceSecurity",
            "description": "A `security` block as defined below.\n"
          },
          "signIn": {
            "$ref": "#/types/azure:apimanagement/ServiceSignIn:ServiceSignIn",
            "description": "A `sign_in` block as defined below.\n"
          },
          "signUp": {
            "$ref": "#/types/azure:apimanagement/ServiceSignUp:ServiceSignUp",
            "description": "A `sign_up` block as defined below.\n"
          },
          "skuName": {
            "description": "`sku_name` is a string consisting of two parts separated by an underscore(\\_). The first part is the `name`, valid values include: `Consumption`, `Developer`, `Basic`, `Standard` and `Premium`. The second part is the `capacity` (e.g. the number of deployed units of the `sku`), which must be a positive `integer` (e.g. `Developer_1`).\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "tenantAccess": {
            "$ref": "#/types/azure:apimanagement/ServiceTenantAccess:ServiceTenantAccess",
            "description": "A `tenant_access` block as defined below.\n"
          },
          "virtualNetworkConfiguration": {
            "$ref": "#/types/azure:apimanagement/ServiceVirtualNetworkConfiguration:ServiceVirtualNetworkConfiguration",
            "description": "A `virtual_network_configuration` block as defined below. Required when `virtual_network_type` is `External` or `Internal`.\n"
          },
          "virtualNetworkType": {
            "description": "The type of virtual network you want to use, valid values include: `None`, `External`, `Internal`. \n\u003e **NOTE:** Please ensure that in the subnet, inbound port 3443 is open when `virtual_network_type` is `Internal` or `External`. And please ensure other necessary ports are open according to [api management network configuration](https://docs.microsoft.com/en-us/azure/api-management/api-management-using-with-vnet#-common-network-configuration-issues).\n",
            "type": "string"
          },
          "zones": {
            "description": "A list of availability zones.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/subscription:Subscription": {
      "description": "Manages a Subscription within a API Management Service.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleService = azure.apimanagement.getService({\n    name: \"example-apim\",\n    resourceGroupName: \"example-resources\",\n});\nconst exampleProduct = Promise.all([exampleService, exampleService]).then(([exampleService, exampleService1]) =\u003e azure.apimanagement.getProduct({\n    productId: \"00000000-0000-0000-0000-000000000000\",\n    apiManagementName: exampleService.name,\n    resourceGroupName: exampleService1.resourceGroupName,\n}));\nconst exampleUser = Promise.all([exampleService, exampleService]).then(([exampleService, exampleService1]) =\u003e azure.apimanagement.getUser({\n    userId: \"11111111-1111-1111-1111-111111111111\",\n    apiManagementName: exampleService.name,\n    resourceGroupName: exampleService1.resourceGroupName,\n}));\nconst exampleSubscription = new azure.apimanagement.Subscription(\"exampleSubscription\", {\n    apiManagementName: exampleService.then(exampleService =\u003e exampleService.name),\n    resourceGroupName: exampleService.then(exampleService =\u003e exampleService.resourceGroupName),\n    userId: exampleUser.then(exampleUser =\u003e exampleUser.id),\n    productId: exampleProduct.then(exampleProduct =\u003e exampleProduct.id),\n    displayName: \"Parser API\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_service = azure.apimanagement.get_service(name=\"example-apim\",\n    resource_group_name=\"example-resources\")\nexample_product = azure.apimanagement.get_product(product_id=\"00000000-0000-0000-0000-000000000000\",\n    api_management_name=example_service.name,\n    resource_group_name=example_service.resource_group_name)\nexample_user = azure.apimanagement.get_user(user_id=\"11111111-1111-1111-1111-111111111111\",\n    api_management_name=example_service.name,\n    resource_group_name=example_service.resource_group_name)\nexample_subscription = azure.apimanagement.Subscription(\"exampleSubscription\",\n    api_management_name=example_service.name,\n    resource_group_name=example_service.resource_group_name,\n    user_id=example_user.id,\n    product_id=example_product.id,\n    display_name=\"Parser API\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleService = Output.Create(Azure.ApiManagement.GetService.InvokeAsync(new Azure.ApiManagement.GetServiceArgs\n        {\n            Name = \"example-apim\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        var exampleProduct = Output.Tuple(exampleService, exampleService).Apply(values =\u003e\n        {\n            var exampleService = values.Item1;\n            var exampleService1 = values.Item2;\n            return Output.Create(Azure.ApiManagement.GetProduct.InvokeAsync(new Azure.ApiManagement.GetProductArgs\n            {\n                ProductId = \"00000000-0000-0000-0000-000000000000\",\n                ApiManagementName = exampleService.Name,\n                ResourceGroupName = exampleService1.ResourceGroupName,\n            }));\n        });\n        var exampleUser = Output.Tuple(exampleService, exampleService).Apply(values =\u003e\n        {\n            var exampleService = values.Item1;\n            var exampleService1 = values.Item2;\n            return Output.Create(Azure.ApiManagement.GetUser.InvokeAsync(new Azure.ApiManagement.GetUserArgs\n            {\n                UserId = \"11111111-1111-1111-1111-111111111111\",\n                ApiManagementName = exampleService.Name,\n                ResourceGroupName = exampleService1.ResourceGroupName,\n            }));\n        });\n        var exampleSubscription = new Azure.ApiManagement.Subscription(\"exampleSubscription\", new Azure.ApiManagement.SubscriptionArgs\n        {\n            ApiManagementName = exampleService.Apply(exampleService =\u003e exampleService.Name),\n            ResourceGroupName = exampleService.Apply(exampleService =\u003e exampleService.ResourceGroupName),\n            UserId = exampleUser.Apply(exampleUser =\u003e exampleUser.Id),\n            ProductId = exampleProduct.Apply(exampleProduct =\u003e exampleProduct.Id),\n            DisplayName = \"Parser API\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleService, err := apimanagement.LookupService(ctx, \u0026apimanagement.LookupServiceArgs{\n\t\t\tName:              \"example-apim\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleProduct, err := apimanagement.LookupProduct(ctx, \u0026apimanagement.LookupProductArgs{\n\t\t\tProductId:         \"00000000-0000-0000-0000-000000000000\",\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tResourceGroupName: exampleService.ResourceGroupName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUser, err := apimanagement.LookupUser(ctx, \u0026apimanagement.LookupUserArgs{\n\t\t\tUserId:            \"11111111-1111-1111-1111-111111111111\",\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tResourceGroupName: exampleService.ResourceGroupName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewSubscription(ctx, \"exampleSubscription\", \u0026apimanagement.SubscriptionArgs{\n\t\t\tApiManagementName: pulumi.String(exampleService.Name),\n\t\t\tResourceGroupName: pulumi.String(exampleService.ResourceGroupName),\n\t\t\tUserId:            pulumi.String(exampleUser.Id),\n\t\t\tProductId:         pulumi.String(exampleProduct.Id),\n\t\t\tDisplayName:       pulumi.String(\"Parser API\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Subscriptions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/subscription:Subscription example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-resources/providers/Microsoft.ApiManagement/service/example-apim/subscriptions/subscription-name\n```\n\n ",
      "inputProperties": {
        "allowTracing": {
          "description": "Determines whether tracing can be enabled.  Defaults to `true`.\n",
          "type": "boolean"
        },
        "apiId": {
          "description": "The ID of the API which should be assigned to this Subscription. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "apiManagementName": {
          "description": "The name of the API Management Service where this Subscription should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of this Subscription.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The primary subscription key to use for the subscription.\n",
          "type": "string"
        },
        "productId": {
          "description": "The ID of the Product which should be assigned to this Subscription. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The secondary subscription key to use for the subscription.\n",
          "type": "string"
        },
        "state": {
          "description": "The state of this Subscription. Possible values are `active`, `cancelled`, `expired`, `rejected`, `submitted` and `suspended`. Defaults to `submitted`.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "An Identifier which should used as the ID of this Subscription. If not specified a new Subscription ID will be generated. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "userId": {
          "description": "The ID of the User which should be assigned to this Subscription. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "allowTracing": {
          "description": "Determines whether tracing can be enabled.  Defaults to `true`.\n",
          "type": "boolean"
        },
        "apiId": {
          "description": "The ID of the API which should be assigned to this Subscription. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "apiManagementName": {
          "description": "The name of the API Management Service where this Subscription should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of this Subscription.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The primary subscription key to use for the subscription.\n",
          "type": "string"
        },
        "productId": {
          "description": "The ID of the Product which should be assigned to this Subscription. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The secondary subscription key to use for the subscription.\n",
          "type": "string"
        },
        "state": {
          "description": "The state of this Subscription. Possible values are `active`, `cancelled`, `expired`, `rejected`, `submitted` and `suspended`. Defaults to `submitted`.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "An Identifier which should used as the ID of this Subscription. If not specified a new Subscription ID will be generated. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "userId": {
          "description": "The ID of the User which should be assigned to this Subscription. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "displayName",
        "primaryKey",
        "resourceGroupName",
        "secondaryKey",
        "subscriptionId"
      ],
      "requiredInputs": [
        "apiManagementName",
        "displayName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Subscription resources.\n",
        "properties": {
          "allowTracing": {
            "description": "Determines whether tracing can be enabled.  Defaults to `true`.\n",
            "type": "boolean"
          },
          "apiId": {
            "description": "The ID of the API which should be assigned to this Subscription. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "apiManagementName": {
            "description": "The name of the API Management Service where this Subscription should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of this Subscription.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The primary subscription key to use for the subscription.\n",
            "type": "string"
          },
          "productId": {
            "description": "The ID of the Product which should be assigned to this Subscription. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The secondary subscription key to use for the subscription.\n",
            "type": "string"
          },
          "state": {
            "description": "The state of this Subscription. Possible values are `active`, `cancelled`, `expired`, `rejected`, `submitted` and `suspended`. Defaults to `submitted`.\n",
            "type": "string"
          },
          "subscriptionId": {
            "description": "An Identifier which should used as the ID of this Subscription. If not specified a new Subscription ID will be generated. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "userId": {
            "description": "The ID of the User which should be assigned to this Subscription. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/tag:Tag": {
      "description": "Manages a API Management Tag.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@terraform.io\",\n    skuName: \"Consumption_0\",\n});\nconst exampleTag = new azure.apimanagement.Tag(\"exampleTag\", {apiManagementId: exampleService.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@terraform.io\",\n    sku_name=\"Consumption_0\")\nexample_tag = azure.apimanagement.Tag(\"exampleTag\", api_management_id=example_service.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@terraform.io\",\n            SkuName = \"Consumption_0\",\n        });\n        var exampleTag = new Azure.ApiManagement.Tag(\"exampleTag\", new Azure.ApiManagement.TagArgs\n        {\n            ApiManagementId = exampleService.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@terraform.io\"),\n\t\t\tSkuName:           pulumi.String(\"Consumption_0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewTag(ctx, \"exampleTag\", \u0026apimanagement.TagArgs{\n\t\t\tApiManagementId: exampleService.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Tags can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/tag:Tag example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/tags/tag1\n```\n\n ",
      "inputProperties": {
        "apiManagementId": {
          "description": "The ID of the API Management. Changing this forces a new API Management Tag to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the API Management Tag. Defaults to the `name`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this API Management Tag. Changing this forces a new API Management Tag to be created. The name must be unique in the API Management Service.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementId": {
          "description": "The ID of the API Management. Changing this forces a new API Management Tag to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the API Management Tag. Defaults to the `name`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this API Management Tag. Changing this forces a new API Management Tag to be created. The name must be unique in the API Management Service.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementId",
        "displayName",
        "name"
      ],
      "requiredInputs": [
        "apiManagementId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Tag resources.\n",
        "properties": {
          "apiManagementId": {
            "description": "The ID of the API Management. Changing this forces a new API Management Tag to be created.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the API Management Tag. Defaults to the `name`.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this API Management Tag. Changing this forces a new API Management Tag to be created. The name must be unique in the API Management Service.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:apimanagement/user:User": {
      "description": "Manages an API Management User.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.apimanagement.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publisherName: \"My Company\",\n    publisherEmail: \"company@exmaple.com\",\n    skuName: \"Developer_1\",\n});\nconst exampleUser = new azure.apimanagement.User(\"exampleUser\", {\n    userId: \"5931a75ae4bbd512288c680b\",\n    apiManagementName: exampleService.name,\n    resourceGroupName: exampleResourceGroup.name,\n    firstName: \"Example\",\n    lastName: \"User\",\n    email: \"user@example.com\",\n    state: \"active\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.apimanagement.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    publisher_name=\"My Company\",\n    publisher_email=\"company@exmaple.com\",\n    sku_name=\"Developer_1\")\nexample_user = azure.apimanagement.User(\"exampleUser\",\n    user_id=\"5931a75ae4bbd512288c680b\",\n    api_management_name=example_service.name,\n    resource_group_name=example_resource_group.name,\n    first_name=\"Example\",\n    last_name=\"User\",\n    email=\"user@example.com\",\n    state=\"active\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.ApiManagement.Service(\"exampleService\", new Azure.ApiManagement.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublisherName = \"My Company\",\n            PublisherEmail = \"company@exmaple.com\",\n            SkuName = \"Developer_1\",\n        });\n        var exampleUser = new Azure.ApiManagement.User(\"exampleUser\", new Azure.ApiManagement.UserArgs\n        {\n            UserId = \"5931a75ae4bbd512288c680b\",\n            ApiManagementName = exampleService.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            FirstName = \"Example\",\n            LastName = \"User\",\n            Email = \"user@example.com\",\n            State = \"active\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/apimanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := apimanagement.NewService(ctx, \"exampleService\", \u0026apimanagement.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublisherName:     pulumi.String(\"My Company\"),\n\t\t\tPublisherEmail:    pulumi.String(\"company@exmaple.com\"),\n\t\t\tSkuName:           pulumi.String(\"Developer_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apimanagement.NewUser(ctx, \"exampleUser\", \u0026apimanagement.UserArgs{\n\t\t\tUserId:            pulumi.String(\"5931a75ae4bbd512288c680b\"),\n\t\t\tApiManagementName: exampleService.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tFirstName:         pulumi.String(\"Example\"),\n\t\t\tLastName:          pulumi.String(\"User\"),\n\t\t\tEmail:             pulumi.String(\"user@example.com\"),\n\t\t\tState:             pulumi.String(\"active\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Management Users can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:apimanagement/user:User example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/users/abc123\n```\n\n ",
      "inputProperties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which the User should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "confirmation": {
          "description": "The kind of confirmation email which will be sent to this user. Possible values are `invite` and `signup`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "email": {
          "description": "The email address associated with this user.\n",
          "type": "string"
        },
        "firstName": {
          "description": "The first name for this user.\n",
          "type": "string"
        },
        "lastName": {
          "description": "The last name for this user.\n",
          "type": "string"
        },
        "note": {
          "description": "A note about this user.\n",
          "type": "string"
        },
        "password": {
          "description": "The password associated with this user.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "state": {
          "description": "The state of this user. Possible values are `active`, `blocked` and `pending`.\n",
          "type": "string"
        },
        "userId": {
          "description": "The Identifier for this User, which must be unique within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiManagementName": {
          "description": "The name of the API Management Service in which the User should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "confirmation": {
          "description": "The kind of confirmation email which will be sent to this user. Possible values are `invite` and `signup`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "email": {
          "description": "The email address associated with this user.\n",
          "type": "string"
        },
        "firstName": {
          "description": "The first name for this user.\n",
          "type": "string"
        },
        "lastName": {
          "description": "The last name for this user.\n",
          "type": "string"
        },
        "note": {
          "description": "A note about this user.\n",
          "type": "string"
        },
        "password": {
          "description": "The password associated with this user.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "state": {
          "description": "The state of this user. Possible values are `active`, `blocked` and `pending`.\n",
          "type": "string"
        },
        "userId": {
          "description": "The Identifier for this User, which must be unique within the API Management Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "apiManagementName",
        "email",
        "firstName",
        "lastName",
        "resourceGroupName",
        "state",
        "userId"
      ],
      "requiredInputs": [
        "apiManagementName",
        "email",
        "firstName",
        "lastName",
        "resourceGroupName",
        "userId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering User resources.\n",
        "properties": {
          "apiManagementName": {
            "description": "The name of the API Management Service in which the User should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "confirmation": {
            "description": "The kind of confirmation email which will be sent to this user. Possible values are `invite` and `signup`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "email": {
            "description": "The email address associated with this user.\n",
            "type": "string"
          },
          "firstName": {
            "description": "The first name for this user.\n",
            "type": "string"
          },
          "lastName": {
            "description": "The last name for this user.\n",
            "type": "string"
          },
          "note": {
            "description": "A note about this user.\n",
            "type": "string"
          },
          "password": {
            "description": "The password associated with this user.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the API Management Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "state": {
            "description": "The state of this user. Possible values are `active`, `blocked` and `pending`.\n",
            "type": "string"
          },
          "userId": {
            "description": "The Identifier for this User, which must be unique within the API Management Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appconfiguration/configurationKey:ConfigurationKey": {
      "description": "Manages an Azure App Configuration Key.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### `Kv` Type\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst appconf = new azure.appconfiguration.ConfigurationStore(\"appconf\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n});\nconst test = new azure.appconfiguration.ConfigurationKey(\"test\", {\n    configurationStoreId: appconf.id,\n    key: \"appConfKey1\",\n    label: \"somelabel\",\n    value: \"a test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nappconf = azure.appconfiguration.ConfigurationStore(\"appconf\",\n    resource_group_name=rg.name,\n    location=rg.location)\ntest = azure.appconfiguration.ConfigurationKey(\"test\",\n    configuration_store_id=appconf.id,\n    key=\"appConfKey1\",\n    label=\"somelabel\",\n    value=\"a test\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var appconf = new Azure.AppConfiguration.ConfigurationStore(\"appconf\", new Azure.AppConfiguration.ConfigurationStoreArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n        });\n        var test = new Azure.AppConfiguration.ConfigurationKey(\"test\", new Azure.AppConfiguration.ConfigurationKeyArgs\n        {\n            ConfigurationStoreId = appconf.Id,\n            Key = \"appConfKey1\",\n            Label = \"somelabel\",\n            Value = \"a test\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appconfiguration\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tappconf, err := appconfiguration.NewConfigurationStore(ctx, \"appconf\", \u0026appconfiguration.ConfigurationStoreArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appconfiguration.NewConfigurationKey(ctx, \"test\", \u0026appconfiguration.ConfigurationKeyArgs{\n\t\t\tConfigurationStoreId: appconf.ID(),\n\t\t\tKey:                  pulumi.String(\"appConfKey1\"),\n\t\t\tLabel:                pulumi.String(\"somelabel\"),\n\t\t\tValue:                pulumi.String(\"a test\"),\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\n{{% /example %}}\n{{% example %}}\n### `Vault` Type\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst appconf = new azure.appconfiguration.ConfigurationStore(\"appconf\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n});\nconst current = azure.core.getClientConfig({});\nconst kv = new azure.keyvault.KeyVault(\"kv\", {\n    location: azurerm_resource_group.test.location,\n    resourceGroupName: azurerm_resource_group.test.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"premium\",\n    softDeleteRetentionDays: 7,\n    accessPolicies: [{\n        tenantId: current.then(current =\u003e current.tenantId),\n        objectId: current.then(current =\u003e current.objectId),\n        keyPermissions: [\n            \"create\",\n            \"get\",\n        ],\n        secretPermissions: [\n            \"set\",\n            \"get\",\n            \"delete\",\n            \"purge\",\n            \"recover\",\n        ],\n    }],\n});\nconst kvs = new azure.keyvault.Secret(\"kvs\", {\n    value: \"szechuan\",\n    keyVaultId: kv.id,\n});\nconst test = new azure.appconfiguration.ConfigurationKey(\"test\", {\n    configurationStoreId: azurerm_app_configuration.test.id,\n    key: \"key1\",\n    type: \"vault\",\n    label: \"label1\",\n    vaultKeyReference: kvs.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nappconf = azure.appconfiguration.ConfigurationStore(\"appconf\",\n    resource_group_name=rg.name,\n    location=rg.location)\ncurrent = azure.core.get_client_config()\nkv = azure.keyvault.KeyVault(\"kv\",\n    location=azurerm_resource_group[\"test\"][\"location\"],\n    resource_group_name=azurerm_resource_group[\"test\"][\"name\"],\n    tenant_id=current.tenant_id,\n    sku_name=\"premium\",\n    soft_delete_retention_days=7,\n    access_policies=[azure.keyvault.KeyVaultAccessPolicyArgs(\n        tenant_id=current.tenant_id,\n        object_id=current.object_id,\n        key_permissions=[\n            \"create\",\n            \"get\",\n        ],\n        secret_permissions=[\n            \"set\",\n            \"get\",\n            \"delete\",\n            \"purge\",\n            \"recover\",\n        ],\n    )])\nkvs = azure.keyvault.Secret(\"kvs\",\n    value=\"szechuan\",\n    key_vault_id=kv.id)\ntest = azure.appconfiguration.ConfigurationKey(\"test\",\n    configuration_store_id=azurerm_app_configuration[\"test\"][\"id\"],\n    key=\"key1\",\n    type=\"vault\",\n    label=\"label1\",\n    vault_key_reference=kvs.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var appconf = new Azure.AppConfiguration.ConfigurationStore(\"appconf\", new Azure.AppConfiguration.ConfigurationStoreArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n        });\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var kv = new Azure.KeyVault.KeyVault(\"kv\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = azurerm_resource_group.Test.Location,\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"premium\",\n            SoftDeleteRetentionDays = 7,\n            AccessPolicies = \n            {\n                new Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs\n                {\n                    TenantId = current.Apply(current =\u003e current.TenantId),\n                    ObjectId = current.Apply(current =\u003e current.ObjectId),\n                    KeyPermissions = \n                    {\n                        \"create\",\n                        \"get\",\n                    },\n                    SecretPermissions = \n                    {\n                        \"set\",\n                        \"get\",\n                        \"delete\",\n                        \"purge\",\n                        \"recover\",\n                    },\n                },\n            },\n        });\n        var kvs = new Azure.KeyVault.Secret(\"kvs\", new Azure.KeyVault.SecretArgs\n        {\n            Value = \"szechuan\",\n            KeyVaultId = kv.Id,\n        });\n        var test = new Azure.AppConfiguration.ConfigurationKey(\"test\", new Azure.AppConfiguration.ConfigurationKeyArgs\n        {\n            ConfigurationStoreId = azurerm_app_configuration.Test.Id,\n            Key = \"key1\",\n            Type = \"vault\",\n            Label = \"label1\",\n            VaultKeyReference = kvs.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appconfiguration\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appconfiguration.NewConfigurationStore(ctx, \"appconf\", \u0026appconfiguration.ConfigurationStoreArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkv, err := keyvault.NewKeyVault(ctx, \"kv\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:                pulumi.Any(azurerm_resource_group.Test.Location),\n\t\t\tResourceGroupName:       pulumi.Any(azurerm_resource_group.Test.Name),\n\t\t\tTenantId:                pulumi.String(current.TenantId),\n\t\t\tSkuName:                 pulumi.String(\"premium\"),\n\t\t\tSoftDeleteRetentionDays: pulumi.Int(7),\n\t\t\tAccessPolicies: keyvault.KeyVaultAccessPolicyArray{\n\t\t\t\t\u0026keyvault.KeyVaultAccessPolicyArgs{\n\t\t\t\t\tTenantId: pulumi.String(current.TenantId),\n\t\t\t\t\tObjectId: pulumi.String(current.ObjectId),\n\t\t\t\t\tKeyPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"create\"),\n\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecretPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"set\"),\n\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\tpulumi.String(\"delete\"),\n\t\t\t\t\t\tpulumi.String(\"purge\"),\n\t\t\t\t\t\tpulumi.String(\"recover\"),\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\tkvs, err := keyvault.NewSecret(ctx, \"kvs\", \u0026keyvault.SecretArgs{\n\t\t\tValue:      pulumi.String(\"szechuan\"),\n\t\t\tKeyVaultId: kv.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appconfiguration.NewConfigurationKey(ctx, \"test\", \u0026appconfiguration.ConfigurationKeyArgs{\n\t\t\tConfigurationStoreId: pulumi.Any(azurerm_app_configuration.Test.Id),\n\t\t\tKey:                  pulumi.String(\"key1\"),\n\t\t\tType:                 pulumi.String(\"vault\"),\n\t\t\tLabel:                pulumi.String(\"label1\"),\n\t\t\tVaultKeyReference:    kvs.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApp Configuration Keys can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appconfiguration/configurationKey:ConfigurationKey test /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resourceGroup1/providers/Microsoft.AppConfiguration/configurationStores/appConf1/AppConfigurationKey/appConfKey1/Label/label1\n```\n\n If you wish to import a key with an empty label then sustitute the label's name with `%00`, like this\n\n```sh\n $ pulumi import azure:appconfiguration/configurationKey:ConfigurationKey test /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resourceGroup1/providers/Microsoft.AppConfiguration/configurationStores/appConf1/AppConfigurationKey/appConfKey1/Label/%00\n```\n\n ",
      "inputProperties": {
        "configurationStoreId": {
          "description": "Specifies the id of the App Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "contentType": {
          "description": "The content type of the App Configuration Key. This should only be set when type is set to `kv`.\n",
          "type": "string"
        },
        "etag": {
          "description": "The ETag of the key.\n",
          "type": "string"
        },
        "key": {
          "description": "The name of the App Configuration Key to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "label": {
          "description": "The label of the App Configuration Key.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "locked": {
          "description": "Should this App Configuration Key be Locked to prevent changes?\n",
          "type": "boolean"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "type": {
          "description": "The type of the App Configuration Key. It can either be `kv` (simple [key/value](https://docs.microsoft.com/en-us/azure/azure-app-configuration/concept-key-value)) or `vault` (where the value is a reference to a [Key Vault Secret](https://azure.microsoft.com/en-gb/services/key-vault/).\n",
          "type": "string"
        },
        "value": {
          "description": "The value of the App Configuration Key. This should only be set when type is set to `kv`.\n",
          "type": "string"
        },
        "vaultKeyReference": {
          "description": "The ID of the vault secret this App Configuration Key refers to, when `type` is set to `vault`.\n",
          "type": "string"
        }
      },
      "properties": {
        "configurationStoreId": {
          "description": "Specifies the id of the App Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "contentType": {
          "description": "The content type of the App Configuration Key. This should only be set when type is set to `kv`.\n",
          "type": "string"
        },
        "etag": {
          "description": "The ETag of the key.\n",
          "type": "string"
        },
        "key": {
          "description": "The name of the App Configuration Key to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "label": {
          "description": "The label of the App Configuration Key.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "locked": {
          "description": "Should this App Configuration Key be Locked to prevent changes?\n",
          "type": "boolean"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "type": {
          "description": "The type of the App Configuration Key. It can either be `kv` (simple [key/value](https://docs.microsoft.com/en-us/azure/azure-app-configuration/concept-key-value)) or `vault` (where the value is a reference to a [Key Vault Secret](https://azure.microsoft.com/en-gb/services/key-vault/).\n",
          "type": "string"
        },
        "value": {
          "description": "The value of the App Configuration Key. This should only be set when type is set to `kv`.\n",
          "type": "string"
        },
        "vaultKeyReference": {
          "description": "The ID of the vault secret this App Configuration Key refers to, when `type` is set to `vault`.\n",
          "type": "string"
        }
      },
      "required": [
        "configurationStoreId",
        "contentType",
        "etag",
        "key",
        "value"
      ],
      "requiredInputs": [
        "configurationStoreId",
        "key"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ConfigurationKey resources.\n",
        "properties": {
          "configurationStoreId": {
            "description": "Specifies the id of the App Configuration. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "contentType": {
            "description": "The content type of the App Configuration Key. This should only be set when type is set to `kv`.\n",
            "type": "string"
          },
          "etag": {
            "description": "The ETag of the key.\n",
            "type": "string"
          },
          "key": {
            "description": "The name of the App Configuration Key to create. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "label": {
            "description": "The label of the App Configuration Key.  Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "locked": {
            "description": "Should this App Configuration Key be Locked to prevent changes?\n",
            "type": "boolean"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "type": {
            "description": "The type of the App Configuration Key. It can either be `kv` (simple [key/value](https://docs.microsoft.com/en-us/azure/azure-app-configuration/concept-key-value)) or `vault` (where the value is a reference to a [Key Vault Secret](https://azure.microsoft.com/en-gb/services/key-vault/).\n",
            "type": "string"
          },
          "value": {
            "description": "The value of the App Configuration Key. This should only be set when type is set to `kv`.\n",
            "type": "string"
          },
          "vaultKeyReference": {
            "description": "The ID of the vault secret this App Configuration Key refers to, when `type` is set to `vault`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appconfiguration/configurationStore:ConfigurationStore": {
      "description": "Manages an Azure App Configuration.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst appconf = new azure.appconfiguration.ConfigurationStore(\"appconf\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nappconf = azure.appconfiguration.ConfigurationStore(\"appconf\",\n    resource_group_name=rg.name,\n    location=rg.location)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var appconf = new Azure.AppConfiguration.ConfigurationStore(\"appconf\", new Azure.AppConfiguration.ConfigurationStoreArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appconfiguration\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appconfiguration.NewConfigurationStore(ctx, \"appconf\", \u0026appconfiguration.ConfigurationStoreArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApp Configurations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appconfiguration/configurationStore:ConfigurationStore appconf /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resourceGroup1/providers/Microsoft.AppConfiguration/configurationStores/appConf1\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:appconfiguration/ConfigurationStoreIdentity:ConfigurationStoreIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the App Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the App Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "The SKU name of the the App Configuration. Possible values are `free` and `standard`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "endpoint": {
          "description": "The URL of the App Configuration.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:appconfiguration/ConfigurationStoreIdentity:ConfigurationStoreIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the App Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryReadKeys": {
          "description": "A `primary_read_key` block as defined below containing the primary read access key.\n",
          "items": {
            "$ref": "#/types/azure:appconfiguration/ConfigurationStorePrimaryReadKey:ConfigurationStorePrimaryReadKey"
          },
          "type": "array"
        },
        "primaryWriteKeys": {
          "description": "A `primary_write_key` block as defined below containing the primary write access key.\n",
          "items": {
            "$ref": "#/types/azure:appconfiguration/ConfigurationStorePrimaryWriteKey:ConfigurationStorePrimaryWriteKey"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the App Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryReadKeys": {
          "description": "A `secondary_read_key` block as defined below containing the secondary read access key.\n",
          "items": {
            "$ref": "#/types/azure:appconfiguration/ConfigurationStoreSecondaryReadKey:ConfigurationStoreSecondaryReadKey"
          },
          "type": "array"
        },
        "secondaryWriteKeys": {
          "description": "A `secondary_write_key` block as defined below containing the secondary write access key.\n",
          "items": {
            "$ref": "#/types/azure:appconfiguration/ConfigurationStoreSecondaryWriteKey:ConfigurationStoreSecondaryWriteKey"
          },
          "type": "array"
        },
        "sku": {
          "description": "The SKU name of the the App Configuration. Possible values are `free` and `standard`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "endpoint",
        "location",
        "name",
        "primaryReadKeys",
        "primaryWriteKeys",
        "resourceGroupName",
        "secondaryReadKeys",
        "secondaryWriteKeys"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ConfigurationStore resources.\n",
        "properties": {
          "endpoint": {
            "description": "The URL of the App Configuration.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:appconfiguration/ConfigurationStoreIdentity:ConfigurationStoreIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the App Configuration. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryReadKeys": {
            "description": "A `primary_read_key` block as defined below containing the primary read access key.\n",
            "items": {
              "$ref": "#/types/azure:appconfiguration/ConfigurationStorePrimaryReadKey:ConfigurationStorePrimaryReadKey"
            },
            "type": "array"
          },
          "primaryWriteKeys": {
            "description": "A `primary_write_key` block as defined below containing the primary write access key.\n",
            "items": {
              "$ref": "#/types/azure:appconfiguration/ConfigurationStorePrimaryWriteKey:ConfigurationStorePrimaryWriteKey"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the App Configuration. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryReadKeys": {
            "description": "A `secondary_read_key` block as defined below containing the secondary read access key.\n",
            "items": {
              "$ref": "#/types/azure:appconfiguration/ConfigurationStoreSecondaryReadKey:ConfigurationStoreSecondaryReadKey"
            },
            "type": "array"
          },
          "secondaryWriteKeys": {
            "description": "A `secondary_write_key` block as defined below containing the secondary write access key.\n",
            "items": {
              "$ref": "#/types/azure:appconfiguration/ConfigurationStoreSecondaryWriteKey:ConfigurationStoreSecondaryWriteKey"
            },
            "type": "array"
          },
          "sku": {
            "description": "The SKU name of the the App Configuration. Possible values are `free` and `standard`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:appinsights/analyticsItem:AnalyticsItem": {
      "description": "Manages an Application Insights Analytics Item component.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: \"West Europe\",\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"web\",\n});\nconst exampleAnalyticsItem = new azure.appinsights.AnalyticsItem(\"exampleAnalyticsItem\", {\n    applicationInsightsId: exampleInsights.id,\n    content: \"requests //simple example query\",\n    scope: \"shared\",\n    type: \"query\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=\"West Europe\",\n    resource_group_name=example_resource_group.name,\n    application_type=\"web\")\nexample_analytics_item = azure.appinsights.AnalyticsItem(\"exampleAnalyticsItem\",\n    application_insights_id=example_insights.id,\n    content=\"requests //simple example query\",\n    scope=\"shared\",\n    type=\"query\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = \"West Europe\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"web\",\n        });\n        var exampleAnalyticsItem = new Azure.AppInsights.AnalyticsItem(\"exampleAnalyticsItem\", new Azure.AppInsights.AnalyticsItemArgs\n        {\n            ApplicationInsightsId = exampleInsights.Id,\n            Content = \"requests //simple example query\",\n            Scope = \"shared\",\n            Type = \"query\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          pulumi.String(\"West Europe\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appinsights.NewAnalyticsItem(ctx, \"exampleAnalyticsItem\", \u0026appinsights.AnalyticsItemArgs{\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tContent:               pulumi.String(\"requests //simple example query\"),\n\t\t\tScope:                 pulumi.String(\"shared\"),\n\t\t\tType:                  pulumi.String(\"query\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApplication Insights Analytics Items can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appinsights/analyticsItem:AnalyticsItem example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.insights/components/analyticsItems/11111111-1111-1111-1111-111111111111\n```\n\n To find the Analytics Item ID you can query the REST API using the [`az rest` CLI command](https://docs.microsoft.com/en-us/cli/azure/reference-index?view=azure-cli-latest#az-rest), e.g. az rest --method GET --uri \"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.insights/components/appinsightstest/analyticsItems?api-version=2015-05-01\" ",
      "inputProperties": {
        "applicationInsightsId": {
          "description": "The ID of the Application Insights component on which the Analytics Item exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "content": {
          "description": "The content for the Analytics Item, for example the query text if `type` is `query`.\n",
          "type": "string"
        },
        "functionAlias": {
          "description": "The alias to use for the function. Required when `type` is `function`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Application Insights Analytics Item. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "The scope for the Analytics Item. Can be `shared` or `user`. Changing this forces a new resource to be created. Must be `shared` for functions.\n",
          "type": "string"
        },
        "type": {
          "description": "The type of Analytics Item to create. Can be one of `query`, `function`, `folder`, `recent`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "applicationInsightsId": {
          "description": "The ID of the Application Insights component on which the Analytics Item exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "content": {
          "description": "The content for the Analytics Item, for example the query text if `type` is `query`.\n",
          "type": "string"
        },
        "functionAlias": {
          "description": "The alias to use for the function. Required when `type` is `function`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Application Insights Analytics Item. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "The scope for the Analytics Item. Can be `shared` or `user`. Changing this forces a new resource to be created. Must be `shared` for functions.\n",
          "type": "string"
        },
        "timeCreated": {
          "description": "A string containing the time the Analytics Item was created.\n",
          "type": "string"
        },
        "timeModified": {
          "description": "A string containing the time the Analytics Item was last modified.\n",
          "type": "string"
        },
        "type": {
          "description": "The type of Analytics Item to create. Can be one of `query`, `function`, `folder`, `recent`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "version": {
          "description": "A string indicating the version of the query format\n",
          "type": "string"
        }
      },
      "required": [
        "applicationInsightsId",
        "content",
        "name",
        "scope",
        "timeCreated",
        "timeModified",
        "type",
        "version"
      ],
      "requiredInputs": [
        "applicationInsightsId",
        "content",
        "scope",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AnalyticsItem resources.\n",
        "properties": {
          "applicationInsightsId": {
            "description": "The ID of the Application Insights component on which the Analytics Item exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "content": {
            "description": "The content for the Analytics Item, for example the query text if `type` is `query`.\n",
            "type": "string"
          },
          "functionAlias": {
            "description": "The alias to use for the function. Required when `type` is `function`.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Application Insights Analytics Item. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scope": {
            "description": "The scope for the Analytics Item. Can be `shared` or `user`. Changing this forces a new resource to be created. Must be `shared` for functions.\n",
            "type": "string"
          },
          "timeCreated": {
            "description": "A string containing the time the Analytics Item was created.\n",
            "type": "string"
          },
          "timeModified": {
            "description": "A string containing the time the Analytics Item was last modified.\n",
            "type": "string"
          },
          "type": {
            "description": "The type of Analytics Item to create. Can be one of `query`, `function`, `folder`, `recent`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "version": {
            "description": "A string indicating the version of the query format\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appinsights/apiKey:ApiKey": {
      "description": "Manages an Application Insights API key.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: \"West Europe\",\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"web\",\n});\nconst readTelemetry = new azure.appinsights.ApiKey(\"readTelemetry\", {\n    applicationInsightsId: exampleInsights.id,\n    readPermissions: [\n        \"aggregate\",\n        \"api\",\n        \"draft\",\n        \"extendqueries\",\n        \"search\",\n    ],\n});\nconst writeAnnotations = new azure.appinsights.ApiKey(\"writeAnnotations\", {\n    applicationInsightsId: exampleInsights.id,\n    writePermissions: [\"annotations\"],\n});\nconst authenticateSdkControlChannelApiKey = new azure.appinsights.ApiKey(\"authenticateSdkControlChannelApiKey\", {\n    applicationInsightsId: exampleInsights.id,\n    readPermissions: [\"agentconfig\"],\n});\nconst fullPermissions = new azure.appinsights.ApiKey(\"fullPermissions\", {\n    applicationInsightsId: exampleInsights.id,\n    readPermissions: [\n        \"agentconfig\",\n        \"aggregate\",\n        \"api\",\n        \"draft\",\n        \"extendqueries\",\n        \"search\",\n    ],\n    writePermissions: [\"annotations\"],\n});\nexport const readTelemetryApiKey = readTelemetry.apiKey;\nexport const writeAnnotationsApiKey = writeAnnotations.apiKey;\nexport const authenticateSdkControlChannel = authenticateSdkControlChannelApiKey.apiKey;\nexport const fullPermissionsApiKey = fullPermissions.apiKey;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=\"West Europe\",\n    resource_group_name=example_resource_group.name,\n    application_type=\"web\")\nread_telemetry = azure.appinsights.ApiKey(\"readTelemetry\",\n    application_insights_id=example_insights.id,\n    read_permissions=[\n        \"aggregate\",\n        \"api\",\n        \"draft\",\n        \"extendqueries\",\n        \"search\",\n    ])\nwrite_annotations = azure.appinsights.ApiKey(\"writeAnnotations\",\n    application_insights_id=example_insights.id,\n    write_permissions=[\"annotations\"])\nauthenticate_sdk_control_channel_api_key = azure.appinsights.ApiKey(\"authenticateSdkControlChannelApiKey\",\n    application_insights_id=example_insights.id,\n    read_permissions=[\"agentconfig\"])\nfull_permissions = azure.appinsights.ApiKey(\"fullPermissions\",\n    application_insights_id=example_insights.id,\n    read_permissions=[\n        \"agentconfig\",\n        \"aggregate\",\n        \"api\",\n        \"draft\",\n        \"extendqueries\",\n        \"search\",\n    ],\n    write_permissions=[\"annotations\"])\npulumi.export(\"readTelemetryApiKey\", read_telemetry.api_key)\npulumi.export(\"writeAnnotationsApiKey\", write_annotations.api_key)\npulumi.export(\"authenticateSdkControlChannel\", authenticate_sdk_control_channel_api_key.api_key)\npulumi.export(\"fullPermissionsApiKey\", full_permissions.api_key)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = \"West Europe\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"web\",\n        });\n        var readTelemetry = new Azure.AppInsights.ApiKey(\"readTelemetry\", new Azure.AppInsights.ApiKeyArgs\n        {\n            ApplicationInsightsId = exampleInsights.Id,\n            ReadPermissions = \n            {\n                \"aggregate\",\n                \"api\",\n                \"draft\",\n                \"extendqueries\",\n                \"search\",\n            },\n        });\n        var writeAnnotations = new Azure.AppInsights.ApiKey(\"writeAnnotations\", new Azure.AppInsights.ApiKeyArgs\n        {\n            ApplicationInsightsId = exampleInsights.Id,\n            WritePermissions = \n            {\n                \"annotations\",\n            },\n        });\n        var authenticateSdkControlChannelApiKey = new Azure.AppInsights.ApiKey(\"authenticateSdkControlChannelApiKey\", new Azure.AppInsights.ApiKeyArgs\n        {\n            ApplicationInsightsId = exampleInsights.Id,\n            ReadPermissions = \n            {\n                \"agentconfig\",\n            },\n        });\n        var fullPermissions = new Azure.AppInsights.ApiKey(\"fullPermissions\", new Azure.AppInsights.ApiKeyArgs\n        {\n            ApplicationInsightsId = exampleInsights.Id,\n            ReadPermissions = \n            {\n                \"agentconfig\",\n                \"aggregate\",\n                \"api\",\n                \"draft\",\n                \"extendqueries\",\n                \"search\",\n            },\n            WritePermissions = \n            {\n                \"annotations\",\n            },\n        });\n        this.ReadTelemetryApiKey = readTelemetry.ApiKey;\n        this.WriteAnnotationsApiKey = writeAnnotations.ApiKey;\n        this.AuthenticateSdkControlChannel = authenticateSdkControlChannelApiKey.ApiKey;\n        this.FullPermissionsApiKey = fullPermissions.ApiKey;\n    }\n\n    [Output(\"readTelemetryApiKey\")]\n    public Output\u003cstring\u003e ReadTelemetryApiKey { get; set; }\n    [Output(\"writeAnnotationsApiKey\")]\n    public Output\u003cstring\u003e WriteAnnotationsApiKey { get; set; }\n    [Output(\"authenticateSdkControlChannel\")]\n    public Output\u003cstring\u003e AuthenticateSdkControlChannel { get; set; }\n    [Output(\"fullPermissionsApiKey\")]\n    public Output\u003cstring\u003e FullPermissionsApiKey { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          pulumi.String(\"West Europe\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treadTelemetry, err := appinsights.NewApiKey(ctx, \"readTelemetry\", \u0026appinsights.ApiKeyArgs{\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tReadPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aggregate\"),\n\t\t\t\tpulumi.String(\"api\"),\n\t\t\t\tpulumi.String(\"draft\"),\n\t\t\t\tpulumi.String(\"extendqueries\"),\n\t\t\t\tpulumi.String(\"search\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\twriteAnnotations, err := appinsights.NewApiKey(ctx, \"writeAnnotations\", \u0026appinsights.ApiKeyArgs{\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tWritePermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"annotations\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tauthenticateSdkControlChannelApiKey, err := appinsights.NewApiKey(ctx, \"authenticateSdkControlChannelApiKey\", \u0026appinsights.ApiKeyArgs{\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tReadPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"agentconfig\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfullPermissions, err := appinsights.NewApiKey(ctx, \"fullPermissions\", \u0026appinsights.ApiKeyArgs{\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tReadPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"agentconfig\"),\n\t\t\t\tpulumi.String(\"aggregate\"),\n\t\t\t\tpulumi.String(\"api\"),\n\t\t\t\tpulumi.String(\"draft\"),\n\t\t\t\tpulumi.String(\"extendqueries\"),\n\t\t\t\tpulumi.String(\"search\"),\n\t\t\t},\n\t\t\tWritePermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"annotations\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"readTelemetryApiKey\", readTelemetry.ApiKey)\n\t\tctx.Export(\"writeAnnotationsApiKey\", writeAnnotations.ApiKey)\n\t\tctx.Export(\"authenticateSdkControlChannel\", authenticateSdkControlChannelApiKey.ApiKey)\n\t\tctx.Export(\"fullPermissionsApiKey\", fullPermissions.ApiKey)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApplication Insights API keys can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appinsights/apiKey:ApiKey my_key /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.insights/components/instance1/apikeys/00000000-0000-0000-0000-000000000000\n```\n\n ",
      "inputProperties": {
        "applicationInsightsId": {
          "description": "The ID of the Application Insights component on which the API key operates. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Application Insights API key. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "readPermissions": {
          "description": "Specifies the list of read permissions granted to the API key. Valid values are `agentconfig`, `aggregate`, `api`, `draft`, `extendqueries`, `search`. Please note these values are case sensitive. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "writePermissions": {
          "description": "Specifies the list of write permissions granted to the API key. Valid values are `annotations`. Please note these values are case sensitive. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "apiKey": {
          "description": "The API Key secret (Sensitive).\n",
          "language": {
            "csharp": {
              "name": "Key"
            }
          },
          "type": "string"
        },
        "applicationInsightsId": {
          "description": "The ID of the Application Insights component on which the API key operates. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Application Insights API key. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "readPermissions": {
          "description": "Specifies the list of read permissions granted to the API key. Valid values are `agentconfig`, `aggregate`, `api`, `draft`, `extendqueries`, `search`. Please note these values are case sensitive. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "writePermissions": {
          "description": "Specifies the list of write permissions granted to the API key. Valid values are `annotations`. Please note these values are case sensitive. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "apiKey",
        "applicationInsightsId",
        "name"
      ],
      "requiredInputs": [
        "applicationInsightsId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApiKey resources.\n",
        "properties": {
          "apiKey": {
            "description": "The API Key secret (Sensitive).\n",
            "language": {
              "csharp": {
                "name": "Key"
              }
            },
            "type": "string"
          },
          "applicationInsightsId": {
            "description": "The ID of the Application Insights component on which the API key operates. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Application Insights API key. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "readPermissions": {
            "description": "Specifies the list of read permissions granted to the API key. Valid values are `agentconfig`, `aggregate`, `api`, `draft`, `extendqueries`, `search`. Please note these values are case sensitive. Changing this forces a new resource to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "writePermissions": {
            "description": "Specifies the list of write permissions granted to the API key. Valid values are `annotations`. Please note these values are case sensitive. Changing this forces a new resource to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:appinsights/insights:Insights": {
      "description": "Manages an Application Insights component.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"web\",\n});\nexport const instrumentationKey = exampleInsights.instrumentationKey;\nexport const appId = exampleInsights.appId;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_type=\"web\")\npulumi.export(\"instrumentationKey\", example_insights.instrumentation_key)\npulumi.export(\"appId\", example_insights.app_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"web\",\n        });\n        this.InstrumentationKey = exampleInsights.InstrumentationKey;\n        this.AppId = exampleInsights.AppId;\n    }\n\n    [Output(\"instrumentationKey\")]\n    public Output\u003cstring\u003e InstrumentationKey { get; set; }\n    [Output(\"appId\")]\n    public Output\u003cstring\u003e AppId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"instrumentationKey\", exampleInsights.InstrumentationKey)\n\t\tctx.Export(\"appId\", exampleInsights.AppId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% example %}}\n### Workspace Mode\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n    retentionInDays: 30,\n});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    workspaceId: exampleAnalyticsWorkspace.id,\n    applicationType: \"web\",\n});\nexport const instrumentationKey = exampleInsights.instrumentationKey;\nexport const appId = exampleInsights.appId;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\",\n    retention_in_days=30)\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    workspace_id=example_analytics_workspace.id,\n    application_type=\"web\")\npulumi.export(\"instrumentationKey\", example_insights.instrumentation_key)\npulumi.export(\"appId\", example_insights.app_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n            RetentionInDays = 30,\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            WorkspaceId = exampleAnalyticsWorkspace.Id,\n            ApplicationType = \"web\",\n        });\n        this.InstrumentationKey = exampleInsights.InstrumentationKey;\n        this.AppId = exampleInsights.AppId;\n    }\n\n    [Output(\"instrumentationKey\")]\n    public Output\u003cstring\u003e InstrumentationKey { get; set; }\n    [Output(\"appId\")]\n    public Output\u003cstring\u003e AppId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t\tRetentionInDays:   pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tWorkspaceId:       exampleAnalyticsWorkspace.ID(),\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"instrumentationKey\", exampleInsights.InstrumentationKey)\n\t\tctx.Export(\"appId\", exampleInsights.AppId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApplication Insights instances can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appinsights/insights:Insights instance1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.insights/components/instance1\n```\n\n ",
      "inputProperties": {
        "applicationType": {
          "description": "Specifies the type of Application Insights to create. Valid values are `ios` for _iOS_, `java` for _Java web_, `MobileCenter` for _App Center_, `Node.JS` for _Node.js_, `other` for _General_, `phone` for _Windows Phone_, `store` for _Windows Store_ and `web` for _ASP.NET_. Please note these values are case sensitive; unmatched values are treated as _ASP.NET_ by Azure. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "dailyDataCapInGb": {
          "description": "Specifies the Application Insights component daily data volume cap in GB.\n",
          "type": "number"
        },
        "dailyDataCapNotificationsDisabled": {
          "description": "Specifies if a notification email will be send when the daily data volume cap is met.\n",
          "type": "boolean"
        },
        "disableIpMasking": {
          "description": "By default the real client ip is masked as `0.0.0.0` in the logs. Use this argument to disable masking and log the real client ip. Defaults to `false`.\n",
          "type": "boolean"
        },
        "localAuthenticationDisabled": {
          "description": "Disable Non-Azure AD based Auth. Defaults to `false`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Application Insights component. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the Application Insights component.\n",
          "type": "string"
        },
        "retentionInDays": {
          "description": "Specifies the retention period in days. Possible values are `30`, `60`, `90`, `120`, `180`, `270`, `365`, `550` or `730`. Defaults to `90`.\n",
          "type": "integer"
        },
        "samplingPercentage": {
          "description": "Specifies the percentage of the data produced by the monitored application that is sampled for Application Insights telemetry.\n",
          "type": "number"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "workspaceId": {
          "description": "Specifies the id of a log analytics workspace resource\n",
          "type": "string"
        }
      },
      "properties": {
        "appId": {
          "description": "The App ID associated with this Application Insights component.\n",
          "type": "string"
        },
        "applicationType": {
          "description": "Specifies the type of Application Insights to create. Valid values are `ios` for _iOS_, `java` for _Java web_, `MobileCenter` for _App Center_, `Node.JS` for _Node.js_, `other` for _General_, `phone` for _Windows Phone_, `store` for _Windows Store_ and `web` for _ASP.NET_. Please note these values are case sensitive; unmatched values are treated as _ASP.NET_ by Azure. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "connectionString": {
          "description": "The Connection String for this Application Insights component. (Sensitive)\n",
          "type": "string"
        },
        "dailyDataCapInGb": {
          "description": "Specifies the Application Insights component daily data volume cap in GB.\n",
          "type": "number"
        },
        "dailyDataCapNotificationsDisabled": {
          "description": "Specifies if a notification email will be send when the daily data volume cap is met.\n",
          "type": "boolean"
        },
        "disableIpMasking": {
          "description": "By default the real client ip is masked as `0.0.0.0` in the logs. Use this argument to disable masking and log the real client ip. Defaults to `false`.\n",
          "type": "boolean"
        },
        "instrumentationKey": {
          "description": "The Instrumentation Key for this Application Insights component. (Sensitive)\n",
          "type": "string"
        },
        "localAuthenticationDisabled": {
          "description": "Disable Non-Azure AD based Auth. Defaults to `false`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Application Insights component. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the Application Insights component.\n",
          "type": "string"
        },
        "retentionInDays": {
          "description": "Specifies the retention period in days. Possible values are `30`, `60`, `90`, `120`, `180`, `270`, `365`, `550` or `730`. Defaults to `90`.\n",
          "type": "integer"
        },
        "samplingPercentage": {
          "description": "Specifies the percentage of the data produced by the monitored application that is sampled for Application Insights telemetry.\n",
          "type": "number"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "workspaceId": {
          "description": "Specifies the id of a log analytics workspace resource\n",
          "type": "string"
        }
      },
      "required": [
        "appId",
        "applicationType",
        "connectionString",
        "dailyDataCapInGb",
        "dailyDataCapNotificationsDisabled",
        "instrumentationKey",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "applicationType",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Insights resources.\n",
        "properties": {
          "appId": {
            "description": "The App ID associated with this Application Insights component.\n",
            "type": "string"
          },
          "applicationType": {
            "description": "Specifies the type of Application Insights to create. Valid values are `ios` for _iOS_, `java` for _Java web_, `MobileCenter` for _App Center_, `Node.JS` for _Node.js_, `other` for _General_, `phone` for _Windows Phone_, `store` for _Windows Store_ and `web` for _ASP.NET_. Please note these values are case sensitive; unmatched values are treated as _ASP.NET_ by Azure. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "connectionString": {
            "description": "The Connection String for this Application Insights component. (Sensitive)\n",
            "type": "string"
          },
          "dailyDataCapInGb": {
            "description": "Specifies the Application Insights component daily data volume cap in GB.\n",
            "type": "number"
          },
          "dailyDataCapNotificationsDisabled": {
            "description": "Specifies if a notification email will be send when the daily data volume cap is met.\n",
            "type": "boolean"
          },
          "disableIpMasking": {
            "description": "By default the real client ip is masked as `0.0.0.0` in the logs. Use this argument to disable masking and log the real client ip. Defaults to `false`.\n",
            "type": "boolean"
          },
          "instrumentationKey": {
            "description": "The Instrumentation Key for this Application Insights component. (Sensitive)\n",
            "type": "string"
          },
          "localAuthenticationDisabled": {
            "description": "Disable Non-Azure AD based Auth. Defaults to `false`.\n",
            "type": "boolean"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Application Insights component. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the Application Insights component.\n",
            "type": "string"
          },
          "retentionInDays": {
            "description": "Specifies the retention period in days. Possible values are `30`, `60`, `90`, `120`, `180`, `270`, `365`, `550` or `730`. Defaults to `90`.\n",
            "type": "integer"
          },
          "samplingPercentage": {
            "description": "Specifies the percentage of the data produced by the monitored application that is sampled for Application Insights telemetry.\n",
            "type": "number"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "workspaceId": {
            "description": "Specifies the id of a log analytics workspace resource\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appinsights/smartDetectionRule:SmartDetectionRule": {
      "description": "Manages an Application Insights Smart Detection Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: \"West Europe\",\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"web\",\n});\nconst exampleSmartDetectionRule = new azure.appinsights.SmartDetectionRule(\"exampleSmartDetectionRule\", {\n    applicationInsightsId: exampleInsights.id,\n    enabled: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=\"West Europe\",\n    resource_group_name=example_resource_group.name,\n    application_type=\"web\")\nexample_smart_detection_rule = azure.appinsights.SmartDetectionRule(\"exampleSmartDetectionRule\",\n    application_insights_id=example_insights.id,\n    enabled=False)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = \"West Europe\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"web\",\n        });\n        var exampleSmartDetectionRule = new Azure.AppInsights.SmartDetectionRule(\"exampleSmartDetectionRule\", new Azure.AppInsights.SmartDetectionRuleArgs\n        {\n            ApplicationInsightsId = exampleInsights.Id,\n            Enabled = false,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          pulumi.String(\"West Europe\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appinsights.NewSmartDetectionRule(ctx, \"exampleSmartDetectionRule\", \u0026appinsights.SmartDetectionRuleArgs{\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tEnabled:               pulumi.Bool(false),\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{{% /example %}}\n{{% /examples %}}",
      "inputProperties": {
        "additionalEmailRecipients": {
          "description": "Specifies a list of additional recipients that will be sent emails on this Application Insights Smart Detection Rule.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "applicationInsightsId": {
          "description": "The ID of the Application Insights component on which the Smart Detection Rule operates. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is the Application Insights Smart Detection Rule enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Application Insights Smart Detection Rule. Valid values include `Slow page load time`, `Slow server response time`, \n`Long dependency duration`, `Degradation in server response time`, `Degradation in dependency duration`, `Degradation in trace severity ratio`, `Abnormal rise in exception volume`,\n`Potential memory leak detected`, `Potential security issue detected`, `Abnormal rise in daily data volume`.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sendEmailsToSubscriptionOwners": {
          "description": "Do emails get sent to subscription owners? Defaults to `true`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "additionalEmailRecipients": {
          "description": "Specifies a list of additional recipients that will be sent emails on this Application Insights Smart Detection Rule.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "applicationInsightsId": {
          "description": "The ID of the Application Insights component on which the Smart Detection Rule operates. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is the Application Insights Smart Detection Rule enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Application Insights Smart Detection Rule. Valid values include `Slow page load time`, `Slow server response time`, \n`Long dependency duration`, `Degradation in server response time`, `Degradation in dependency duration`, `Degradation in trace severity ratio`, `Abnormal rise in exception volume`,\n`Potential memory leak detected`, `Potential security issue detected`, `Abnormal rise in daily data volume`.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sendEmailsToSubscriptionOwners": {
          "description": "Do emails get sent to subscription owners? Defaults to `true`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "applicationInsightsId",
        "name"
      ],
      "requiredInputs": [
        "applicationInsightsId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SmartDetectionRule resources.\n",
        "properties": {
          "additionalEmailRecipients": {
            "description": "Specifies a list of additional recipients that will be sent emails on this Application Insights Smart Detection Rule.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "applicationInsightsId": {
            "description": "The ID of the Application Insights component on which the Smart Detection Rule operates. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Is the Application Insights Smart Detection Rule enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the Application Insights Smart Detection Rule. Valid values include `Slow page load time`, `Slow server response time`, \n`Long dependency duration`, `Degradation in server response time`, `Degradation in dependency duration`, `Degradation in trace severity ratio`, `Abnormal rise in exception volume`,\n`Potential memory leak detected`, `Potential security issue detected`, `Abnormal rise in daily data volume`.  Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sendEmailsToSubscriptionOwners": {
            "description": "Do emails get sent to subscription owners? Defaults to `true`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:appinsights/webTest:WebTest": {
      "description": "Manages an Application Insights WebTest.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: \"West Europe\",\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"web\",\n});\nconst exampleWebTest = new azure.appinsights.WebTest(\"exampleWebTest\", {\n    location: exampleInsights.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationInsightsId: exampleInsights.id,\n    kind: \"ping\",\n    frequency: 300,\n    timeout: 60,\n    enabled: true,\n    geoLocations: [\n        \"us-tx-sn1-azr\",\n        \"us-il-ch1-azr\",\n    ],\n    configuration: `\u003cWebTest Name=\"WebTest1\" Id=\"ABD48585-0831-40CB-9069-682EA6BB3583\" Enabled=\"True\" CssProjectStructure=\"\" CssIteration=\"\" Timeout=\"0\" WorkItemIds=\"\" xmlns=\"http://microsoft.com/schemas/VisualStudio/TeamTest/2010\" Description=\"\" CredentialUserName=\"\" CredentialPassword=\"\" PreAuthenticate=\"True\" Proxy=\"default\" StopOnError=\"False\" RecordedResultFile=\"\" ResultsLocale=\"\"\u003e\n  \u003cItems\u003e\n    \u003cRequest Method=\"GET\" Guid=\"a5f10126-e4cd-570d-961c-cea43999a200\" Version=\"1.1\" Url=\"http://microsoft.com\" ThinkTime=\"0\" Timeout=\"300\" ParseDependentRequests=\"True\" FollowRedirects=\"True\" RecordResult=\"True\" Cache=\"False\" ResponseTimeGoal=\"0\" Encoding=\"utf-8\" ExpectedHttpStatusCode=\"200\" ExpectedResponseUrl=\"\" ReportingName=\"\" IgnoreHttpStatusCode=\"False\" /\u003e\n  \u003c/Items\u003e\n\u003c/WebTest\u003e\n`,\n});\nexport const webtestId = exampleWebTest.id;\nexport const webtestsSyntheticId = exampleWebTest.syntheticMonitorId;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=\"West Europe\",\n    resource_group_name=example_resource_group.name,\n    application_type=\"web\")\nexample_web_test = azure.appinsights.WebTest(\"exampleWebTest\",\n    location=example_insights.location,\n    resource_group_name=example_resource_group.name,\n    application_insights_id=example_insights.id,\n    kind=\"ping\",\n    frequency=300,\n    timeout=60,\n    enabled=True,\n    geo_locations=[\n        \"us-tx-sn1-azr\",\n        \"us-il-ch1-azr\",\n    ],\n    configuration=\"\"\"\u003cWebTest Name=\"WebTest1\" Id=\"ABD48585-0831-40CB-9069-682EA6BB3583\" Enabled=\"True\" CssProjectStructure=\"\" CssIteration=\"\" Timeout=\"0\" WorkItemIds=\"\" xmlns=\"http://microsoft.com/schemas/VisualStudio/TeamTest/2010\" Description=\"\" CredentialUserName=\"\" CredentialPassword=\"\" PreAuthenticate=\"True\" Proxy=\"default\" StopOnError=\"False\" RecordedResultFile=\"\" ResultsLocale=\"\"\u003e\n  \u003cItems\u003e\n    \u003cRequest Method=\"GET\" Guid=\"a5f10126-e4cd-570d-961c-cea43999a200\" Version=\"1.1\" Url=\"http://microsoft.com\" ThinkTime=\"0\" Timeout=\"300\" ParseDependentRequests=\"True\" FollowRedirects=\"True\" RecordResult=\"True\" Cache=\"False\" ResponseTimeGoal=\"0\" Encoding=\"utf-8\" ExpectedHttpStatusCode=\"200\" ExpectedResponseUrl=\"\" ReportingName=\"\" IgnoreHttpStatusCode=\"False\" /\u003e\n  \u003c/Items\u003e\n\u003c/WebTest\u003e\n\"\"\")\npulumi.export(\"webtestId\", example_web_test.id)\npulumi.export(\"webtestsSyntheticId\", example_web_test.synthetic_monitor_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = \"West Europe\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"web\",\n        });\n        var exampleWebTest = new Azure.AppInsights.WebTest(\"exampleWebTest\", new Azure.AppInsights.WebTestArgs\n        {\n            Location = exampleInsights.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationInsightsId = exampleInsights.Id,\n            Kind = \"ping\",\n            Frequency = 300,\n            Timeout = 60,\n            Enabled = true,\n            GeoLocations = \n            {\n                \"us-tx-sn1-azr\",\n                \"us-il-ch1-azr\",\n            },\n            Configuration = @\"\u003cWebTest Name=\"\"WebTest1\"\" Id=\"\"ABD48585-0831-40CB-9069-682EA6BB3583\"\" Enabled=\"\"True\"\" CssProjectStructure=\"\"\"\" CssIteration=\"\"\"\" Timeout=\"\"0\"\" WorkItemIds=\"\"\"\" xmlns=\"\"http://microsoft.com/schemas/VisualStudio/TeamTest/2010\"\" Description=\"\"\"\" CredentialUserName=\"\"\"\" CredentialPassword=\"\"\"\" PreAuthenticate=\"\"True\"\" Proxy=\"\"default\"\" StopOnError=\"\"False\"\" RecordedResultFile=\"\"\"\" ResultsLocale=\"\"\"\"\u003e\n  \u003cItems\u003e\n    \u003cRequest Method=\"\"GET\"\" Guid=\"\"a5f10126-e4cd-570d-961c-cea43999a200\"\" Version=\"\"1.1\"\" Url=\"\"http://microsoft.com\"\" ThinkTime=\"\"0\"\" Timeout=\"\"300\"\" ParseDependentRequests=\"\"True\"\" FollowRedirects=\"\"True\"\" RecordResult=\"\"True\"\" Cache=\"\"False\"\" ResponseTimeGoal=\"\"0\"\" Encoding=\"\"utf-8\"\" ExpectedHttpStatusCode=\"\"200\"\" ExpectedResponseUrl=\"\"\"\" ReportingName=\"\"\"\" IgnoreHttpStatusCode=\"\"False\"\" /\u003e\n  \u003c/Items\u003e\n\u003c/WebTest\u003e\n\",\n        });\n        this.WebtestId = exampleWebTest.Id;\n        this.WebtestsSyntheticId = exampleWebTest.SyntheticMonitorId;\n    }\n\n    [Output(\"webtestId\")]\n    public Output\u003cstring\u003e WebtestId { get; set; }\n    [Output(\"webtestsSyntheticId\")]\n    public Output\u003cstring\u003e WebtestsSyntheticId { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          pulumi.String(\"West Europe\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWebTest, err := appinsights.NewWebTest(ctx, \"exampleWebTest\", \u0026appinsights.WebTestArgs{\n\t\t\tLocation:              exampleInsights.Location,\n\t\t\tResourceGroupName:     exampleResourceGroup.Name,\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tKind:                  pulumi.String(\"ping\"),\n\t\t\tFrequency:             pulumi.Int(300),\n\t\t\tTimeout:               pulumi.Int(60),\n\t\t\tEnabled:               pulumi.Bool(true),\n\t\t\tGeoLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-tx-sn1-azr\"),\n\t\t\t\tpulumi.String(\"us-il-ch1-azr\"),\n\t\t\t},\n\t\t\tConfiguration: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v\", \"\u003cWebTest Name=\\\"WebTest1\\\" Id=\\\"ABD48585-0831-40CB-9069-682EA6BB3583\\\" Enabled=\\\"True\\\" CssProjectStructure=\\\"\\\" CssIteration=\\\"\\\" Timeout=\\\"0\\\" WorkItemIds=\\\"\\\" xmlns=\\\"http://microsoft.com/schemas/VisualStudio/TeamTest/2010\\\" Description=\\\"\\\" CredentialUserName=\\\"\\\" CredentialPassword=\\\"\\\" PreAuthenticate=\\\"True\\\" Proxy=\\\"default\\\" StopOnError=\\\"False\\\" RecordedResultFile=\\\"\\\" ResultsLocale=\\\"\\\"\u003e\\n\", \"  \u003cItems\u003e\\n\", \"    \u003cRequest Method=\\\"GET\\\" Guid=\\\"a5f10126-e4cd-570d-961c-cea43999a200\\\" Version=\\\"1.1\\\" Url=\\\"http://microsoft.com\\\" ThinkTime=\\\"0\\\" Timeout=\\\"300\\\" ParseDependentRequests=\\\"True\\\" FollowRedirects=\\\"True\\\" RecordResult=\\\"True\\\" Cache=\\\"False\\\" ResponseTimeGoal=\\\"0\\\" Encoding=\\\"utf-8\\\" ExpectedHttpStatusCode=\\\"200\\\" ExpectedResponseUrl=\\\"\\\" ReportingName=\\\"\\\" IgnoreHttpStatusCode=\\\"False\\\" /\u003e\\n\", \"  \u003c/Items\u003e\\n\", \"\u003c/WebTest\u003e\\n\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"webtestId\", exampleWebTest.ID())\n\t\tctx.Export(\"webtestsSyntheticId\", exampleWebTest.SyntheticMonitorId)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApplication Insights Web Tests can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appinsights/webTest:WebTest my_test /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.insights/webtests/my_test\n```\n\n ",
      "inputProperties": {
        "applicationInsightsId": {
          "description": "The ID of the Application Insights component on which the WebTest operates. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "configuration": {
          "description": "An XML configuration specification for a WebTest ([see here for more information](https://docs.microsoft.com/en-us/rest/api/application-insights/webtests/createorupdate/)).\n",
          "type": "string"
        },
        "description": {
          "description": "Purpose/user defined descriptive test for this WebTest.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is the test actively being monitored.\n",
          "type": "boolean"
        },
        "frequency": {
          "description": "Interval in seconds between test runs for this WebTest. Valid options are `300`, `600` and `900`. Defaults to `300`.\n",
          "type": "integer"
        },
        "geoLocations": {
          "description": "A list of where to physically run the tests from to give global coverage for accessibility of your application.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "kind": {
          "description": "= (Required) The kind of web test that this web test watches. Choices are `ping` and `multistep`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. It needs to correlate with location of parent resource (azurerm_application_insights).\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Application Insights WebTest. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Application Insights WebTest. Changing this forces a new resource\n",
          "type": "string"
        },
        "retryEnabled": {
          "description": "Allow for retries should this WebTest fail.\n",
          "type": "boolean"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "timeout": {
          "description": "Seconds until this WebTest will timeout and fail. Default is `30`.\n",
          "type": "integer"
        }
      },
      "properties": {
        "applicationInsightsId": {
          "description": "The ID of the Application Insights component on which the WebTest operates. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "configuration": {
          "description": "An XML configuration specification for a WebTest ([see here for more information](https://docs.microsoft.com/en-us/rest/api/application-insights/webtests/createorupdate/)).\n",
          "type": "string"
        },
        "description": {
          "description": "Purpose/user defined descriptive test for this WebTest.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is the test actively being monitored.\n",
          "type": "boolean"
        },
        "frequency": {
          "description": "Interval in seconds between test runs for this WebTest. Valid options are `300`, `600` and `900`. Defaults to `300`.\n",
          "type": "integer"
        },
        "geoLocations": {
          "description": "A list of where to physically run the tests from to give global coverage for accessibility of your application.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "kind": {
          "description": "= (Required) The kind of web test that this web test watches. Choices are `ping` and `multistep`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. It needs to correlate with location of parent resource (azurerm_application_insights).\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Application Insights WebTest. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Application Insights WebTest. Changing this forces a new resource\n",
          "type": "string"
        },
        "retryEnabled": {
          "description": "Allow for retries should this WebTest fail.\n",
          "type": "boolean"
        },
        "syntheticMonitorId": {
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "timeout": {
          "description": "Seconds until this WebTest will timeout and fail. Default is `30`.\n",
          "type": "integer"
        }
      },
      "required": [
        "applicationInsightsId",
        "configuration",
        "geoLocations",
        "kind",
        "location",
        "name",
        "resourceGroupName",
        "syntheticMonitorId"
      ],
      "requiredInputs": [
        "applicationInsightsId",
        "configuration",
        "geoLocations",
        "kind",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WebTest resources.\n",
        "properties": {
          "applicationInsightsId": {
            "description": "The ID of the Application Insights component on which the WebTest operates. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "configuration": {
            "description": "An XML configuration specification for a WebTest ([see here for more information](https://docs.microsoft.com/en-us/rest/api/application-insights/webtests/createorupdate/)).\n",
            "type": "string"
          },
          "description": {
            "description": "Purpose/user defined descriptive test for this WebTest.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Is the test actively being monitored.\n",
            "type": "boolean"
          },
          "frequency": {
            "description": "Interval in seconds between test runs for this WebTest. Valid options are `300`, `600` and `900`. Defaults to `300`.\n",
            "type": "integer"
          },
          "geoLocations": {
            "description": "A list of where to physically run the tests from to give global coverage for accessibility of your application.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "kind": {
            "description": "= (Required) The kind of web test that this web test watches. Choices are `ping` and `multistep`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. It needs to correlate with location of parent resource (azurerm_application_insights).\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Application Insights WebTest. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Application Insights WebTest. Changing this forces a new resource\n",
            "type": "string"
          },
          "retryEnabled": {
            "description": "Allow for retries should this WebTest fail.\n",
            "type": "boolean"
          },
          "syntheticMonitorId": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "timeout": {
            "description": "Seconds until this WebTest will timeout and fail. Default is `30`.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:appplatform/springCloudActiveDeployment:SpringCloudActiveDeployment": {
      "description": "Manages an Active Azure Spring Cloud Deployment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSpringCloudService = new azure.appplatform.SpringCloudService(\"exampleSpringCloudService\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleSpringCloudApp = new azure.appplatform.SpringCloudApp(\"exampleSpringCloudApp\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serviceName: exampleSpringCloudService.name,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\nconst exampleSpringCloudJavaDeployment = new azure.appplatform.SpringCloudJavaDeployment(\"exampleSpringCloudJavaDeployment\", {\n    springCloudAppId: exampleSpringCloudApp.id,\n    cpu: 2,\n    memoryInGb: 4,\n    instanceCount: 2,\n    jvmOptions: \"-XX:+PrintGC\",\n    runtimeVersion: \"Java_11\",\n    environmentVariables: {\n        Env: \"Staging\",\n    },\n});\nconst exampleSpringCloudActiveDeployment = new azure.appplatform.SpringCloudActiveDeployment(\"exampleSpringCloudActiveDeployment\", {\n    springCloudAppId: exampleSpringCloudApp.id,\n    deploymentName: exampleSpringCloudJavaDeployment.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_spring_cloud_service = azure.appplatform.SpringCloudService(\"exampleSpringCloudService\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_spring_cloud_app = azure.appplatform.SpringCloudApp(\"exampleSpringCloudApp\",\n    resource_group_name=example_resource_group.name,\n    service_name=example_spring_cloud_service.name,\n    identity=azure.appplatform.SpringCloudAppIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\nexample_spring_cloud_java_deployment = azure.appplatform.SpringCloudJavaDeployment(\"exampleSpringCloudJavaDeployment\",\n    spring_cloud_app_id=example_spring_cloud_app.id,\n    cpu=2,\n    memory_in_gb=4,\n    instance_count=2,\n    jvm_options=\"-XX:+PrintGC\",\n    runtime_version=\"Java_11\",\n    environment_variables={\n        \"Env\": \"Staging\",\n    })\nexample_spring_cloud_active_deployment = azure.appplatform.SpringCloudActiveDeployment(\"exampleSpringCloudActiveDeployment\",\n    spring_cloud_app_id=example_spring_cloud_app.id,\n    deployment_name=example_spring_cloud_java_deployment.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSpringCloudService = new Azure.AppPlatform.SpringCloudService(\"exampleSpringCloudService\", new Azure.AppPlatform.SpringCloudServiceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleSpringCloudApp = new Azure.AppPlatform.SpringCloudApp(\"exampleSpringCloudApp\", new Azure.AppPlatform.SpringCloudAppArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServiceName = exampleSpringCloudService.Name,\n            Identity = new Azure.AppPlatform.Inputs.SpringCloudAppIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n        var exampleSpringCloudJavaDeployment = new Azure.AppPlatform.SpringCloudJavaDeployment(\"exampleSpringCloudJavaDeployment\", new Azure.AppPlatform.SpringCloudJavaDeploymentArgs\n        {\n            SpringCloudAppId = exampleSpringCloudApp.Id,\n            Cpu = 2,\n            MemoryInGb = 4,\n            InstanceCount = 2,\n            JvmOptions = \"-XX:+PrintGC\",\n            RuntimeVersion = \"Java_11\",\n            EnvironmentVariables = \n            {\n                { \"Env\", \"Staging\" },\n            },\n        });\n        var exampleSpringCloudActiveDeployment = new Azure.AppPlatform.SpringCloudActiveDeployment(\"exampleSpringCloudActiveDeployment\", new Azure.AppPlatform.SpringCloudActiveDeploymentArgs\n        {\n            SpringCloudAppId = exampleSpringCloudApp.Id,\n            DeploymentName = exampleSpringCloudJavaDeployment.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appplatform\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSpringCloudService, err := appplatform.NewSpringCloudService(ctx, \"exampleSpringCloudService\", \u0026appplatform.SpringCloudServiceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSpringCloudApp, err := appplatform.NewSpringCloudApp(ctx, \"exampleSpringCloudApp\", \u0026appplatform.SpringCloudAppArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServiceName:       exampleSpringCloudService.Name,\n\t\t\tIdentity: \u0026appplatform.SpringCloudAppIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSpringCloudJavaDeployment, err := appplatform.NewSpringCloudJavaDeployment(ctx, \"exampleSpringCloudJavaDeployment\", \u0026appplatform.SpringCloudJavaDeploymentArgs{\n\t\t\tSpringCloudAppId: exampleSpringCloudApp.ID(),\n\t\t\tCpu:              pulumi.Int(2),\n\t\t\tMemoryInGb:       pulumi.Int(4),\n\t\t\tInstanceCount:    pulumi.Int(2),\n\t\t\tJvmOptions:       pulumi.String(\"-XX:+PrintGC\"),\n\t\t\tRuntimeVersion:   pulumi.String(\"Java_11\"),\n\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\"Env\": pulumi.String(\"Staging\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appplatform.NewSpringCloudActiveDeployment(ctx, \"exampleSpringCloudActiveDeployment\", \u0026appplatform.SpringCloudActiveDeploymentArgs{\n\t\t\tSpringCloudAppId: exampleSpringCloudApp.ID(),\n\t\t\tDeploymentName:   exampleSpringCloudJavaDeployment.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSpring Cloud Active Deployment can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appplatform/springCloudActiveDeployment:SpringCloudActiveDeployment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourcegroup1/providers/Microsoft.AppPlatform/Spring/service1/apps/app1\n```\n\n ",
      "inputProperties": {
        "deploymentName": {
          "description": "Specifies the name of Spring Cloud Deployment which is going to be active.\n",
          "type": "string"
        },
        "springCloudAppId": {
          "description": "Specifies the id of the Spring Cloud Application. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "deploymentName": {
          "description": "Specifies the name of Spring Cloud Deployment which is going to be active.\n",
          "type": "string"
        },
        "springCloudAppId": {
          "description": "Specifies the id of the Spring Cloud Application. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "deploymentName",
        "springCloudAppId"
      ],
      "requiredInputs": [
        "deploymentName",
        "springCloudAppId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SpringCloudActiveDeployment resources.\n",
        "properties": {
          "deploymentName": {
            "description": "Specifies the name of Spring Cloud Deployment which is going to be active.\n",
            "type": "string"
          },
          "springCloudAppId": {
            "description": "Specifies the id of the Spring Cloud Application. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appplatform/springCloudApp:SpringCloudApp": {
      "description": "Manage an Azure Spring Cloud Application.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSpringCloudService = new azure.appplatform.SpringCloudService(\"exampleSpringCloudService\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleSpringCloudApp = new azure.appplatform.SpringCloudApp(\"exampleSpringCloudApp\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serviceName: exampleSpringCloudService.name,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_spring_cloud_service = azure.appplatform.SpringCloudService(\"exampleSpringCloudService\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_spring_cloud_app = azure.appplatform.SpringCloudApp(\"exampleSpringCloudApp\",\n    resource_group_name=example_resource_group.name,\n    service_name=example_spring_cloud_service.name,\n    identity=azure.appplatform.SpringCloudAppIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSpringCloudService = new Azure.AppPlatform.SpringCloudService(\"exampleSpringCloudService\", new Azure.AppPlatform.SpringCloudServiceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleSpringCloudApp = new Azure.AppPlatform.SpringCloudApp(\"exampleSpringCloudApp\", new Azure.AppPlatform.SpringCloudAppArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServiceName = exampleSpringCloudService.Name,\n            Identity = new Azure.AppPlatform.Inputs.SpringCloudAppIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appplatform\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSpringCloudService, err := appplatform.NewSpringCloudService(ctx, \"exampleSpringCloudService\", \u0026appplatform.SpringCloudServiceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appplatform.NewSpringCloudApp(ctx, \"exampleSpringCloudApp\", \u0026appplatform.SpringCloudAppArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServiceName:       exampleSpringCloudService.Name,\n\t\t\tIdentity: \u0026appplatform.SpringCloudAppIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSpring Cloud Application can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appplatform/springCloudApp:SpringCloudApp example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp\n```\n\n ",
      "inputProperties": {
        "httpsOnly": {
          "description": "Is only https allowed? Defaults to `false`.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:appplatform/SpringCloudAppIdentity:SpringCloudAppIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "isPublic": {
          "description": "Does the Spring Cloud Application have public endpoint? Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Spring Cloud Application. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "persistentDisk": {
          "$ref": "#/types/azure:appplatform/SpringCloudAppPersistentDisk:SpringCloudAppPersistentDisk",
          "description": "An `persistent_disk` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the resource group in which to create the Spring Cloud Application. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceName": {
          "description": "Specifies the name of the Spring Cloud Service resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsEnabled": {
          "description": "Is End to End TLS Enabled? Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The Fully Qualified DNS Name of the Spring Application in the service.\n",
          "type": "string"
        },
        "httpsOnly": {
          "description": "Is only https allowed? Defaults to `false`.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:appplatform/SpringCloudAppIdentity:SpringCloudAppIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "isPublic": {
          "description": "Does the Spring Cloud Application have public endpoint? Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Spring Cloud Application. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "persistentDisk": {
          "$ref": "#/types/azure:appplatform/SpringCloudAppPersistentDisk:SpringCloudAppPersistentDisk",
          "description": "An `persistent_disk` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the resource group in which to create the Spring Cloud Application. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceName": {
          "description": "Specifies the name of the Spring Cloud Service resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsEnabled": {
          "description": "Is End to End TLS Enabled? Defaults to `false`.\n",
          "type": "boolean"
        },
        "url": {
          "description": "The public endpoint of the Spring Cloud Application.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "persistentDisk",
        "resourceGroupName",
        "serviceName",
        "url"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "serviceName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SpringCloudApp resources.\n",
        "properties": {
          "fqdn": {
            "description": "The Fully Qualified DNS Name of the Spring Application in the service.\n",
            "type": "string"
          },
          "httpsOnly": {
            "description": "Is only https allowed? Defaults to `false`.\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:appplatform/SpringCloudAppIdentity:SpringCloudAppIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "isPublic": {
            "description": "Does the Spring Cloud Application have public endpoint? Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the Spring Cloud Application. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "persistentDisk": {
            "$ref": "#/types/azure:appplatform/SpringCloudAppPersistentDisk:SpringCloudAppPersistentDisk",
            "description": "An `persistent_disk` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group in which to create the Spring Cloud Application. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serviceName": {
            "description": "Specifies the name of the Spring Cloud Service resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tlsEnabled": {
            "description": "Is End to End TLS Enabled? Defaults to `false`.\n",
            "type": "boolean"
          },
          "url": {
            "description": "The public endpoint of the Spring Cloud Application.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appplatform/springCloudAppCosmosDBAssociation:SpringCloudAppCosmosDBAssociation": {
      "description": "Associates a Spring Cloud Application with a CosmosDB Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSpringCloudService = new azure.appplatform.SpringCloudService(\"exampleSpringCloudService\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleSpringCloudApp = new azure.appplatform.SpringCloudApp(\"exampleSpringCloudApp\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serviceName: exampleSpringCloudService.name,\n});\nconst exampleAccount = new azure.cosmosdb.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    offerType: \"Standard\",\n    kind: \"GlobalDocumentDB\",\n    consistencyPolicy: {\n        consistencyLevel: \"Strong\",\n    },\n    geoLocations: [{\n        location: exampleResourceGroup.location,\n        failoverPriority: 0,\n    }],\n});\nconst exampleSpringCloudAppCosmosDBAssociation = new azure.appplatform.SpringCloudAppCosmosDBAssociation(\"exampleSpringCloudAppCosmosDBAssociation\", {\n    springCloudAppId: exampleSpringCloudApp.id,\n    cosmosdbAccountId: exampleAccount.id,\n    apiType: \"table\",\n    cosmosdbAccessKey: exampleAccount.primaryKey,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_spring_cloud_service = azure.appplatform.SpringCloudService(\"exampleSpringCloudService\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_spring_cloud_app = azure.appplatform.SpringCloudApp(\"exampleSpringCloudApp\",\n    resource_group_name=example_resource_group.name,\n    service_name=example_spring_cloud_service.name)\nexample_account = azure.cosmosdb.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    offer_type=\"Standard\",\n    kind=\"GlobalDocumentDB\",\n    consistency_policy=azure.cosmosdb.AccountConsistencyPolicyArgs(\n        consistency_level=\"Strong\",\n    ),\n    geo_locations=[azure.cosmosdb.AccountGeoLocationArgs(\n        location=example_resource_group.location,\n        failover_priority=0,\n    )])\nexample_spring_cloud_app_cosmos_dbassociation = azure.appplatform.SpringCloudAppCosmosDBAssociation(\"exampleSpringCloudAppCosmosDBAssociation\",\n    spring_cloud_app_id=example_spring_cloud_app.id,\n    cosmosdb_account_id=example_account.id,\n    api_type=\"table\",\n    cosmosdb_access_key=example_account.primary_key)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSpringCloudService = new Azure.AppPlatform.SpringCloudService(\"exampleSpringCloudService\", new Azure.AppPlatform.SpringCloudServiceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleSpringCloudApp = new Azure.AppPlatform.SpringCloudApp(\"exampleSpringCloudApp\", new Azure.AppPlatform.SpringCloudAppArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServiceName = exampleSpringCloudService.Name,\n        });\n        var exampleAccount = new Azure.CosmosDB.Account(\"exampleAccount\", new Azure.CosmosDB.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            OfferType = \"Standard\",\n            Kind = \"GlobalDocumentDB\",\n            ConsistencyPolicy = new Azure.CosmosDB.Inputs.AccountConsistencyPolicyArgs\n            {\n                ConsistencyLevel = \"Strong\",\n            },\n            GeoLocations = \n            {\n                new Azure.CosmosDB.Inputs.AccountGeoLocationArgs\n                {\n                    Location = exampleResourceGroup.Location,\n                    FailoverPriority = 0,\n                },\n            },\n        });\n        var exampleSpringCloudAppCosmosDBAssociation = new Azure.AppPlatform.SpringCloudAppCosmosDBAssociation(\"exampleSpringCloudAppCosmosDBAssociation\", new Azure.AppPlatform.SpringCloudAppCosmosDBAssociationArgs\n        {\n            SpringCloudAppId = exampleSpringCloudApp.Id,\n            CosmosdbAccountId = exampleAccount.Id,\n            ApiType = \"table\",\n            CosmosdbAccessKey = exampleAccount.PrimaryKey,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appplatform\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSpringCloudService, err := appplatform.NewSpringCloudService(ctx, \"exampleSpringCloudService\", \u0026appplatform.SpringCloudServiceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSpringCloudApp, err := appplatform.NewSpringCloudApp(ctx, \"exampleSpringCloudApp\", \u0026appplatform.SpringCloudAppArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServiceName:       exampleSpringCloudService.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := cosmosdb.NewAccount(ctx, \"exampleAccount\", \u0026cosmosdb.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tOfferType:         pulumi.String(\"Standard\"),\n\t\t\tKind:              pulumi.String(\"GlobalDocumentDB\"),\n\t\t\tConsistencyPolicy: \u0026cosmosdb.AccountConsistencyPolicyArgs{\n\t\t\t\tConsistencyLevel: pulumi.String(\"Strong\"),\n\t\t\t},\n\t\t\tGeoLocations: cosmosdb.AccountGeoLocationArray{\n\t\t\t\t\u0026cosmosdb.AccountGeoLocationArgs{\n\t\t\t\t\tLocation:         exampleResourceGroup.Location,\n\t\t\t\t\tFailoverPriority: pulumi.Int(0),\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 = appplatform.NewSpringCloudAppCosmosDBAssociation(ctx, \"exampleSpringCloudAppCosmosDBAssociation\", \u0026appplatform.SpringCloudAppCosmosDBAssociationArgs{\n\t\t\tSpringCloudAppId:  exampleSpringCloudApp.ID(),\n\t\t\tCosmosdbAccountId: exampleAccount.ID(),\n\t\t\tApiType:           pulumi.String(\"table\"),\n\t\t\tCosmosdbAccessKey: exampleAccount.PrimaryKey,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSpring Cloud Application CosmosDB Association can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appplatform/springCloudAppCosmosDBAssociation:SpringCloudAppCosmosDBAssociation example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourcegroup1/providers/Microsoft.AppPlatform/Spring/service1/apps/app1/bindings/bind1\n```\n\n ",
      "inputProperties": {
        "apiType": {
          "description": "Specifies the api type which should be used when connecting to the CosmosDB Account. Possible values are `cassandra`, `gremlin`, `mongo`, `sql` or `table`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "cosmosdbAccessKey": {
          "description": "Specifies the CosmosDB Account access key.\n",
          "type": "string"
        },
        "cosmosdbAccountId": {
          "description": "Specifies the ID of the CosmosDB Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "cosmosdbCassandraKeyspaceName": {
          "description": "Specifies the name of the Cassandra Keyspace which the Spring Cloud App should be associated with. Should only be set when `api_type` is `cassandra`.\n",
          "type": "string"
        },
        "cosmosdbGremlinDatabaseName": {
          "description": "Specifies the name of the Gremlin Database which the Spring Cloud App should be associated with. Should only be set when `api_type` is `gremlin`.\n",
          "type": "string"
        },
        "cosmosdbGremlinGraphName": {
          "description": "Specifies the name of the Gremlin Graph which the Spring Cloud App should be associated with. Should only be set when `api_type` is `gremlin`.\n",
          "type": "string"
        },
        "cosmosdbMongoDatabaseName": {
          "description": "Specifies the name of the Mongo Database which the Spring Cloud App should be associated with. Should only be set when `api_type` is `mongo`.\n",
          "type": "string"
        },
        "cosmosdbSqlDatabaseName": {
          "description": "Specifies the name of the Sql Database which the Spring Cloud App should be associated with. Should only be set when `api_type` is `sql`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Spring Cloud Application Association. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "springCloudAppId": {
          "description": "Specifies the ID of the Spring Cloud Application where this Association is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "apiType": {
          "description": "Specifies the api type which should be used when connecting to the CosmosDB Account. Possible values are `cassandra`, `gremlin`, `mongo`, `sql` or `table`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "cosmosdbAccessKey": {
          "description": "Specifies the CosmosDB Account access key.\n",
          "type": "string"
        },
        "cosmosdbAccountId": {
          "description": "Specifies the ID of the CosmosDB Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "cosmosdbCassandraKeyspaceName": {
          "description": "Specifies the name of the Cassandra Keyspace which the Spring Cloud App should be associated with. Should only be set when `api_type` is `cassandra`.\n",
          "type": "string"
        },
        "cosmosdbGremlinDatabaseName": {
          "description": "Specifies the name of the Gremlin Database which the Spring Cloud App should be associated with. Should only be set when `api_type` is `gremlin`.\n",
          "type": "string"
        },
        "cosmosdbGremlinGraphName": {
          "description": "Specifies the name of the Gremlin Graph which the Spring Cloud App should be associated with. Should only be set when `api_type` is `gremlin`.\n",
          "type": "string"
        },
        "cosmosdbMongoDatabaseName": {
          "description": "Specifies the name of the Mongo Database which the Spring Cloud App should be associated with. Should only be set when `api_type` is `mongo`.\n",
          "type": "string"
        },
        "cosmosdbSqlDatabaseName": {
          "description": "Specifies the name of the Sql Database which the Spring Cloud App should be associated with. Should only be set when `api_type` is `sql`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Spring Cloud Application Association. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "springCloudAppId": {
          "description": "Specifies the ID of the Spring Cloud Application where this Association is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "apiType",
        "cosmosdbAccessKey",
        "cosmosdbAccountId",
        "name",
        "springCloudAppId"
      ],
      "requiredInputs": [
        "apiType",
        "cosmosdbAccessKey",
        "cosmosdbAccountId",
        "springCloudAppId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SpringCloudAppCosmosDBAssociation resources.\n",
        "properties": {
          "apiType": {
            "description": "Specifies the api type which should be used when connecting to the CosmosDB Account. Possible values are `cassandra`, `gremlin`, `mongo`, `sql` or `table`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "cosmosdbAccessKey": {
            "description": "Specifies the CosmosDB Account access key.\n",
            "type": "string"
          },
          "cosmosdbAccountId": {
            "description": "Specifies the ID of the CosmosDB Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "cosmosdbCassandraKeyspaceName": {
            "description": "Specifies the name of the Cassandra Keyspace which the Spring Cloud App should be associated with. Should only be set when `api_type` is `cassandra`.\n",
            "type": "string"
          },
          "cosmosdbGremlinDatabaseName": {
            "description": "Specifies the name of the Gremlin Database which the Spring Cloud App should be associated with. Should only be set when `api_type` is `gremlin`.\n",
            "type": "string"
          },
          "cosmosdbGremlinGraphName": {
            "description": "Specifies the name of the Gremlin Graph which the Spring Cloud App should be associated with. Should only be set when `api_type` is `gremlin`.\n",
            "type": "string"
          },
          "cosmosdbMongoDatabaseName": {
            "description": "Specifies the name of the Mongo Database which the Spring Cloud App should be associated with. Should only be set when `api_type` is `mongo`.\n",
            "type": "string"
          },
          "cosmosdbSqlDatabaseName": {
            "description": "Specifies the name of the Sql Database which the Spring Cloud App should be associated with. Should only be set when `api_type` is `sql`.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Spring Cloud Application Association. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "springCloudAppId": {
            "description": "Specifies the ID of the Spring Cloud Application where this Association is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appplatform/springCloudAppMysqlAssociation:SpringCloudAppMysqlAssociation": {
      "description": "Associates a Spring Cloud Application with a MySQL Database.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSpringCloudService = new azure.appplatform.SpringCloudService(\"exampleSpringCloudService\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleSpringCloudApp = new azure.appplatform.SpringCloudApp(\"exampleSpringCloudApp\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serviceName: exampleSpringCloudService.name,\n});\nconst exampleServer = new azure.mysql.Server(\"exampleServer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    administratorLogin: \"mysqladminun\",\n    administratorLoginPassword: \"H@Sh1CoR3!\",\n    skuName: \"B_Gen5_2\",\n    storageMb: 5120,\n    version: \"5.7\",\n    sslEnforcementEnabled: true,\n    sslMinimalTlsVersionEnforced: \"TLS1_2\",\n});\nconst exampleDatabase = new azure.mysql.Database(\"exampleDatabase\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    charset: \"utf8\",\n    collation: \"utf8_unicode_ci\",\n});\nconst exampleSpringCloudAppMysqlAssociation = new azure.appplatform.SpringCloudAppMysqlAssociation(\"exampleSpringCloudAppMysqlAssociation\", {\n    springCloudAppId: exampleSpringCloudApp.id,\n    mysqlServerId: exampleServer.id,\n    databaseName: exampleDatabase.name,\n    username: exampleServer.administratorLogin,\n    password: exampleServer.administratorLoginPassword,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_spring_cloud_service = azure.appplatform.SpringCloudService(\"exampleSpringCloudService\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_spring_cloud_app = azure.appplatform.SpringCloudApp(\"exampleSpringCloudApp\",\n    resource_group_name=example_resource_group.name,\n    service_name=example_spring_cloud_service.name)\nexample_server = azure.mysql.Server(\"exampleServer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    administrator_login=\"mysqladminun\",\n    administrator_login_password=\"H@Sh1CoR3!\",\n    sku_name=\"B_Gen5_2\",\n    storage_mb=5120,\n    version=\"5.7\",\n    ssl_enforcement_enabled=True,\n    ssl_minimal_tls_version_enforced=\"TLS1_2\")\nexample_database = azure.mysql.Database(\"exampleDatabase\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    charset=\"utf8\",\n    collation=\"utf8_unicode_ci\")\nexample_spring_cloud_app_mysql_association = azure.appplatform.SpringCloudAppMysqlAssociation(\"exampleSpringCloudAppMysqlAssociation\",\n    spring_cloud_app_id=example_spring_cloud_app.id,\n    mysql_server_id=example_server.id,\n    database_name=example_database.name,\n    username=example_server.administrator_login,\n    password=example_server.administrator_login_password)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSpringCloudService = new Azure.AppPlatform.SpringCloudService(\"exampleSpringCloudService\", new Azure.AppPlatform.SpringCloudServiceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleSpringCloudApp = new Azure.AppPlatform.SpringCloudApp(\"exampleSpringCloudApp\", new Azure.AppPlatform.SpringCloudAppArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServiceName = exampleSpringCloudService.Name,\n        });\n        var exampleServer = new Azure.MySql.Server(\"exampleServer\", new Azure.MySql.ServerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AdministratorLogin = \"mysqladminun\",\n            AdministratorLoginPassword = \"H@Sh1CoR3!\",\n            SkuName = \"B_Gen5_2\",\n            StorageMb = 5120,\n            Version = \"5.7\",\n            SslEnforcementEnabled = true,\n            SslMinimalTlsVersionEnforced = \"TLS1_2\",\n        });\n        var exampleDatabase = new Azure.MySql.Database(\"exampleDatabase\", new Azure.MySql.DatabaseArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            Charset = \"utf8\",\n            Collation = \"utf8_unicode_ci\",\n        });\n        var exampleSpringCloudAppMysqlAssociation = new Azure.AppPlatform.SpringCloudAppMysqlAssociation(\"exampleSpringCloudAppMysqlAssociation\", new Azure.AppPlatform.SpringCloudAppMysqlAssociationArgs\n        {\n            SpringCloudAppId = exampleSpringCloudApp.Id,\n            MysqlServerId = exampleServer.Id,\n            DatabaseName = exampleDatabase.Name,\n            Username = exampleServer.AdministratorLogin,\n            Password = exampleServer.AdministratorLoginPassword,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appplatform\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSpringCloudService, err := appplatform.NewSpringCloudService(ctx, \"exampleSpringCloudService\", \u0026appplatform.SpringCloudServiceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSpringCloudApp, err := appplatform.NewSpringCloudApp(ctx, \"exampleSpringCloudApp\", \u0026appplatform.SpringCloudAppArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServiceName:       exampleSpringCloudService.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mysql.NewServer(ctx, \"exampleServer\", \u0026mysql.ServerArgs{\n\t\t\tLocation:                     exampleResourceGroup.Location,\n\t\t\tResourceGroupName:            exampleResourceGroup.Name,\n\t\t\tAdministratorLogin:           pulumi.String(\"mysqladminun\"),\n\t\t\tAdministratorLoginPassword:   pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tSkuName:                      pulumi.String(\"B_Gen5_2\"),\n\t\t\tStorageMb:                    pulumi.Int(5120),\n\t\t\tVersion:                      pulumi.String(\"5.7\"),\n\t\t\tSslEnforcementEnabled:        pulumi.Bool(true),\n\t\t\tSslMinimalTlsVersionEnforced: pulumi.String(\"TLS1_2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDatabase, err := mysql.NewDatabase(ctx, \"exampleDatabase\", \u0026mysql.DatabaseArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tCharset:           pulumi.String(\"utf8\"),\n\t\t\tCollation:         pulumi.String(\"utf8_unicode_ci\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appplatform.NewSpringCloudAppMysqlAssociation(ctx, \"exampleSpringCloudAppMysqlAssociation\", \u0026appplatform.SpringCloudAppMysqlAssociationArgs{\n\t\t\tSpringCloudAppId: exampleSpringCloudApp.ID(),\n\t\t\tMysqlServerId:    exampleServer.ID(),\n\t\t\tDatabaseName:     exampleDatabase.Name,\n\t\t\tUsername:         exampleServer.AdministratorLogin,\n\t\t\tPassword:         exampleServer.AdministratorLoginPassword,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSpring Cloud Application MySQL Association can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appplatform/springCloudAppMysqlAssociation:SpringCloudAppMysqlAssociation example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourcegroup1/providers/Microsoft.AppPlatform/Spring/service1/apps/app1/bindings/bind1\n```\n\n ",
      "inputProperties": {
        "databaseName": {
          "description": "Specifies the name of the MySQL Database which the Spring Cloud App should be associated with.\n",
          "type": "string"
        },
        "mysqlServerId": {
          "description": "Specifies the ID of the MySQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Spring Cloud Application Association. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "password": {
          "description": "Specifies the password which should be used when connecting to the MySQL Database from the Spring Cloud App.\n",
          "type": "string"
        },
        "springCloudAppId": {
          "description": "Specifies the ID of the Spring Cloud Application where this Association is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "username": {
          "description": "Specifies the username which should be used when connecting to the MySQL Database from the Spring Cloud App.\n",
          "type": "string"
        }
      },
      "properties": {
        "databaseName": {
          "description": "Specifies the name of the MySQL Database which the Spring Cloud App should be associated with.\n",
          "type": "string"
        },
        "mysqlServerId": {
          "description": "Specifies the ID of the MySQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Spring Cloud Application Association. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "password": {
          "description": "Specifies the password which should be used when connecting to the MySQL Database from the Spring Cloud App.\n",
          "type": "string"
        },
        "springCloudAppId": {
          "description": "Specifies the ID of the Spring Cloud Application where this Association is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "username": {
          "description": "Specifies the username which should be used when connecting to the MySQL Database from the Spring Cloud App.\n",
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "mysqlServerId",
        "name",
        "password",
        "springCloudAppId",
        "username"
      ],
      "requiredInputs": [
        "databaseName",
        "mysqlServerId",
        "password",
        "springCloudAppId",
        "username"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SpringCloudAppMysqlAssociation resources.\n",
        "properties": {
          "databaseName": {
            "description": "Specifies the name of the MySQL Database which the Spring Cloud App should be associated with.\n",
            "type": "string"
          },
          "mysqlServerId": {
            "description": "Specifies the ID of the MySQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Spring Cloud Application Association. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "password": {
            "description": "Specifies the password which should be used when connecting to the MySQL Database from the Spring Cloud App.\n",
            "type": "string"
          },
          "springCloudAppId": {
            "description": "Specifies the ID of the Spring Cloud Application where this Association is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "username": {
            "description": "Specifies the username which should be used when connecting to the MySQL Database from the Spring Cloud App.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appplatform/springCloudAppRedisAssociation:SpringCloudAppRedisAssociation": {
      "description": "Associates a Spring Cloud Application with a Redis Cache.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSpringCloudService = new azure.appplatform.SpringCloudService(\"exampleSpringCloudService\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleSpringCloudApp = new azure.appplatform.SpringCloudApp(\"exampleSpringCloudApp\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serviceName: exampleSpringCloudService.name,\n});\nconst exampleCache = new azure.redis.Cache(\"exampleCache\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    capacity: 0,\n    family: \"C\",\n    skuName: \"Basic\",\n    enableNonSslPort: true,\n});\nconst exampleSpringCloudAppRedisAssociation = new azure.appplatform.SpringCloudAppRedisAssociation(\"exampleSpringCloudAppRedisAssociation\", {\n    springCloudAppId: exampleSpringCloudApp.id,\n    redisCacheId: exampleCache.id,\n    redisAccessKey: exampleCache.primaryAccessKey,\n    sslEnabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_spring_cloud_service = azure.appplatform.SpringCloudService(\"exampleSpringCloudService\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_spring_cloud_app = azure.appplatform.SpringCloudApp(\"exampleSpringCloudApp\",\n    resource_group_name=example_resource_group.name,\n    service_name=example_spring_cloud_service.name)\nexample_cache = azure.redis.Cache(\"exampleCache\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    capacity=0,\n    family=\"C\",\n    sku_name=\"Basic\",\n    enable_non_ssl_port=True)\nexample_spring_cloud_app_redis_association = azure.appplatform.SpringCloudAppRedisAssociation(\"exampleSpringCloudAppRedisAssociation\",\n    spring_cloud_app_id=example_spring_cloud_app.id,\n    redis_cache_id=example_cache.id,\n    redis_access_key=example_cache.primary_access_key,\n    ssl_enabled=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSpringCloudService = new Azure.AppPlatform.SpringCloudService(\"exampleSpringCloudService\", new Azure.AppPlatform.SpringCloudServiceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleSpringCloudApp = new Azure.AppPlatform.SpringCloudApp(\"exampleSpringCloudApp\", new Azure.AppPlatform.SpringCloudAppArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServiceName = exampleSpringCloudService.Name,\n        });\n        var exampleCache = new Azure.Redis.Cache(\"exampleCache\", new Azure.Redis.CacheArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Capacity = 0,\n            Family = \"C\",\n            SkuName = \"Basic\",\n            EnableNonSslPort = true,\n        });\n        var exampleSpringCloudAppRedisAssociation = new Azure.AppPlatform.SpringCloudAppRedisAssociation(\"exampleSpringCloudAppRedisAssociation\", new Azure.AppPlatform.SpringCloudAppRedisAssociationArgs\n        {\n            SpringCloudAppId = exampleSpringCloudApp.Id,\n            RedisCacheId = exampleCache.Id,\n            RedisAccessKey = exampleCache.PrimaryAccessKey,\n            SslEnabled = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appplatform\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/redis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSpringCloudService, err := appplatform.NewSpringCloudService(ctx, \"exampleSpringCloudService\", \u0026appplatform.SpringCloudServiceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSpringCloudApp, err := appplatform.NewSpringCloudApp(ctx, \"exampleSpringCloudApp\", \u0026appplatform.SpringCloudAppArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServiceName:       exampleSpringCloudService.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCache, err := redis.NewCache(ctx, \"exampleCache\", \u0026redis.CacheArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tCapacity:          pulumi.Int(0),\n\t\t\tFamily:            pulumi.String(\"C\"),\n\t\t\tSkuName:           pulumi.String(\"Basic\"),\n\t\t\tEnableNonSslPort:  pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appplatform.NewSpringCloudAppRedisAssociation(ctx, \"exampleSpringCloudAppRedisAssociation\", \u0026appplatform.SpringCloudAppRedisAssociationArgs{\n\t\t\tSpringCloudAppId: exampleSpringCloudApp.ID(),\n\t\t\tRedisCacheId:     exampleCache.ID(),\n\t\t\tRedisAccessKey:   exampleCache.PrimaryAccessKey,\n\t\t\tSslEnabled:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSpring Cloud Application Redis Association can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appplatform/springCloudAppRedisAssociation:SpringCloudAppRedisAssociation example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/bindings/bind1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "Specifies the name of the Spring Cloud Application Association. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "redisAccessKey": {
          "description": "Specifies the Redis Cache access key.\n",
          "type": "string"
        },
        "redisCacheId": {
          "description": "Specifies the Redis Cache resource ID. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "springCloudAppId": {
          "description": "Specifies the Spring Cloud Application resource ID in which the Association is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sslEnabled": {
          "description": "Should SSL be used when connecting to Redis? Defaults to `true`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the Spring Cloud Application Association. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "redisAccessKey": {
          "description": "Specifies the Redis Cache access key.\n",
          "type": "string"
        },
        "redisCacheId": {
          "description": "Specifies the Redis Cache resource ID. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "springCloudAppId": {
          "description": "Specifies the Spring Cloud Application resource ID in which the Association is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sslEnabled": {
          "description": "Should SSL be used when connecting to Redis? Defaults to `true`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "redisAccessKey",
        "redisCacheId",
        "springCloudAppId"
      ],
      "requiredInputs": [
        "redisAccessKey",
        "redisCacheId",
        "springCloudAppId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SpringCloudAppRedisAssociation resources.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Spring Cloud Application Association. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "redisAccessKey": {
            "description": "Specifies the Redis Cache access key.\n",
            "type": "string"
          },
          "redisCacheId": {
            "description": "Specifies the Redis Cache resource ID. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "springCloudAppId": {
            "description": "Specifies the Spring Cloud Application resource ID in which the Association is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sslEnabled": {
            "description": "Should SSL be used when connecting to Redis? Defaults to `true`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:appplatform/springCloudCertificate:SpringCloudCertificate": {
      "description": "Manages an Azure Spring Cloud Certificate.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as azuread from \"@pulumi/azuread\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst current = azure.core.getClientConfig({});\nconst exampleServicePrincipal = azuread.getServicePrincipal({\n    displayName: \"Azure Spring Cloud Domain-Management\",\n});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"standard\",\n    accessPolicies: [\n        {\n            tenantId: current.then(current =\u003e current.tenantId),\n            objectId: current.then(current =\u003e current.objectId),\n            secretPermissions: [\"set\"],\n            certificatePermissions: [\n                \"create\",\n                \"delete\",\n                \"get\",\n                \"update\",\n            ],\n        },\n        {\n            tenantId: current.then(current =\u003e current.tenantId),\n            objectId: exampleServicePrincipal.then(exampleServicePrincipal =\u003e exampleServicePrincipal.objectId),\n            secretPermissions: [\n                \"get\",\n                \"list\",\n            ],\n            certificatePermissions: [\n                \"get\",\n                \"list\",\n            ],\n        },\n    ],\n});\nconst exampleCertificate = new azure.keyvault.Certificate(\"exampleCertificate\", {\n    keyVaultId: exampleKeyVault.id,\n    certificatePolicy: {\n        issuerParameters: {\n            name: \"Self\",\n        },\n        keyProperties: {\n            exportable: true,\n            keySize: 2048,\n            keyType: \"RSA\",\n            reuseKey: true,\n        },\n        lifetimeActions: [{\n            action: {\n                actionType: \"AutoRenew\",\n            },\n            trigger: {\n                daysBeforeExpiry: 30,\n            },\n        }],\n        secretProperties: {\n            contentType: \"application/x-pkcs12\",\n        },\n        x509CertificateProperties: {\n            keyUsages: [\n                \"cRLSign\",\n                \"dataEncipherment\",\n                \"digitalSignature\",\n                \"keyAgreement\",\n                \"keyCertSign\",\n                \"keyEncipherment\",\n            ],\n            subject: \"CN=contoso.com\",\n            validityInMonths: 12,\n        },\n    },\n});\nconst exampleSpringCloudService = new azure.appplatform.SpringCloudService(\"exampleSpringCloudService\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleSpringCloudCertificate = new azure.appplatform.SpringCloudCertificate(\"exampleSpringCloudCertificate\", {\n    resourceGroupName: exampleSpringCloudService.resourceGroupName,\n    serviceName: exampleSpringCloudService.name,\n    keyVaultCertificateId: exampleCertificate.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_azuread as azuread\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\ncurrent = azure.core.get_client_config()\nexample_service_principal = azuread.get_service_principal(display_name=\"Azure Spring Cloud Domain-Management\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"standard\",\n    access_policies=[\n        azure.keyvault.KeyVaultAccessPolicyArgs(\n            tenant_id=current.tenant_id,\n            object_id=current.object_id,\n            secret_permissions=[\"set\"],\n            certificate_permissions=[\n                \"create\",\n                \"delete\",\n                \"get\",\n                \"update\",\n            ],\n        ),\n        azure.keyvault.KeyVaultAccessPolicyArgs(\n            tenant_id=current.tenant_id,\n            object_id=example_service_principal.object_id,\n            secret_permissions=[\n                \"get\",\n                \"list\",\n            ],\n            certificate_permissions=[\n                \"get\",\n                \"list\",\n            ],\n        ),\n    ])\nexample_certificate = azure.keyvault.Certificate(\"exampleCertificate\",\n    key_vault_id=example_key_vault.id,\n    certificate_policy=azure.keyvault.CertificateCertificatePolicyArgs(\n        issuer_parameters=azure.keyvault.CertificateCertificatePolicyIssuerParametersArgs(\n            name=\"Self\",\n        ),\n        key_properties={\n            \"exportable\": True,\n            \"key_size\": 2048,\n            \"key_type\": \"RSA\",\n            \"reuseKey\": True,\n        },\n        lifetime_actions=[azure.keyvault.CertificateCertificatePolicyLifetimeActionArgs(\n            action=azure.keyvault.CertificateCertificatePolicyLifetimeActionActionArgs(\n                action_type=\"AutoRenew\",\n            ),\n            trigger=azure.keyvault.CertificateCertificatePolicyLifetimeActionTriggerArgs(\n                days_before_expiry=30,\n            ),\n        )],\n        secret_properties=azure.keyvault.CertificateCertificatePolicySecretPropertiesArgs(\n            content_type=\"application/x-pkcs12\",\n        ),\n        x509_certificate_properties=azure.keyvault.CertificateCertificatePolicyX509CertificatePropertiesArgs(\n            key_usages=[\n                \"cRLSign\",\n                \"dataEncipherment\",\n                \"digitalSignature\",\n                \"keyAgreement\",\n                \"keyCertSign\",\n                \"keyEncipherment\",\n            ],\n            subject=\"CN=contoso.com\",\n            validity_in_months=12,\n        ),\n    ))\nexample_spring_cloud_service = azure.appplatform.SpringCloudService(\"exampleSpringCloudService\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_spring_cloud_certificate = azure.appplatform.SpringCloudCertificate(\"exampleSpringCloudCertificate\",\n    resource_group_name=example_spring_cloud_service.resource_group_name,\n    service_name=example_spring_cloud_service.name,\n    key_vault_certificate_id=example_certificate.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing AzureAD = Pulumi.AzureAD;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleServicePrincipal = Output.Create(AzureAD.GetServicePrincipal.InvokeAsync(new AzureAD.GetServicePrincipalArgs\n        {\n            DisplayName = \"Azure Spring Cloud Domain-Management\",\n        }));\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"standard\",\n            AccessPolicies = \n            {\n                new Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs\n                {\n                    TenantId = current.Apply(current =\u003e current.TenantId),\n                    ObjectId = current.Apply(current =\u003e current.ObjectId),\n                    SecretPermissions = \n                    {\n                        \"set\",\n                    },\n                    CertificatePermissions = \n                    {\n                        \"create\",\n                        \"delete\",\n                        \"get\",\n                        \"update\",\n                    },\n                },\n                new Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs\n                {\n                    TenantId = current.Apply(current =\u003e current.TenantId),\n                    ObjectId = exampleServicePrincipal.Apply(exampleServicePrincipal =\u003e exampleServicePrincipal.ObjectId),\n                    SecretPermissions = \n                    {\n                        \"get\",\n                        \"list\",\n                    },\n                    CertificatePermissions = \n                    {\n                        \"get\",\n                        \"list\",\n                    },\n                },\n            },\n        });\n        var exampleCertificate = new Azure.KeyVault.Certificate(\"exampleCertificate\", new Azure.KeyVault.CertificateArgs\n        {\n            KeyVaultId = exampleKeyVault.Id,\n            CertificatePolicy = new Azure.KeyVault.Inputs.CertificateCertificatePolicyArgs\n            {\n                IssuerParameters = new Azure.KeyVault.Inputs.CertificateCertificatePolicyIssuerParametersArgs\n                {\n                    Name = \"Self\",\n                },\n                KeyProperties = new Azure.KeyVault.Inputs.CertificateCertificatePolicyKeyPropertiesArgs\n                {\n                    Exportable = true,\n                    KeySize = 2048,\n                    KeyType = \"RSA\",\n                    ReuseKey = true,\n                },\n                LifetimeActions = \n                {\n                    new Azure.KeyVault.Inputs.CertificateCertificatePolicyLifetimeActionArgs\n                    {\n                        Action = new Azure.KeyVault.Inputs.CertificateCertificatePolicyLifetimeActionActionArgs\n                        {\n                            ActionType = \"AutoRenew\",\n                        },\n                        Trigger = new Azure.KeyVault.Inputs.CertificateCertificatePolicyLifetimeActionTriggerArgs\n                        {\n                            DaysBeforeExpiry = 30,\n                        },\n                    },\n                },\n                SecretProperties = new Azure.KeyVault.Inputs.CertificateCertificatePolicySecretPropertiesArgs\n                {\n                    ContentType = \"application/x-pkcs12\",\n                },\n                X509CertificateProperties = new Azure.KeyVault.Inputs.CertificateCertificatePolicyX509CertificatePropertiesArgs\n                {\n                    KeyUsages = \n                    {\n                        \"cRLSign\",\n                        \"dataEncipherment\",\n                        \"digitalSignature\",\n                        \"keyAgreement\",\n                        \"keyCertSign\",\n                        \"keyEncipherment\",\n                    },\n                    Subject = \"CN=contoso.com\",\n                    ValidityInMonths = 12,\n                },\n            },\n        });\n        var exampleSpringCloudService = new Azure.AppPlatform.SpringCloudService(\"exampleSpringCloudService\", new Azure.AppPlatform.SpringCloudServiceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleSpringCloudCertificate = new Azure.AppPlatform.SpringCloudCertificate(\"exampleSpringCloudCertificate\", new Azure.AppPlatform.SpringCloudCertificateArgs\n        {\n            ResourceGroupName = exampleSpringCloudService.ResourceGroupName,\n            ServiceName = exampleSpringCloudService.Name,\n            KeyVaultCertificateId = exampleCertificate.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appplatform\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi-azuread/sdk/v4/go/azuread\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\topt0 := \"Azure Spring Cloud Domain-Management\"\n\t\texampleServicePrincipal, err := azuread.LookupServicePrincipal(ctx, \u0026GetServicePrincipalArgs{\n\t\t\tDisplayName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTenantId:          pulumi.String(current.TenantId),\n\t\t\tSkuName:           pulumi.String(\"standard\"),\n\t\t\tAccessPolicies: keyvault.KeyVaultAccessPolicyArray{\n\t\t\t\t\u0026keyvault.KeyVaultAccessPolicyArgs{\n\t\t\t\t\tTenantId: pulumi.String(current.TenantId),\n\t\t\t\t\tObjectId: pulumi.String(current.ObjectId),\n\t\t\t\t\tSecretPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"set\"),\n\t\t\t\t\t},\n\t\t\t\t\tCertificatePermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"create\"),\n\t\t\t\t\t\tpulumi.String(\"delete\"),\n\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\tpulumi.String(\"update\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026keyvault.KeyVaultAccessPolicyArgs{\n\t\t\t\t\tTenantId: pulumi.String(current.TenantId),\n\t\t\t\t\tObjectId: pulumi.String(exampleServicePrincipal.ObjectId),\n\t\t\t\t\tSecretPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\tpulumi.String(\"list\"),\n\t\t\t\t\t},\n\t\t\t\t\tCertificatePermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\tpulumi.String(\"list\"),\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\texampleCertificate, err := keyvault.NewCertificate(ctx, \"exampleCertificate\", \u0026keyvault.CertificateArgs{\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t\tCertificatePolicy: \u0026keyvault.CertificateCertificatePolicyArgs{\n\t\t\t\tIssuerParameters: \u0026keyvault.CertificateCertificatePolicyIssuerParametersArgs{\n\t\t\t\t\tName: pulumi.String(\"Self\"),\n\t\t\t\t},\n\t\t\t\tKeyProperties: \u0026keyvault.CertificateCertificatePolicyKeyPropertiesArgs{\n\t\t\t\t\tExportable: pulumi.Bool(true),\n\t\t\t\t\tKeySize:    pulumi.Int(2048),\n\t\t\t\t\tKeyType:    pulumi.String(\"RSA\"),\n\t\t\t\t\tReuseKey:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tLifetimeActions: keyvault.CertificateCertificatePolicyLifetimeActionArray{\n\t\t\t\t\t\u0026keyvault.CertificateCertificatePolicyLifetimeActionArgs{\n\t\t\t\t\t\tAction: \u0026keyvault.CertificateCertificatePolicyLifetimeActionActionArgs{\n\t\t\t\t\t\t\tActionType: pulumi.String(\"AutoRenew\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTrigger: \u0026keyvault.CertificateCertificatePolicyLifetimeActionTriggerArgs{\n\t\t\t\t\t\t\tDaysBeforeExpiry: pulumi.Int(30),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSecretProperties: \u0026keyvault.CertificateCertificatePolicySecretPropertiesArgs{\n\t\t\t\t\tContentType: pulumi.String(\"application/x-pkcs12\"),\n\t\t\t\t},\n\t\t\t\tX509CertificateProperties: \u0026keyvault.CertificateCertificatePolicyX509CertificatePropertiesArgs{\n\t\t\t\t\tKeyUsages: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"cRLSign\"),\n\t\t\t\t\t\tpulumi.String(\"dataEncipherment\"),\n\t\t\t\t\t\tpulumi.String(\"digitalSignature\"),\n\t\t\t\t\t\tpulumi.String(\"keyAgreement\"),\n\t\t\t\t\t\tpulumi.String(\"keyCertSign\"),\n\t\t\t\t\t\tpulumi.String(\"keyEncipherment\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubject:          pulumi.String(\"CN=contoso.com\"),\n\t\t\t\t\tValidityInMonths: pulumi.Int(12),\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\texampleSpringCloudService, err := appplatform.NewSpringCloudService(ctx, \"exampleSpringCloudService\", \u0026appplatform.SpringCloudServiceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appplatform.NewSpringCloudCertificate(ctx, \"exampleSpringCloudCertificate\", \u0026appplatform.SpringCloudCertificateArgs{\n\t\t\tResourceGroupName:     exampleSpringCloudService.ResourceGroupName,\n\t\t\tServiceName:           exampleSpringCloudService.Name,\n\t\t\tKeyVaultCertificateId: exampleCertificate.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSpring Cloud Certificate can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appplatform/springCloudCertificate:SpringCloudCertificate example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourcegroup1/providers/Microsoft.AppPlatform/Spring/spring1/certificates/cert1\n```\n\n ",
      "inputProperties": {
        "keyVaultCertificateId": {
          "description": "Specifies the ID of the Key Vault Certificate resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Spring Cloud Certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the resource group in which to create the Spring Cloud Certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceName": {
          "description": "Specifies the name of the Spring Cloud Service resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "keyVaultCertificateId": {
          "description": "Specifies the ID of the Key Vault Certificate resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Spring Cloud Certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the resource group in which to create the Spring Cloud Certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceName": {
          "description": "Specifies the name of the Spring Cloud Service resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "thumbprint": {
          "description": "The thumbprint of the Spring Cloud certificate.\n",
          "type": "string"
        }
      },
      "required": [
        "keyVaultCertificateId",
        "name",
        "resourceGroupName",
        "serviceName",
        "thumbprint"
      ],
      "requiredInputs": [
        "keyVaultCertificateId",
        "resourceGroupName",
        "serviceName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SpringCloudCertificate resources.\n",
        "properties": {
          "keyVaultCertificateId": {
            "description": "Specifies the ID of the Key Vault Certificate resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Spring Cloud Certificate. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group in which to create the Spring Cloud Certificate. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serviceName": {
            "description": "Specifies the name of the Spring Cloud Service resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "thumbprint": {
            "description": "The thumbprint of the Spring Cloud certificate.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appplatform/springCloudCustomDomain:SpringCloudCustomDomain": {
      "description": "Manages an Azure Spring Cloud Custom Domain.\n\n\n## Import\n\nSpring Cloud Custom Domain can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appplatform/springCloudCustomDomain:SpringCloudCustomDomain example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.AppPlatform/Spring/spring1/apps/app1/domains/domain.com\n```\n\n ",
      "inputProperties": {
        "certificateName": {
          "description": "Specifies the name of the Spring Cloud Certificate that binds to the Spring Cloud Custom Domain. Required when `thumbprint` is specified\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Spring Cloud Custom Domain. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "springCloudAppId": {
          "description": "Specifies the resource ID of the Spring Cloud Application. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "thumbprint": {
          "description": "Specifies the thumbprint of the Spring Cloud Certificate that binds to the Spring Cloud Custom Domain. Required when `certificate_name` is specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "certificateName": {
          "description": "Specifies the name of the Spring Cloud Certificate that binds to the Spring Cloud Custom Domain. Required when `thumbprint` is specified\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Spring Cloud Custom Domain. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "springCloudAppId": {
          "description": "Specifies the resource ID of the Spring Cloud Application. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "thumbprint": {
          "description": "Specifies the thumbprint of the Spring Cloud Certificate that binds to the Spring Cloud Custom Domain. Required when `certificate_name` is specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "springCloudAppId"
      ],
      "requiredInputs": [
        "springCloudAppId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SpringCloudCustomDomain resources.\n",
        "properties": {
          "certificateName": {
            "description": "Specifies the name of the Spring Cloud Certificate that binds to the Spring Cloud Custom Domain. Required when `thumbprint` is specified\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Spring Cloud Custom Domain. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "springCloudAppId": {
            "description": "Specifies the resource ID of the Spring Cloud Application. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "thumbprint": {
            "description": "Specifies the thumbprint of the Spring Cloud Certificate that binds to the Spring Cloud Custom Domain. Required when `certificate_name` is specified. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appplatform/springCloudJavaDeployment:SpringCloudJavaDeployment": {
      "description": "Manages an Azure Spring Cloud Deployment with a Java runtime.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSpringCloudService = new azure.appplatform.SpringCloudService(\"exampleSpringCloudService\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleSpringCloudApp = new azure.appplatform.SpringCloudApp(\"exampleSpringCloudApp\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serviceName: exampleSpringCloudService.name,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\nconst exampleSpringCloudJavaDeployment = new azure.appplatform.SpringCloudJavaDeployment(\"exampleSpringCloudJavaDeployment\", {\n    springCloudAppId: exampleSpringCloudApp.id,\n    cpu: 2,\n    instanceCount: 2,\n    jvmOptions: \"-XX:+PrintGC\",\n    memoryInGb: 4,\n    runtimeVersion: \"Java_11\",\n    environmentVariables: {\n        Foo: \"Bar\",\n        Env: \"Staging\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_spring_cloud_service = azure.appplatform.SpringCloudService(\"exampleSpringCloudService\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_spring_cloud_app = azure.appplatform.SpringCloudApp(\"exampleSpringCloudApp\",\n    resource_group_name=example_resource_group.name,\n    service_name=example_spring_cloud_service.name,\n    identity=azure.appplatform.SpringCloudAppIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\nexample_spring_cloud_java_deployment = azure.appplatform.SpringCloudJavaDeployment(\"exampleSpringCloudJavaDeployment\",\n    spring_cloud_app_id=example_spring_cloud_app.id,\n    cpu=2,\n    instance_count=2,\n    jvm_options=\"-XX:+PrintGC\",\n    memory_in_gb=4,\n    runtime_version=\"Java_11\",\n    environment_variables={\n        \"Foo\": \"Bar\",\n        \"Env\": \"Staging\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSpringCloudService = new Azure.AppPlatform.SpringCloudService(\"exampleSpringCloudService\", new Azure.AppPlatform.SpringCloudServiceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleSpringCloudApp = new Azure.AppPlatform.SpringCloudApp(\"exampleSpringCloudApp\", new Azure.AppPlatform.SpringCloudAppArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServiceName = exampleSpringCloudService.Name,\n            Identity = new Azure.AppPlatform.Inputs.SpringCloudAppIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n        var exampleSpringCloudJavaDeployment = new Azure.AppPlatform.SpringCloudJavaDeployment(\"exampleSpringCloudJavaDeployment\", new Azure.AppPlatform.SpringCloudJavaDeploymentArgs\n        {\n            SpringCloudAppId = exampleSpringCloudApp.Id,\n            Cpu = 2,\n            InstanceCount = 2,\n            JvmOptions = \"-XX:+PrintGC\",\n            MemoryInGb = 4,\n            RuntimeVersion = \"Java_11\",\n            EnvironmentVariables = \n            {\n                { \"Foo\", \"Bar\" },\n                { \"Env\", \"Staging\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appplatform\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSpringCloudService, err := appplatform.NewSpringCloudService(ctx, \"exampleSpringCloudService\", \u0026appplatform.SpringCloudServiceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSpringCloudApp, err := appplatform.NewSpringCloudApp(ctx, \"exampleSpringCloudApp\", \u0026appplatform.SpringCloudAppArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServiceName:       exampleSpringCloudService.Name,\n\t\t\tIdentity: \u0026appplatform.SpringCloudAppIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appplatform.NewSpringCloudJavaDeployment(ctx, \"exampleSpringCloudJavaDeployment\", \u0026appplatform.SpringCloudJavaDeploymentArgs{\n\t\t\tSpringCloudAppId: exampleSpringCloudApp.ID(),\n\t\t\tCpu:              pulumi.Int(2),\n\t\t\tInstanceCount:    pulumi.Int(2),\n\t\t\tJvmOptions:       pulumi.String(\"-XX:+PrintGC\"),\n\t\t\tMemoryInGb:       pulumi.Int(4),\n\t\t\tRuntimeVersion:   pulumi.String(\"Java_11\"),\n\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\"Foo\": pulumi.String(\"Bar\"),\n\t\t\t\t\"Env\": pulumi.String(\"Staging\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSpring Cloud Deployment can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appplatform/springCloudJavaDeployment:SpringCloudJavaDeployment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourcegroup1/providers/Microsoft.AppPlatform/Spring/service1/apps/app1/deployments/deploy1\n```\n\n ",
      "inputProperties": {
        "cpu": {
          "description": "Specifies the required cpu of the Spring Cloud Deployment. Possible Values are between `1` and `4`. Defaults to `1` if not specified.\n",
          "type": "integer"
        },
        "environmentVariables": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the environment variables of the Spring Cloud Deployment as a map of key-value pairs.\n",
          "type": "object"
        },
        "instanceCount": {
          "description": "Specifies the required instance count of the Spring Cloud Deployment. Possible Values are between `1` and `500`. Defaults to `1` if not specified.\n",
          "type": "integer"
        },
        "jvmOptions": {
          "description": "Specifies the jvm option of the Spring Cloud Deployment.\n",
          "type": "string"
        },
        "memoryInGb": {
          "description": "Specifies the required memory size of the Spring Cloud Deployment. Possible Values are between `1` and `8`. Defaults to `1` if not specified.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the Spring Cloud Deployment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "runtimeVersion": {
          "description": "Specifies the runtime version of the Spring Cloud Deployment. Possible Values are `Java_8` and `Java_11`. Defaults to `Java_8`.\n",
          "type": "string"
        },
        "springCloudAppId": {
          "description": "Specifies the id of the Spring Cloud Application in which to create the Deployment. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "cpu": {
          "description": "Specifies the required cpu of the Spring Cloud Deployment. Possible Values are between `1` and `4`. Defaults to `1` if not specified.\n",
          "type": "integer"
        },
        "environmentVariables": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the environment variables of the Spring Cloud Deployment as a map of key-value pairs.\n",
          "type": "object"
        },
        "instanceCount": {
          "description": "Specifies the required instance count of the Spring Cloud Deployment. Possible Values are between `1` and `500`. Defaults to `1` if not specified.\n",
          "type": "integer"
        },
        "jvmOptions": {
          "description": "Specifies the jvm option of the Spring Cloud Deployment.\n",
          "type": "string"
        },
        "memoryInGb": {
          "description": "Specifies the required memory size of the Spring Cloud Deployment. Possible Values are between `1` and `8`. Defaults to `1` if not specified.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the Spring Cloud Deployment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "runtimeVersion": {
          "description": "Specifies the runtime version of the Spring Cloud Deployment. Possible Values are `Java_8` and `Java_11`. Defaults to `Java_8`.\n",
          "type": "string"
        },
        "springCloudAppId": {
          "description": "Specifies the id of the Spring Cloud Application in which to create the Deployment. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "springCloudAppId"
      ],
      "requiredInputs": [
        "springCloudAppId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SpringCloudJavaDeployment resources.\n",
        "properties": {
          "cpu": {
            "description": "Specifies the required cpu of the Spring Cloud Deployment. Possible Values are between `1` and `4`. Defaults to `1` if not specified.\n",
            "type": "integer"
          },
          "environmentVariables": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the environment variables of the Spring Cloud Deployment as a map of key-value pairs.\n",
            "type": "object"
          },
          "instanceCount": {
            "description": "Specifies the required instance count of the Spring Cloud Deployment. Possible Values are between `1` and `500`. Defaults to `1` if not specified.\n",
            "type": "integer"
          },
          "jvmOptions": {
            "description": "Specifies the jvm option of the Spring Cloud Deployment.\n",
            "type": "string"
          },
          "memoryInGb": {
            "description": "Specifies the required memory size of the Spring Cloud Deployment. Possible Values are between `1` and `8`. Defaults to `1` if not specified.\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the Spring Cloud Deployment. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "runtimeVersion": {
            "description": "Specifies the runtime version of the Spring Cloud Deployment. Possible Values are `Java_8` and `Java_11`. Defaults to `Java_8`.\n",
            "type": "string"
          },
          "springCloudAppId": {
            "description": "Specifies the id of the Spring Cloud Application in which to create the Deployment. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appplatform/springCloudService:SpringCloudService": {
      "description": "Manages an Azure Spring Cloud Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"web\",\n});\nconst exampleSpringCloudService = new azure.appplatform.SpringCloudService(\"exampleSpringCloudService\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    skuName: \"S0\",\n    configServerGitSetting: {\n        uri: \"https://github.com/Azure-Samples/piggymetrics\",\n        label: \"config\",\n        searchPaths: [\n            \"dir1\",\n            \"dir2\",\n        ],\n    },\n    trace: {\n        instrumentationKey: exampleInsights.instrumentationKey,\n        sampleRate: 10,\n    },\n    tags: {\n        Env: \"staging\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_type=\"web\")\nexample_spring_cloud_service = azure.appplatform.SpringCloudService(\"exampleSpringCloudService\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku_name=\"S0\",\n    config_server_git_setting=azure.appplatform.SpringCloudServiceConfigServerGitSettingArgs(\n        uri=\"https://github.com/Azure-Samples/piggymetrics\",\n        label=\"config\",\n        search_paths=[\n            \"dir1\",\n            \"dir2\",\n        ],\n    ),\n    trace=azure.appplatform.SpringCloudServiceTraceArgs(\n        instrumentation_key=example_insights.instrumentation_key,\n        sample_rate=10,\n    ),\n    tags={\n        \"Env\": \"staging\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"web\",\n        });\n        var exampleSpringCloudService = new Azure.AppPlatform.SpringCloudService(\"exampleSpringCloudService\", new Azure.AppPlatform.SpringCloudServiceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            SkuName = \"S0\",\n            ConfigServerGitSetting = new Azure.AppPlatform.Inputs.SpringCloudServiceConfigServerGitSettingArgs\n            {\n                Uri = \"https://github.com/Azure-Samples/piggymetrics\",\n                Label = \"config\",\n                SearchPaths = \n                {\n                    \"dir1\",\n                    \"dir2\",\n                },\n            },\n            Trace = new Azure.AppPlatform.Inputs.SpringCloudServiceTraceArgs\n            {\n                InstrumentationKey = exampleInsights.InstrumentationKey,\n                SampleRate = 10,\n            },\n            Tags = \n            {\n                { \"Env\", \"staging\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appplatform\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appplatform.NewSpringCloudService(ctx, \"exampleSpringCloudService\", \u0026appplatform.SpringCloudServiceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSkuName:           pulumi.String(\"S0\"),\n\t\t\tConfigServerGitSetting: \u0026appplatform.SpringCloudServiceConfigServerGitSettingArgs{\n\t\t\t\tUri:   pulumi.String(\"https://github.com/Azure-Samples/piggymetrics\"),\n\t\t\t\tLabel: pulumi.String(\"config\"),\n\t\t\t\tSearchPaths: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"dir1\"),\n\t\t\t\t\tpulumi.String(\"dir2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTrace: \u0026appplatform.SpringCloudServiceTraceArgs{\n\t\t\t\tInstrumentationKey: exampleInsights.InstrumentationKey,\n\t\t\t\tSampleRate:         pulumi.Float64(10),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Env\": pulumi.String(\"staging\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSpring Cloud services can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appplatform/springCloudService:SpringCloudService example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AppPlatform/Spring/spring1\n```\n\n ",
      "inputProperties": {
        "configServerGitSetting": {
          "$ref": "#/types/azure:appplatform/SpringCloudServiceConfigServerGitSetting:SpringCloudServiceConfigServerGitSetting",
          "description": "A `config_server_git_setting` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Spring Cloud Service resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "network": {
          "$ref": "#/types/azure:appplatform/SpringCloudServiceNetwork:SpringCloudServiceNetwork",
          "description": "A `network` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "resourceGroupName": {
          "description": "Specifies The name of the resource group in which to create the Spring Cloud Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this Spring Cloud Service. Possible values are `B0` and `S0`. Defaults to `S0`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "trace": {
          "$ref": "#/types/azure:appplatform/SpringCloudServiceTrace:SpringCloudServiceTrace",
          "description": "A `trace` block as defined below.\n"
        }
      },
      "properties": {
        "configServerGitSetting": {
          "$ref": "#/types/azure:appplatform/SpringCloudServiceConfigServerGitSetting:SpringCloudServiceConfigServerGitSetting",
          "description": "A `config_server_git_setting` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Spring Cloud Service resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "network": {
          "$ref": "#/types/azure:appplatform/SpringCloudServiceNetwork:SpringCloudServiceNetwork",
          "description": "A `network` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "outboundPublicIpAddresses": {
          "description": "A list of the outbound Public IP Addresses used by this Spring Cloud Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "requiredNetworkTrafficRules": {
          "description": "A list of `required_network_traffic_rules` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appplatform/SpringCloudServiceRequiredNetworkTrafficRule:SpringCloudServiceRequiredNetworkTrafficRule"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies The name of the resource group in which to create the Spring Cloud Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this Spring Cloud Service. Possible values are `B0` and `S0`. Defaults to `S0`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "trace": {
          "$ref": "#/types/azure:appplatform/SpringCloudServiceTrace:SpringCloudServiceTrace",
          "description": "A `trace` block as defined below.\n"
        }
      },
      "required": [
        "location",
        "name",
        "outboundPublicIpAddresses",
        "requiredNetworkTrafficRules",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SpringCloudService resources.\n",
        "properties": {
          "configServerGitSetting": {
            "$ref": "#/types/azure:appplatform/SpringCloudServiceConfigServerGitSetting:SpringCloudServiceConfigServerGitSetting",
            "description": "A `config_server_git_setting` block as defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Spring Cloud Service resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "network": {
            "$ref": "#/types/azure:appplatform/SpringCloudServiceNetwork:SpringCloudServiceNetwork",
            "description": "A `network` block as defined below. Changing this forces a new resource to be created.\n"
          },
          "outboundPublicIpAddresses": {
            "description": "A list of the outbound Public IP Addresses used by this Spring Cloud Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "requiredNetworkTrafficRules": {
            "description": "A list of `required_network_traffic_rules` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appplatform/SpringCloudServiceRequiredNetworkTrafficRule:SpringCloudServiceRequiredNetworkTrafficRule"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies The name of the resource group in which to create the Spring Cloud Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "Specifies the SKU Name for this Spring Cloud Service. Possible values are `B0` and `S0`. Defaults to `S0`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "trace": {
            "$ref": "#/types/azure:appplatform/SpringCloudServiceTrace:SpringCloudServiceTrace",
            "description": "A `trace` block as defined below.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/activeSlot:ActiveSlot": {
      "description": "Promotes an App Service Slot to Production within an App Service.\n\n\u003e **Note:** When using Slots - the `app_settings`, `connection_string` and `site_config` blocks on the `azure.appservice.AppService` resource will be overwritten when promoting a Slot using the `azure.appservice.ActiveSlot` resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as random from \"@pulumi/random\";\n\nconst server = new random.RandomId(\"server\", {});\n// ...\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {});\n// ...\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {});\n// ...\nconst exampleAppService = new azure.appservice.AppService(\"exampleAppService\", {});\n// ...\nconst exampleSlot = new azure.appservice.Slot(\"exampleSlot\", {});\n// ...\nconst exampleActiveSlot = new azure.appservice.ActiveSlot(\"exampleActiveSlot\", {\n    resourceGroupName: exampleResourceGroup.name,\n    appServiceName: exampleAppService.name,\n    appServiceSlotName: exampleSlot.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_random as random\n\nserver = random.RandomId(\"server\")\n# ...\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\")\n# ...\nexample_plan = azure.appservice.Plan(\"examplePlan\")\n# ...\nexample_app_service = azure.appservice.AppService(\"exampleAppService\")\n# ...\nexample_slot = azure.appservice.Slot(\"exampleSlot\")\n# ...\nexample_active_slot = azure.appservice.ActiveSlot(\"exampleActiveSlot\",\n    resource_group_name=example_resource_group.name,\n    app_service_name=example_app_service.name,\n    app_service_slot_name=example_slot.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing Random = Pulumi.Random;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var server = new Random.RandomId(\"server\", new Random.RandomIdArgs\n        {\n        });\n        // ...\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n        });\n        // ...\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n        });\n        // ...\n        var exampleAppService = new Azure.AppService.AppService(\"exampleAppService\", new Azure.AppService.AppServiceArgs\n        {\n        });\n        // ...\n        var exampleSlot = new Azure.AppService.Slot(\"exampleSlot\", new Azure.AppService.SlotArgs\n        {\n        });\n        // ...\n        var exampleActiveSlot = new Azure.AppService.ActiveSlot(\"exampleActiveSlot\", new Azure.AppService.ActiveSlotArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServiceName = exampleAppService.Name,\n            AppServiceSlotName = exampleSlot.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\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 := random.NewRandomId(ctx, \"server\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewPlan(ctx, \"examplePlan\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAppService, err := appservice.NewAppService(ctx, \"exampleAppService\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSlot, err := appservice.NewSlot(ctx, \"exampleSlot\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewActiveSlot(ctx, \"exampleActiveSlot\", \u0026appservice.ActiveSlotArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tAppServiceName:     exampleAppService.Name,\n\t\t\tAppServiceSlotName: exampleSlot.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}",
      "inputProperties": {
        "appServiceName": {
          "description": "The name of the App Service within which the Slot exists.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "appServiceSlotName": {
          "description": "The name of the App Service Slot which should be promoted to the Production Slot within the App Service.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the App Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "appServiceName": {
          "description": "The name of the App Service within which the Slot exists.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "appServiceSlotName": {
          "description": "The name of the App Service Slot which should be promoted to the Production Slot within the App Service.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the App Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "appServiceName",
        "appServiceSlotName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "appServiceName",
        "appServiceSlotName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ActiveSlot resources.\n",
        "properties": {
          "appServiceName": {
            "description": "The name of the App Service within which the Slot exists.  Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "appServiceSlotName": {
            "description": "The name of the App Service Slot which should be promoted to the Production Slot within the App Service.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the App Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/appService:AppService": {
      "description": "Manages an App Service (within an App Service Plan).\n\n\u003e **Note:** When using Slots - the `app_settings`, `connection_string` and `site_config` blocks on the `azure.appservice.AppService` resource will be overwritten when promoting a Slot using the `azure.appservice.ActiveSlot` resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis example provisions a Windows App Service.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        tier: \"Standard\",\n        size: \"S1\",\n    },\n});\nconst exampleAppService = new azure.appservice.AppService(\"exampleAppService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n    siteConfig: {\n        dotnetFrameworkVersion: \"v4.0\",\n        scmType: \"LocalGit\",\n    },\n    appSettings: {\n        SOME_KEY: \"some-value\",\n    },\n    connectionStrings: [{\n        name: \"Database\",\n        type: \"SQLServer\",\n        value: \"Server=some-server.mydomain.com;Integrated Security=SSPI\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Standard\",\n        size=\"S1\",\n    ))\nexample_app_service = azure.appservice.AppService(\"exampleAppService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id,\n    site_config=azure.appservice.AppServiceSiteConfigArgs(\n        dotnet_framework_version=\"v4.0\",\n        scm_type=\"LocalGit\",\n    ),\n    app_settings={\n        \"SOME_KEY\": \"some-value\",\n    },\n    connection_strings=[azure.appservice.AppServiceConnectionStringArgs(\n        name=\"Database\",\n        type=\"SQLServer\",\n        value=\"Server=some-server.mydomain.com;Integrated Security=SSPI\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Standard\",\n                Size = \"S1\",\n            },\n        });\n        var exampleAppService = new Azure.AppService.AppService(\"exampleAppService\", new Azure.AppService.AppServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n            SiteConfig = new Azure.AppService.Inputs.AppServiceSiteConfigArgs\n            {\n                DotnetFrameworkVersion = \"v4.0\",\n                ScmType = \"LocalGit\",\n            },\n            AppSettings = \n            {\n                { \"SOME_KEY\", \"some-value\" },\n            },\n            ConnectionStrings = \n            {\n                new Azure.AppService.Inputs.AppServiceConnectionStringArgs\n                {\n                    Name = \"Database\",\n                    Type = \"SQLServer\",\n                    Value = \"Server=some-server.mydomain.com;Integrated Security=SSPI\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePlan, err := appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t\tSize: pulumi.String(\"S1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewAppService(ctx, \"exampleAppService\", \u0026appservice.AppServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:  examplePlan.ID(),\n\t\t\tSiteConfig: \u0026appservice.AppServiceSiteConfigArgs{\n\t\t\t\tDotnetFrameworkVersion: pulumi.String(\"v4.0\"),\n\t\t\t\tScmType:                pulumi.String(\"LocalGit\"),\n\t\t\t},\n\t\t\tAppSettings: pulumi.StringMap{\n\t\t\t\t\"SOME_KEY\": pulumi.String(\"some-value\"),\n\t\t\t},\n\t\t\tConnectionStrings: appservice.AppServiceConnectionStringArray{\n\t\t\t\t\u0026appservice.AppServiceConnectionStringArgs{\n\t\t\t\t\tName:  pulumi.String(\"Database\"),\n\t\t\t\t\tType:  pulumi.String(\"SQLServer\"),\n\t\t\t\t\tValue: pulumi.String(\"Server=some-server.mydomain.com;Integrated Security=SSPI\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApp Services can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/appService:AppService instance1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/sites/instance1\n```\n\n ",
      "inputProperties": {
        "appServicePlanId": {
          "description": "The ID of the App Service Plan within which to create this App Service.\n",
          "type": "string"
        },
        "appSettings": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A key-value pair of App Settings.\n",
          "type": "object"
        },
        "authSettings": {
          "$ref": "#/types/azure:appservice/AppServiceAuthSettings:AppServiceAuthSettings",
          "description": "A `auth_settings` block as defined below.\n"
        },
        "backup": {
          "$ref": "#/types/azure:appservice/AppServiceBackup:AppServiceBackup",
          "description": "A `backup` block as defined below.\n"
        },
        "clientAffinityEnabled": {
          "description": "Should the App Service send session affinity cookies, which route client requests in the same session to the same instance?\n",
          "type": "boolean"
        },
        "clientCertEnabled": {
          "description": "Does the App Service require client certificates for incoming requests? Defaults to `false`.\n",
          "type": "boolean"
        },
        "connectionStrings": {
          "description": "One or more `connection_string` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/AppServiceConnectionString:AppServiceConnectionString"
          },
          "type": "array"
        },
        "enabled": {
          "description": "Is the App Service Enabled?\n",
          "type": "boolean"
        },
        "httpsOnly": {
          "description": "Can the App Service only be accessed via HTTPS? Defaults to `false`.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:appservice/AppServiceIdentity:AppServiceIdentity",
          "description": "A Managed Service Identity block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logs": {
          "$ref": "#/types/azure:appservice/AppServiceLogs:AppServiceLogs",
          "description": "A `logs` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name of the App Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the App Service.\n",
          "type": "string"
        },
        "siteConfig": {
          "$ref": "#/types/azure:appservice/AppServiceSiteConfig:AppServiceSiteConfig",
          "description": "A `site_config` block as defined below.\n"
        },
        "sourceControl": {
          "$ref": "#/types/azure:appservice/AppServiceSourceControl:AppServiceSourceControl",
          "description": "A Source Control block as defined below\n"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/AppServiceStorageAccount:AppServiceStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "appServicePlanId": {
          "description": "The ID of the App Service Plan within which to create this App Service.\n",
          "type": "string"
        },
        "appSettings": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A key-value pair of App Settings.\n",
          "type": "object"
        },
        "authSettings": {
          "$ref": "#/types/azure:appservice/AppServiceAuthSettings:AppServiceAuthSettings",
          "description": "A `auth_settings` block as defined below.\n"
        },
        "backup": {
          "$ref": "#/types/azure:appservice/AppServiceBackup:AppServiceBackup",
          "description": "A `backup` block as defined below.\n"
        },
        "clientAffinityEnabled": {
          "description": "Should the App Service send session affinity cookies, which route client requests in the same session to the same instance?\n",
          "type": "boolean"
        },
        "clientCertEnabled": {
          "description": "Does the App Service require client certificates for incoming requests? Defaults to `false`.\n",
          "type": "boolean"
        },
        "connectionStrings": {
          "description": "One or more `connection_string` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/AppServiceConnectionString:AppServiceConnectionString"
          },
          "type": "array"
        },
        "customDomainVerificationId": {
          "description": "An identifier used by App Service to perform domain ownership verification via DNS TXT record.\n",
          "type": "string"
        },
        "defaultSiteHostname": {
          "description": "The Default Hostname associated with the App Service - such as `mysite.azurewebsites.net`\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is the App Service Enabled?\n",
          "type": "boolean"
        },
        "httpsOnly": {
          "description": "Can the App Service only be accessed via HTTPS? Defaults to `false`.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:appservice/AppServiceIdentity:AppServiceIdentity",
          "description": "A Managed Service Identity block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logs": {
          "$ref": "#/types/azure:appservice/AppServiceLogs:AppServiceLogs",
          "description": "A `logs` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name of the App Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "outboundIpAddressLists": {
          "description": "A list of outbound IP addresses - such as `[\"52.23.25.3\", \"52.143.43.12\"]`\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "outboundIpAddresses": {
          "description": "A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12`\n",
          "type": "string"
        },
        "possibleOutboundIpAddressLists": {
          "description": "A list of outbound IP addresses - such as `[\"52.23.25.3\", \"52.143.43.12\", \"52.143.43.17\"]` - not all of which are necessarily in use. Superset of `outbound_ip_address_list`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "possibleOutboundIpAddresses": {
          "description": "A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12,52.143.43.17` - not all of which are necessarily in use. Superset of `outbound_ip_addresses`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the App Service.\n",
          "type": "string"
        },
        "siteConfig": {
          "$ref": "#/types/azure:appservice/AppServiceSiteConfig:AppServiceSiteConfig",
          "description": "A `site_config` block as defined below.\n"
        },
        "siteCredentials": {
          "description": "A `site_credential` block as defined below, which contains the site-level credentials used to publish to this App Service.\n",
          "items": {
            "$ref": "#/types/azure:appservice/AppServiceSiteCredential:AppServiceSiteCredential"
          },
          "type": "array"
        },
        "sourceControl": {
          "$ref": "#/types/azure:appservice/AppServiceSourceControl:AppServiceSourceControl",
          "description": "A Source Control block as defined below\n"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/AppServiceStorageAccount:AppServiceStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "appServicePlanId",
        "appSettings",
        "authSettings",
        "connectionStrings",
        "customDomainVerificationId",
        "defaultSiteHostname",
        "identity",
        "location",
        "logs",
        "name",
        "outboundIpAddressLists",
        "outboundIpAddresses",
        "possibleOutboundIpAddressLists",
        "possibleOutboundIpAddresses",
        "resourceGroupName",
        "siteConfig",
        "siteCredentials",
        "sourceControl",
        "storageAccounts"
      ],
      "requiredInputs": [
        "appServicePlanId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AppService resources.\n",
        "properties": {
          "appServicePlanId": {
            "description": "The ID of the App Service Plan within which to create this App Service.\n",
            "type": "string"
          },
          "appSettings": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A key-value pair of App Settings.\n",
            "type": "object"
          },
          "authSettings": {
            "$ref": "#/types/azure:appservice/AppServiceAuthSettings:AppServiceAuthSettings",
            "description": "A `auth_settings` block as defined below.\n"
          },
          "backup": {
            "$ref": "#/types/azure:appservice/AppServiceBackup:AppServiceBackup",
            "description": "A `backup` block as defined below.\n"
          },
          "clientAffinityEnabled": {
            "description": "Should the App Service send session affinity cookies, which route client requests in the same session to the same instance?\n",
            "type": "boolean"
          },
          "clientCertEnabled": {
            "description": "Does the App Service require client certificates for incoming requests? Defaults to `false`.\n",
            "type": "boolean"
          },
          "connectionStrings": {
            "description": "One or more `connection_string` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/AppServiceConnectionString:AppServiceConnectionString"
            },
            "type": "array"
          },
          "customDomainVerificationId": {
            "description": "An identifier used by App Service to perform domain ownership verification via DNS TXT record.\n",
            "type": "string"
          },
          "defaultSiteHostname": {
            "description": "The Default Hostname associated with the App Service - such as `mysite.azurewebsites.net`\n",
            "type": "string"
          },
          "enabled": {
            "description": "Is the App Service Enabled?\n",
            "type": "boolean"
          },
          "httpsOnly": {
            "description": "Can the App Service only be accessed via HTTPS? Defaults to `false`.\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:appservice/AppServiceIdentity:AppServiceIdentity",
            "description": "A Managed Service Identity block as defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "logs": {
            "$ref": "#/types/azure:appservice/AppServiceLogs:AppServiceLogs",
            "description": "A `logs` block as defined below.\n"
          },
          "name": {
            "description": "Specifies the name of the App Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "outboundIpAddressLists": {
            "description": "A list of outbound IP addresses - such as `[\"52.23.25.3\", \"52.143.43.12\"]`\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "outboundIpAddresses": {
            "description": "A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12`\n",
            "type": "string"
          },
          "possibleOutboundIpAddressLists": {
            "description": "A list of outbound IP addresses - such as `[\"52.23.25.3\", \"52.143.43.12\", \"52.143.43.17\"]` - not all of which are necessarily in use. Superset of `outbound_ip_address_list`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "possibleOutboundIpAddresses": {
            "description": "A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12,52.143.43.17` - not all of which are necessarily in use. Superset of `outbound_ip_addresses`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the App Service.\n",
            "type": "string"
          },
          "siteConfig": {
            "$ref": "#/types/azure:appservice/AppServiceSiteConfig:AppServiceSiteConfig",
            "description": "A `site_config` block as defined below.\n"
          },
          "siteCredentials": {
            "description": "A `site_credential` block as defined below, which contains the site-level credentials used to publish to this App Service.\n",
            "items": {
              "$ref": "#/types/azure:appservice/AppServiceSiteCredential:AppServiceSiteCredential"
            },
            "type": "array"
          },
          "sourceControl": {
            "$ref": "#/types/azure:appservice/AppServiceSourceControl:AppServiceSourceControl",
            "description": "A Source Control block as defined below\n"
          },
          "storageAccounts": {
            "description": "One or more `storage_account` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/AppServiceStorageAccount:AppServiceStorageAccount"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/certificate:Certificate": {
      "description": "Manages an App Service certificate.\n\n\n## Import\n\nApp Service Certificates can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/certificate:Certificate example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/certificates/certificate1\n```\n\n ",
      "inputProperties": {
        "appServicePlanId": {
          "description": "The ID of the associated App Service plan. Must be specified when the certificate is used inside an App Service Environment hosted App Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "hostingEnvironmentProfileId": {
          "deprecationMessage": "This property has been deprecated and replaced with `app_service_plan_id`",
          "description": "The ID of the the App Service Environment where the certificate is in use.\n",
          "type": "string"
        },
        "keyVaultSecretId": {
          "description": "The ID of the Key Vault secret. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "password": {
          "description": "The password to access the certificate's private key. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pfxBlob": {
          "description": "The base64-encoded contents of the certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "properties": {
        "appServicePlanId": {
          "description": "The ID of the associated App Service plan. Must be specified when the certificate is used inside an App Service Environment hosted App Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "expirationDate": {
          "description": "The expiration date for the certificate.\n",
          "type": "string"
        },
        "friendlyName": {
          "description": "The friendly name of the certificate.\n",
          "type": "string"
        },
        "hostNames": {
          "description": "List of host names the certificate applies to.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "hostingEnvironmentProfileId": {
          "deprecationMessage": "This property has been deprecated and replaced with `app_service_plan_id`",
          "description": "The ID of the the App Service Environment where the certificate is in use.\n",
          "type": "string"
        },
        "issueDate": {
          "description": "The issue date for the certificate.\n",
          "type": "string"
        },
        "issuer": {
          "description": "The name of the certificate issuer.\n",
          "type": "string"
        },
        "keyVaultSecretId": {
          "description": "The ID of the Key Vault secret. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "password": {
          "description": "The password to access the certificate's private key. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pfxBlob": {
          "description": "The base64-encoded contents of the certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subjectName": {
          "description": "The subject name of the certificate.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "thumbprint": {
          "description": "The thumbprint for the certificate.\n",
          "type": "string"
        }
      },
      "required": [
        "expirationDate",
        "friendlyName",
        "hostNames",
        "hostingEnvironmentProfileId",
        "issueDate",
        "issuer",
        "location",
        "name",
        "resourceGroupName",
        "subjectName",
        "thumbprint"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Certificate resources.\n",
        "properties": {
          "appServicePlanId": {
            "description": "The ID of the associated App Service plan. Must be specified when the certificate is used inside an App Service Environment hosted App Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "expirationDate": {
            "description": "The expiration date for the certificate.\n",
            "type": "string"
          },
          "friendlyName": {
            "description": "The friendly name of the certificate.\n",
            "type": "string"
          },
          "hostNames": {
            "description": "List of host names the certificate applies to.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "hostingEnvironmentProfileId": {
            "deprecationMessage": "This property has been deprecated and replaced with `app_service_plan_id`",
            "description": "The ID of the the App Service Environment where the certificate is in use.\n",
            "type": "string"
          },
          "issueDate": {
            "description": "The issue date for the certificate.\n",
            "type": "string"
          },
          "issuer": {
            "description": "The name of the certificate issuer.\n",
            "type": "string"
          },
          "keyVaultSecretId": {
            "description": "The ID of the Key Vault secret. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the certificate. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "password": {
            "description": "The password to access the certificate's private key. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "pfxBlob": {
            "description": "The base64-encoded contents of the certificate. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the certificate. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subjectName": {
            "description": "The subject name of the certificate.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "thumbprint": {
            "description": "The thumbprint for the certificate.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/certificateBinding:CertificateBinding": {
      "description": "Manages an App Service Certificate Binding.\n\n\n## Import\n\nApp Service Certificate Bindings can be imported using the `hostname_binding_id` and the `app_service_certificate_id` , e.g.\n\n```sh\n $ pulumi import azure:appservice/certificateBinding:CertificateBinding example \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/sites/instance1/hostNameBindings/mywebsite.com|/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/certificates/mywebsite.com\"\n```\n\n ",
      "inputProperties": {
        "certificateId": {
          "description": "The ID of the certificate to bind to the custom domain. Changing this forces a new App Service Certificate Binding to be created.\n",
          "type": "string"
        },
        "hostnameBindingId": {
          "description": "The ID of the Custom Domain/Hostname Binding. Changing this forces a new App Service Certificate Binding to be created.\n",
          "type": "string"
        },
        "sslState": {
          "description": "The type of certificate binding. Allowed values are `IpBasedEnabled` or `SniEnabled`. Changing this forces a new App Service Certificate Binding to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "appServiceName": {
          "description": "The name of the App Service to which the certificate was bound.\n",
          "type": "string"
        },
        "certificateId": {
          "description": "The ID of the certificate to bind to the custom domain. Changing this forces a new App Service Certificate Binding to be created.\n",
          "type": "string"
        },
        "hostname": {
          "description": "The hostname of the bound certificate.\n",
          "type": "string"
        },
        "hostnameBindingId": {
          "description": "The ID of the Custom Domain/Hostname Binding. Changing this forces a new App Service Certificate Binding to be created.\n",
          "type": "string"
        },
        "sslState": {
          "description": "The type of certificate binding. Allowed values are `IpBasedEnabled` or `SniEnabled`. Changing this forces a new App Service Certificate Binding to be created.\n",
          "type": "string"
        },
        "thumbprint": {
          "description": "The certificate thumbprint.\n",
          "type": "string"
        }
      },
      "required": [
        "appServiceName",
        "certificateId",
        "hostname",
        "hostnameBindingId",
        "sslState",
        "thumbprint"
      ],
      "requiredInputs": [
        "certificateId",
        "hostnameBindingId",
        "sslState"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CertificateBinding resources.\n",
        "properties": {
          "appServiceName": {
            "description": "The name of the App Service to which the certificate was bound.\n",
            "type": "string"
          },
          "certificateId": {
            "description": "The ID of the certificate to bind to the custom domain. Changing this forces a new App Service Certificate Binding to be created.\n",
            "type": "string"
          },
          "hostname": {
            "description": "The hostname of the bound certificate.\n",
            "type": "string"
          },
          "hostnameBindingId": {
            "description": "The ID of the Custom Domain/Hostname Binding. Changing this forces a new App Service Certificate Binding to be created.\n",
            "type": "string"
          },
          "sslState": {
            "description": "The type of certificate binding. Allowed values are `IpBasedEnabled` or `SniEnabled`. Changing this forces a new App Service Certificate Binding to be created.\n",
            "type": "string"
          },
          "thumbprint": {
            "description": "The certificate thumbprint.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/certificateOrder:CertificateOrder": {
      "description": "Manages an App Service Certificate Order.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleCertificateOrder = new azure.appservice.CertificateOrder(\"exampleCertificateOrder\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: \"global\",\n    distinguishedName: \"CN=example.com\",\n    productType: \"Standard\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_certificate_order = azure.appservice.CertificateOrder(\"exampleCertificateOrder\",\n    resource_group_name=example_resource_group.name,\n    location=\"global\",\n    distinguished_name=\"CN=example.com\",\n    product_type=\"Standard\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleCertificateOrder = new Azure.AppService.CertificateOrder(\"exampleCertificateOrder\", new Azure.AppService.CertificateOrderArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = \"global\",\n            DistinguishedName = \"CN=example.com\",\n            ProductType = \"Standard\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewCertificateOrder(ctx, \"exampleCertificateOrder\", \u0026appservice.CertificateOrderArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          pulumi.String(\"global\"),\n\t\t\tDistinguishedName: pulumi.String(\"CN=example.com\"),\n\t\t\tProductType:       pulumi.String(\"Standard\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApp Service Certificate Orders can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/certificateOrder:CertificateOrder example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.CertificateRegistration/certificateOrders/certificateorder1\n```\n\n ",
      "inputProperties": {
        "autoRenew": {
          "description": "true if the certificate should be automatically renewed when it expires; otherwise, false. Defaults to true.\n",
          "type": "boolean"
        },
        "csr": {
          "description": "Last CSR that was created for this order.\n",
          "type": "string"
        },
        "distinguishedName": {
          "description": "The Distinguished Name for the App Service Certificate Order.\n",
          "type": "string"
        },
        "keySize": {
          "description": "Certificate key size.  Defaults to 2048.\n",
          "type": "integer"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. Currently the only valid value is `global`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "productType": {
          "description": "Certificate product type, such as `Standard` or `WildCard`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "validityInYears": {
          "description": "Duration in years (must be between `1` and `3`).  Defaults to `1`.\n",
          "type": "integer"
        }
      },
      "properties": {
        "appServiceCertificateNotRenewableReasons": {
          "description": "Reasons why App Service Certificate is not renewable at the current moment.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "autoRenew": {
          "description": "true if the certificate should be automatically renewed when it expires; otherwise, false. Defaults to true.\n",
          "type": "boolean"
        },
        "certificates": {
          "description": "State of the Key Vault secret. A `certificates` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/CertificateOrderCertificate:CertificateOrderCertificate"
          },
          "type": "array"
        },
        "csr": {
          "description": "Last CSR that was created for this order.\n",
          "type": "string"
        },
        "distinguishedName": {
          "description": "The Distinguished Name for the App Service Certificate Order.\n",
          "type": "string"
        },
        "domainVerificationToken": {
          "description": "Domain verification token.\n",
          "type": "string"
        },
        "expirationTime": {
          "description": "Certificate expiration time.\n",
          "type": "string"
        },
        "intermediateThumbprint": {
          "description": "Certificate thumbprint intermediate certificate.\n",
          "type": "string"
        },
        "isPrivateKeyExternal": {
          "description": "Whether the private key is external or not.\n",
          "type": "boolean"
        },
        "keySize": {
          "description": "Certificate key size.  Defaults to 2048.\n",
          "type": "integer"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. Currently the only valid value is `global`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "productType": {
          "description": "Certificate product type, such as `Standard` or `WildCard`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rootThumbprint": {
          "description": "Certificate thumbprint for root certificate.\n",
          "type": "string"
        },
        "signedCertificateThumbprint": {
          "description": "Certificate thumbprint for signed certificate.\n",
          "type": "string"
        },
        "status": {
          "description": "Current order status.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "validityInYears": {
          "description": "Duration in years (must be between `1` and `3`).  Defaults to `1`.\n",
          "type": "integer"
        }
      },
      "required": [
        "appServiceCertificateNotRenewableReasons",
        "certificates",
        "csr",
        "distinguishedName",
        "domainVerificationToken",
        "expirationTime",
        "intermediateThumbprint",
        "isPrivateKeyExternal",
        "location",
        "name",
        "resourceGroupName",
        "rootThumbprint",
        "signedCertificateThumbprint",
        "status"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CertificateOrder resources.\n",
        "properties": {
          "appServiceCertificateNotRenewableReasons": {
            "description": "Reasons why App Service Certificate is not renewable at the current moment.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "autoRenew": {
            "description": "true if the certificate should be automatically renewed when it expires; otherwise, false. Defaults to true.\n",
            "type": "boolean"
          },
          "certificates": {
            "description": "State of the Key Vault secret. A `certificates` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/CertificateOrderCertificate:CertificateOrderCertificate"
            },
            "type": "array"
          },
          "csr": {
            "description": "Last CSR that was created for this order.\n",
            "type": "string"
          },
          "distinguishedName": {
            "description": "The Distinguished Name for the App Service Certificate Order.\n",
            "type": "string"
          },
          "domainVerificationToken": {
            "description": "Domain verification token.\n",
            "type": "string"
          },
          "expirationTime": {
            "description": "Certificate expiration time.\n",
            "type": "string"
          },
          "intermediateThumbprint": {
            "description": "Certificate thumbprint intermediate certificate.\n",
            "type": "string"
          },
          "isPrivateKeyExternal": {
            "description": "Whether the private key is external or not.\n",
            "type": "boolean"
          },
          "keySize": {
            "description": "Certificate key size.  Defaults to 2048.\n",
            "type": "integer"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. Currently the only valid value is `global`.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the certificate. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "productType": {
            "description": "Certificate product type, such as `Standard` or `WildCard`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the certificate. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "rootThumbprint": {
            "description": "Certificate thumbprint for root certificate.\n",
            "type": "string"
          },
          "signedCertificateThumbprint": {
            "description": "Certificate thumbprint for signed certificate.\n",
            "type": "string"
          },
          "status": {
            "description": "Current order status.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "validityInYears": {
            "description": "Duration in years (must be between `1` and `3`).  Defaults to `1`.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/customHostnameBinding:CustomHostnameBinding": {
      "description": "Manages a Hostname Binding within an App Service (or Function App).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as random from \"@pulumi/random\";\n\nconst server = new random.RandomId(\"server\", {\n    keepers: {\n        azi_id: 1,\n    },\n    byteLength: 8,\n});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        tier: \"Standard\",\n        size: \"S1\",\n    },\n});\nconst exampleAppService = new azure.appservice.AppService(\"exampleAppService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n});\nconst exampleCustomHostnameBinding = new azure.appservice.CustomHostnameBinding(\"exampleCustomHostnameBinding\", {\n    hostname: \"www.mywebsite.com\",\n    appServiceName: exampleAppService.name,\n    resourceGroupName: exampleResourceGroup.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_random as random\n\nserver = random.RandomId(\"server\",\n    keepers={\n        \"azi_id\": 1,\n    },\n    byte_length=8)\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Standard\",\n        size=\"S1\",\n    ))\nexample_app_service = azure.appservice.AppService(\"exampleAppService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id)\nexample_custom_hostname_binding = azure.appservice.CustomHostnameBinding(\"exampleCustomHostnameBinding\",\n    hostname=\"www.mywebsite.com\",\n    app_service_name=example_app_service.name,\n    resource_group_name=example_resource_group.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing Random = Pulumi.Random;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var server = new Random.RandomId(\"server\", new Random.RandomIdArgs\n        {\n            Keepers = \n            {\n                { \"azi_id\", 1 },\n            },\n            ByteLength = 8,\n        });\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Standard\",\n                Size = \"S1\",\n            },\n        });\n        var exampleAppService = new Azure.AppService.AppService(\"exampleAppService\", new Azure.AppService.AppServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n        });\n        var exampleCustomHostnameBinding = new Azure.AppService.CustomHostnameBinding(\"exampleCustomHostnameBinding\", new Azure.AppService.CustomHostnameBindingArgs\n        {\n            Hostname = \"www.mywebsite.com\",\n            AppServiceName = exampleAppService.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\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 := random.NewRandomId(ctx, \"server\", \u0026random.RandomIdArgs{\n\t\t\tKeepers: pulumi.AnyMap{\n\t\t\t\t\"azi_id\": pulumi.Any(1),\n\t\t\t},\n\t\t\tByteLength: pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePlan, err := appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t\tSize: pulumi.String(\"S1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAppService, err := appservice.NewAppService(ctx, \"exampleAppService\", \u0026appservice.AppServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:  examplePlan.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewCustomHostnameBinding(ctx, \"exampleCustomHostnameBinding\", \u0026appservice.CustomHostnameBindingArgs{\n\t\t\tHostname:          pulumi.String(\"www.mywebsite.com\"),\n\t\t\tAppServiceName:    exampleAppService.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApp Service Custom Hostname Bindings can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/customHostnameBinding:CustomHostnameBinding mywebsite /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/sites/instance1/hostNameBindings/mywebsite.com\n```\n\n ",
      "inputProperties": {
        "appServiceName": {
          "description": "The name of the App Service in which to add the Custom Hostname Binding. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "hostname": {
          "description": "Specifies the Custom Hostname to use for the App Service, example `www.example.com`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the App Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sslState": {
          "description": "The SSL type. Possible values are `IpBasedEnabled` and `SniEnabled`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "thumbprint": {
          "description": "The SSL certificate thumbprint. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "appServiceName": {
          "description": "The name of the App Service in which to add the Custom Hostname Binding. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "hostname": {
          "description": "Specifies the Custom Hostname to use for the App Service, example `www.example.com`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the App Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sslState": {
          "description": "The SSL type. Possible values are `IpBasedEnabled` and `SniEnabled`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "thumbprint": {
          "description": "The SSL certificate thumbprint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualIp": {
          "description": "The virtual IP address assigned to the hostname if IP based SSL is enabled.\n",
          "type": "string"
        }
      },
      "required": [
        "appServiceName",
        "hostname",
        "resourceGroupName",
        "sslState",
        "thumbprint",
        "virtualIp"
      ],
      "requiredInputs": [
        "appServiceName",
        "hostname",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CustomHostnameBinding resources.\n",
        "properties": {
          "appServiceName": {
            "description": "The name of the App Service in which to add the Custom Hostname Binding. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "hostname": {
            "description": "Specifies the Custom Hostname to use for the App Service, example `www.example.com`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the App Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sslState": {
            "description": "The SSL type. Possible values are `IpBasedEnabled` and `SniEnabled`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "thumbprint": {
            "description": "The SSL certificate thumbprint. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "virtualIp": {
            "description": "The virtual IP address assigned to the hostname if IP based SSL is enabled.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/environment:Environment": {
      "description": "Manages an App Service Environment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"10.0.0.0/16\"],\n});\nconst ase = new azure.network.Subnet(\"ase\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst gateway = new azure.network.Subnet(\"gateway\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleEnvironment = new azure.appservice.Environment(\"exampleEnvironment\", {\n    subnetId: ase.id,\n    pricingTier: \"I2\",\n    frontEndScaleFactor: 10,\n    internalLoadBalancingMode: \"Web, Publishing\",\n    allowedUserIpCidrs: [\n        \"11.22.33.44/32\",\n        \"55.66.77.0/24\",\n    ],\n    clusterSettings: [{\n        name: \"DisableTls1.0\",\n        value: \"1\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    address_spaces=[\"10.0.0.0/16\"])\nase = azure.network.Subnet(\"ase\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"])\ngateway = azure.network.Subnet(\"gateway\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_environment = azure.appservice.Environment(\"exampleEnvironment\",\n    subnet_id=ase.id,\n    pricing_tier=\"I2\",\n    front_end_scale_factor=10,\n    internal_load_balancing_mode=\"Web, Publishing\",\n    allowed_user_ip_cidrs=[\n        \"11.22.33.44/32\",\n        \"55.66.77.0/24\",\n    ],\n    cluster_settings=[azure.appservice.EnvironmentClusterSettingArgs(\n        name=\"DisableTls1.0\",\n        value=\"1\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n        });\n        var ase = new Azure.Network.Subnet(\"ase\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n        });\n        var gateway = new Azure.Network.Subnet(\"gateway\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleEnvironment = new Azure.AppService.Environment(\"exampleEnvironment\", new Azure.AppService.EnvironmentArgs\n        {\n            SubnetId = ase.Id,\n            PricingTier = \"I2\",\n            FrontEndScaleFactor = 10,\n            InternalLoadBalancingMode = \"Web, Publishing\",\n            AllowedUserIpCidrs = \n            {\n                \"11.22.33.44/32\",\n                \"55.66.77.0/24\",\n            },\n            ClusterSettings = \n            {\n                new Azure.AppService.Inputs.EnvironmentClusterSettingArgs\n                {\n                    Name = \"DisableTls1.0\",\n                    Value = \"1\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tase, err := network.NewSubnet(ctx, \"ase\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewSubnet(ctx, \"gateway\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewEnvironment(ctx, \"exampleEnvironment\", \u0026appservice.EnvironmentArgs{\n\t\t\tSubnetId:                  ase.ID(),\n\t\t\tPricingTier:               pulumi.String(\"I2\"),\n\t\t\tFrontEndScaleFactor:       pulumi.Int(10),\n\t\t\tInternalLoadBalancingMode: pulumi.String(\"Web, Publishing\"),\n\t\t\tAllowedUserIpCidrs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"11.22.33.44/32\"),\n\t\t\t\tpulumi.String(\"55.66.77.0/24\"),\n\t\t\t},\n\t\t\tClusterSettings: appservice.EnvironmentClusterSettingArray{\n\t\t\t\t\u0026appservice.EnvironmentClusterSettingArgs{\n\t\t\t\t\tName:  pulumi.String(\"DisableTls1.0\"),\n\t\t\t\t\tValue: pulumi.String(\"1\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe App Service Environment can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/environment:Environment myAppServiceEnv /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Web/hostingEnvironments/myAppServiceEnv\n```\n\n ",
      "inputProperties": {
        "allowedUserIpCidrs": {
          "description": "Allowed user added IP ranges on the ASE database. Use the addresses you want to set as the explicit egress address ranges.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "clusterSettings": {
          "description": "Zero or more `cluster_setting` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/EnvironmentClusterSetting:EnvironmentClusterSetting"
          },
          "type": "array"
        },
        "frontEndScaleFactor": {
          "description": "Scale factor for front end instances. Possible values are between `5` and `15`. Defaults to `15`.\n",
          "type": "integer"
        },
        "internalLoadBalancingMode": {
          "description": "Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. Possible values are `None`, `Web`, `Publishing` and combined value `\"Web, Publishing\"`. Defaults to `None`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the App Service Environment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pricingTier": {
          "description": "Pricing tier for the front end instances. Possible values are `I1`, `I2` and `I3`. Defaults to `I1`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the App Service Environment exists. Defaults to the Resource Group of the Subnet (specified by `subnet_id`).\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet which the App Service Environment should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
          "type": "object"
        },
        "userWhitelistedIpRanges": {
          "deprecationMessage": "this property has been renamed to `allowed_user_ip_cidrs` better reflect the expected ip range format",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "allowedUserIpCidrs": {
          "description": "Allowed user added IP ranges on the ASE database. Use the addresses you want to set as the explicit egress address ranges.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "clusterSettings": {
          "description": "Zero or more `cluster_setting` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/EnvironmentClusterSetting:EnvironmentClusterSetting"
          },
          "type": "array"
        },
        "frontEndScaleFactor": {
          "description": "Scale factor for front end instances. Possible values are between `5` and `15`. Defaults to `15`.\n",
          "type": "integer"
        },
        "internalIpAddress": {
          "description": "IP address of internal load balancer of the App Service Environment.\n",
          "type": "string"
        },
        "internalLoadBalancingMode": {
          "description": "Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. Possible values are `None`, `Web`, `Publishing` and combined value `\"Web, Publishing\"`. Defaults to `None`.\n",
          "type": "string"
        },
        "location": {
          "description": "The location where the App Service Environment exists.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the App Service Environment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "outboundIpAddresses": {
          "description": "List of outbound IP addresses of the App Service Environment.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "pricingTier": {
          "description": "Pricing tier for the front end instances. Possible values are `I1`, `I2` and `I3`. Defaults to `I1`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the App Service Environment exists. Defaults to the Resource Group of the Subnet (specified by `subnet_id`).\n",
          "type": "string"
        },
        "serviceIpAddress": {
          "description": "IP address of service endpoint of the App Service Environment.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet which the App Service Environment should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
          "type": "object"
        },
        "userWhitelistedIpRanges": {
          "deprecationMessage": "this property has been renamed to `allowed_user_ip_cidrs` better reflect the expected ip range format",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "allowedUserIpCidrs",
        "clusterSettings",
        "internalIpAddress",
        "location",
        "name",
        "outboundIpAddresses",
        "resourceGroupName",
        "serviceIpAddress",
        "subnetId",
        "userWhitelistedIpRanges"
      ],
      "requiredInputs": [
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Environment resources.\n",
        "properties": {
          "allowedUserIpCidrs": {
            "description": "Allowed user added IP ranges on the ASE database. Use the addresses you want to set as the explicit egress address ranges.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "clusterSettings": {
            "description": "Zero or more `cluster_setting` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/EnvironmentClusterSetting:EnvironmentClusterSetting"
            },
            "type": "array"
          },
          "frontEndScaleFactor": {
            "description": "Scale factor for front end instances. Possible values are between `5` and `15`. Defaults to `15`.\n",
            "type": "integer"
          },
          "internalIpAddress": {
            "description": "IP address of internal load balancer of the App Service Environment.\n",
            "type": "string"
          },
          "internalLoadBalancingMode": {
            "description": "Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. Possible values are `None`, `Web`, `Publishing` and combined value `\"Web, Publishing\"`. Defaults to `None`.\n",
            "type": "string"
          },
          "location": {
            "description": "The location where the App Service Environment exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the App Service Environment. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "outboundIpAddresses": {
            "description": "List of outbound IP addresses of the App Service Environment.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "pricingTier": {
            "description": "Pricing tier for the front end instances. Possible values are `I1`, `I2` and `I3`. Defaults to `I1`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the App Service Environment exists. Defaults to the Resource Group of the Subnet (specified by `subnet_id`).\n",
            "type": "string"
          },
          "serviceIpAddress": {
            "description": "IP address of service endpoint of the App Service Environment.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the Subnet which the App Service Environment should be connected to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
            "type": "object"
          },
          "userWhitelistedIpRanges": {
            "deprecationMessage": "this property has been renamed to `allowed_user_ip_cidrs` better reflect the expected ip range format",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/environmentV3:EnvironmentV3": {
      "description": "Manages a 3rd Generation (v3) App Service Environment.\n\n\u003e **NOTE:** App Service Environment V3 is currently in Preview.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"10.0.0.0/16\"],\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n    serviceDelegation: [{\n        name: \"Microsoft.Web/hostingEnvironments\",\n        actions: [\"Microsoft.Network/virtualNetworks/subnets/action\"],\n    }],\n});\nconst exampleEnvironmentV3 = new azure.appservice.EnvironmentV3(\"exampleEnvironmentV3\", {\n    resourceGroupName: exampleResourceGroup.name,\n    subnetId: exampleSubnet.id,\n    clusterSettings: [\n        {\n            name: \"DisableTls1.0\",\n            value: \"1\",\n        },\n        {\n            name: \"InternalEncryption\",\n            value: \"true\",\n        },\n        {\n            name: \"FrontEndSSLCipherSuiteOrder\",\n            value: \"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\",\n        },\n    ],\n    tags: {\n        env: \"production\",\n        terraformed: \"true\",\n    },\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA 3rd Generation (v3) App Service Environment can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/environmentV3:EnvironmentV3 myAppServiceEnv /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Web/hostingEnvironments/myAppServiceEnv\n```\n\n ",
      "inputProperties": {
        "allowNewPrivateEndpointConnections": {
          "description": "Should new Private Endpoint Connections be allowed. Defaults to `true`.\n",
          "type": "boolean"
        },
        "clusterSettings": {
          "description": "Zero or more `cluster_setting` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/EnvironmentV3ClusterSetting:EnvironmentV3ClusterSetting"
          },
          "type": "array"
        },
        "dedicatedHostCount": {
          "description": "This ASEv3 should use dedicated Hosts. Possible vales are `2`. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "internalLoadBalancingMode": {
          "description": "Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. Possible values are `None` (for an External VIP Type), and `\"Web, Publishing\"` (for an Internal VIP Type). Defaults to `None`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the App Service Environment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the App Service Environment exists. Defaults to the Resource Group of the Subnet (specified by `subnet_id`).\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet which the App Service Environment should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
          "type": "object"
        },
        "zoneRedundant": {
          "type": "boolean"
        }
      },
      "properties": {
        "allowNewPrivateEndpointConnections": {
          "description": "Should new Private Endpoint Connections be allowed. Defaults to `true`.\n",
          "type": "boolean"
        },
        "clusterSettings": {
          "description": "Zero or more `cluster_setting` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/EnvironmentV3ClusterSetting:EnvironmentV3ClusterSetting"
          },
          "type": "array"
        },
        "dedicatedHostCount": {
          "description": "This ASEv3 should use dedicated Hosts. Possible vales are `2`. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "dnsSuffix": {
          "description": "the DNS suffix for this App Service Environment V3.\n",
          "type": "string"
        },
        "externalInboundIpAddresses": {
          "description": "The external outbound IP addresses of the App Service Environment V3.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "inboundNetworkDependencies": {
          "description": "An Inbound Network Dependencies block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/EnvironmentV3InboundNetworkDependency:EnvironmentV3InboundNetworkDependency"
          },
          "type": "array"
        },
        "internalInboundIpAddresses": {
          "description": "The internal outbound IP addresses of the App Service Environment V3.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "internalLoadBalancingMode": {
          "description": "Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. Possible values are `None` (for an External VIP Type), and `\"Web, Publishing\"` (for an Internal VIP Type). Defaults to `None`.\n",
          "type": "string"
        },
        "ipSslAddressCount": {
          "description": "The number of IP SSL addresses reserved for the App Service Environment V3.\n",
          "type": "integer"
        },
        "linuxOutboundIpAddresses": {
          "description": "Outbound addresses of Linux based Apps in this App Service Environment V3\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "The location where the App Service Environment exists.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the App Service Environment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pricingTier": {
          "description": "Pricing tier for the front end instances.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the App Service Environment exists. Defaults to the Resource Group of the Subnet (specified by `subnet_id`).\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet which the App Service Environment should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
          "type": "object"
        },
        "windowsOutboundIpAddresses": {
          "description": "Outbound addresses of Windows based Apps in this App Service Environment V3.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "zoneRedundant": {
          "type": "boolean"
        }
      },
      "required": [
        "clusterSettings",
        "dnsSuffix",
        "externalInboundIpAddresses",
        "inboundNetworkDependencies",
        "internalInboundIpAddresses",
        "ipSslAddressCount",
        "linuxOutboundIpAddresses",
        "location",
        "name",
        "pricingTier",
        "resourceGroupName",
        "subnetId",
        "windowsOutboundIpAddresses"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EnvironmentV3 resources.\n",
        "properties": {
          "allowNewPrivateEndpointConnections": {
            "description": "Should new Private Endpoint Connections be allowed. Defaults to `true`.\n",
            "type": "boolean"
          },
          "clusterSettings": {
            "description": "Zero or more `cluster_setting` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/EnvironmentV3ClusterSetting:EnvironmentV3ClusterSetting"
            },
            "type": "array"
          },
          "dedicatedHostCount": {
            "description": "This ASEv3 should use dedicated Hosts. Possible vales are `2`. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "dnsSuffix": {
            "description": "the DNS suffix for this App Service Environment V3.\n",
            "type": "string"
          },
          "externalInboundIpAddresses": {
            "description": "The external outbound IP addresses of the App Service Environment V3.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "inboundNetworkDependencies": {
            "description": "An Inbound Network Dependencies block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/EnvironmentV3InboundNetworkDependency:EnvironmentV3InboundNetworkDependency"
            },
            "type": "array"
          },
          "internalInboundIpAddresses": {
            "description": "The internal outbound IP addresses of the App Service Environment V3.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "internalLoadBalancingMode": {
            "description": "Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. Possible values are `None` (for an External VIP Type), and `\"Web, Publishing\"` (for an Internal VIP Type). Defaults to `None`.\n",
            "type": "string"
          },
          "ipSslAddressCount": {
            "description": "The number of IP SSL addresses reserved for the App Service Environment V3.\n",
            "type": "integer"
          },
          "linuxOutboundIpAddresses": {
            "description": "Outbound addresses of Linux based Apps in this App Service Environment V3\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "The location where the App Service Environment exists.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the App Service Environment. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "pricingTier": {
            "description": "Pricing tier for the front end instances.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the App Service Environment exists. Defaults to the Resource Group of the Subnet (specified by `subnet_id`).\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the Subnet which the App Service Environment should be connected to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
            "type": "object"
          },
          "windowsOutboundIpAddresses": {
            "description": "Outbound addresses of Windows based Apps in this App Service Environment V3.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "zoneRedundant": {
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/functionApp:FunctionApp": {
      "description": "Manages a Function App.\n\n\u003e **Note:** To connect an Azure Function App and a subnet within the same region `azure.appservice.VirtualNetworkSwiftConnection` can be used.\nFor an example, check the `azure.appservice.VirtualNetworkSwiftConnection` documentation.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### With App Service Plan)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        tier: \"Standard\",\n        size: \"S1\",\n    },\n});\nconst exampleFunctionApp = new azure.appservice.FunctionApp(\"exampleFunctionApp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n    storageAccountName: exampleAccount.name,\n    storageAccountAccessKey: exampleAccount.primaryAccessKey,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Standard\",\n        size=\"S1\",\n    ))\nexample_function_app = azure.appservice.FunctionApp(\"exampleFunctionApp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id,\n    storage_account_name=example_account.name,\n    storage_account_access_key=example_account.primary_access_key)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Standard\",\n                Size = \"S1\",\n            },\n        });\n        var exampleFunctionApp = new Azure.AppService.FunctionApp(\"exampleFunctionApp\", new Azure.AppService.FunctionAppArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n            StorageAccountName = exampleAccount.Name,\n            StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePlan, err := appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t\tSize: pulumi.String(\"S1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewFunctionApp(ctx, \"exampleFunctionApp\", \u0026appservice.FunctionAppArgs{\n\t\t\tLocation:                exampleResourceGroup.Location,\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:        examplePlan.ID(),\n\t\t\tStorageAccountName:      exampleAccount.Name,\n\t\t\tStorageAccountAccessKey: exampleAccount.PrimaryAccessKey,\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{{% /example %}}\n{{% example %}}\n### In A Consumption Plan)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    kind: \"FunctionApp\",\n    sku: {\n        tier: \"Dynamic\",\n        size: \"Y1\",\n    },\n});\nconst exampleFunctionApp = new azure.appservice.FunctionApp(\"exampleFunctionApp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n    storageAccountName: exampleAccount.name,\n    storageAccountAccessKey: exampleAccount.primaryAccessKey,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    kind=\"FunctionApp\",\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Dynamic\",\n        size=\"Y1\",\n    ))\nexample_function_app = azure.appservice.FunctionApp(\"exampleFunctionApp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id,\n    storage_account_name=example_account.name,\n    storage_account_access_key=example_account.primary_access_key)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Kind = \"FunctionApp\",\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Dynamic\",\n                Size = \"Y1\",\n            },\n        });\n        var exampleFunctionApp = new Azure.AppService.FunctionApp(\"exampleFunctionApp\", new Azure.AppService.FunctionAppArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n            StorageAccountName = exampleAccount.Name,\n            StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePlan, err := appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tKind:              pulumi.Any(\"FunctionApp\"),\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Dynamic\"),\n\t\t\t\tSize: pulumi.String(\"Y1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewFunctionApp(ctx, \"exampleFunctionApp\", \u0026appservice.FunctionAppArgs{\n\t\t\tLocation:                exampleResourceGroup.Location,\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:        examplePlan.ID(),\n\t\t\tStorageAccountName:      exampleAccount.Name,\n\t\t\tStorageAccountAccessKey: exampleAccount.PrimaryAccessKey,\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{{% /example %}}\n{{% example %}}\n### Linux)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    kind: \"Linux\",\n    reserved: true,\n    sku: {\n        tier: \"Dynamic\",\n        size: \"Y1\",\n    },\n});\nconst exampleFunctionApp = new azure.appservice.FunctionApp(\"exampleFunctionApp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n    storageAccountName: exampleAccount.name,\n    storageAccountAccessKey: exampleAccount.primaryAccessKey,\n    osType: \"linux\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    kind=\"Linux\",\n    reserved=True,\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Dynamic\",\n        size=\"Y1\",\n    ))\nexample_function_app = azure.appservice.FunctionApp(\"exampleFunctionApp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id,\n    storage_account_name=example_account.name,\n    storage_account_access_key=example_account.primary_access_key,\n    os_type=\"linux\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Kind = \"Linux\",\n            Reserved = true,\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Dynamic\",\n                Size = \"Y1\",\n            },\n        });\n        var exampleFunctionApp = new Azure.AppService.FunctionApp(\"exampleFunctionApp\", new Azure.AppService.FunctionAppArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n            StorageAccountName = exampleAccount.Name,\n            StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n            OsType = \"linux\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePlan, err := appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tKind:              pulumi.Any(\"Linux\"),\n\t\t\tReserved:          pulumi.Bool(true),\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Dynamic\"),\n\t\t\t\tSize: pulumi.String(\"Y1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewFunctionApp(ctx, \"exampleFunctionApp\", \u0026appservice.FunctionAppArgs{\n\t\t\tLocation:                exampleResourceGroup.Location,\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:        examplePlan.ID(),\n\t\t\tStorageAccountName:      exampleAccount.Name,\n\t\t\tStorageAccountAccessKey: exampleAccount.PrimaryAccessKey,\n\t\t\tOsType:                  pulumi.String(\"linux\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFunction Apps can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/functionApp:FunctionApp functionapp1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/sites/functionapp1\n```\n\n ",
      "inputProperties": {
        "appServicePlanId": {
          "description": "The ID of the App Service Plan within which to create this Function App.\n",
          "type": "string"
        },
        "appSettings": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.\n",
          "type": "object"
        },
        "authSettings": {
          "$ref": "#/types/azure:appservice/FunctionAppAuthSettings:FunctionAppAuthSettings",
          "description": "A `auth_settings` block as defined below.\n"
        },
        "clientAffinityEnabled": {
          "description": "Should the Function App send session affinity cookies, which route client requests in the same session to the same instance?\n",
          "type": "boolean"
        },
        "clientCertMode": {
          "description": "The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required` and `Optional`.\n",
          "type": "string"
        },
        "connectionStrings": {
          "description": "An `connection_string` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/FunctionAppConnectionString:FunctionAppConnectionString"
          },
          "type": "array"
        },
        "dailyMemoryTimeQuota": {
          "description": "The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps under the consumption plan. Defaults to `0`.\n",
          "type": "integer"
        },
        "enableBuiltinLogging": {
          "description": "Should the built-in logging of this Function App be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "enabled": {
          "description": "Is the Function App enabled?\n",
          "type": "boolean"
        },
        "httpsOnly": {
          "description": "Can the Function App only be accessed via HTTPS? Defaults to `false`.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:appservice/FunctionAppIdentity:FunctionAppIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Function App. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "osType": {
          "description": "A string indicating the Operating System type for this function app.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Function App.\n",
          "type": "string"
        },
        "siteConfig": {
          "$ref": "#/types/azure:appservice/FunctionAppSiteConfig:FunctionAppSiteConfig",
          "description": "A `site_config` object as defined below.\n"
        },
        "sourceControl": {
          "$ref": "#/types/azure:appservice/FunctionAppSourceControl:FunctionAppSourceControl",
          "description": "A `source_control` block, as defined below.\n"
        },
        "storageAccountAccessKey": {
          "description": "The access key which will be used to access the backend storage account for the Function App.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The backend storage account name which will be used by this Function App (such as the dashboard, logs).\n",
          "type": "string"
        },
        "storageConnectionString": {
          "deprecationMessage": "Deprecated in favour of `storage_account_name` and `storage_account_access_key`",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "version": {
          "description": "The runtime version associated with the Function App. Defaults to `~1`.\n",
          "type": "string"
        }
      },
      "properties": {
        "appServicePlanId": {
          "description": "The ID of the App Service Plan within which to create this Function App.\n",
          "type": "string"
        },
        "appSettings": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.\n",
          "type": "object"
        },
        "authSettings": {
          "$ref": "#/types/azure:appservice/FunctionAppAuthSettings:FunctionAppAuthSettings",
          "description": "A `auth_settings` block as defined below.\n"
        },
        "clientAffinityEnabled": {
          "description": "Should the Function App send session affinity cookies, which route client requests in the same session to the same instance?\n",
          "type": "boolean"
        },
        "clientCertMode": {
          "description": "The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required` and `Optional`.\n",
          "type": "string"
        },
        "connectionStrings": {
          "description": "An `connection_string` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/FunctionAppConnectionString:FunctionAppConnectionString"
          },
          "type": "array"
        },
        "customDomainVerificationId": {
          "description": "An identifier used by App Service to perform domain ownership verification via DNS TXT record.\n",
          "type": "string"
        },
        "dailyMemoryTimeQuota": {
          "description": "The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps under the consumption plan. Defaults to `0`.\n",
          "type": "integer"
        },
        "defaultHostname": {
          "description": "The default hostname associated with the Function App - such as `mysite.azurewebsites.net`\n",
          "type": "string"
        },
        "enableBuiltinLogging": {
          "description": "Should the built-in logging of this Function App be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "enabled": {
          "description": "Is the Function App enabled?\n",
          "type": "boolean"
        },
        "httpsOnly": {
          "description": "Can the Function App only be accessed via HTTPS? Defaults to `false`.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:appservice/FunctionAppIdentity:FunctionAppIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "kind": {
          "description": "The Function App kind - such as `functionapp,linux,container`\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Function App. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "osType": {
          "description": "A string indicating the Operating System type for this function app.\n",
          "type": "string"
        },
        "outboundIpAddresses": {
          "description": "A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12`\n",
          "type": "string"
        },
        "possibleOutboundIpAddresses": {
          "description": "A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12,52.143.43.17` - not all of which are necessarily in use. Superset of `outbound_ip_addresses`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Function App.\n",
          "type": "string"
        },
        "siteConfig": {
          "$ref": "#/types/azure:appservice/FunctionAppSiteConfig:FunctionAppSiteConfig",
          "description": "A `site_config` object as defined below.\n"
        },
        "siteCredentials": {
          "description": "A `site_credential` block as defined below, which contains the site-level credentials used to publish to this App Service.\n",
          "items": {
            "$ref": "#/types/azure:appservice/FunctionAppSiteCredential:FunctionAppSiteCredential"
          },
          "type": "array"
        },
        "sourceControl": {
          "$ref": "#/types/azure:appservice/FunctionAppSourceControl:FunctionAppSourceControl",
          "description": "A `source_control` block, as defined below.\n"
        },
        "storageAccountAccessKey": {
          "description": "The access key which will be used to access the backend storage account for the Function App.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The backend storage account name which will be used by this Function App (such as the dashboard, logs).\n",
          "type": "string"
        },
        "storageConnectionString": {
          "deprecationMessage": "Deprecated in favour of `storage_account_name` and `storage_account_access_key`",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "version": {
          "description": "The runtime version associated with the Function App. Defaults to `~1`.\n",
          "type": "string"
        }
      },
      "required": [
        "appServicePlanId",
        "appSettings",
        "authSettings",
        "clientAffinityEnabled",
        "connectionStrings",
        "customDomainVerificationId",
        "defaultHostname",
        "identity",
        "kind",
        "location",
        "name",
        "outboundIpAddresses",
        "possibleOutboundIpAddresses",
        "resourceGroupName",
        "siteConfig",
        "siteCredentials",
        "sourceControl",
        "storageAccountAccessKey",
        "storageAccountName",
        "storageConnectionString"
      ],
      "requiredInputs": [
        "appServicePlanId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FunctionApp resources.\n",
        "properties": {
          "appServicePlanId": {
            "description": "The ID of the App Service Plan within which to create this Function App.\n",
            "type": "string"
          },
          "appSettings": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.\n",
            "type": "object"
          },
          "authSettings": {
            "$ref": "#/types/azure:appservice/FunctionAppAuthSettings:FunctionAppAuthSettings",
            "description": "A `auth_settings` block as defined below.\n"
          },
          "clientAffinityEnabled": {
            "description": "Should the Function App send session affinity cookies, which route client requests in the same session to the same instance?\n",
            "type": "boolean"
          },
          "clientCertMode": {
            "description": "The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required` and `Optional`.\n",
            "type": "string"
          },
          "connectionStrings": {
            "description": "An `connection_string` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/FunctionAppConnectionString:FunctionAppConnectionString"
            },
            "type": "array"
          },
          "customDomainVerificationId": {
            "description": "An identifier used by App Service to perform domain ownership verification via DNS TXT record.\n",
            "type": "string"
          },
          "dailyMemoryTimeQuota": {
            "description": "The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps under the consumption plan. Defaults to `0`.\n",
            "type": "integer"
          },
          "defaultHostname": {
            "description": "The default hostname associated with the Function App - such as `mysite.azurewebsites.net`\n",
            "type": "string"
          },
          "enableBuiltinLogging": {
            "description": "Should the built-in logging of this Function App be enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "enabled": {
            "description": "Is the Function App enabled?\n",
            "type": "boolean"
          },
          "httpsOnly": {
            "description": "Can the Function App only be accessed via HTTPS? Defaults to `false`.\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:appservice/FunctionAppIdentity:FunctionAppIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "kind": {
            "description": "The Function App kind - such as `functionapp,linux,container`\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Function App. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "osType": {
            "description": "A string indicating the Operating System type for this function app.\n",
            "type": "string"
          },
          "outboundIpAddresses": {
            "description": "A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12`\n",
            "type": "string"
          },
          "possibleOutboundIpAddresses": {
            "description": "A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12,52.143.43.17` - not all of which are necessarily in use. Superset of `outbound_ip_addresses`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Function App.\n",
            "type": "string"
          },
          "siteConfig": {
            "$ref": "#/types/azure:appservice/FunctionAppSiteConfig:FunctionAppSiteConfig",
            "description": "A `site_config` object as defined below.\n"
          },
          "siteCredentials": {
            "description": "A `site_credential` block as defined below, which contains the site-level credentials used to publish to this App Service.\n",
            "items": {
              "$ref": "#/types/azure:appservice/FunctionAppSiteCredential:FunctionAppSiteCredential"
            },
            "type": "array"
          },
          "sourceControl": {
            "$ref": "#/types/azure:appservice/FunctionAppSourceControl:FunctionAppSourceControl",
            "description": "A `source_control` block, as defined below.\n"
          },
          "storageAccountAccessKey": {
            "description": "The access key which will be used to access the backend storage account for the Function App.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "The backend storage account name which will be used by this Function App (such as the dashboard, logs).\n",
            "type": "string"
          },
          "storageConnectionString": {
            "deprecationMessage": "Deprecated in favour of `storage_account_name` and `storage_account_access_key`",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "version": {
            "description": "The runtime version associated with the Function App. Defaults to `~1`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/functionAppSlot:FunctionAppSlot": {
      "description": "Manages a Function App deployment Slot.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### With App Service Plan)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        tier: \"Standard\",\n        size: \"S1\",\n    },\n});\nconst exampleFunctionApp = new azure.appservice.FunctionApp(\"exampleFunctionApp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n    storageAccountName: exampleAccount.name,\n    storageAccountAccessKey: exampleAccount.primaryAccessKey,\n});\nconst exampleFunctionAppSlot = new azure.appservice.FunctionAppSlot(\"exampleFunctionAppSlot\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n    functionAppName: exampleFunctionApp.name,\n    storageAccountName: exampleAccount.name,\n    storageAccountAccessKey: exampleAccount.primaryAccessKey,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Standard\",\n        size=\"S1\",\n    ))\nexample_function_app = azure.appservice.FunctionApp(\"exampleFunctionApp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id,\n    storage_account_name=example_account.name,\n    storage_account_access_key=example_account.primary_access_key)\nexample_function_app_slot = azure.appservice.FunctionAppSlot(\"exampleFunctionAppSlot\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id,\n    function_app_name=example_function_app.name,\n    storage_account_name=example_account.name,\n    storage_account_access_key=example_account.primary_access_key)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Standard\",\n                Size = \"S1\",\n            },\n        });\n        var exampleFunctionApp = new Azure.AppService.FunctionApp(\"exampleFunctionApp\", new Azure.AppService.FunctionAppArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n            StorageAccountName = exampleAccount.Name,\n            StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n        });\n        var exampleFunctionAppSlot = new Azure.AppService.FunctionAppSlot(\"exampleFunctionAppSlot\", new Azure.AppService.FunctionAppSlotArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n            FunctionAppName = exampleFunctionApp.Name,\n            StorageAccountName = exampleAccount.Name,\n            StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePlan, err := appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t\tSize: pulumi.String(\"S1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFunctionApp, err := appservice.NewFunctionApp(ctx, \"exampleFunctionApp\", \u0026appservice.FunctionAppArgs{\n\t\t\tLocation:                exampleResourceGroup.Location,\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:        examplePlan.ID(),\n\t\t\tStorageAccountName:      exampleAccount.Name,\n\t\t\tStorageAccountAccessKey: exampleAccount.PrimaryAccessKey,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewFunctionAppSlot(ctx, \"exampleFunctionAppSlot\", \u0026appservice.FunctionAppSlotArgs{\n\t\t\tLocation:                exampleResourceGroup.Location,\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:        examplePlan.ID(),\n\t\t\tFunctionAppName:         exampleFunctionApp.Name,\n\t\t\tStorageAccountName:      exampleAccount.Name,\n\t\t\tStorageAccountAccessKey: exampleAccount.PrimaryAccessKey,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFunction Apps Deployment Slots can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/functionAppSlot:FunctionAppSlot functionapp1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/sites/functionapp1/slots/staging\n```\n\n ",
      "inputProperties": {
        "appServicePlanId": {
          "description": "The ID of the App Service Plan within which to create this Function App Slot.\n",
          "type": "string"
        },
        "appSettings": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A key-value pair of App Settings.\n",
          "type": "object"
        },
        "authSettings": {
          "$ref": "#/types/azure:appservice/FunctionAppSlotAuthSettings:FunctionAppSlotAuthSettings",
          "description": "An `auth_settings` block as defined below.\n"
        },
        "clientAffinityEnabled": {
          "description": "Should the Function App send session affinity cookies, which route client requests in the same session to the same instance?\n",
          "type": "boolean"
        },
        "connectionStrings": {
          "description": "A `connection_string` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/FunctionAppSlotConnectionString:FunctionAppSlotConnectionString"
          },
          "type": "array"
        },
        "dailyMemoryTimeQuota": {
          "description": "The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps under the consumption plan. Defaults to `0`.\n",
          "type": "integer"
        },
        "enableBuiltinLogging": {
          "description": "Should the built-in logging of the Function App be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "enabled": {
          "description": "Is the Function App enabled?\n",
          "type": "boolean"
        },
        "functionAppName": {
          "description": "The name of the Function App within which to create the Function App Slot. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "httpsOnly": {
          "description": "Can the Function App only be accessed via HTTPS? Defaults to `false`.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:appservice/FunctionAppSlotIdentity:FunctionAppSlotIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Function App. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "osType": {
          "description": "A string indicating the Operating System type for this function app.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Function App Slot.\n",
          "type": "string"
        },
        "siteConfig": {
          "$ref": "#/types/azure:appservice/FunctionAppSlotSiteConfig:FunctionAppSlotSiteConfig",
          "description": "A `site_config` object as defined below.\n"
        },
        "storageAccountAccessKey": {
          "description": "The access key which will be used to access the backend storage account for the Function App.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The backend storage account name which will be used by the Function App (such as the dashboard, logs).\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "version": {
          "description": "The runtime version associated with the Function App. Defaults to `~1`.\n",
          "type": "string"
        }
      },
      "properties": {
        "appServicePlanId": {
          "description": "The ID of the App Service Plan within which to create this Function App Slot.\n",
          "type": "string"
        },
        "appSettings": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A key-value pair of App Settings.\n",
          "type": "object"
        },
        "authSettings": {
          "$ref": "#/types/azure:appservice/FunctionAppSlotAuthSettings:FunctionAppSlotAuthSettings",
          "description": "An `auth_settings` block as defined below.\n"
        },
        "clientAffinityEnabled": {
          "description": "Should the Function App send session affinity cookies, which route client requests in the same session to the same instance?\n",
          "type": "boolean"
        },
        "connectionStrings": {
          "description": "A `connection_string` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/FunctionAppSlotConnectionString:FunctionAppSlotConnectionString"
          },
          "type": "array"
        },
        "dailyMemoryTimeQuota": {
          "description": "The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps under the consumption plan. Defaults to `0`.\n",
          "type": "integer"
        },
        "defaultHostname": {
          "description": "The default hostname associated with the Function App - such as `mysite.azurewebsites.net`\n",
          "type": "string"
        },
        "enableBuiltinLogging": {
          "description": "Should the built-in logging of the Function App be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "enabled": {
          "description": "Is the Function App enabled?\n",
          "type": "boolean"
        },
        "functionAppName": {
          "description": "The name of the Function App within which to create the Function App Slot. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "httpsOnly": {
          "description": "Can the Function App only be accessed via HTTPS? Defaults to `false`.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:appservice/FunctionAppSlotIdentity:FunctionAppSlotIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "kind": {
          "description": "The Function App kind - such as `functionapp,linux,container`\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Function App. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "osType": {
          "description": "A string indicating the Operating System type for this function app.\n",
          "type": "string"
        },
        "outboundIpAddresses": {
          "description": "A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12`\n",
          "type": "string"
        },
        "possibleOutboundIpAddresses": {
          "description": "A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12,52.143.43.17` - not all of which are necessarily in use. Superset of `outbound_ip_addresses`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Function App Slot.\n",
          "type": "string"
        },
        "siteConfig": {
          "$ref": "#/types/azure:appservice/FunctionAppSlotSiteConfig:FunctionAppSlotSiteConfig",
          "description": "A `site_config` object as defined below.\n"
        },
        "siteCredentials": {
          "description": "A `site_credential` block as defined below, which contains the site-level credentials used to publish to this Function App Slot.\n",
          "items": {
            "$ref": "#/types/azure:appservice/FunctionAppSlotSiteCredential:FunctionAppSlotSiteCredential"
          },
          "type": "array"
        },
        "storageAccountAccessKey": {
          "description": "The access key which will be used to access the backend storage account for the Function App.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The backend storage account name which will be used by the Function App (such as the dashboard, logs).\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "version": {
          "description": "The runtime version associated with the Function App. Defaults to `~1`.\n",
          "type": "string"
        }
      },
      "required": [
        "appServicePlanId",
        "appSettings",
        "authSettings",
        "clientAffinityEnabled",
        "connectionStrings",
        "defaultHostname",
        "functionAppName",
        "identity",
        "kind",
        "location",
        "name",
        "outboundIpAddresses",
        "possibleOutboundIpAddresses",
        "resourceGroupName",
        "siteConfig",
        "siteCredentials",
        "storageAccountAccessKey",
        "storageAccountName"
      ],
      "requiredInputs": [
        "appServicePlanId",
        "functionAppName",
        "resourceGroupName",
        "storageAccountAccessKey",
        "storageAccountName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FunctionAppSlot resources.\n",
        "properties": {
          "appServicePlanId": {
            "description": "The ID of the App Service Plan within which to create this Function App Slot.\n",
            "type": "string"
          },
          "appSettings": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A key-value pair of App Settings.\n",
            "type": "object"
          },
          "authSettings": {
            "$ref": "#/types/azure:appservice/FunctionAppSlotAuthSettings:FunctionAppSlotAuthSettings",
            "description": "An `auth_settings` block as defined below.\n"
          },
          "clientAffinityEnabled": {
            "description": "Should the Function App send session affinity cookies, which route client requests in the same session to the same instance?\n",
            "type": "boolean"
          },
          "connectionStrings": {
            "description": "A `connection_string` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/FunctionAppSlotConnectionString:FunctionAppSlotConnectionString"
            },
            "type": "array"
          },
          "dailyMemoryTimeQuota": {
            "description": "The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps under the consumption plan. Defaults to `0`.\n",
            "type": "integer"
          },
          "defaultHostname": {
            "description": "The default hostname associated with the Function App - such as `mysite.azurewebsites.net`\n",
            "type": "string"
          },
          "enableBuiltinLogging": {
            "description": "Should the built-in logging of the Function App be enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "enabled": {
            "description": "Is the Function App enabled?\n",
            "type": "boolean"
          },
          "functionAppName": {
            "description": "The name of the Function App within which to create the Function App Slot. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "httpsOnly": {
            "description": "Can the Function App only be accessed via HTTPS? Defaults to `false`.\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:appservice/FunctionAppSlotIdentity:FunctionAppSlotIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "kind": {
            "description": "The Function App kind - such as `functionapp,linux,container`\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Function App. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "osType": {
            "description": "A string indicating the Operating System type for this function app.\n",
            "type": "string"
          },
          "outboundIpAddresses": {
            "description": "A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12`\n",
            "type": "string"
          },
          "possibleOutboundIpAddresses": {
            "description": "A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12,52.143.43.17` - not all of which are necessarily in use. Superset of `outbound_ip_addresses`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Function App Slot.\n",
            "type": "string"
          },
          "siteConfig": {
            "$ref": "#/types/azure:appservice/FunctionAppSlotSiteConfig:FunctionAppSlotSiteConfig",
            "description": "A `site_config` object as defined below.\n"
          },
          "siteCredentials": {
            "description": "A `site_credential` block as defined below, which contains the site-level credentials used to publish to this Function App Slot.\n",
            "items": {
              "$ref": "#/types/azure:appservice/FunctionAppSlotSiteCredential:FunctionAppSlotSiteCredential"
            },
            "type": "array"
          },
          "storageAccountAccessKey": {
            "description": "The access key which will be used to access the backend storage account for the Function App.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "The backend storage account name which will be used by the Function App (such as the dashboard, logs).\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "version": {
            "description": "The runtime version associated with the Function App. Defaults to `~1`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/hybridConnection:HybridConnection": {
      "description": "Manages an App Service Hybrid Connection for an existing App Service, Relay and Service Bus.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis example provisions an App Service, a Relay Hybrid Connection, and a Service Bus using their outputs to create the App Service Hybrid Connection.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        tier: \"Standard\",\n        size: \"S1\",\n    },\n});\nconst exampleAppService = new azure.appservice.AppService(\"exampleAppService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n});\nconst exampleNamespace = new azure.relay.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Standard\",\n});\nconst exampleHybridConnection = new azure.relay.HybridConnection(\"exampleHybridConnection\", {\n    resourceGroupName: exampleResourceGroup.name,\n    relayNamespaceName: exampleNamespace.name,\n    userMetadata: \"examplemetadata\",\n});\nconst exampleAppservice_hybridConnectionHybridConnection = new azure.appservice.HybridConnection(\"exampleAppservice/hybridConnectionHybridConnection\", {\n    appServiceName: exampleAppService.name,\n    resourceGroupName: exampleResourceGroup.name,\n    relayId: exampleHybridConnection.id,\n    hostname: \"testhostname.example\",\n    port: 8080,\n    sendKeyName: \"exampleSharedAccessKey\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Standard\",\n        size=\"S1\",\n    ))\nexample_app_service = azure.appservice.AppService(\"exampleAppService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id)\nexample_namespace = azure.relay.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Standard\")\nexample_hybrid_connection = azure.relay.HybridConnection(\"exampleHybridConnection\",\n    resource_group_name=example_resource_group.name,\n    relay_namespace_name=example_namespace.name,\n    user_metadata=\"examplemetadata\")\nexample_appservice_hybrid_connection_hybrid_connection = azure.appservice.HybridConnection(\"exampleAppservice/hybridConnectionHybridConnection\",\n    app_service_name=example_app_service.name,\n    resource_group_name=example_resource_group.name,\n    relay_id=example_hybrid_connection.id,\n    hostname=\"testhostname.example\",\n    port=8080,\n    send_key_name=\"exampleSharedAccessKey\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Standard\",\n                Size = \"S1\",\n            },\n        });\n        var exampleAppService = new Azure.AppService.AppService(\"exampleAppService\", new Azure.AppService.AppServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n        });\n        var exampleNamespace = new Azure.Relay.Namespace(\"exampleNamespace\", new Azure.Relay.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Standard\",\n        });\n        var exampleHybridConnection = new Azure.Relay.HybridConnection(\"exampleHybridConnection\", new Azure.Relay.HybridConnectionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            RelayNamespaceName = exampleNamespace.Name,\n            UserMetadata = \"examplemetadata\",\n        });\n        var exampleAppservice_hybridConnectionHybridConnection = new Azure.AppService.HybridConnection(\"exampleAppservice/hybridConnectionHybridConnection\", new Azure.AppService.HybridConnectionArgs\n        {\n            AppServiceName = exampleAppService.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            RelayId = exampleHybridConnection.Id,\n            Hostname = \"testhostname.example\",\n            Port = 8080,\n            SendKeyName = \"exampleSharedAccessKey\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/relay\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePlan, err := appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t\tSize: pulumi.String(\"S1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAppService, err := appservice.NewAppService(ctx, \"exampleAppService\", \u0026appservice.AppServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:  examplePlan.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := relay.NewNamespace(ctx, \"exampleNamespace\", \u0026relay.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleHybridConnection, err := relay.NewHybridConnection(ctx, \"exampleHybridConnection\", \u0026relay.HybridConnectionArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tRelayNamespaceName: exampleNamespace.Name,\n\t\t\tUserMetadata:       pulumi.String(\"examplemetadata\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewHybridConnection(ctx, \"exampleAppservice_hybridConnectionHybridConnection\", \u0026appservice.HybridConnectionArgs{\n\t\t\tAppServiceName:    exampleAppService.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tRelayId:           exampleHybridConnection.ID(),\n\t\t\tHostname:          pulumi.String(\"testhostname.example\"),\n\t\t\tPort:              pulumi.Int(8080),\n\t\t\tSendKeyName:       pulumi.String(\"exampleSharedAccessKey\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApp Service Hybrid Connections can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/hybridConnection:HybridConnection example /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/exampleResourceGroup1/providers/Microsoft.Web/sites/exampleAppService1/hybridConnectionNamespaces/exampleRN1/relays/exampleRHC1\n```\n\n ",
      "inputProperties": {
        "appServiceName": {
          "description": "Specifies the name of the App Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "hostname": {
          "description": "The hostname of the endpoint.\n",
          "type": "string"
        },
        "port": {
          "description": "The port of the endpoint.\n",
          "type": "integer"
        },
        "relayId": {
          "description": "The ID of the Service Bus Relay. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the App Service.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sendKeyName": {
          "description": "The name of the Service Bus key which has Send permissions. Defaults to `RootManageSharedAccessKey`.\n",
          "type": "string"
        }
      },
      "properties": {
        "appServiceName": {
          "description": "Specifies the name of the App Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "hostname": {
          "description": "The hostname of the endpoint.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the Relay Namespace.\n",
          "type": "string"
        },
        "port": {
          "description": "The port of the endpoint.\n",
          "type": "integer"
        },
        "relayId": {
          "description": "The ID of the Service Bus Relay. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "relayName": {
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the App Service.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sendKeyName": {
          "description": "The name of the Service Bus key which has Send permissions. Defaults to `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "sendKeyValue": {
          "description": "The value of the Service Bus Primary Access key.\n",
          "type": "string"
        },
        "serviceBusNamespace": {
          "description": "The name of the Service Bus namespace.\n",
          "type": "string"
        },
        "serviceBusSuffix": {
          "description": "The suffix for the service bus endpoint.\n",
          "type": "string"
        }
      },
      "required": [
        "appServiceName",
        "hostname",
        "namespaceName",
        "port",
        "relayId",
        "relayName",
        "resourceGroupName",
        "sendKeyValue",
        "serviceBusNamespace",
        "serviceBusSuffix"
      ],
      "requiredInputs": [
        "appServiceName",
        "hostname",
        "port",
        "relayId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering HybridConnection resources.\n",
        "properties": {
          "appServiceName": {
            "description": "Specifies the name of the App Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "hostname": {
            "description": "The hostname of the endpoint.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the Relay Namespace.\n",
            "type": "string"
          },
          "port": {
            "description": "The port of the endpoint.\n",
            "type": "integer"
          },
          "relayId": {
            "description": "The ID of the Service Bus Relay. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "relayName": {
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the App Service.  Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sendKeyName": {
            "description": "The name of the Service Bus key which has Send permissions. Defaults to `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "sendKeyValue": {
            "description": "The value of the Service Bus Primary Access key.\n",
            "type": "string"
          },
          "serviceBusNamespace": {
            "description": "The name of the Service Bus namespace.\n",
            "type": "string"
          },
          "serviceBusSuffix": {
            "description": "The suffix for the service bus endpoint.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/managedCertificate:ManagedCertificate": {
      "description": "This certificate can be used to secure custom domains on App Services (Windows and Linux) hosted on an App Service Plan of Basic and above (free and shared tiers are not supported).\n\n\u003e NOTE: A certificate is valid for six months, and about a month before the certificate’s expiration date, App Services renews/rotates the certificate. This is managed by Azure and doesn't requre this resource to be changed or reprovisioned. It will change the `thumbprint` computed attribute the next time the resource is refreshed after rotation occurs, so keep that in mind if you have any dependencies on this attribute directly.\n\n\n## Import\n\nApp Service Managed Certificates can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/managedCertificate:ManagedCertificate example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.Web/certificates/customhost.contoso.com\n```\n\n ",
      "inputProperties": {
        "customHostnameBindingId": {
          "description": "The ID of the App Service Custom Hostname Binding for the Certificate. Changing this forces a new App Service Managed Certificate to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the App Service Managed Certificate.\n",
          "type": "object"
        }
      },
      "properties": {
        "canonicalName": {
          "description": "The Canonical Name of the Certificate.\n",
          "type": "string"
        },
        "customHostnameBindingId": {
          "description": "The ID of the App Service Custom Hostname Binding for the Certificate. Changing this forces a new App Service Managed Certificate to be created.\n",
          "type": "string"
        },
        "expirationDate": {
          "description": "The expiration date of the Certificate.\n",
          "type": "string"
        },
        "friendlyName": {
          "description": "The friendly name of the Certificate.\n",
          "type": "string"
        },
        "hostNames": {
          "description": "The list of Host Names for the Certificate.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "issueDate": {
          "description": "The Start date for the Certificate.\n",
          "type": "string"
        },
        "issuer": {
          "description": "The issuer of the Certificate.\n",
          "type": "string"
        },
        "subjectName": {
          "description": "The Subject Name for the Certificate.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the App Service Managed Certificate.\n",
          "type": "object"
        },
        "thumbprint": {
          "description": "The Certificate Thumbprint.\n",
          "type": "string"
        }
      },
      "required": [
        "canonicalName",
        "customHostnameBindingId",
        "expirationDate",
        "friendlyName",
        "hostNames",
        "issueDate",
        "issuer",
        "subjectName",
        "thumbprint"
      ],
      "requiredInputs": [
        "customHostnameBindingId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ManagedCertificate resources.\n",
        "properties": {
          "canonicalName": {
            "description": "The Canonical Name of the Certificate.\n",
            "type": "string"
          },
          "customHostnameBindingId": {
            "description": "The ID of the App Service Custom Hostname Binding for the Certificate. Changing this forces a new App Service Managed Certificate to be created.\n",
            "type": "string"
          },
          "expirationDate": {
            "description": "The expiration date of the Certificate.\n",
            "type": "string"
          },
          "friendlyName": {
            "description": "The friendly name of the Certificate.\n",
            "type": "string"
          },
          "hostNames": {
            "description": "The list of Host Names for the Certificate.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "issueDate": {
            "description": "The Start date for the Certificate.\n",
            "type": "string"
          },
          "issuer": {
            "description": "The issuer of the Certificate.\n",
            "type": "string"
          },
          "subjectName": {
            "description": "The Subject Name for the Certificate.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the App Service Managed Certificate.\n",
            "type": "object"
          },
          "thumbprint": {
            "description": "The Certificate Thumbprint.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/plan:Plan": {
      "description": "Manages an App Service Plan component.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Dedicated)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        tier: \"Standard\",\n        size: \"S1\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Standard\",\n        size=\"S1\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Standard\",\n                Size = \"S1\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t\tSize: pulumi.String(\"S1\"),\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\n{{% /example %}}\n{{% example %}}\n### Shared / Consumption Plan)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    kind: \"FunctionApp\",\n    sku: {\n        tier: \"Dynamic\",\n        size: \"Y1\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    kind=\"FunctionApp\",\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Dynamic\",\n        size=\"Y1\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Kind = \"FunctionApp\",\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Dynamic\",\n                Size = \"Y1\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tKind:              pulumi.Any(\"FunctionApp\"),\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Dynamic\"),\n\t\t\t\tSize: pulumi.String(\"Y1\"),\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\n{{% /example %}}\n{{% example %}}\n### Linux)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    kind: \"Linux\",\n    reserved: true,\n    sku: {\n        tier: \"Standard\",\n        size: \"S1\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    kind=\"Linux\",\n    reserved=True,\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Standard\",\n        size=\"S1\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Kind = \"Linux\",\n            Reserved = true,\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Standard\",\n                Size = \"S1\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tKind:              pulumi.Any(\"Linux\"),\n\t\t\tReserved:          pulumi.Bool(true),\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t\tSize: pulumi.String(\"S1\"),\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\n{{% /example %}}\n{{% example %}}\n### Windows Container)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    kind: \"xenon\",\n    isXenon: true,\n    sku: {\n        tier: \"PremiumContainer\",\n        size: \"PC2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    kind=\"xenon\",\n    is_xenon=True,\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"PremiumContainer\",\n        size=\"PC2\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Kind = \"xenon\",\n            IsXenon = true,\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"PremiumContainer\",\n                Size = \"PC2\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tKind:              pulumi.Any(\"xenon\"),\n\t\t\tIsXenon:           pulumi.Bool(true),\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"PremiumContainer\"),\n\t\t\t\tSize: pulumi.String(\"PC2\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApp Service Plan instances can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/plan:Plan instance1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/serverfarms/instance1\n```\n\n ",
      "inputProperties": {
        "appServiceEnvironmentId": {
          "description": "The ID of the App Service Environment where the App Service Plan should be located. Changing forces a new resource to be created.\n",
          "type": "string"
        },
        "isXenon": {
          "type": "boolean"
        },
        "kind": {
          "description": "The kind of the App Service Plan to create. Possible values are `Windows` (also available as `App`), `Linux`, `elastic` (for Premium Consumption) and `FunctionApp` (for a Consumption Plan). Defaults to `Windows`. Changing this forces a new resource to be created.\n",
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/types/azure:appservice/kind:Kind",
              "type": "string"
            }
          ],
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maximumElasticWorkerCount": {
          "description": "The maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the App Service Plan component. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "perSiteScaling": {
          "description": "Can Apps assigned to this App Service Plan be scaled independently? If set to `false` apps assigned to this plan will scale to all instances of the plan.  Defaults to `false`.\n",
          "type": "boolean"
        },
        "reserved": {
          "description": "Is this App Service Plan `Reserved`. Defaults to `false`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the App Service Plan component.\n",
          "type": "string"
        },
        "sku": {
          "$ref": "#/types/azure:appservice/PlanSku:PlanSku",
          "description": "A `sku` block as documented below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zoneRedundant": {
          "description": "Specifies if the App Service Plan should be Zone Redundant. Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "appServiceEnvironmentId": {
          "description": "The ID of the App Service Environment where the App Service Plan should be located. Changing forces a new resource to be created.\n",
          "type": "string"
        },
        "isXenon": {
          "type": "boolean"
        },
        "kind": {
          "description": "The kind of the App Service Plan to create. Possible values are `Windows` (also available as `App`), `Linux`, `elastic` (for Premium Consumption) and `FunctionApp` (for a Consumption Plan). Defaults to `Windows`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maximumElasticWorkerCount": {
          "description": "The maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan.\n",
          "type": "integer"
        },
        "maximumNumberOfWorkers": {
          "description": "The maximum number of workers supported with the App Service Plan's sku.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the App Service Plan component. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "perSiteScaling": {
          "description": "Can Apps assigned to this App Service Plan be scaled independently? If set to `false` apps assigned to this plan will scale to all instances of the plan.  Defaults to `false`.\n",
          "type": "boolean"
        },
        "reserved": {
          "description": "Is this App Service Plan `Reserved`. Defaults to `false`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the App Service Plan component.\n",
          "type": "string"
        },
        "sku": {
          "$ref": "#/types/azure:appservice/PlanSku:PlanSku",
          "description": "A `sku` block as documented below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zoneRedundant": {
          "description": "Specifies if the App Service Plan should be Zone Redundant. Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "location",
        "maximumElasticWorkerCount",
        "maximumNumberOfWorkers",
        "name",
        "resourceGroupName",
        "sku"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Plan resources.\n",
        "properties": {
          "appServiceEnvironmentId": {
            "description": "The ID of the App Service Environment where the App Service Plan should be located. Changing forces a new resource to be created.\n",
            "type": "string"
          },
          "isXenon": {
            "type": "boolean"
          },
          "kind": {
            "description": "The kind of the App Service Plan to create. Possible values are `Windows` (also available as `App`), `Linux`, `elastic` (for Premium Consumption) and `FunctionApp` (for a Consumption Plan). Defaults to `Windows`. Changing this forces a new resource to be created.\n",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "$ref": "#/types/azure:appservice/kind:Kind",
                "type": "string"
              }
            ],
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maximumElasticWorkerCount": {
            "description": "The maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan.\n",
            "type": "integer"
          },
          "maximumNumberOfWorkers": {
            "description": "The maximum number of workers supported with the App Service Plan's sku.\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the App Service Plan component. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "perSiteScaling": {
            "description": "Can Apps assigned to this App Service Plan be scaled independently? If set to `false` apps assigned to this plan will scale to all instances of the plan.  Defaults to `false`.\n",
            "type": "boolean"
          },
          "reserved": {
            "description": "Is this App Service Plan `Reserved`. Defaults to `false`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the App Service Plan component.\n",
            "type": "string"
          },
          "sku": {
            "$ref": "#/types/azure:appservice/PlanSku:PlanSku",
            "description": "A `sku` block as documented below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "zoneRedundant": {
            "description": "Specifies if the App Service Plan should be Zone Redundant. Changing this forces a new resource to be created. Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/slot:Slot": {
      "description": "Manages an App Service Slot (within an App Service).\n\n\u003e **Note:** When using Slots - the `app_settings`, `connection_string` and `site_config` blocks on the `azure.appservice.AppService` resource will be overwritten when promoting a Slot using the `azure.appservice.ActiveSlot` resource.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Net 4.X)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as random from \"@pulumi/random\";\n\nconst server = new random.RandomId(\"server\", {\n    keepers: {\n        azi_id: 1,\n    },\n    byteLength: 8,\n});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        tier: \"Standard\",\n        size: \"S1\",\n    },\n});\nconst exampleAppService = new azure.appservice.AppService(\"exampleAppService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n    siteConfig: {\n        dotnetFrameworkVersion: \"v4.0\",\n    },\n    appSettings: {\n        SOME_KEY: \"some-value\",\n    },\n    connectionStrings: [{\n        name: \"Database\",\n        type: \"SQLServer\",\n        value: \"Server=some-server.mydomain.com;Integrated Security=SSPI\",\n    }],\n});\nconst exampleSlot = new azure.appservice.Slot(\"exampleSlot\", {\n    appServiceName: exampleAppService.name,\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n    siteConfig: {\n        dotnetFrameworkVersion: \"v4.0\",\n    },\n    appSettings: {\n        SOME_KEY: \"some-value\",\n    },\n    connectionStrings: [{\n        name: \"Database\",\n        type: \"SQLServer\",\n        value: \"Server=some-server.mydomain.com;Integrated Security=SSPI\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_random as random\n\nserver = random.RandomId(\"server\",\n    keepers={\n        \"azi_id\": 1,\n    },\n    byte_length=8)\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Standard\",\n        size=\"S1\",\n    ))\nexample_app_service = azure.appservice.AppService(\"exampleAppService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id,\n    site_config=azure.appservice.AppServiceSiteConfigArgs(\n        dotnet_framework_version=\"v4.0\",\n    ),\n    app_settings={\n        \"SOME_KEY\": \"some-value\",\n    },\n    connection_strings=[azure.appservice.AppServiceConnectionStringArgs(\n        name=\"Database\",\n        type=\"SQLServer\",\n        value=\"Server=some-server.mydomain.com;Integrated Security=SSPI\",\n    )])\nexample_slot = azure.appservice.Slot(\"exampleSlot\",\n    app_service_name=example_app_service.name,\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id,\n    site_config=azure.appservice.SlotSiteConfigArgs(\n        dotnet_framework_version=\"v4.0\",\n    ),\n    app_settings={\n        \"SOME_KEY\": \"some-value\",\n    },\n    connection_strings=[azure.appservice.SlotConnectionStringArgs(\n        name=\"Database\",\n        type=\"SQLServer\",\n        value=\"Server=some-server.mydomain.com;Integrated Security=SSPI\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing Random = Pulumi.Random;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var server = new Random.RandomId(\"server\", new Random.RandomIdArgs\n        {\n            Keepers = \n            {\n                { \"azi_id\", 1 },\n            },\n            ByteLength = 8,\n        });\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Standard\",\n                Size = \"S1\",\n            },\n        });\n        var exampleAppService = new Azure.AppService.AppService(\"exampleAppService\", new Azure.AppService.AppServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n            SiteConfig = new Azure.AppService.Inputs.AppServiceSiteConfigArgs\n            {\n                DotnetFrameworkVersion = \"v4.0\",\n            },\n            AppSettings = \n            {\n                { \"SOME_KEY\", \"some-value\" },\n            },\n            ConnectionStrings = \n            {\n                new Azure.AppService.Inputs.AppServiceConnectionStringArgs\n                {\n                    Name = \"Database\",\n                    Type = \"SQLServer\",\n                    Value = \"Server=some-server.mydomain.com;Integrated Security=SSPI\",\n                },\n            },\n        });\n        var exampleSlot = new Azure.AppService.Slot(\"exampleSlot\", new Azure.AppService.SlotArgs\n        {\n            AppServiceName = exampleAppService.Name,\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n            SiteConfig = new Azure.AppService.Inputs.SlotSiteConfigArgs\n            {\n                DotnetFrameworkVersion = \"v4.0\",\n            },\n            AppSettings = \n            {\n                { \"SOME_KEY\", \"some-value\" },\n            },\n            ConnectionStrings = \n            {\n                new Azure.AppService.Inputs.SlotConnectionStringArgs\n                {\n                    Name = \"Database\",\n                    Type = \"SQLServer\",\n                    Value = \"Server=some-server.mydomain.com;Integrated Security=SSPI\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\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 := random.NewRandomId(ctx, \"server\", \u0026random.RandomIdArgs{\n\t\t\tKeepers: pulumi.AnyMap{\n\t\t\t\t\"azi_id\": pulumi.Any(1),\n\t\t\t},\n\t\t\tByteLength: pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePlan, err := appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t\tSize: pulumi.String(\"S1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAppService, err := appservice.NewAppService(ctx, \"exampleAppService\", \u0026appservice.AppServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:  examplePlan.ID(),\n\t\t\tSiteConfig: \u0026appservice.AppServiceSiteConfigArgs{\n\t\t\t\tDotnetFrameworkVersion: pulumi.String(\"v4.0\"),\n\t\t\t},\n\t\t\tAppSettings: pulumi.StringMap{\n\t\t\t\t\"SOME_KEY\": pulumi.String(\"some-value\"),\n\t\t\t},\n\t\t\tConnectionStrings: appservice.AppServiceConnectionStringArray{\n\t\t\t\t\u0026appservice.AppServiceConnectionStringArgs{\n\t\t\t\t\tName:  pulumi.String(\"Database\"),\n\t\t\t\t\tType:  pulumi.String(\"SQLServer\"),\n\t\t\t\t\tValue: pulumi.String(\"Server=some-server.mydomain.com;Integrated Security=SSPI\"),\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 = appservice.NewSlot(ctx, \"exampleSlot\", \u0026appservice.SlotArgs{\n\t\t\tAppServiceName:    exampleAppService.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:  examplePlan.ID(),\n\t\t\tSiteConfig: \u0026appservice.SlotSiteConfigArgs{\n\t\t\t\tDotnetFrameworkVersion: pulumi.String(\"v4.0\"),\n\t\t\t},\n\t\t\tAppSettings: pulumi.StringMap{\n\t\t\t\t\"SOME_KEY\": pulumi.String(\"some-value\"),\n\t\t\t},\n\t\t\tConnectionStrings: appservice.SlotConnectionStringArray{\n\t\t\t\t\u0026appservice.SlotConnectionStringArgs{\n\t\t\t\t\tName:  pulumi.String(\"Database\"),\n\t\t\t\t\tType:  pulumi.String(\"SQLServer\"),\n\t\t\t\t\tValue: pulumi.String(\"Server=some-server.mydomain.com;Integrated Security=SSPI\"),\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\n{{% /example %}}\n{{% example %}}\n### Java 1.8)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as random from \"@pulumi/random\";\n\nconst server = new random.RandomId(\"server\", {\n    keepers: {\n        azi_id: 1,\n    },\n    byteLength: 8,\n});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        tier: \"Standard\",\n        size: \"S1\",\n    },\n});\nconst exampleAppService = new azure.appservice.AppService(\"exampleAppService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n    siteConfig: {\n        javaVersion: \"1.8\",\n        javaContainer: \"JETTY\",\n        javaContainerVersion: \"9.3\",\n    },\n});\nconst exampleSlot = new azure.appservice.Slot(\"exampleSlot\", {\n    appServiceName: exampleAppService.name,\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n    siteConfig: {\n        javaVersion: \"1.8\",\n        javaContainer: \"JETTY\",\n        javaContainerVersion: \"9.3\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_random as random\n\nserver = random.RandomId(\"server\",\n    keepers={\n        \"azi_id\": 1,\n    },\n    byte_length=8)\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Standard\",\n        size=\"S1\",\n    ))\nexample_app_service = azure.appservice.AppService(\"exampleAppService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id,\n    site_config=azure.appservice.AppServiceSiteConfigArgs(\n        java_version=\"1.8\",\n        java_container=\"JETTY\",\n        java_container_version=\"9.3\",\n    ))\nexample_slot = azure.appservice.Slot(\"exampleSlot\",\n    app_service_name=example_app_service.name,\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id,\n    site_config=azure.appservice.SlotSiteConfigArgs(\n        java_version=\"1.8\",\n        java_container=\"JETTY\",\n        java_container_version=\"9.3\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing Random = Pulumi.Random;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var server = new Random.RandomId(\"server\", new Random.RandomIdArgs\n        {\n            Keepers = \n            {\n                { \"azi_id\", 1 },\n            },\n            ByteLength = 8,\n        });\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Standard\",\n                Size = \"S1\",\n            },\n        });\n        var exampleAppService = new Azure.AppService.AppService(\"exampleAppService\", new Azure.AppService.AppServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n            SiteConfig = new Azure.AppService.Inputs.AppServiceSiteConfigArgs\n            {\n                JavaVersion = \"1.8\",\n                JavaContainer = \"JETTY\",\n                JavaContainerVersion = \"9.3\",\n            },\n        });\n        var exampleSlot = new Azure.AppService.Slot(\"exampleSlot\", new Azure.AppService.SlotArgs\n        {\n            AppServiceName = exampleAppService.Name,\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n            SiteConfig = new Azure.AppService.Inputs.SlotSiteConfigArgs\n            {\n                JavaVersion = \"1.8\",\n                JavaContainer = \"JETTY\",\n                JavaContainerVersion = \"9.3\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\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 := random.NewRandomId(ctx, \"server\", \u0026random.RandomIdArgs{\n\t\t\tKeepers: pulumi.AnyMap{\n\t\t\t\t\"azi_id\": pulumi.Any(1),\n\t\t\t},\n\t\t\tByteLength: pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePlan, err := appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t\tSize: pulumi.String(\"S1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAppService, err := appservice.NewAppService(ctx, \"exampleAppService\", \u0026appservice.AppServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:  examplePlan.ID(),\n\t\t\tSiteConfig: \u0026appservice.AppServiceSiteConfigArgs{\n\t\t\t\tJavaVersion:          pulumi.String(\"1.8\"),\n\t\t\t\tJavaContainer:        pulumi.String(\"JETTY\"),\n\t\t\t\tJavaContainerVersion: pulumi.String(\"9.3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewSlot(ctx, \"exampleSlot\", \u0026appservice.SlotArgs{\n\t\t\tAppServiceName:    exampleAppService.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:  examplePlan.ID(),\n\t\t\tSiteConfig: \u0026appservice.SlotSiteConfigArgs{\n\t\t\t\tJavaVersion:          pulumi.String(\"1.8\"),\n\t\t\t\tJavaContainer:        pulumi.String(\"JETTY\"),\n\t\t\t\tJavaContainerVersion: pulumi.String(\"9.3\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApp Service Slots can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/slot:Slot instance1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/sites/website1/slots/instance1\n```\n\n ",
      "inputProperties": {
        "appServiceName": {
          "description": "The name of the App Service within which to create the App Service Slot.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "appServicePlanId": {
          "description": "The ID of the App Service Plan within which to create this App Service Slot. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "appSettings": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A key-value pair of App Settings.\n",
          "type": "object"
        },
        "authSettings": {
          "$ref": "#/types/azure:appservice/SlotAuthSettings:SlotAuthSettings",
          "description": "A `auth_settings` block as defined below.\n"
        },
        "clientAffinityEnabled": {
          "description": "Should the App Service Slot send session affinity cookies, which route client requests in the same session to the same instance?\n",
          "type": "boolean"
        },
        "connectionStrings": {
          "description": "An `connection_string` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/SlotConnectionString:SlotConnectionString"
          },
          "type": "array"
        },
        "enabled": {
          "description": "Is the App Service Slot Enabled?\n",
          "type": "boolean"
        },
        "httpsOnly": {
          "description": "Can the App Service Slot only be accessed via HTTPS? Defaults to `false`.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:appservice/SlotIdentity:SlotIdentity",
          "description": "A Managed Service Identity block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logs": {
          "$ref": "#/types/azure:appservice/SlotLogs:SlotLogs",
          "description": "A `logs` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name of the App Service Slot component. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the App Service Slot component.\n",
          "type": "string"
        },
        "siteConfig": {
          "$ref": "#/types/azure:appservice/SlotSiteConfig:SlotSiteConfig",
          "description": "A `site_config` object as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "appServiceName": {
          "description": "The name of the App Service within which to create the App Service Slot.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "appServicePlanId": {
          "description": "The ID of the App Service Plan within which to create this App Service Slot. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "appSettings": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A key-value pair of App Settings.\n",
          "type": "object"
        },
        "authSettings": {
          "$ref": "#/types/azure:appservice/SlotAuthSettings:SlotAuthSettings",
          "description": "A `auth_settings` block as defined below.\n"
        },
        "clientAffinityEnabled": {
          "description": "Should the App Service Slot send session affinity cookies, which route client requests in the same session to the same instance?\n",
          "type": "boolean"
        },
        "connectionStrings": {
          "description": "An `connection_string` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/SlotConnectionString:SlotConnectionString"
          },
          "type": "array"
        },
        "defaultSiteHostname": {
          "description": "The Default Hostname associated with the App Service Slot - such as `mysite.azurewebsites.net`\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is the App Service Slot Enabled?\n",
          "type": "boolean"
        },
        "httpsOnly": {
          "description": "Can the App Service Slot only be accessed via HTTPS? Defaults to `false`.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:appservice/SlotIdentity:SlotIdentity",
          "description": "A Managed Service Identity block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logs": {
          "$ref": "#/types/azure:appservice/SlotLogs:SlotLogs",
          "description": "A `logs` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name of the App Service Slot component. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the App Service Slot component.\n",
          "type": "string"
        },
        "siteConfig": {
          "$ref": "#/types/azure:appservice/SlotSiteConfig:SlotSiteConfig",
          "description": "A `site_config` object as defined below.\n"
        },
        "siteCredentials": {
          "description": "A `site_credential` block as defined below, which contains the site-level credentials used to publish to this App Service slot.\n",
          "items": {
            "$ref": "#/types/azure:appservice/SlotSiteCredential:SlotSiteCredential"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "appServiceName",
        "appServicePlanId",
        "appSettings",
        "authSettings",
        "clientAffinityEnabled",
        "connectionStrings",
        "defaultSiteHostname",
        "identity",
        "location",
        "logs",
        "name",
        "resourceGroupName",
        "siteConfig",
        "siteCredentials"
      ],
      "requiredInputs": [
        "appServiceName",
        "appServicePlanId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Slot resources.\n",
        "properties": {
          "appServiceName": {
            "description": "The name of the App Service within which to create the App Service Slot.  Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "appServicePlanId": {
            "description": "The ID of the App Service Plan within which to create this App Service Slot. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "appSettings": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A key-value pair of App Settings.\n",
            "type": "object"
          },
          "authSettings": {
            "$ref": "#/types/azure:appservice/SlotAuthSettings:SlotAuthSettings",
            "description": "A `auth_settings` block as defined below.\n"
          },
          "clientAffinityEnabled": {
            "description": "Should the App Service Slot send session affinity cookies, which route client requests in the same session to the same instance?\n",
            "type": "boolean"
          },
          "connectionStrings": {
            "description": "An `connection_string` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:appservice/SlotConnectionString:SlotConnectionString"
            },
            "type": "array"
          },
          "defaultSiteHostname": {
            "description": "The Default Hostname associated with the App Service Slot - such as `mysite.azurewebsites.net`\n",
            "type": "string"
          },
          "enabled": {
            "description": "Is the App Service Slot Enabled?\n",
            "type": "boolean"
          },
          "httpsOnly": {
            "description": "Can the App Service Slot only be accessed via HTTPS? Defaults to `false`.\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:appservice/SlotIdentity:SlotIdentity",
            "description": "A Managed Service Identity block as defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "logs": {
            "$ref": "#/types/azure:appservice/SlotLogs:SlotLogs",
            "description": "A `logs` block as defined below.\n"
          },
          "name": {
            "description": "Specifies the name of the App Service Slot component. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the App Service Slot component.\n",
            "type": "string"
          },
          "siteConfig": {
            "$ref": "#/types/azure:appservice/SlotSiteConfig:SlotSiteConfig",
            "description": "A `site_config` object as defined below.\n"
          },
          "siteCredentials": {
            "description": "A `site_credential` block as defined below, which contains the site-level credentials used to publish to this App Service slot.\n",
            "items": {
              "$ref": "#/types/azure:appservice/SlotSiteCredential:SlotSiteCredential"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/slotVirtualNetworkSwiftConnection:SlotVirtualNetworkSwiftConnection": {
      "description": "Manages an App Service Slot's Virtual Network Association (this is for the [Regional VNet Integration](https://docs.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet#regional-vnet-integration) which is still in preview).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n    delegations: [{\n        name: \"example-delegation\",\n        serviceDelegation: {\n            name: \"Microsoft.Web/serverFarms\",\n            actions: [\"Microsoft.Network/virtualNetworks/subnets/action\"],\n        },\n    }],\n});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        tier: \"Standard\",\n        size: \"S1\",\n    },\n});\nconst exampleAppService = new azure.appservice.AppService(\"exampleAppService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n});\nconst example_staging = new azure.appservice.Slot(\"example-staging\", {\n    appServiceName: exampleAppService.name,\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n});\nconst exampleSlotVirtualNetworkSwiftConnection = new azure.appservice.SlotVirtualNetworkSwiftConnection(\"exampleSlotVirtualNetworkSwiftConnection\", {\n    slotName: example_staging.name,\n    appServiceId: exampleAppService.id,\n    subnetId: exampleSubnet.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"],\n    delegations=[azure.network.SubnetDelegationArgs(\n        name=\"example-delegation\",\n        service_delegation=azure.network.SubnetDelegationServiceDelegationArgs(\n            name=\"Microsoft.Web/serverFarms\",\n            actions=[\"Microsoft.Network/virtualNetworks/subnets/action\"],\n        ),\n    )])\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Standard\",\n        size=\"S1\",\n    ))\nexample_app_service = azure.appservice.AppService(\"exampleAppService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id)\nexample_staging = azure.appservice.Slot(\"example-staging\",\n    app_service_name=example_app_service.name,\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id)\nexample_slot_virtual_network_swift_connection = azure.appservice.SlotVirtualNetworkSwiftConnection(\"exampleSlotVirtualNetworkSwiftConnection\",\n    slot_name=example_staging.name,\n    app_service_id=example_app_service.id,\n    subnet_id=example_subnet.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n            Delegations = \n            {\n                new Azure.Network.Inputs.SubnetDelegationArgs\n                {\n                    Name = \"example-delegation\",\n                    ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs\n                    {\n                        Name = \"Microsoft.Web/serverFarms\",\n                        Actions = \n                        {\n                            \"Microsoft.Network/virtualNetworks/subnets/action\",\n                        },\n                    },\n                },\n            },\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Standard\",\n                Size = \"S1\",\n            },\n        });\n        var exampleAppService = new Azure.AppService.AppService(\"exampleAppService\", new Azure.AppService.AppServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n        });\n        var example_staging = new Azure.AppService.Slot(\"example-staging\", new Azure.AppService.SlotArgs\n        {\n            AppServiceName = exampleAppService.Name,\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n        });\n        var exampleSlotVirtualNetworkSwiftConnection = new Azure.AppService.SlotVirtualNetworkSwiftConnection(\"exampleSlotVirtualNetworkSwiftConnection\", new Azure.AppService.SlotVirtualNetworkSwiftConnectionArgs\n        {\n            SlotName = example_staging.Name,\n            AppServiceId = exampleAppService.Id,\n            SubnetId = exampleSubnet.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t\tDelegations: network.SubnetDelegationArray{\n\t\t\t\t\u0026network.SubnetDelegationArgs{\n\t\t\t\t\tName: pulumi.String(\"example-delegation\"),\n\t\t\t\t\tServiceDelegation: \u0026network.SubnetDelegationServiceDelegationArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Microsoft.Web/serverFarms\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/action\"),\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\texamplePlan, err := appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t\tSize: pulumi.String(\"S1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAppService, err := appservice.NewAppService(ctx, \"exampleAppService\", \u0026appservice.AppServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:  examplePlan.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewSlot(ctx, \"example_staging\", \u0026appservice.SlotArgs{\n\t\t\tAppServiceName:    exampleAppService.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:  examplePlan.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewSlotVirtualNetworkSwiftConnection(ctx, \"exampleSlotVirtualNetworkSwiftConnection\", \u0026appservice.SlotVirtualNetworkSwiftConnectionArgs{\n\t\t\tSlotName:     example_staging.Name,\n\t\t\tAppServiceId: exampleAppService.ID(),\n\t\t\tSubnetId:     exampleSubnet.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApp Service Slot Virtual Network Associations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/slotVirtualNetworkSwiftConnection:SlotVirtualNetworkSwiftConnection myassociation /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/sites/instance1/slots/staging/config/virtualNetwork\n```\n\n ",
      "inputProperties": {
        "appServiceId": {
          "description": "The ID of the App Service or Function App to associate to the VNet. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "slotName": {
          "description": "The name of the App Service Slot or Function App Slot. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet the app service will be associated to (the subnet must have a `service_delegation` configured for `Microsoft.Web/serverFarms`).\n",
          "type": "string"
        }
      },
      "properties": {
        "appServiceId": {
          "description": "The ID of the App Service or Function App to associate to the VNet. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "slotName": {
          "description": "The name of the App Service Slot or Function App Slot. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet the app service will be associated to (the subnet must have a `service_delegation` configured for `Microsoft.Web/serverFarms`).\n",
          "type": "string"
        }
      },
      "required": [
        "appServiceId",
        "slotName",
        "subnetId"
      ],
      "requiredInputs": [
        "appServiceId",
        "slotName",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SlotVirtualNetworkSwiftConnection resources.\n",
        "properties": {
          "appServiceId": {
            "description": "The ID of the App Service or Function App to associate to the VNet. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "slotName": {
            "description": "The name of the App Service Slot or Function App Slot. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the subnet the app service will be associated to (the subnet must have a `service_delegation` configured for `Microsoft.Web/serverFarms`).\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/sourceCodeToken:SourceCodeToken": {
      "description": "Manages an App Service source control token.\n\n\u003e **NOTE:** Source Control Tokens are configured at the subscription level, not on each App Service - as such this can only be configured Subscription-wide\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.appservice.SourceCodeToken(\"example\", {\n    token: \"7e57735e77e577e57\",\n    type: \"GitHub\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.appservice.SourceCodeToken(\"example\",\n    token=\"7e57735e77e577e57\",\n    type=\"GitHub\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.AppService.SourceCodeToken(\"example\", new Azure.AppService.SourceCodeTokenArgs\n        {\n            Token = \"7e57735e77e577e57\",\n            Type = \"GitHub\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\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 := appservice.NewSourceCodeToken(ctx, \"example\", \u0026appservice.SourceCodeTokenArgs{\n\t\t\tToken: pulumi.String(\"7e57735e77e577e57\"),\n\t\t\tType:  pulumi.String(\"GitHub\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApp Service Source Control Token's can be imported using the `type`, e.g.\n\n```sh\n $ pulumi import azure:appservice/sourceCodeToken:SourceCodeToken example GitHub\n```\n\n ",
      "inputProperties": {
        "token": {
          "description": "The OAuth access token.\n",
          "type": "string"
        },
        "tokenSecret": {
          "description": "The OAuth access token secret.\n",
          "type": "string"
        },
        "type": {
          "description": "The source control type. Possible values are `BitBucket`, `Dropbox`, `GitHub` and `OneDrive`.\n",
          "type": "string"
        }
      },
      "properties": {
        "token": {
          "description": "The OAuth access token.\n",
          "type": "string"
        },
        "tokenSecret": {
          "description": "The OAuth access token secret.\n",
          "type": "string"
        },
        "type": {
          "description": "The source control type. Possible values are `BitBucket`, `Dropbox`, `GitHub` and `OneDrive`.\n",
          "type": "string"
        }
      },
      "required": [
        "token",
        "type"
      ],
      "requiredInputs": [
        "token",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SourceCodeToken resources.\n",
        "properties": {
          "token": {
            "description": "The OAuth access token.\n",
            "type": "string"
          },
          "tokenSecret": {
            "description": "The OAuth access token secret.\n",
            "type": "string"
          },
          "type": {
            "description": "The source control type. Possible values are `BitBucket`, `Dropbox`, `GitHub` and `OneDrive`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/staticSite:StaticSite": {
      "description": "Manages an App Service Static Site.\n\n-\u003e**NOTE**: After the Static Site is provisioned, you'll need to associate your target repository, which contains your web app, to the Static Site, by following the [Azure Static Site document](https://docs.microsoft.com/en-us/azure/static-web-apps/github-actions-workflow).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.appservice.StaticSite(\"example\", {\n    location: \"West Europe\",\n    resourceGroupName: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.appservice.StaticSite(\"example\",\n    location=\"West Europe\",\n    resource_group_name=\"example\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.AppService.StaticSite(\"example\", new Azure.AppService.StaticSiteArgs\n        {\n            Location = \"West Europe\",\n            ResourceGroupName = \"example\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\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 := appservice.NewStaticSite(ctx, \"example\", \u0026appservice.StaticSiteArgs{\n\t\t\tLocation:          pulumi.String(\"West Europe\"),\n\t\t\tResourceGroupName: pulumi.String(\"example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStatic Web Apps can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/staticSite:StaticSite example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Web/staticSites/my-static-site1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The Azure Region where the Static Web App should exist. Changing this forces a new Static Web App to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Static Web App. Changing this forces a new Static Web App to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Static Web App should exist. Changing this forces a new Static Web App to be created.\n",
          "type": "string"
        },
        "skuSize": {
          "description": "Specifies the sku tier of the Static Web App. Possible values are \"Free\" or \"Standard\". Defaults to \"Free\".\n",
          "type": "string"
        },
        "skuTier": {
          "description": "Specifies the sku tier of the Static Web App. Possible values are \"Free\" or \"Standard\". Defaults to \"Free\".\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "apiKey": {
          "description": "The API key of this Static Web App, which is used for later interacting with this Static Web App from other clients, e.g. Github Action.\n",
          "type": "string"
        },
        "defaultHostName": {
          "description": "The default host name of the Static Web App.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Static Web App should exist. Changing this forces a new Static Web App to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Static Web App. Changing this forces a new Static Web App to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Static Web App should exist. Changing this forces a new Static Web App to be created.\n",
          "type": "string"
        },
        "skuSize": {
          "description": "Specifies the sku tier of the Static Web App. Possible values are \"Free\" or \"Standard\". Defaults to \"Free\".\n",
          "type": "string"
        },
        "skuTier": {
          "description": "Specifies the sku tier of the Static Web App. Possible values are \"Free\" or \"Standard\". Defaults to \"Free\".\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "apiKey",
        "defaultHostName",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StaticSite resources.\n",
        "properties": {
          "apiKey": {
            "description": "The API key of this Static Web App, which is used for later interacting with this Static Web App from other clients, e.g. Github Action.\n",
            "type": "string"
          },
          "defaultHostName": {
            "description": "The default host name of the Static Web App.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Static Web App should exist. Changing this forces a new Static Web App to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Static Web App. Changing this forces a new Static Web App to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Static Web App should exist. Changing this forces a new Static Web App to be created.\n",
            "type": "string"
          },
          "skuSize": {
            "description": "Specifies the sku tier of the Static Web App. Possible values are \"Free\" or \"Standard\". Defaults to \"Free\".\n",
            "type": "string"
          },
          "skuTier": {
            "description": "Specifies the sku tier of the Static Web App. Possible values are \"Free\" or \"Standard\". Defaults to \"Free\".\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:appservice/virtualNetworkSwiftConnection:VirtualNetworkSwiftConnection": {
      "description": "Manages an App Service Virtual Network Association (this is for the [Regional VNet Integration](https://docs.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet#regional-vnet-integration)).\n\n\u003e **Note:** This resource can be used for both `azure.appservice.AppService` and `azure.appservice.FunctionApp`.\n\n\u003e **Note:** There is a hard limit of [one VNet integration per App Service Plan](https://docs.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet#regional-vnet-integration). \nMultiple apps in the same App Service plan can use the same VNet.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### With App Service)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n    delegations: [{\n        name: \"example-delegation\",\n        serviceDelegation: {\n            name: \"Microsoft.Web/serverFarms\",\n            actions: [\"Microsoft.Network/virtualNetworks/subnets/action\"],\n        },\n    }],\n});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        tier: \"Standard\",\n        size: \"S1\",\n    },\n});\nconst exampleAppService = new azure.appservice.AppService(\"exampleAppService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n});\nconst exampleVirtualNetworkSwiftConnection = new azure.appservice.VirtualNetworkSwiftConnection(\"exampleVirtualNetworkSwiftConnection\", {\n    appServiceId: exampleAppService.id,\n    subnetId: exampleSubnet.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"],\n    delegations=[azure.network.SubnetDelegationArgs(\n        name=\"example-delegation\",\n        service_delegation=azure.network.SubnetDelegationServiceDelegationArgs(\n            name=\"Microsoft.Web/serverFarms\",\n            actions=[\"Microsoft.Network/virtualNetworks/subnets/action\"],\n        ),\n    )])\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Standard\",\n        size=\"S1\",\n    ))\nexample_app_service = azure.appservice.AppService(\"exampleAppService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id)\nexample_virtual_network_swift_connection = azure.appservice.VirtualNetworkSwiftConnection(\"exampleVirtualNetworkSwiftConnection\",\n    app_service_id=example_app_service.id,\n    subnet_id=example_subnet.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n            Delegations = \n            {\n                new Azure.Network.Inputs.SubnetDelegationArgs\n                {\n                    Name = \"example-delegation\",\n                    ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs\n                    {\n                        Name = \"Microsoft.Web/serverFarms\",\n                        Actions = \n                        {\n                            \"Microsoft.Network/virtualNetworks/subnets/action\",\n                        },\n                    },\n                },\n            },\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Standard\",\n                Size = \"S1\",\n            },\n        });\n        var exampleAppService = new Azure.AppService.AppService(\"exampleAppService\", new Azure.AppService.AppServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n        });\n        var exampleVirtualNetworkSwiftConnection = new Azure.AppService.VirtualNetworkSwiftConnection(\"exampleVirtualNetworkSwiftConnection\", new Azure.AppService.VirtualNetworkSwiftConnectionArgs\n        {\n            AppServiceId = exampleAppService.Id,\n            SubnetId = exampleSubnet.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t\tDelegations: network.SubnetDelegationArray{\n\t\t\t\t\u0026network.SubnetDelegationArgs{\n\t\t\t\t\tName: pulumi.String(\"example-delegation\"),\n\t\t\t\t\tServiceDelegation: \u0026network.SubnetDelegationServiceDelegationArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Microsoft.Web/serverFarms\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/action\"),\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\texamplePlan, err := appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t\tSize: pulumi.String(\"S1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAppService, err := appservice.NewAppService(ctx, \"exampleAppService\", \u0026appservice.AppServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:  examplePlan.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewVirtualNetworkSwiftConnection(ctx, \"exampleVirtualNetworkSwiftConnection\", \u0026appservice.VirtualNetworkSwiftConnectionArgs{\n\t\t\tAppServiceId: exampleAppService.ID(),\n\t\t\tSubnetId:     exampleSubnet.ID(),\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\n{{% /example %}}\n{{% example %}}\n### With Function App)\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n    delegations: [{\n        name: \"example-delegation\",\n        serviceDelegation: {\n            name: \"Microsoft.Web/serverFarms\",\n            actions: [\"Microsoft.Network/virtualNetworks/subnets/action\"],\n        },\n    }],\n});\nconst examplePlan = new azure.appservice.Plan(\"examplePlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        tier: \"Standard\",\n        size: \"S1\",\n    },\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleFunctionApp = new azure.appservice.FunctionApp(\"exampleFunctionApp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    appServicePlanId: examplePlan.id,\n    storageAccountName: exampleAccount.name,\n    storageAccountAccessKey: exampleAccount.primaryAccessKey,\n});\nconst exampleVirtualNetworkSwiftConnection = new azure.appservice.VirtualNetworkSwiftConnection(\"exampleVirtualNetworkSwiftConnection\", {\n    appServiceId: exampleFunctionApp.id,\n    subnetId: exampleSubnet.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"],\n    delegations=[azure.network.SubnetDelegationArgs(\n        name=\"example-delegation\",\n        service_delegation=azure.network.SubnetDelegationServiceDelegationArgs(\n            name=\"Microsoft.Web/serverFarms\",\n            actions=[\"Microsoft.Network/virtualNetworks/subnets/action\"],\n        ),\n    )])\nexample_plan = azure.appservice.Plan(\"examplePlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.appservice.PlanSkuArgs(\n        tier=\"Standard\",\n        size=\"S1\",\n    ))\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_function_app = azure.appservice.FunctionApp(\"exampleFunctionApp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    app_service_plan_id=example_plan.id,\n    storage_account_name=example_account.name,\n    storage_account_access_key=example_account.primary_access_key)\nexample_virtual_network_swift_connection = azure.appservice.VirtualNetworkSwiftConnection(\"exampleVirtualNetworkSwiftConnection\",\n    app_service_id=example_function_app.id,\n    subnet_id=example_subnet.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n            Delegations = \n            {\n                new Azure.Network.Inputs.SubnetDelegationArgs\n                {\n                    Name = \"example-delegation\",\n                    ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs\n                    {\n                        Name = \"Microsoft.Web/serverFarms\",\n                        Actions = \n                        {\n                            \"Microsoft.Network/virtualNetworks/subnets/action\",\n                        },\n                    },\n                },\n            },\n        });\n        var examplePlan = new Azure.AppService.Plan(\"examplePlan\", new Azure.AppService.PlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.AppService.Inputs.PlanSkuArgs\n            {\n                Tier = \"Standard\",\n                Size = \"S1\",\n            },\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleFunctionApp = new Azure.AppService.FunctionApp(\"exampleFunctionApp\", new Azure.AppService.FunctionAppArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AppServicePlanId = examplePlan.Id,\n            StorageAccountName = exampleAccount.Name,\n            StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n        });\n        var exampleVirtualNetworkSwiftConnection = new Azure.AppService.VirtualNetworkSwiftConnection(\"exampleVirtualNetworkSwiftConnection\", new Azure.AppService.VirtualNetworkSwiftConnectionArgs\n        {\n            AppServiceId = exampleFunctionApp.Id,\n            SubnetId = exampleSubnet.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t\tDelegations: network.SubnetDelegationArray{\n\t\t\t\t\u0026network.SubnetDelegationArgs{\n\t\t\t\t\tName: pulumi.String(\"example-delegation\"),\n\t\t\t\t\tServiceDelegation: \u0026network.SubnetDelegationServiceDelegationArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Microsoft.Web/serverFarms\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/action\"),\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\texamplePlan, err := appservice.NewPlan(ctx, \"examplePlan\", \u0026appservice.PlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t\tSize: pulumi.String(\"S1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFunctionApp, err := appservice.NewFunctionApp(ctx, \"exampleFunctionApp\", \u0026appservice.FunctionAppArgs{\n\t\t\tLocation:                exampleResourceGroup.Location,\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tAppServicePlanId:        examplePlan.ID(),\n\t\t\tStorageAccountName:      exampleAccount.Name,\n\t\t\tStorageAccountAccessKey: exampleAccount.PrimaryAccessKey,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewVirtualNetworkSwiftConnection(ctx, \"exampleVirtualNetworkSwiftConnection\", \u0026appservice.VirtualNetworkSwiftConnectionArgs{\n\t\t\tAppServiceId: exampleFunctionApp.ID(),\n\t\t\tSubnetId:     exampleSubnet.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApp Service Virtual Network Associations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:appservice/virtualNetworkSwiftConnection:VirtualNetworkSwiftConnection myassociation /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/sites/instance1/config/virtualNetwork\n```\n\n ",
      "inputProperties": {
        "appServiceId": {
          "description": "The ID of the App Service or Function App to associate to the VNet. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet the app service will be associated to (the subnet must have a `service_delegation` configured for `Microsoft.Web/serverFarms`).\n",
          "type": "string"
        }
      },
      "properties": {
        "appServiceId": {
          "description": "The ID of the App Service or Function App to associate to the VNet. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet the app service will be associated to (the subnet must have a `service_delegation` configured for `Microsoft.Web/serverFarms`).\n",
          "type": "string"
        }
      },
      "required": [
        "appServiceId",
        "subnetId"
      ],
      "requiredInputs": [
        "appServiceId",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualNetworkSwiftConnection resources.\n",
        "properties": {
          "appServiceId": {
            "description": "The ID of the App Service or Function App to associate to the VNet. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the subnet the app service will be associated to (the subnet must have a `service_delegation` configured for `Microsoft.Web/serverFarms`).\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:attestation/provider:Provider": {
      "inputProperties": {
        "location": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "policySigningCertificateData": {
          "type": "string"
        },
        "resourceGroupName": {
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "properties": {
        "attestationUri": {
          "type": "string"
        },
        "location": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "policySigningCertificateData": {
          "type": "string"
        },
        "resourceGroupName": {
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "trustModel": {
          "type": "string"
        }
      },
      "required": [
        "attestationUri",
        "location",
        "name",
        "resourceGroupName",
        "trustModel"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Provider resources.\n",
        "properties": {
          "attestationUri": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "policySigningCertificateData": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "trustModel": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:authorization/assignment:Assignment": {
      "aliases": [
        {
          "type": "azure:role/assignment:Assignment"
        }
      ],
      "description": "Assigns a given Principal (User or Group) to a given Role.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Using A Built-In Role)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primary = azure.core.getSubscription({});\nconst exampleClientConfig = azure.core.getClientConfig({});\nconst exampleAssignment = new azure.authorization.Assignment(\"exampleAssignment\", {\n    scope: primary.then(primary =\u003e primary.id),\n    roleDefinitionName: \"Reader\",\n    principalId: exampleClientConfig.then(exampleClientConfig =\u003e exampleClientConfig.objectId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary = azure.core.get_subscription()\nexample_client_config = azure.core.get_client_config()\nexample_assignment = azure.authorization.Assignment(\"exampleAssignment\",\n    scope=primary.id,\n    role_definition_name=\"Reader\",\n    principal_id=example_client_config.object_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var primary = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var exampleClientConfig = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleAssignment = new Azure.Authorization.Assignment(\"exampleAssignment\", new Azure.Authorization.AssignmentArgs\n        {\n            Scope = primary.Apply(primary =\u003e primary.Id),\n            RoleDefinitionName = \"Reader\",\n            PrincipalId = exampleClientConfig.Apply(exampleClientConfig =\u003e exampleClientConfig.ObjectId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleClientConfig, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewAssignment(ctx, \"exampleAssignment\", \u0026authorization.AssignmentArgs{\n\t\t\tScope:              pulumi.String(primary.Id),\n\t\t\tRoleDefinitionName: pulumi.String(\"Reader\"),\n\t\t\tPrincipalId:        pulumi.String(exampleClientConfig.ObjectId),\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\n{{% /example %}}\n{{% example %}}\n### Custom Role \u0026 Service Principal)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primary = azure.core.getSubscription({});\nconst exampleClientConfig = azure.core.getClientConfig({});\nconst exampleRoleDefinition = new azure.authorization.RoleDefinition(\"exampleRoleDefinition\", {\n    roleDefinitionId: \"00000000-0000-0000-0000-000000000000\",\n    scope: primary.then(primary =\u003e primary.id),\n    permissions: [{\n        actions: [\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\n        notActions: [],\n    }],\n    assignableScopes: [primary.then(primary =\u003e primary.id)],\n});\nconst exampleAssignment = new azure.authorization.Assignment(\"exampleAssignment\", {\n    name: \"00000000-0000-0000-0000-000000000000\",\n    scope: primary.then(primary =\u003e primary.id),\n    roleDefinitionId: exampleRoleDefinition.roleDefinitionResourceId,\n    principalId: exampleClientConfig.then(exampleClientConfig =\u003e exampleClientConfig.objectId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary = azure.core.get_subscription()\nexample_client_config = azure.core.get_client_config()\nexample_role_definition = azure.authorization.RoleDefinition(\"exampleRoleDefinition\",\n    role_definition_id=\"00000000-0000-0000-0000-000000000000\",\n    scope=primary.id,\n    permissions=[azure.authorization.RoleDefinitionPermissionArgs(\n        actions=[\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\n        not_actions=[],\n    )],\n    assignable_scopes=[primary.id])\nexample_assignment = azure.authorization.Assignment(\"exampleAssignment\",\n    name=\"00000000-0000-0000-0000-000000000000\",\n    scope=primary.id,\n    role_definition_id=example_role_definition.role_definition_resource_id,\n    principal_id=example_client_config.object_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var primary = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var exampleClientConfig = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleRoleDefinition = new Azure.Authorization.RoleDefinition(\"exampleRoleDefinition\", new Azure.Authorization.RoleDefinitionArgs\n        {\n            RoleDefinitionId = \"00000000-0000-0000-0000-000000000000\",\n            Scope = primary.Apply(primary =\u003e primary.Id),\n            Permissions = \n            {\n                new Azure.Authorization.Inputs.RoleDefinitionPermissionArgs\n                {\n                    Actions = \n                    {\n                        \"Microsoft.Resources/subscriptions/resourceGroups/read\",\n                    },\n                    NotActions = {},\n                },\n            },\n            AssignableScopes = \n            {\n                primary.Apply(primary =\u003e primary.Id),\n            },\n        });\n        var exampleAssignment = new Azure.Authorization.Assignment(\"exampleAssignment\", new Azure.Authorization.AssignmentArgs\n        {\n            Name = \"00000000-0000-0000-0000-000000000000\",\n            Scope = primary.Apply(primary =\u003e primary.Id),\n            RoleDefinitionId = exampleRoleDefinition.RoleDefinitionResourceId,\n            PrincipalId = exampleClientConfig.Apply(exampleClientConfig =\u003e exampleClientConfig.ObjectId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleClientConfig, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRoleDefinition, err := authorization.NewRoleDefinition(ctx, \"exampleRoleDefinition\", \u0026authorization.RoleDefinitionArgs{\n\t\t\tRoleDefinitionId: pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tScope:            pulumi.String(primary.Id),\n\t\t\tPermissions: authorization.RoleDefinitionPermissionArray{\n\t\t\t\t\u0026authorization.RoleDefinitionPermissionArgs{\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Microsoft.Resources/subscriptions/resourceGroups/read\"),\n\t\t\t\t\t},\n\t\t\t\t\tNotActions: pulumi.StringArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAssignableScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(primary.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewAssignment(ctx, \"exampleAssignment\", \u0026authorization.AssignmentArgs{\n\t\t\tName:             pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tScope:            pulumi.String(primary.Id),\n\t\t\tRoleDefinitionId: exampleRoleDefinition.RoleDefinitionResourceId,\n\t\t\tPrincipalId:      pulumi.String(exampleClientConfig.ObjectId),\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\n{{% /example %}}\n{{% example %}}\n### Custom Role \u0026 User)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primary = azure.core.getSubscription({});\nconst exampleClientConfig = azure.core.getClientConfig({});\nconst exampleRoleDefinition = new azure.authorization.RoleDefinition(\"exampleRoleDefinition\", {\n    roleDefinitionId: \"00000000-0000-0000-0000-000000000000\",\n    scope: primary.then(primary =\u003e primary.id),\n    permissions: [{\n        actions: [\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\n        notActions: [],\n    }],\n    assignableScopes: [primary.then(primary =\u003e primary.id)],\n});\nconst exampleAssignment = new azure.authorization.Assignment(\"exampleAssignment\", {\n    name: \"00000000-0000-0000-0000-000000000000\",\n    scope: primary.then(primary =\u003e primary.id),\n    roleDefinitionId: exampleRoleDefinition.roleDefinitionResourceId,\n    principalId: exampleClientConfig.then(exampleClientConfig =\u003e exampleClientConfig.objectId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary = azure.core.get_subscription()\nexample_client_config = azure.core.get_client_config()\nexample_role_definition = azure.authorization.RoleDefinition(\"exampleRoleDefinition\",\n    role_definition_id=\"00000000-0000-0000-0000-000000000000\",\n    scope=primary.id,\n    permissions=[azure.authorization.RoleDefinitionPermissionArgs(\n        actions=[\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\n        not_actions=[],\n    )],\n    assignable_scopes=[primary.id])\nexample_assignment = azure.authorization.Assignment(\"exampleAssignment\",\n    name=\"00000000-0000-0000-0000-000000000000\",\n    scope=primary.id,\n    role_definition_id=example_role_definition.role_definition_resource_id,\n    principal_id=example_client_config.object_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var primary = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var exampleClientConfig = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleRoleDefinition = new Azure.Authorization.RoleDefinition(\"exampleRoleDefinition\", new Azure.Authorization.RoleDefinitionArgs\n        {\n            RoleDefinitionId = \"00000000-0000-0000-0000-000000000000\",\n            Scope = primary.Apply(primary =\u003e primary.Id),\n            Permissions = \n            {\n                new Azure.Authorization.Inputs.RoleDefinitionPermissionArgs\n                {\n                    Actions = \n                    {\n                        \"Microsoft.Resources/subscriptions/resourceGroups/read\",\n                    },\n                    NotActions = {},\n                },\n            },\n            AssignableScopes = \n            {\n                primary.Apply(primary =\u003e primary.Id),\n            },\n        });\n        var exampleAssignment = new Azure.Authorization.Assignment(\"exampleAssignment\", new Azure.Authorization.AssignmentArgs\n        {\n            Name = \"00000000-0000-0000-0000-000000000000\",\n            Scope = primary.Apply(primary =\u003e primary.Id),\n            RoleDefinitionId = exampleRoleDefinition.RoleDefinitionResourceId,\n            PrincipalId = exampleClientConfig.Apply(exampleClientConfig =\u003e exampleClientConfig.ObjectId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleClientConfig, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRoleDefinition, err := authorization.NewRoleDefinition(ctx, \"exampleRoleDefinition\", \u0026authorization.RoleDefinitionArgs{\n\t\t\tRoleDefinitionId: pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tScope:            pulumi.String(primary.Id),\n\t\t\tPermissions: authorization.RoleDefinitionPermissionArray{\n\t\t\t\t\u0026authorization.RoleDefinitionPermissionArgs{\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Microsoft.Resources/subscriptions/resourceGroups/read\"),\n\t\t\t\t\t},\n\t\t\t\t\tNotActions: pulumi.StringArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAssignableScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(primary.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewAssignment(ctx, \"exampleAssignment\", \u0026authorization.AssignmentArgs{\n\t\t\tName:             pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tScope:            pulumi.String(primary.Id),\n\t\t\tRoleDefinitionId: exampleRoleDefinition.RoleDefinitionResourceId,\n\t\t\tPrincipalId:      pulumi.String(exampleClientConfig.ObjectId),\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\n{{% /example %}}\n{{% example %}}\n### Custom Role \u0026 Management Group)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primary = azure.core.getSubscription({});\nconst exampleClientConfig = azure.core.getClientConfig({});\nconst exampleGroup = azure.management.getGroup({});\nconst exampleRoleDefinition = new azure.authorization.RoleDefinition(\"exampleRoleDefinition\", {\n    roleDefinitionId: \"00000000-0000-0000-0000-000000000000\",\n    scope: primary.then(primary =\u003e primary.id),\n    permissions: [{\n        actions: [\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\n        notActions: [],\n    }],\n    assignableScopes: [primary.then(primary =\u003e primary.id)],\n});\nconst exampleAssignment = new azure.authorization.Assignment(\"exampleAssignment\", {\n    name: \"00000000-0000-0000-0000-000000000000\",\n    scope: data.azurerm_management_group.primary.id,\n    roleDefinitionId: exampleRoleDefinition.roleDefinitionResourceId,\n    principalId: exampleClientConfig.then(exampleClientConfig =\u003e exampleClientConfig.objectId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary = azure.core.get_subscription()\nexample_client_config = azure.core.get_client_config()\nexample_group = azure.management.get_group()\nexample_role_definition = azure.authorization.RoleDefinition(\"exampleRoleDefinition\",\n    role_definition_id=\"00000000-0000-0000-0000-000000000000\",\n    scope=primary.id,\n    permissions=[azure.authorization.RoleDefinitionPermissionArgs(\n        actions=[\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\n        not_actions=[],\n    )],\n    assignable_scopes=[primary.id])\nexample_assignment = azure.authorization.Assignment(\"exampleAssignment\",\n    name=\"00000000-0000-0000-0000-000000000000\",\n    scope=data[\"azurerm_management_group\"][\"primary\"][\"id\"],\n    role_definition_id=example_role_definition.role_definition_resource_id,\n    principal_id=example_client_config.object_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var primary = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var exampleClientConfig = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleGroup = Output.Create(Azure.Management.GetGroup.InvokeAsync());\n        var exampleRoleDefinition = new Azure.Authorization.RoleDefinition(\"exampleRoleDefinition\", new Azure.Authorization.RoleDefinitionArgs\n        {\n            RoleDefinitionId = \"00000000-0000-0000-0000-000000000000\",\n            Scope = primary.Apply(primary =\u003e primary.Id),\n            Permissions = \n            {\n                new Azure.Authorization.Inputs.RoleDefinitionPermissionArgs\n                {\n                    Actions = \n                    {\n                        \"Microsoft.Resources/subscriptions/resourceGroups/read\",\n                    },\n                    NotActions = {},\n                },\n            },\n            AssignableScopes = \n            {\n                primary.Apply(primary =\u003e primary.Id),\n            },\n        });\n        var exampleAssignment = new Azure.Authorization.Assignment(\"exampleAssignment\", new Azure.Authorization.AssignmentArgs\n        {\n            Name = \"00000000-0000-0000-0000-000000000000\",\n            Scope = data.Azurerm_management_group.Primary.Id,\n            RoleDefinitionId = exampleRoleDefinition.RoleDefinitionResourceId,\n            PrincipalId = exampleClientConfig.Apply(exampleClientConfig =\u003e exampleClientConfig.ObjectId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleClientConfig, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = management.LookupGroup(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRoleDefinition, err := authorization.NewRoleDefinition(ctx, \"exampleRoleDefinition\", \u0026authorization.RoleDefinitionArgs{\n\t\t\tRoleDefinitionId: pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tScope:            pulumi.String(primary.Id),\n\t\t\tPermissions: authorization.RoleDefinitionPermissionArray{\n\t\t\t\t\u0026authorization.RoleDefinitionPermissionArgs{\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Microsoft.Resources/subscriptions/resourceGroups/read\"),\n\t\t\t\t\t},\n\t\t\t\t\tNotActions: pulumi.StringArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAssignableScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(primary.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewAssignment(ctx, \"exampleAssignment\", \u0026authorization.AssignmentArgs{\n\t\t\tName:             pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tScope:            pulumi.Any(data.Azurerm_management_group.Primary.Id),\n\t\t\tRoleDefinitionId: exampleRoleDefinition.RoleDefinitionResourceId,\n\t\t\tPrincipalId:      pulumi.String(exampleClientConfig.ObjectId),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRole Assignments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:authorization/assignment:Assignment example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000\n```\n\n - for scope `Subscription`, the id format is `/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000` - for scope `Resource Group`, the id format is `/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000` /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000|00000000-0000-0000-0000-000000000000 ",
      "inputProperties": {
        "condition": {
          "description": "The condition that limits the resources that the role can be assigned to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "conditionVersion": {
          "description": "The version of the condition. Possible values are `1.0` or `2.0`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "delegatedManagedIdentityResourceId": {
          "description": "The delegated Azure Resource Id which contains a Managed Identity. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for this Role Assignment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "A unique UUID/GUID for this Role Assignment - one will be generated if not specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "principalId": {
          "description": "The ID of the Principal (User, Group or Service Principal) to assign the Role Definition to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roleDefinitionId": {
          "description": "The Scoped-ID of the Role Definition. Changing this forces a new resource to be created. Conflicts with `role_definition_name`.\n",
          "type": "string"
        },
        "roleDefinitionName": {
          "description": "The name of a built-in Role. Changing this forces a new resource to be created. Conflicts with `role_definition_id`.\n",
          "type": "string"
        },
        "scope": {
          "description": "The scope at which the Role Assignment applies to, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`, or `/providers/Microsoft.Management/managementGroups/myMG`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skipServicePrincipalAadCheck": {
          "description": "If the `principal_id` is a newly provisioned `Service Principal` set this value to `true` to skip the `Azure Active Directory` check which may fail due to replication lag. This argument is only valid if the `principal_id` is a `Service Principal` identity. If it is not a `Service Principal` identity it will cause the role assignment to fail. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "condition": {
          "description": "The condition that limits the resources that the role can be assigned to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "conditionVersion": {
          "description": "The version of the condition. Possible values are `1.0` or `2.0`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "delegatedManagedIdentityResourceId": {
          "description": "The delegated Azure Resource Id which contains a Managed Identity. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for this Role Assignment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "A unique UUID/GUID for this Role Assignment - one will be generated if not specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "principalId": {
          "description": "The ID of the Principal (User, Group or Service Principal) to assign the Role Definition to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "principalType": {
          "description": "The type of the `principal_id`, e.g. User, Group, Service Principal, Application, etc.\n",
          "type": "string"
        },
        "roleDefinitionId": {
          "description": "The Scoped-ID of the Role Definition. Changing this forces a new resource to be created. Conflicts with `role_definition_name`.\n",
          "type": "string"
        },
        "roleDefinitionName": {
          "description": "The name of a built-in Role. Changing this forces a new resource to be created. Conflicts with `role_definition_id`.\n",
          "type": "string"
        },
        "scope": {
          "description": "The scope at which the Role Assignment applies to, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`, or `/providers/Microsoft.Management/managementGroups/myMG`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skipServicePrincipalAadCheck": {
          "description": "If the `principal_id` is a newly provisioned `Service Principal` set this value to `true` to skip the `Azure Active Directory` check which may fail due to replication lag. This argument is only valid if the `principal_id` is a `Service Principal` identity. If it is not a `Service Principal` identity it will cause the role assignment to fail. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "principalId",
        "principalType",
        "roleDefinitionId",
        "roleDefinitionName",
        "scope",
        "skipServicePrincipalAadCheck"
      ],
      "requiredInputs": [
        "principalId",
        "scope"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Assignment resources.\n",
        "properties": {
          "condition": {
            "description": "The condition that limits the resources that the role can be assigned to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "conditionVersion": {
            "description": "The version of the condition. Possible values are `1.0` or `2.0`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "delegatedManagedIdentityResourceId": {
            "description": "The delegated Azure Resource Id which contains a Managed Identity. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for this Role Assignment. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "A unique UUID/GUID for this Role Assignment - one will be generated if not specified. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "principalId": {
            "description": "The ID of the Principal (User, Group or Service Principal) to assign the Role Definition to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "principalType": {
            "description": "The type of the `principal_id`, e.g. User, Group, Service Principal, Application, etc.\n",
            "type": "string"
          },
          "roleDefinitionId": {
            "description": "The Scoped-ID of the Role Definition. Changing this forces a new resource to be created. Conflicts with `role_definition_name`.\n",
            "type": "string"
          },
          "roleDefinitionName": {
            "description": "The name of a built-in Role. Changing this forces a new resource to be created. Conflicts with `role_definition_id`.\n",
            "type": "string"
          },
          "scope": {
            "description": "The scope at which the Role Assignment applies to, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`, or `/providers/Microsoft.Management/managementGroups/myMG`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skipServicePrincipalAadCheck": {
            "description": "If the `principal_id` is a newly provisioned `Service Principal` set this value to `true` to skip the `Azure Active Directory` check which may fail due to replication lag. This argument is only valid if the `principal_id` is a `Service Principal` identity. If it is not a `Service Principal` identity it will cause the role assignment to fail. Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:authorization/roleDefinition:RoleDefinition": {
      "aliases": [
        {
          "type": "azure:role/definition:Definition"
        }
      ],
      "description": "Manages a custom Role Definition, used to assign Roles to Users/Principals. See ['Understand role definitions'](https://docs.microsoft.com/en-us/azure/role-based-access-control/role-definitions) in the Azure documentation for more details.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primary = azure.core.getSubscription({});\nconst example = new azure.authorization.RoleDefinition(\"example\", {\n    scope: primary.then(primary =\u003e primary.id),\n    description: \"This is a custom role created\",\n    permissions: [{\n        actions: [\"*\"],\n        notActions: [],\n    }],\n    assignableScopes: [primary.then(primary =\u003e primary.id)],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary = azure.core.get_subscription()\nexample = azure.authorization.RoleDefinition(\"example\",\n    scope=primary.id,\n    description=\"This is a custom role created\",\n    permissions=[azure.authorization.RoleDefinitionPermissionArgs(\n        actions=[\"*\"],\n        not_actions=[],\n    )],\n    assignable_scopes=[primary.id])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var primary = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var example = new Azure.Authorization.RoleDefinition(\"example\", new Azure.Authorization.RoleDefinitionArgs\n        {\n            Scope = primary.Apply(primary =\u003e primary.Id),\n            Description = \"This is a custom role created\",\n            Permissions = \n            {\n                new Azure.Authorization.Inputs.RoleDefinitionPermissionArgs\n                {\n                    Actions = \n                    {\n                        \"*\",\n                    },\n                    NotActions = {},\n                },\n            },\n            AssignableScopes = \n            {\n                primary.Apply(primary =\u003e primary.Id),\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewRoleDefinition(ctx, \"example\", \u0026authorization.RoleDefinitionArgs{\n\t\t\tScope:       pulumi.String(primary.Id),\n\t\t\tDescription: pulumi.String(\"This is a custom role created\"),\n\t\t\tPermissions: authorization.RoleDefinitionPermissionArray{\n\t\t\t\t\u0026authorization.RoleDefinitionPermissionArgs{\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tNotActions: pulumi.StringArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAssignableScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(primary.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRole Definitions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:authorization/roleDefinition:RoleDefinition example \"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000|/subscriptions/00000000-0000-0000-0000-000000000000\"\n```\n\n ",
      "inputProperties": {
        "assignableScopes": {
          "description": "One or more assignable scopes for this Role Definition, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "A description of the Role Definition.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Role Definition. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "permissions": {
          "description": "A `permissions` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:authorization/RoleDefinitionPermission:RoleDefinitionPermission"
          },
          "type": "array"
        },
        "roleDefinitionId": {
          "description": "A unique UUID/GUID which identifies this role - one will be generated if not specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "The scope at which the Role Definition applies too, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`. It is recommended to use the first entry of the `assignable_scopes`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "assignableScopes": {
          "description": "One or more assignable scopes for this Role Definition, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "A description of the Role Definition.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Role Definition. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "permissions": {
          "description": "A `permissions` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:authorization/RoleDefinitionPermission:RoleDefinitionPermission"
          },
          "type": "array"
        },
        "roleDefinitionId": {
          "description": "A unique UUID/GUID which identifies this role - one will be generated if not specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roleDefinitionResourceId": {
          "description": "The Azure Resource Manager ID for the resource.\n",
          "type": "string"
        },
        "scope": {
          "description": "The scope at which the Role Definition applies too, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`. It is recommended to use the first entry of the `assignable_scopes`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "assignableScopes",
        "name",
        "roleDefinitionId",
        "roleDefinitionResourceId",
        "scope"
      ],
      "requiredInputs": [
        "scope"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RoleDefinition resources.\n",
        "properties": {
          "assignableScopes": {
            "description": "One or more assignable scopes for this Role Definition, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "A description of the Role Definition.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Role Definition. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "permissions": {
            "description": "A `permissions` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:authorization/RoleDefinitionPermission:RoleDefinitionPermission"
            },
            "type": "array"
          },
          "roleDefinitionId": {
            "description": "A unique UUID/GUID which identifies this role - one will be generated if not specified. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "roleDefinitionResourceId": {
            "description": "The Azure Resource Manager ID for the resource.\n",
            "type": "string"
          },
          "scope": {
            "description": "The scope at which the Role Definition applies too, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`. It is recommended to use the first entry of the `assignable_scopes`. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:authorization/userAssignedIdentity:UserAssignedIdentity": {
      "aliases": [
        {
          "type": "azure:msi/userAssignedIdentity:UserAssignedIdentity"
        }
      ],
      "description": "Manages a user assigned identity.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleUserAssignedIdentity = new azure.authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_user_assigned_identity = azure.authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleUserAssignedIdentity = new Azure.Authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\", new Azure.Authorization.UserAssignedIdentityArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewUserAssignedIdentity(ctx, \"exampleUserAssignedIdentity\", \u0026authorization.UserAssignedIdentityArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUser Assigned Identities can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:authorization/userAssignedIdentity:UserAssignedIdentity exampleIdentity /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acceptanceTestResourceGroup1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testIdentity\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The location/region where the user assigned identity is\ncreated.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the user assigned identity. Changing this forces a\nnew identity to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the user assigned identity.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "clientId": {
          "description": "Client ID associated with the user assigned identity.\n",
          "type": "string"
        },
        "location": {
          "description": "The location/region where the user assigned identity is\ncreated.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the user assigned identity. Changing this forces a\nnew identity to be created.\n",
          "type": "string"
        },
        "principalId": {
          "description": "Service Principal ID associated with the user assigned identity.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the user assigned identity.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "tenantId": {
          "description": "Tenant ID associated with the user assigned identity.\n",
          "type": "string"
        }
      },
      "required": [
        "clientId",
        "location",
        "name",
        "principalId",
        "resourceGroupName",
        "tenantId"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering UserAssignedIdentity resources.\n",
        "properties": {
          "clientId": {
            "description": "Client ID associated with the user assigned identity.\n",
            "type": "string"
          },
          "location": {
            "description": "The location/region where the user assigned identity is\ncreated.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the user assigned identity. Changing this forces a\nnew identity to be created.\n",
            "type": "string"
          },
          "principalId": {
            "description": "Service Principal ID associated with the user assigned identity.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the user assigned identity.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "tenantId": {
            "description": "Tenant ID associated with the user assigned identity.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/account:Account": {
      "description": "Manages a Automation Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Basic\",\n    tags: {\n        environment: \"development\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.automation.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Basic\",\n    tags={\n        \"environment\": \"development\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Automation.Account(\"exampleAccount\", new Azure.Automation.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Basic\",\n            Tags = \n            {\n                { \"environment\", \"development\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/automation\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = automation.NewAccount(ctx, \"exampleAccount\", \u0026automation.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"Basic\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"development\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation Accounts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/account:Account account1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Automation/automationAccounts/account1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Automation Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Automation Account is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The SKU name of the account - only `Basic` is supported at this time.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "dscPrimaryAccessKey": {
          "description": "The Primary Access Key for the DSC Endpoint associated with this Automation Account.\n",
          "type": "string"
        },
        "dscSecondaryAccessKey": {
          "description": "The Secondary Access Key for the DSC Endpoint associated with this Automation Account.\n",
          "type": "string"
        },
        "dscServerEndpoint": {
          "description": "The DSC Server Endpoint associated with this Automation Account.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Automation Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Automation Account is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The SKU name of the account - only `Basic` is supported at this time.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "dscPrimaryAccessKey",
        "dscSecondaryAccessKey",
        "dscServerEndpoint",
        "location",
        "name",
        "resourceGroupName",
        "skuName"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Account resources.\n",
        "properties": {
          "dscPrimaryAccessKey": {
            "description": "The Primary Access Key for the DSC Endpoint associated with this Automation Account.\n",
            "type": "string"
          },
          "dscSecondaryAccessKey": {
            "description": "The Secondary Access Key for the DSC Endpoint associated with this Automation Account.\n",
            "type": "string"
          },
          "dscServerEndpoint": {
            "description": "The DSC Server Endpoint associated with this Automation Account.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Automation Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Automation Account is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The SKU name of the account - only `Basic` is supported at this time.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/boolVariable:BoolVariable": {
      "description": "Manages a boolean variable in Azure Automation\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: [{\n        name: \"Basic\",\n    }],\n});\nconst exampleBoolVariable = new azure.automation.BoolVariable(\"exampleBoolVariable\", {\n    resourceGroupName: exampleResourceGroup.name,\n    automationAccountName: exampleAccount.name,\n    value: false,\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation Bool Variable can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/boolVariable:BoolVariable example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/tfex-example-rg/providers/Microsoft.Automation/automationAccounts/tfex-example-account/variables/tfex-example-var\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Variable is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Automation Variable.\n",
          "type": "string"
        },
        "encrypted": {
          "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "The value of the Automation Variable as a `boolean`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Variable is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Automation Variable.\n",
          "type": "string"
        },
        "encrypted": {
          "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "The value of the Automation Variable as a `boolean`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "automationAccountName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "automationAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BoolVariable resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Variable is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the Automation Variable.\n",
            "type": "string"
          },
          "encrypted": {
            "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name of the Automation Variable. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Automation Variable. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "value": {
            "description": "The value of the Automation Variable as a `boolean`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/certificate:Certificate": {
      "description": "Manages an Automation Certificate.\n\n\n## Import\n\nAutomation Certificates can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/certificate:Certificate certificate1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Automation/automationAccounts/account1/certificates/certificate1\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Certificate is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "base64": {
          "description": "Base64 encoded value of the certificate.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of this Automation Certificate.\n",
          "type": "string"
        },
        "exportable": {
          "description": "The is exportable flag of the certificate.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Certificate is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Certificate is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "base64": {
          "description": "Base64 encoded value of the certificate.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of this Automation Certificate.\n",
          "type": "string"
        },
        "exportable": {
          "description": "The is exportable flag of the certificate.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Certificate is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "thumbprint": {
          "description": "The thumbprint for the certificate.\n",
          "type": "string"
        }
      },
      "required": [
        "automationAccountName",
        "base64",
        "exportable",
        "name",
        "resourceGroupName",
        "thumbprint"
      ],
      "requiredInputs": [
        "automationAccountName",
        "base64",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Certificate resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Certificate is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "base64": {
            "description": "Base64 encoded value of the certificate.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of this Automation Certificate.\n",
            "type": "string"
          },
          "exportable": {
            "description": "The is exportable flag of the certificate.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the Certificate. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Certificate is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "thumbprint": {
            "description": "The thumbprint for the certificate.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/connection:Connection": {
      "description": "Manages an Automation Connection.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleClientConfig = azure.core.getClientConfig({});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: [{\n        name: \"Basic\",\n    }],\n});\nconst exampleConnection = new azure.automation.Connection(\"exampleConnection\", {\n    resourceGroupName: exampleResourceGroup.name,\n    automationAccountName: exampleAccount.name,\n    type: \"AzureServicePrincipal\",\n    values: {\n        ApplicationId: \"00000000-0000-0000-0000-000000000000\",\n        TenantId: exampleClientConfig.then(exampleClientConfig =\u003e exampleClientConfig.tenantId),\n        SubscriptionId: exampleClientConfig.then(exampleClientConfig =\u003e exampleClientConfig.subscriptionId),\n        CertificateThumbprint: \"sample-certificate-thumbprint\",\n    },\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation Connection can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/connection:Connection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Automation/automationAccounts/account1/connections/conn1\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this Connection.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "type": {
          "description": "The type of the Connection - can be either builtin type such as `Azure`, `AzureClassicCertificate`, and `AzureServicePrincipal`, or a user defined types. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "values": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of key value pairs passed to the connection. Different `type` needs different parameters in the `values`. Builtin types have required field values as below:\n",
          "type": "object"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this Connection.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "type": {
          "description": "The type of the Connection - can be either builtin type such as `Azure`, `AzureClassicCertificate`, and `AzureServicePrincipal`, or a user defined types. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "values": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of key value pairs passed to the connection. Different `type` needs different parameters in the `values`. Builtin types have required field values as below:\n",
          "type": "object"
        }
      },
      "required": [
        "automationAccountName",
        "name",
        "resourceGroupName",
        "type",
        "values"
      ],
      "requiredInputs": [
        "automationAccountName",
        "resourceGroupName",
        "type",
        "values"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Connection resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Connection is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "A description for this Connection.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Connection. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Connection is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "type": {
            "description": "The type of the Connection - can be either builtin type such as `Azure`, `AzureClassicCertificate`, and `AzureServicePrincipal`, or a user defined types. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "values": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of key value pairs passed to the connection. Different `type` needs different parameters in the `values`. Builtin types have required field values as below:\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/connectionCertificate:ConnectionCertificate": {
      "description": "Manages an Automation Connection with type `Azure`.\n\n\n## Import\n\nAutomation Connection can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/connectionCertificate:ConnectionCertificate example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Automation/automationAccounts/account1/connections/conn1\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "automationCertificateName": {
          "description": "The name of the automation certificate.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this Connection.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "The id of subscription where the automation certificate exists.\n",
          "type": "string"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "automationCertificateName": {
          "description": "The name of the automation certificate.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this Connection.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "The id of subscription where the automation certificate exists.\n",
          "type": "string"
        }
      },
      "required": [
        "automationAccountName",
        "automationCertificateName",
        "name",
        "resourceGroupName",
        "subscriptionId"
      ],
      "requiredInputs": [
        "automationAccountName",
        "automationCertificateName",
        "resourceGroupName",
        "subscriptionId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ConnectionCertificate resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Connection is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "automationCertificateName": {
            "description": "The name of the automation certificate.\n",
            "type": "string"
          },
          "description": {
            "description": "A description for this Connection.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Connection. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Connection is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subscriptionId": {
            "description": "The id of subscription where the automation certificate exists.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/connectionClassicCertificate:ConnectionClassicCertificate": {
      "description": "Manages an Automation Connection with type `AzureClassicCertificate`.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleClientConfig = azure.core.getClientConfig({});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: [{\n        name: \"Basic\",\n    }],\n});\nconst exampleConnectionClassicCertificate = new azure.automation.ConnectionClassicCertificate(\"exampleConnectionClassicCertificate\", {\n    resourceGroupName: exampleResourceGroup.name,\n    automationAccountName: exampleAccount.name,\n    certificateAssetName: \"cert1\",\n    subscriptionName: \"subs1\",\n    subscriptionId: exampleClientConfig.then(exampleClientConfig =\u003e exampleClientConfig.subscriptionId),\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation Connection can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/connectionClassicCertificate:ConnectionClassicCertificate conn1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Automation/automationAccounts/account1/connections/conn1\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "certificateAssetName": {
          "description": "The name of the certificate asset.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this Connection.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "The id of subscription.\n",
          "type": "string"
        },
        "subscriptionName": {
          "description": "The name of subscription.\n",
          "type": "string"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "certificateAssetName": {
          "description": "The name of the certificate asset.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this Connection.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "The id of subscription.\n",
          "type": "string"
        },
        "subscriptionName": {
          "description": "The name of subscription.\n",
          "type": "string"
        }
      },
      "required": [
        "automationAccountName",
        "certificateAssetName",
        "name",
        "resourceGroupName",
        "subscriptionId",
        "subscriptionName"
      ],
      "requiredInputs": [
        "automationAccountName",
        "certificateAssetName",
        "resourceGroupName",
        "subscriptionId",
        "subscriptionName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ConnectionClassicCertificate resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Connection is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "certificateAssetName": {
            "description": "The name of the certificate asset.\n",
            "type": "string"
          },
          "description": {
            "description": "A description for this Connection.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Connection. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Connection is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subscriptionId": {
            "description": "The id of subscription.\n",
            "type": "string"
          },
          "subscriptionName": {
            "description": "The name of subscription.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/connectionServicePrincipal:ConnectionServicePrincipal": {
      "description": "Manages an Automation Connection with type `AzureServicePrincipal`.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * from \"fs\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleClientConfig = azure.core.getClientConfig({});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: [{\n        name: \"Basic\",\n    }],\n});\nconst exampleConnectionServicePrincipal = new azure.automation.ConnectionServicePrincipal(\"exampleConnectionServicePrincipal\", {\n    resourceGroupName: exampleResourceGroup.name,\n    automationAccountName: exampleAccount.name,\n    applicationId: \"00000000-0000-0000-0000-000000000000\",\n    tenantId: exampleClientConfig.then(exampleClientConfig =\u003e exampleClientConfig.tenantId),\n    subscriptionId: exampleClientConfig.then(exampleClientConfig =\u003e exampleClientConfig.subscriptionId),\n    certificateThumbprint: fs.readFileSync(\"automation_certificate_test.thumb\"),\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation Connection can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/connectionServicePrincipal:ConnectionServicePrincipal conn1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Automation/automationAccounts/account1/connections/conn1\n```\n\n ",
      "inputProperties": {
        "applicationId": {
          "description": "The (Client) ID of the Service Principal.\n",
          "type": "string"
        },
        "automationAccountName": {
          "description": "The name of the automation account in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "certificateThumbprint": {
          "description": "The thumbprint of the Service Principal Certificate.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this Connection.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "The subscription GUID.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant the Service Principal is assigned in.\n",
          "type": "string"
        }
      },
      "properties": {
        "applicationId": {
          "description": "The (Client) ID of the Service Principal.\n",
          "type": "string"
        },
        "automationAccountName": {
          "description": "The name of the automation account in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "certificateThumbprint": {
          "description": "The thumbprint of the Service Principal Certificate.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this Connection.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Connection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "The subscription GUID.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant the Service Principal is assigned in.\n",
          "type": "string"
        }
      },
      "required": [
        "applicationId",
        "automationAccountName",
        "certificateThumbprint",
        "name",
        "resourceGroupName",
        "subscriptionId",
        "tenantId"
      ],
      "requiredInputs": [
        "applicationId",
        "automationAccountName",
        "certificateThumbprint",
        "resourceGroupName",
        "subscriptionId",
        "tenantId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ConnectionServicePrincipal resources.\n",
        "properties": {
          "applicationId": {
            "description": "The (Client) ID of the Service Principal.\n",
            "type": "string"
          },
          "automationAccountName": {
            "description": "The name of the automation account in which the Connection is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "certificateThumbprint": {
            "description": "The thumbprint of the Service Principal Certificate.\n",
            "type": "string"
          },
          "description": {
            "description": "A description for this Connection.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Connection. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Connection is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subscriptionId": {
            "description": "The subscription GUID.\n",
            "type": "string"
          },
          "tenantId": {
            "description": "The ID of the Tenant the Service Principal is assigned in.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/credential:Credential": {
      "description": "Manages a Automation Credential.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Basic\",\n});\nconst exampleCredential = new azure.automation.Credential(\"exampleCredential\", {\n    resourceGroupName: exampleResourceGroup.name,\n    automationAccountName: exampleAccount.name,\n    username: \"example_user\",\n    password: \"example_pwd\",\n    description: \"This is an example credential\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.automation.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Basic\")\nexample_credential = azure.automation.Credential(\"exampleCredential\",\n    resource_group_name=example_resource_group.name,\n    automation_account_name=example_account.name,\n    username=\"example_user\",\n    password=\"example_pwd\",\n    description=\"This is an example credential\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Automation.Account(\"exampleAccount\", new Azure.Automation.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Basic\",\n        });\n        var exampleCredential = new Azure.Automation.Credential(\"exampleCredential\", new Azure.Automation.CredentialArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            AutomationAccountName = exampleAccount.Name,\n            Username = \"example_user\",\n            Password = \"example_pwd\",\n            Description = \"This is an example credential\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/automation\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := automation.NewAccount(ctx, \"exampleAccount\", \u0026automation.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"Basic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = automation.NewCredential(ctx, \"exampleCredential\", \u0026automation.CredentialArgs{\n\t\t\tResourceGroupName:     exampleResourceGroup.Name,\n\t\t\tAutomationAccountName: exampleAccount.Name,\n\t\t\tUsername:              pulumi.String(\"example_user\"),\n\t\t\tPassword:              pulumi.String(\"example_pwd\"),\n\t\t\tDescription:           pulumi.String(\"This is an example credential\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation Credentials can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/credential:Credential credential1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Automation/automationAccounts/account1/credentials/credential1\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Credential is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description associated with this Automation Credential.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Credential. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "password": {
          "description": "The password associated with this Automation Credential.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Credential is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "username": {
          "description": "The username associated with this Automation Credential.\n",
          "type": "string"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Credential is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description associated with this Automation Credential.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Credential. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "password": {
          "description": "The password associated with this Automation Credential.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Credential is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "username": {
          "description": "The username associated with this Automation Credential.\n",
          "type": "string"
        }
      },
      "required": [
        "automationAccountName",
        "name",
        "password",
        "resourceGroupName",
        "username"
      ],
      "requiredInputs": [
        "automationAccountName",
        "password",
        "resourceGroupName",
        "username"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Credential resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Credential is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description associated with this Automation Credential.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Credential. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "password": {
            "description": "The password associated with this Automation Credential.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Credential is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "username": {
            "description": "The username associated with this Automation Credential.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/dateTimeVariable:DateTimeVariable": {
      "description": "Manages a DateTime variable in Azure Automation\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: [{\n        name: \"Basic\",\n    }],\n});\nconst exampleDateTimeVariable = new azure.automation.DateTimeVariable(\"exampleDateTimeVariable\", {\n    resourceGroupName: exampleResourceGroup.name,\n    automationAccountName: exampleAccount.name,\n    value: \"2019-04-24T21:40:54.074Z\",\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation DateTime Variable can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/dateTimeVariable:DateTimeVariable example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/tfex-example-rg/providers/Microsoft.Automation/automationAccounts/tfex-example-account/variables/tfex-example-var\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Variable is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Automation Variable.\n",
          "type": "string"
        },
        "encrypted": {
          "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "The value of the Automation Variable in the [RFC3339 Section 5.6 Internet Date/Time Format](https://tools.ietf.org/html/rfc3339#section-5.6).\n",
          "type": "string"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Variable is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Automation Variable.\n",
          "type": "string"
        },
        "encrypted": {
          "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "The value of the Automation Variable in the [RFC3339 Section 5.6 Internet Date/Time Format](https://tools.ietf.org/html/rfc3339#section-5.6).\n",
          "type": "string"
        }
      },
      "required": [
        "automationAccountName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "automationAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DateTimeVariable resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Variable is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the Automation Variable.\n",
            "type": "string"
          },
          "encrypted": {
            "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name of the Automation Variable. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Automation Variable. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "value": {
            "description": "The value of the Automation Variable in the [RFC3339 Section 5.6 Internet Date/Time Format](https://tools.ietf.org/html/rfc3339#section-5.6).\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/dscConfiguration:DscConfiguration": {
      "description": "Manages a Automation DSC Configuration.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: [{\n        name: \"Basic\",\n    }],\n});\nconst exampleDscConfiguration = new azure.automation.DscConfiguration(\"exampleDscConfiguration\", {\n    resourceGroupName: exampleResourceGroup.name,\n    automationAccountName: exampleAccount.name,\n    location: exampleResourceGroup.location,\n    contentEmbedded: \"configuration test {}\",\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation DSC Configuration's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/dscConfiguration:DscConfiguration configuration1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Automation/automationAccounts/account1/configurations/configuration1\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the DSC Configuration is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "contentEmbedded": {
          "description": "The PowerShell DSC Configuration script.\n",
          "type": "string"
        },
        "description": {
          "description": "Description to go with DSC Configuration.\n",
          "type": "string"
        },
        "location": {
          "description": "Must be the same location as the Automation Account.\n",
          "type": "string"
        },
        "logVerbose": {
          "description": "Verbose log option.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the DSC Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the DSC Configuration is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the DSC Configuration is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "contentEmbedded": {
          "description": "The PowerShell DSC Configuration script.\n",
          "type": "string"
        },
        "description": {
          "description": "Description to go with DSC Configuration.\n",
          "type": "string"
        },
        "location": {
          "description": "Must be the same location as the Automation Account.\n",
          "type": "string"
        },
        "logVerbose": {
          "description": "Verbose log option.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the DSC Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the DSC Configuration is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "automationAccountName",
        "contentEmbedded",
        "location",
        "name",
        "resourceGroupName",
        "state"
      ],
      "requiredInputs": [
        "automationAccountName",
        "contentEmbedded",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DscConfiguration resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the DSC Configuration is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "contentEmbedded": {
            "description": "The PowerShell DSC Configuration script.\n",
            "type": "string"
          },
          "description": {
            "description": "Description to go with DSC Configuration.\n",
            "type": "string"
          },
          "location": {
            "description": "Must be the same location as the Automation Account.\n",
            "type": "string"
          },
          "logVerbose": {
            "description": "Verbose log option.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the DSC Configuration. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the DSC Configuration is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/dscNodeConfiguration:DscNodeConfiguration": {
      "description": "Manages a Automation DSC Node Configuration.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: [{\n        name: \"Basic\",\n    }],\n});\nconst exampleDscConfiguration = new azure.automation.DscConfiguration(\"exampleDscConfiguration\", {\n    resourceGroupName: exampleResourceGroup.name,\n    automationAccountName: exampleAccount.name,\n    location: exampleResourceGroup.location,\n    contentEmbedded: \"configuration test {}\",\n});\nconst exampleDscNodeConfiguration = new azure.automation.DscNodeConfiguration(\"exampleDscNodeConfiguration\", {\n    resourceGroupName: exampleResourceGroup.name,\n    automationAccountName: exampleAccount.name,\n    contentEmbedded: `instance of MSFT_FileDirectoryConfiguration as $MSFT_FileDirectoryConfiguration1ref\n{\n  ResourceID = \"[File]bla\";\n  Ensure = \"Present\";\n  Contents = \"bogus Content\";\n  DestinationPath = \"c:\\\\bogus.txt\";\n  ModuleName = \"PSDesiredStateConfiguration\";\n  SourceInfo = \"::3::9::file\";\n  ModuleVersion = \"1.0\";\n  ConfigurationName = \"bla\";\n};\ninstance of OMI_ConfigurationDocument\n{\n  Version=\"2.0.0\";\n  MinimumCompatibleVersion = \"1.0.0\";\n  CompatibleVersionAdditionalProperties= {\"Omi_BaseResource:ConfigurationName\"};\n  Author=\"bogusAuthor\";\n  GenerationDate=\"06/15/2018 14:06:24\";\n  GenerationHost=\"bogusComputer\";\n  Name=\"test\";\n};\n`,\n}, {\n    dependsOn: [exampleDscConfiguration],\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation DSC Node Configuration's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/dscNodeConfiguration:DscNodeConfiguration configuration1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Automation/automationAccounts/account1/nodeConfigurations/configuration1\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the DSC Node Configuration is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "contentEmbedded": {
          "description": "The PowerShell DSC Node Configuration (mof content).\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the DSC Node Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the DSC Node Configuration is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the DSC Node Configuration is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "configurationName": {
          "type": "string"
        },
        "contentEmbedded": {
          "description": "The PowerShell DSC Node Configuration (mof content).\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the DSC Node Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the DSC Node Configuration is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "automationAccountName",
        "configurationName",
        "contentEmbedded",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "automationAccountName",
        "contentEmbedded",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DscNodeConfiguration resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the DSC Node Configuration is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "configurationName": {
            "type": "string"
          },
          "contentEmbedded": {
            "description": "The PowerShell DSC Node Configuration (mof content).\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the DSC Node Configuration. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the DSC Node Configuration is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/intVariable:IntVariable": {
      "description": "Manages a integer variable in Azure Automation\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: [{\n        name: \"Basic\",\n    }],\n});\nconst exampleIntVariable = new azure.automation.IntVariable(\"exampleIntVariable\", {\n    resourceGroupName: exampleResourceGroup.name,\n    automationAccountName: exampleAccount.name,\n    value: 1234,\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation Int Variable can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/intVariable:IntVariable example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/tfex-example-rg/providers/Microsoft.Automation/automationAccounts/tfex-example-account/variables/tfex-example-var\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Variable is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Automation Variable.\n",
          "type": "string"
        },
        "encrypted": {
          "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "The value of the Automation Variable as a `integer`.\n",
          "type": "integer"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Variable is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Automation Variable.\n",
          "type": "string"
        },
        "encrypted": {
          "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "The value of the Automation Variable as a `integer`.\n",
          "type": "integer"
        }
      },
      "required": [
        "automationAccountName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "automationAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IntVariable resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Variable is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the Automation Variable.\n",
            "type": "string"
          },
          "encrypted": {
            "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name of the Automation Variable. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Automation Variable. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "value": {
            "description": "The value of the Automation Variable as a `integer`.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/jobSchedule:JobSchedule": {
      "description": "Links an Automation Runbook and Schedule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis is an example of just the Job Schedule.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.automation.JobSchedule(\"example\", {\n    automationAccountName: \"tf-automation-account\",\n    parameters: {\n        resourcegroup: \"tf-rgr-vm\",\n        vmname: \"TF-VM-01\",\n    },\n    resourceGroupName: \"tf-rgr-automation\",\n    runbookName: \"Get-VirtualMachine\",\n    scheduleName: \"hour\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.automation.JobSchedule(\"example\",\n    automation_account_name=\"tf-automation-account\",\n    parameters={\n        \"resourcegroup\": \"tf-rgr-vm\",\n        \"vmname\": \"TF-VM-01\",\n    },\n    resource_group_name=\"tf-rgr-automation\",\n    runbook_name=\"Get-VirtualMachine\",\n    schedule_name=\"hour\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Automation.JobSchedule(\"example\", new Azure.Automation.JobScheduleArgs\n        {\n            AutomationAccountName = \"tf-automation-account\",\n            Parameters = \n            {\n                { \"resourcegroup\", \"tf-rgr-vm\" },\n                { \"vmname\", \"TF-VM-01\" },\n            },\n            ResourceGroupName = \"tf-rgr-automation\",\n            RunbookName = \"Get-VirtualMachine\",\n            ScheduleName = \"hour\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/automation\"\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 := automation.NewJobSchedule(ctx, \"example\", \u0026automation.JobScheduleArgs{\n\t\t\tAutomationAccountName: pulumi.String(\"tf-automation-account\"),\n\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\"resourcegroup\": pulumi.String(\"tf-rgr-vm\"),\n\t\t\t\t\"vmname\":        pulumi.String(\"TF-VM-01\"),\n\t\t\t},\n\t\t\tResourceGroupName: pulumi.String(\"tf-rgr-automation\"),\n\t\t\tRunbookName:       pulumi.String(\"Get-VirtualMachine\"),\n\t\t\tScheduleName:      pulumi.String(\"hour\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation Job Schedules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/jobSchedule:JobSchedule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Automation/automationAccounts/account1/jobSchedules/10000000-1001-1001-1001-000000000001\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the Automation Account in which the Job Schedule is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "jobScheduleId": {
          "description": "The UUID identifying the Automation Job Schedule.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of key/value pairs corresponding to the arguments that can be passed to the Runbook. Changing this forces a new resource to be created.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Job Schedule is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "runOn": {
          "description": "Name of a Hybrid Worker Group the Runbook will be executed on. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "runbookName": {
          "description": "The name of a Runbook to link to a Schedule. It needs to be in the same Automation Account as the Schedule and Job Schedule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scheduleName": {
          "type": "string"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the Automation Account in which the Job Schedule is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "jobScheduleId": {
          "description": "The UUID identifying the Automation Job Schedule.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of key/value pairs corresponding to the arguments that can be passed to the Runbook. Changing this forces a new resource to be created.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Job Schedule is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "runOn": {
          "description": "Name of a Hybrid Worker Group the Runbook will be executed on. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "runbookName": {
          "description": "The name of a Runbook to link to a Schedule. It needs to be in the same Automation Account as the Schedule and Job Schedule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scheduleName": {
          "type": "string"
        }
      },
      "required": [
        "automationAccountName",
        "jobScheduleId",
        "resourceGroupName",
        "runbookName",
        "scheduleName"
      ],
      "requiredInputs": [
        "automationAccountName",
        "resourceGroupName",
        "runbookName",
        "scheduleName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering JobSchedule resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the Automation Account in which the Job Schedule is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "jobScheduleId": {
            "description": "The UUID identifying the Automation Job Schedule.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of key/value pairs corresponding to the arguments that can be passed to the Runbook. Changing this forces a new resource to be created.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Job Schedule is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "runOn": {
            "description": "Name of a Hybrid Worker Group the Runbook will be executed on. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "runbookName": {
            "description": "The name of a Runbook to link to a Schedule. It needs to be in the same Automation Account as the Schedule and Job Schedule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scheduleName": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/module:Module": {
      "description": "Manages a Automation Module.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: [{\n        name: \"Basic\",\n    }],\n});\nconst exampleModule = new azure.automation.Module(\"exampleModule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    automationAccountName: exampleAccount.name,\n    moduleLink: {\n        uri: \"https://devopsgallerystorage.blob.core.windows.net/packages/xactivedirectory.2.19.0.nupkg\",\n    },\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation Modules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/module:Module module1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Automation/automationAccounts/account1/modules/module1\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Module is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "moduleLink": {
          "$ref": "#/types/azure:automation/ModuleModuleLink:ModuleModuleLink",
          "description": "The published Module link.\n"
        },
        "name": {
          "description": "Specifies the name of the Module. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Module is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Module is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "moduleLink": {
          "$ref": "#/types/azure:automation/ModuleModuleLink:ModuleModuleLink",
          "description": "The published Module link.\n"
        },
        "name": {
          "description": "Specifies the name of the Module. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Module is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "automationAccountName",
        "moduleLink",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "automationAccountName",
        "moduleLink",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Module resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Module is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "moduleLink": {
            "$ref": "#/types/azure:automation/ModuleModuleLink:ModuleModuleLink",
            "description": "The published Module link.\n"
          },
          "name": {
            "description": "Specifies the name of the Module. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Module is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/runBook:RunBook": {
      "description": "Manages a Automation Runbook.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Basic\",\n});\nconst exampleRunBook = new azure.automation.RunBook(\"exampleRunBook\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    automationAccountName: exampleAccount.name,\n    logVerbose: \"true\",\n    logProgress: \"true\",\n    description: \"This is an example runbook\",\n    runbookType: \"PowerShellWorkflow\",\n    publishContentLink: {\n        uri: \"https://raw.githubusercontent.com/Azure/azure-quickstart-templates/c4935ffb69246a6058eb24f54640f53f69d3ac9f/101-automation-runbook-getvms/Runbooks/Get-AzureVMTutorial.ps1\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.automation.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Basic\")\nexample_run_book = azure.automation.RunBook(\"exampleRunBook\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    automation_account_name=example_account.name,\n    log_verbose=True,\n    log_progress=True,\n    description=\"This is an example runbook\",\n    runbook_type=\"PowerShellWorkflow\",\n    publish_content_link=azure.automation.RunBookPublishContentLinkArgs(\n        uri=\"https://raw.githubusercontent.com/Azure/azure-quickstart-templates/c4935ffb69246a6058eb24f54640f53f69d3ac9f/101-automation-runbook-getvms/Runbooks/Get-AzureVMTutorial.ps1\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Automation.Account(\"exampleAccount\", new Azure.Automation.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Basic\",\n        });\n        var exampleRunBook = new Azure.Automation.RunBook(\"exampleRunBook\", new Azure.Automation.RunBookArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AutomationAccountName = exampleAccount.Name,\n            LogVerbose = true,\n            LogProgress = true,\n            Description = \"This is an example runbook\",\n            RunbookType = \"PowerShellWorkflow\",\n            PublishContentLink = new Azure.Automation.Inputs.RunBookPublishContentLinkArgs\n            {\n                Uri = \"https://raw.githubusercontent.com/Azure/azure-quickstart-templates/c4935ffb69246a6058eb24f54640f53f69d3ac9f/101-automation-runbook-getvms/Runbooks/Get-AzureVMTutorial.ps1\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/automation\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := automation.NewAccount(ctx, \"exampleAccount\", \u0026automation.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"Basic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = automation.NewRunBook(ctx, \"exampleRunBook\", \u0026automation.RunBookArgs{\n\t\t\tLocation:              exampleResourceGroup.Location,\n\t\t\tResourceGroupName:     exampleResourceGroup.Name,\n\t\t\tAutomationAccountName: exampleAccount.Name,\n\t\t\tLogVerbose:            pulumi.Bool(true),\n\t\t\tLogProgress:           pulumi.Bool(true),\n\t\t\tDescription:           pulumi.String(\"This is an example runbook\"),\n\t\t\tRunbookType:           pulumi.String(\"PowerShellWorkflow\"),\n\t\t\tPublishContentLink: \u0026automation.RunBookPublishContentLinkArgs{\n\t\t\t\tUri: pulumi.String(\"https://raw.githubusercontent.com/Azure/azure-quickstart-templates/c4935ffb69246a6058eb24f54640f53f69d3ac9f/101-automation-runbook-getvms/Runbooks/Get-AzureVMTutorial.ps1\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation Runbooks can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/runBook:RunBook Get-AzureVMTutorial /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Automation/automationAccounts/account1/runbooks/Get-AzureVMTutorial\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Runbook is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "content": {
          "description": "The desired content of the runbook.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this credential.\n",
          "type": "string"
        },
        "jobSchedules": {
          "items": {
            "$ref": "#/types/azure:automation/RunBookJobSchedule:RunBookJobSchedule"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logProgress": {
          "description": "Progress log option.\n",
          "type": "boolean"
        },
        "logVerbose": {
          "description": "Verbose log option.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Runbook. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publishContentLink": {
          "$ref": "#/types/azure:automation/RunBookPublishContentLink:RunBookPublishContentLink",
          "description": "The published runbook content link.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Runbook is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "runbookType": {
          "description": "The type of the runbook - can be either `Graph`, `GraphPowerShell`, `GraphPowerShellWorkflow`, `PowerShellWorkflow`, `PowerShell` or `Script`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Runbook is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "content": {
          "description": "The desired content of the runbook.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this credential.\n",
          "type": "string"
        },
        "jobSchedules": {
          "items": {
            "$ref": "#/types/azure:automation/RunBookJobSchedule:RunBookJobSchedule"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logProgress": {
          "description": "Progress log option.\n",
          "type": "boolean"
        },
        "logVerbose": {
          "description": "Verbose log option.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Runbook. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publishContentLink": {
          "$ref": "#/types/azure:automation/RunBookPublishContentLink:RunBookPublishContentLink",
          "description": "The published runbook content link.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Runbook is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "runbookType": {
          "description": "The type of the runbook - can be either `Graph`, `GraphPowerShell`, `GraphPowerShellWorkflow`, `PowerShellWorkflow`, `PowerShell` or `Script`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "automationAccountName",
        "content",
        "jobSchedules",
        "location",
        "logProgress",
        "logVerbose",
        "name",
        "resourceGroupName",
        "runbookType"
      ],
      "requiredInputs": [
        "automationAccountName",
        "logProgress",
        "logVerbose",
        "resourceGroupName",
        "runbookType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RunBook resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Runbook is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "content": {
            "description": "The desired content of the runbook.\n",
            "type": "string"
          },
          "description": {
            "description": "A description for this credential.\n",
            "type": "string"
          },
          "jobSchedules": {
            "items": {
              "$ref": "#/types/azure:automation/RunBookJobSchedule:RunBookJobSchedule"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "logProgress": {
            "description": "Progress log option.\n",
            "type": "boolean"
          },
          "logVerbose": {
            "description": "Verbose log option.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the Runbook. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "publishContentLink": {
            "$ref": "#/types/azure:automation/RunBookPublishContentLink:RunBookPublishContentLink",
            "description": "The published runbook content link.\n"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Runbook is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "runbookType": {
            "description": "The type of the runbook - can be either `Graph`, `GraphPowerShell`, `GraphPowerShellWorkflow`, `PowerShellWorkflow`, `PowerShell` or `Script`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/schedule:Schedule": {
      "description": "Manages a Automation Schedule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: [{\n        name: \"Basic\",\n    }],\n});\nconst exampleSchedule = new azure.automation.Schedule(\"exampleSchedule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    automationAccountName: exampleAccount.name,\n    frequency: \"Week\",\n    interval: 1,\n    timezone: \"Australia/Perth\",\n    startTime: \"2014-04-15T18:00:15+02:00\",\n    description: \"This is an example schedule\",\n    weekDays: [\"Friday\"],\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation Schedule can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/schedule:Schedule schedule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Automation/automationAccounts/account1/schedules/schedule1\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Schedule is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this Schedule.\n",
          "type": "string"
        },
        "expiryTime": {
          "description": "The end time of the schedule.\n",
          "type": "string"
        },
        "frequency": {
          "description": "The frequency of the schedule. - can be either `OneTime`, `Day`, `Hour`, `Week`, or `Month`.\n",
          "type": "string"
        },
        "interval": {
          "description": "The number of `frequency`s between runs. Only valid when frequency is `Day`, `Hour`, `Week`, or `Month` and defaults to `1`.\n",
          "type": "integer"
        },
        "monthDays": {
          "description": "List of days of the month that the job should execute on. Must be between `1` and `31`. `-1` for last day of the month. Only valid when frequency is `Month`.\n",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "monthlyOccurrences": {
          "description": "List of occurrences of days within a month. Only valid when frequency is `Month`. The `monthly_occurrence` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:automation/ScheduleMonthlyOccurrence:ScheduleMonthlyOccurrence"
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the Schedule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Schedule is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "startTime": {
          "description": "Start time of the schedule. Must be at least five minutes in the future. Defaults to seven minutes in the future from the time the resource is created.\n",
          "type": "string"
        },
        "timezone": {
          "description": "The timezone of the start time. Defaults to `UTC`. For possible values see: https://s2.automation.ext.azure.com/api/Orchestrator/TimeZones?_=1594792230258\n",
          "type": "string"
        },
        "weekDays": {
          "description": "List of days of the week that the job should execute on. Only valid when frequency is `Week`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Schedule is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this Schedule.\n",
          "type": "string"
        },
        "expiryTime": {
          "description": "The end time of the schedule.\n",
          "type": "string"
        },
        "frequency": {
          "description": "The frequency of the schedule. - can be either `OneTime`, `Day`, `Hour`, `Week`, or `Month`.\n",
          "type": "string"
        },
        "interval": {
          "description": "The number of `frequency`s between runs. Only valid when frequency is `Day`, `Hour`, `Week`, or `Month` and defaults to `1`.\n",
          "type": "integer"
        },
        "monthDays": {
          "description": "List of days of the month that the job should execute on. Must be between `1` and `31`. `-1` for last day of the month. Only valid when frequency is `Month`.\n",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "monthlyOccurrences": {
          "description": "List of occurrences of days within a month. Only valid when frequency is `Month`. The `monthly_occurrence` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:automation/ScheduleMonthlyOccurrence:ScheduleMonthlyOccurrence"
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the Schedule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Schedule is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "startTime": {
          "description": "Start time of the schedule. Must be at least five minutes in the future. Defaults to seven minutes in the future from the time the resource is created.\n",
          "type": "string"
        },
        "timezone": {
          "description": "The timezone of the start time. Defaults to `UTC`. For possible values see: https://s2.automation.ext.azure.com/api/Orchestrator/TimeZones?_=1594792230258\n",
          "type": "string"
        },
        "weekDays": {
          "description": "List of days of the week that the job should execute on. Only valid when frequency is `Week`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "automationAccountName",
        "expiryTime",
        "frequency",
        "interval",
        "name",
        "resourceGroupName",
        "startTime"
      ],
      "requiredInputs": [
        "automationAccountName",
        "frequency",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Schedule resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Schedule is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "A description for this Schedule.\n",
            "type": "string"
          },
          "expiryTime": {
            "description": "The end time of the schedule.\n",
            "type": "string"
          },
          "frequency": {
            "description": "The frequency of the schedule. - can be either `OneTime`, `Day`, `Hour`, `Week`, or `Month`.\n",
            "type": "string"
          },
          "interval": {
            "description": "The number of `frequency`s between runs. Only valid when frequency is `Day`, `Hour`, `Week`, or `Month` and defaults to `1`.\n",
            "type": "integer"
          },
          "monthDays": {
            "description": "List of days of the month that the job should execute on. Must be between `1` and `31`. `-1` for last day of the month. Only valid when frequency is `Month`.\n",
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "monthlyOccurrences": {
            "description": "List of occurrences of days within a month. Only valid when frequency is `Month`. The `monthly_occurrence` block supports fields documented below.\n",
            "items": {
              "$ref": "#/types/azure:automation/ScheduleMonthlyOccurrence:ScheduleMonthlyOccurrence"
            },
            "type": "array"
          },
          "name": {
            "description": "Specifies the name of the Schedule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Schedule is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "startTime": {
            "description": "Start time of the schedule. Must be at least five minutes in the future. Defaults to seven minutes in the future from the time the resource is created.\n",
            "type": "string"
          },
          "timezone": {
            "description": "The timezone of the start time. Defaults to `UTC`. For possible values see: https://s2.automation.ext.azure.com/api/Orchestrator/TimeZones?_=1594792230258\n",
            "type": "string"
          },
          "weekDays": {
            "description": "List of days of the week that the job should execute on. Only valid when frequency is `Week`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:automation/stringVariable:StringVariable": {
      "description": "Manages a string variable in Azure Automation\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: [{\n        name: \"Basic\",\n    }],\n});\nconst exampleStringVariable = new azure.automation.StringVariable(\"exampleStringVariable\", {\n    resourceGroupName: exampleResourceGroup.name,\n    automationAccountName: exampleAccount.name,\n    value: \"Hello, Basic Test.\",\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutomation String Variable can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:automation/stringVariable:StringVariable example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/tfex-example-rg/providers/Microsoft.Automation/automationAccounts/tfex-example-account/variables/tfex-example-var\n```\n\n ",
      "inputProperties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Variable is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Automation Variable.\n",
          "type": "string"
        },
        "encrypted": {
          "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "The value of the Automation Variable as a `string`.\n",
          "type": "string"
        }
      },
      "properties": {
        "automationAccountName": {
          "description": "The name of the automation account in which the Variable is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Automation Variable.\n",
          "type": "string"
        },
        "encrypted": {
          "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Automation Variable. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "The value of the Automation Variable as a `string`.\n",
          "type": "string"
        }
      },
      "required": [
        "automationAccountName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "automationAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StringVariable resources.\n",
        "properties": {
          "automationAccountName": {
            "description": "The name of the automation account in which the Variable is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the Automation Variable.\n",
            "type": "string"
          },
          "encrypted": {
            "description": "Specifies if the Automation Variable is encrypted. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name of the Automation Variable. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Automation Variable. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "value": {
            "description": "The value of the Automation Variable as a `string`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:avs/cluster:Cluster": {
      "description": "Manages a Vmware Cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePrivateCloud = new azure.avs.PrivateCloud(\"examplePrivateCloud\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    skuName: \"av36\",\n    managementCluster: {\n        size: 3,\n    },\n    networkSubnetCidr: \"192.168.48.0/22\",\n    internetConnectionEnabled: false,\n    nsxtPassword: `QazWsx13$Edc`,\n    vcenterPassword: `WsxEdc23$Rfv`,\n});\nconst exampleCluster = new azure.avs.Cluster(\"exampleCluster\", {\n    vmwareCloudId: examplePrivateCloud.id,\n    clusterNodeCount: 3,\n    skuName: \"av36\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_private_cloud = azure.avs.PrivateCloud(\"examplePrivateCloud\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku_name=\"av36\",\n    management_cluster=azure.avs.PrivateCloudManagementClusterArgs(\n        size=3,\n    ),\n    network_subnet_cidr=\"192.168.48.0/22\",\n    internet_connection_enabled=False,\n    nsxt_password=\"QazWsx13$Edc\",\n    vcenter_password=\"WsxEdc23$Rfv\")\nexample_cluster = azure.avs.Cluster(\"exampleCluster\",\n    vmware_cloud_id=example_private_cloud.id,\n    cluster_node_count=3,\n    sku_name=\"av36\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePrivateCloud = new Azure.Avs.PrivateCloud(\"examplePrivateCloud\", new Azure.Avs.PrivateCloudArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            SkuName = \"av36\",\n            ManagementCluster = new Azure.Avs.Inputs.PrivateCloudManagementClusterArgs\n            {\n                Size = 3,\n            },\n            NetworkSubnetCidr = \"192.168.48.0/22\",\n            InternetConnectionEnabled = false,\n            NsxtPassword = \"QazWsx13$Edc\",\n            VcenterPassword = \"WsxEdc23$Rfv\",\n        });\n        var exampleCluster = new Azure.Avs.Cluster(\"exampleCluster\", new Azure.Avs.ClusterArgs\n        {\n            VmwareCloudId = examplePrivateCloud.Id,\n            ClusterNodeCount = 3,\n            SkuName = \"av36\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/avs\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePrivateCloud, err := avs.NewPrivateCloud(ctx, \"examplePrivateCloud\", \u0026avs.PrivateCloudArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSkuName:           pulumi.String(\"av36\"),\n\t\t\tManagementCluster: \u0026avs.PrivateCloudManagementClusterArgs{\n\t\t\t\tSize: pulumi.Int(3),\n\t\t\t},\n\t\t\tNetworkSubnetCidr:         pulumi.String(\"192.168.48.0/22\"),\n\t\t\tInternetConnectionEnabled: pulumi.Bool(false),\n\t\t\tNsxtPassword:              pulumi.String(fmt.Sprintf(\"%v%v%v\", \"QazWsx13\", \"$\", \"Edc\")),\n\t\t\tVcenterPassword:           pulumi.String(fmt.Sprintf(\"%v%v%v\", \"WsxEdc23\", \"$\", \"Rfv\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = avs.NewCluster(ctx, \"exampleCluster\", \u0026avs.ClusterArgs{\n\t\t\tVmwareCloudId:    examplePrivateCloud.ID(),\n\t\t\tClusterNodeCount: pulumi.Int(3),\n\t\t\tSkuName:          pulumi.String(\"av36\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVmware Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:avs/cluster:Cluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.AVS/privateClouds/privateCloud1/clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "clusterNodeCount": {
          "description": "The count of the Vmware Cluster nodes.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name which should be used for this Vmware Cluster. Changing this forces a new Vmware Cluster to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The cluster sku to use. Possible values are `av20`, `av36`, and `av36t`. Changing this forces a new Vmware Cluster to be created.\n",
          "type": "string"
        },
        "vmwareCloudId": {
          "description": "The ID of the Vmware Private Cloud in which to create this Vmware Cluster. Changing this forces a new Vmware Cluster to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "clusterNodeCount": {
          "description": "The count of the Vmware Cluster nodes.\n",
          "type": "integer"
        },
        "clusterNumber": {
          "description": "A number that identifies this Vmware Cluster in its Vmware Private Cloud.\n",
          "type": "integer"
        },
        "hosts": {
          "description": "A list of host of the Vmware Cluster.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this Vmware Cluster. Changing this forces a new Vmware Cluster to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The cluster sku to use. Possible values are `av20`, `av36`, and `av36t`. Changing this forces a new Vmware Cluster to be created.\n",
          "type": "string"
        },
        "vmwareCloudId": {
          "description": "The ID of the Vmware Private Cloud in which to create this Vmware Cluster. Changing this forces a new Vmware Cluster to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "clusterNodeCount",
        "clusterNumber",
        "hosts",
        "name",
        "skuName",
        "vmwareCloudId"
      ],
      "requiredInputs": [
        "clusterNodeCount",
        "skuName",
        "vmwareCloudId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Cluster resources.\n",
        "properties": {
          "clusterNodeCount": {
            "description": "The count of the Vmware Cluster nodes.\n",
            "type": "integer"
          },
          "clusterNumber": {
            "description": "A number that identifies this Vmware Cluster in its Vmware Private Cloud.\n",
            "type": "integer"
          },
          "hosts": {
            "description": "A list of host of the Vmware Cluster.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name which should be used for this Vmware Cluster. Changing this forces a new Vmware Cluster to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The cluster sku to use. Possible values are `av20`, `av36`, and `av36t`. Changing this forces a new Vmware Cluster to be created.\n",
            "type": "string"
          },
          "vmwareCloudId": {
            "description": "The ID of the Vmware Private Cloud in which to create this Vmware Cluster. Changing this forces a new Vmware Cluster to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:avs/expressRouteAuthorization:ExpressRouteAuthorization": {
      "description": "Manages an Express Route Vmware Authorization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePrivateCloud = new azure.avs.PrivateCloud(\"examplePrivateCloud\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    skuName: \"av36\",\n    managementCluster: {\n        size: 3,\n    },\n    networkSubnetCidr: \"192.168.48.0/22\",\n    internetConnectionEnabled: false,\n    nsxtPassword: `QazWsx13$Edc`,\n    vcenterPassword: `WsxEdc23$Rfv`,\n});\nconst exampleExpressRouteAuthorization = new azure.avs.ExpressRouteAuthorization(\"exampleExpressRouteAuthorization\", {privateCloudId: examplePrivateCloud.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_private_cloud = azure.avs.PrivateCloud(\"examplePrivateCloud\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku_name=\"av36\",\n    management_cluster=azure.avs.PrivateCloudManagementClusterArgs(\n        size=3,\n    ),\n    network_subnet_cidr=\"192.168.48.0/22\",\n    internet_connection_enabled=False,\n    nsxt_password=\"QazWsx13$Edc\",\n    vcenter_password=\"WsxEdc23$Rfv\")\nexample_express_route_authorization = azure.avs.ExpressRouteAuthorization(\"exampleExpressRouteAuthorization\", private_cloud_id=example_private_cloud.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePrivateCloud = new Azure.Avs.PrivateCloud(\"examplePrivateCloud\", new Azure.Avs.PrivateCloudArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            SkuName = \"av36\",\n            ManagementCluster = new Azure.Avs.Inputs.PrivateCloudManagementClusterArgs\n            {\n                Size = 3,\n            },\n            NetworkSubnetCidr = \"192.168.48.0/22\",\n            InternetConnectionEnabled = false,\n            NsxtPassword = \"QazWsx13$Edc\",\n            VcenterPassword = \"WsxEdc23$Rfv\",\n        });\n        var exampleExpressRouteAuthorization = new Azure.Avs.ExpressRouteAuthorization(\"exampleExpressRouteAuthorization\", new Azure.Avs.ExpressRouteAuthorizationArgs\n        {\n            PrivateCloudId = examplePrivateCloud.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/avs\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePrivateCloud, err := avs.NewPrivateCloud(ctx, \"examplePrivateCloud\", \u0026avs.PrivateCloudArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSkuName:           pulumi.String(\"av36\"),\n\t\t\tManagementCluster: \u0026avs.PrivateCloudManagementClusterArgs{\n\t\t\t\tSize: pulumi.Int(3),\n\t\t\t},\n\t\t\tNetworkSubnetCidr:         pulumi.String(\"192.168.48.0/22\"),\n\t\t\tInternetConnectionEnabled: pulumi.Bool(false),\n\t\t\tNsxtPassword:              pulumi.String(fmt.Sprintf(\"%v%v%v\", \"QazWsx13\", \"$\", \"Edc\")),\n\t\t\tVcenterPassword:           pulumi.String(fmt.Sprintf(\"%v%v%v\", \"WsxEdc23\", \"$\", \"Rfv\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = avs.NewExpressRouteAuthorization(ctx, \"exampleExpressRouteAuthorization\", \u0026avs.ExpressRouteAuthorizationArgs{\n\t\t\tPrivateCloudId: examplePrivateCloud.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVmware Authorizations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:avs/expressRouteAuthorization:ExpressRouteAuthorization example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.AVS/privateClouds/privateCloud1/authorizations/authorization1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name which should be used for this Express Route Vmware Authorization. Changing this forces a new Vmware Authorization to be created.\n",
          "type": "string"
        },
        "privateCloudId": {
          "description": "The ID of the Vmware Private Cloud in which to create this Express Route Vmware Authorization. Changing this forces a new Vmware Authorization to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "expressRouteAuthorizationId": {
          "description": "The ID of the Express Route Circuit Authorization.\n",
          "type": "string"
        },
        "expressRouteAuthorizationKey": {
          "description": "The key of the Express Route Circuit Authorization.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Express Route Vmware Authorization. Changing this forces a new Vmware Authorization to be created.\n",
          "type": "string"
        },
        "privateCloudId": {
          "description": "The ID of the Vmware Private Cloud in which to create this Express Route Vmware Authorization. Changing this forces a new Vmware Authorization to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "expressRouteAuthorizationId",
        "expressRouteAuthorizationKey",
        "name",
        "privateCloudId"
      ],
      "requiredInputs": [
        "privateCloudId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ExpressRouteAuthorization resources.\n",
        "properties": {
          "expressRouteAuthorizationId": {
            "description": "The ID of the Express Route Circuit Authorization.\n",
            "type": "string"
          },
          "expressRouteAuthorizationKey": {
            "description": "The key of the Express Route Circuit Authorization.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Express Route Vmware Authorization. Changing this forces a new Vmware Authorization to be created.\n",
            "type": "string"
          },
          "privateCloudId": {
            "description": "The ID of the Vmware Private Cloud in which to create this Express Route Vmware Authorization. Changing this forces a new Vmware Authorization to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:avs/privateCloud:PrivateCloud": {
      "description": "\n\n\n## Import\n\nVmware Private Clouds can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:avs/privateCloud:PrivateCloud example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AVS/PrivateClouds/privateCloud1\n```\n\n ",
      "inputProperties": {
        "internetConnectionEnabled": {
          "description": "Is the Private Cluster connected to the internet? This field can not updated with `management_cluster.0.size` together.\n\u003e **NOTE :** `internet_connection_enabled` and `management_cluster.0.size` cannot be updated at the same time.\n",
          "type": "boolean"
        },
        "location": {
          "description": "The Azure Region where the Vmware Private Cloud should exist. Changing this forces a new Vmware Private Cloud to be created.\n",
          "type": "string"
        },
        "managementCluster": {
          "$ref": "#/types/azure:avs/PrivateCloudManagementCluster:PrivateCloudManagementCluster",
          "description": "A `management_cluster` block as defined below.\n\u003e **NOTE :** `internet_connection_enabled` and `management_cluster.0.size` cannot be updated at the same time.\n"
        },
        "name": {
          "description": "The name which should be used for this Vmware Private Cloud. Changing this forces a new Vmware Private Cloud to be created.\n",
          "type": "string"
        },
        "networkSubnetCidr": {
          "description": "The subnet which should be unique across virtual network in your subscription as well as on-premise. Changing this forces a new Vmware Private Cloud to be created.\n",
          "type": "string"
        },
        "nsxtPassword": {
          "description": "The password of the NSX-T Manager. Changing this forces a new Vmware Private Cloud to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Vmware Private Cloud should exist. Changing this forces a new Vmware Private Cloud to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The Name of the SKU used for this Private Cloud. Possible values are `av20`, `av36` and `av36t`. Changing this forces a new Vmware Private Cloud to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Vmware Private Cloud.\n",
          "type": "object"
        },
        "vcenterPassword": {
          "description": "The password of the vCenter admin. Changing this forces a new Vmware Private Cloud to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "circuits": {
          "description": "A `circuit` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:avs/PrivateCloudCircuit:PrivateCloudCircuit"
          },
          "type": "array"
        },
        "hcxCloudManagerEndpoint": {
          "description": "The endpoint for the HCX Cloud Manager.\n",
          "type": "string"
        },
        "internetConnectionEnabled": {
          "description": "Is the Private Cluster connected to the internet? This field can not updated with `management_cluster.0.size` together.\n\u003e **NOTE :** `internet_connection_enabled` and `management_cluster.0.size` cannot be updated at the same time.\n",
          "type": "boolean"
        },
        "location": {
          "description": "The Azure Region where the Vmware Private Cloud should exist. Changing this forces a new Vmware Private Cloud to be created.\n",
          "type": "string"
        },
        "managementCluster": {
          "$ref": "#/types/azure:avs/PrivateCloudManagementCluster:PrivateCloudManagementCluster",
          "description": "A `management_cluster` block as defined below.\n\u003e **NOTE :** `internet_connection_enabled` and `management_cluster.0.size` cannot be updated at the same time.\n"
        },
        "managementSubnetCidr": {
          "description": "The network used to access vCenter Server and NSX-T Manager.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Vmware Private Cloud. Changing this forces a new Vmware Private Cloud to be created.\n",
          "type": "string"
        },
        "networkSubnetCidr": {
          "description": "The subnet which should be unique across virtual network in your subscription as well as on-premise. Changing this forces a new Vmware Private Cloud to be created.\n",
          "type": "string"
        },
        "nsxtCertificateThumbprint": {
          "description": "The thumbprint of the NSX-T Manager SSL certificate.\n",
          "type": "string"
        },
        "nsxtManagerEndpoint": {
          "description": "The endpoint for the NSX-T Data Center manager.\n",
          "type": "string"
        },
        "nsxtPassword": {
          "description": "The password of the NSX-T Manager. Changing this forces a new Vmware Private Cloud to be created.\n",
          "type": "string"
        },
        "provisioningSubnetCidr": {
          "description": "The network which is used for virtual machine cold migration, cloning, and snapshot migration.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Vmware Private Cloud should exist. Changing this forces a new Vmware Private Cloud to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The Name of the SKU used for this Private Cloud. Possible values are `av20`, `av36` and `av36t`. Changing this forces a new Vmware Private Cloud to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Vmware Private Cloud.\n",
          "type": "object"
        },
        "vcenterCertificateThumbprint": {
          "description": "The thumbprint of the vCenter Server SSL certificate.\n",
          "type": "string"
        },
        "vcenterPassword": {
          "description": "The password of the vCenter admin. Changing this forces a new Vmware Private Cloud to be created.\n",
          "type": "string"
        },
        "vcsaEndpoint": {
          "description": "The endpoint for Virtual Center Server Appliance.\n",
          "type": "string"
        },
        "vmotionSubnetCidr": {
          "description": "The network which is used for live migration of virtual machines.\n",
          "type": "string"
        }
      },
      "required": [
        "circuits",
        "hcxCloudManagerEndpoint",
        "location",
        "managementCluster",
        "managementSubnetCidr",
        "name",
        "networkSubnetCidr",
        "nsxtCertificateThumbprint",
        "nsxtManagerEndpoint",
        "provisioningSubnetCidr",
        "resourceGroupName",
        "skuName",
        "vcenterCertificateThumbprint",
        "vcsaEndpoint",
        "vmotionSubnetCidr"
      ],
      "requiredInputs": [
        "managementCluster",
        "networkSubnetCidr",
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering PrivateCloud resources.\n",
        "properties": {
          "circuits": {
            "description": "A `circuit` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:avs/PrivateCloudCircuit:PrivateCloudCircuit"
            },
            "type": "array"
          },
          "hcxCloudManagerEndpoint": {
            "description": "The endpoint for the HCX Cloud Manager.\n",
            "type": "string"
          },
          "internetConnectionEnabled": {
            "description": "Is the Private Cluster connected to the internet? This field can not updated with `management_cluster.0.size` together.\n\u003e **NOTE :** `internet_connection_enabled` and `management_cluster.0.size` cannot be updated at the same time.\n",
            "type": "boolean"
          },
          "location": {
            "description": "The Azure Region where the Vmware Private Cloud should exist. Changing this forces a new Vmware Private Cloud to be created.\n",
            "type": "string"
          },
          "managementCluster": {
            "$ref": "#/types/azure:avs/PrivateCloudManagementCluster:PrivateCloudManagementCluster",
            "description": "A `management_cluster` block as defined below.\n\u003e **NOTE :** `internet_connection_enabled` and `management_cluster.0.size` cannot be updated at the same time.\n"
          },
          "managementSubnetCidr": {
            "description": "The network used to access vCenter Server and NSX-T Manager.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Vmware Private Cloud. Changing this forces a new Vmware Private Cloud to be created.\n",
            "type": "string"
          },
          "networkSubnetCidr": {
            "description": "The subnet which should be unique across virtual network in your subscription as well as on-premise. Changing this forces a new Vmware Private Cloud to be created.\n",
            "type": "string"
          },
          "nsxtCertificateThumbprint": {
            "description": "The thumbprint of the NSX-T Manager SSL certificate.\n",
            "type": "string"
          },
          "nsxtManagerEndpoint": {
            "description": "The endpoint for the NSX-T Data Center manager.\n",
            "type": "string"
          },
          "nsxtPassword": {
            "description": "The password of the NSX-T Manager. Changing this forces a new Vmware Private Cloud to be created.\n",
            "type": "string"
          },
          "provisioningSubnetCidr": {
            "description": "The network which is used for virtual machine cold migration, cloning, and snapshot migration.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Vmware Private Cloud should exist. Changing this forces a new Vmware Private Cloud to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The Name of the SKU used for this Private Cloud. Possible values are `av20`, `av36` and `av36t`. Changing this forces a new Vmware Private Cloud to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Vmware Private Cloud.\n",
            "type": "object"
          },
          "vcenterCertificateThumbprint": {
            "description": "The thumbprint of the vCenter Server SSL certificate.\n",
            "type": "string"
          },
          "vcenterPassword": {
            "description": "The password of the vCenter admin. Changing this forces a new Vmware Private Cloud to be created.\n",
            "type": "string"
          },
          "vcsaEndpoint": {
            "description": "The endpoint for Virtual Center Server Appliance.\n",
            "type": "string"
          },
          "vmotionSubnetCidr": {
            "description": "The network which is used for live migration of virtual machines.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:backup/containerStorageAccount:ContainerStorageAccount": {
      "description": "Manages registration of a storage account with Azure Backup. Storage accounts must be registered with an Azure Recovery Vault in order to backup file shares within the storage account. Registering a storage account with a vault creates what is known as a protection container within Azure Recovery Services. Once the container is created, Azure file shares within the storage account can be backed up using the `azure.backup.ProtectedFileShare` resource.\n\n\u003e **NOTE:** Azure Backup for Azure File Shares is currently in public preview. During the preview, the service is subject to additional limitations and unsupported backup scenarios. [Read More](https://docs.microsoft.com/en-us/azure/backup/backup-azure-files#limitations-for-azure-file-share-backup-during-preview)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst vault = new azure.recoveryservices.Vault(\"vault\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    sku: \"Standard\",\n});\nconst sa = new azure.storage.Account(\"sa\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst container = new azure.backup.ContainerStorageAccount(\"container\", {\n    resourceGroupName: rg.name,\n    recoveryVaultName: vault.name,\n    storageAccountId: sa.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nvault = azure.recoveryservices.Vault(\"vault\",\n    location=rg.location,\n    resource_group_name=rg.name,\n    sku=\"Standard\")\nsa = azure.storage.Account(\"sa\",\n    location=rg.location,\n    resource_group_name=rg.name,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\ncontainer = azure.backup.ContainerStorageAccount(\"container\",\n    resource_group_name=rg.name,\n    recovery_vault_name=vault.name,\n    storage_account_id=sa.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var vault = new Azure.RecoveryServices.Vault(\"vault\", new Azure.RecoveryServices.VaultArgs\n        {\n            Location = rg.Location,\n            ResourceGroupName = rg.Name,\n            Sku = \"Standard\",\n        });\n        var sa = new Azure.Storage.Account(\"sa\", new Azure.Storage.AccountArgs\n        {\n            Location = rg.Location,\n            ResourceGroupName = rg.Name,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var container = new Azure.Backup.ContainerStorageAccount(\"container\", new Azure.Backup.ContainerStorageAccountArgs\n        {\n            ResourceGroupName = rg.Name,\n            RecoveryVaultName = vault.Name,\n            StorageAccountId = sa.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/backup\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvault, err := recoveryservices.NewVault(ctx, \"vault\", \u0026recoveryservices.VaultArgs{\n\t\t\tLocation:          rg.Location,\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsa, err := storage.NewAccount(ctx, \"sa\", \u0026storage.AccountArgs{\n\t\t\tLocation:               rg.Location,\n\t\t\tResourceGroupName:      rg.Name,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = backup.NewContainerStorageAccount(ctx, \"container\", \u0026backup.ContainerStorageAccountArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tRecoveryVaultName: vault.Name,\n\t\t\tStorageAccountId:  sa.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBackup Storage Account Containers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:backup/containerStorageAccount:ContainerStorageAccount mycontainer \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.RecoveryServices/vaults/recovery-vault-name/backupFabrics/Azure/protectionContainers/StorageContainer;storage;storage-rg-name;storage-account\"\n```\n\n Note the ID requires quoting as there are semicolons ",
      "inputProperties": {
        "recoveryVaultName": {
          "description": "The name of the vault where the storage account will be registered.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group where the vault is located.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account to be registered\n",
          "type": "string"
        }
      },
      "properties": {
        "recoveryVaultName": {
          "description": "The name of the vault where the storage account will be registered.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group where the vault is located.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account to be registered\n",
          "type": "string"
        }
      },
      "required": [
        "recoveryVaultName",
        "resourceGroupName",
        "storageAccountId"
      ],
      "requiredInputs": [
        "recoveryVaultName",
        "resourceGroupName",
        "storageAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ContainerStorageAccount resources.\n",
        "properties": {
          "recoveryVaultName": {
            "description": "The name of the vault where the storage account will be registered.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Name of the resource group where the vault is located.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of the Storage Account to be registered\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:backup/policyFileShare:PolicyFileShare": {
      "description": "Manages an Azure File Share Backup Policy within a Recovery Services vault.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVault = new azure.recoveryservices.Vault(\"exampleVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n});\nconst policy = new azure.backup.PolicyFileShare(\"policy\", {\n    resourceGroupName: exampleResourceGroup.name,\n    recoveryVaultName: azurerm_recovery_services_vault.vault.name,\n    timezone: \"UTC\",\n    backup: {\n        frequency: \"Daily\",\n        time: \"23:00\",\n    },\n    retentionDaily: {\n        count: 10,\n    },\n    retentionWeekly: {\n        count: 7,\n        weekdays: [\n            \"Sunday\",\n            \"Wednesday\",\n            \"Friday\",\n            \"Saturday\",\n        ],\n    },\n    retentionMonthly: {\n        count: 7,\n        weekdays: [\n            \"Sunday\",\n            \"Wednesday\",\n        ],\n        weeks: [\n            \"First\",\n            \"Last\",\n        ],\n    },\n    retentionYearly: {\n        count: 7,\n        weekdays: [\"Sunday\"],\n        weeks: [\"Last\"],\n        months: [\"January\"],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_vault = azure.recoveryservices.Vault(\"exampleVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\")\npolicy = azure.backup.PolicyFileShare(\"policy\",\n    resource_group_name=example_resource_group.name,\n    recovery_vault_name=azurerm_recovery_services_vault[\"vault\"][\"name\"],\n    timezone=\"UTC\",\n    backup=azure.backup.PolicyFileShareBackupArgs(\n        frequency=\"Daily\",\n        time=\"23:00\",\n    ),\n    retention_daily=azure.backup.PolicyFileShareRetentionDailyArgs(\n        count=10,\n    ),\n    retention_weekly=azure.backup.PolicyFileShareRetentionWeeklyArgs(\n        count=7,\n        weekdays=[\n            \"Sunday\",\n            \"Wednesday\",\n            \"Friday\",\n            \"Saturday\",\n        ],\n    ),\n    retention_monthly=azure.backup.PolicyFileShareRetentionMonthlyArgs(\n        count=7,\n        weekdays=[\n            \"Sunday\",\n            \"Wednesday\",\n        ],\n        weeks=[\n            \"First\",\n            \"Last\",\n        ],\n    ),\n    retention_yearly=azure.backup.PolicyFileShareRetentionYearlyArgs(\n        count=7,\n        weekdays=[\"Sunday\"],\n        weeks=[\"Last\"],\n        months=[\"January\"],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVault = new Azure.RecoveryServices.Vault(\"exampleVault\", new Azure.RecoveryServices.VaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n        });\n        var policy = new Azure.Backup.PolicyFileShare(\"policy\", new Azure.Backup.PolicyFileShareArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            RecoveryVaultName = azurerm_recovery_services_vault.Vault.Name,\n            Timezone = \"UTC\",\n            Backup = new Azure.Backup.Inputs.PolicyFileShareBackupArgs\n            {\n                Frequency = \"Daily\",\n                Time = \"23:00\",\n            },\n            RetentionDaily = new Azure.Backup.Inputs.PolicyFileShareRetentionDailyArgs\n            {\n                Count = 10,\n            },\n            RetentionWeekly = new Azure.Backup.Inputs.PolicyFileShareRetentionWeeklyArgs\n            {\n                Count = 7,\n                Weekdays = \n                {\n                    \"Sunday\",\n                    \"Wednesday\",\n                    \"Friday\",\n                    \"Saturday\",\n                },\n            },\n            RetentionMonthly = new Azure.Backup.Inputs.PolicyFileShareRetentionMonthlyArgs\n            {\n                Count = 7,\n                Weekdays = \n                {\n                    \"Sunday\",\n                    \"Wednesday\",\n                },\n                Weeks = \n                {\n                    \"First\",\n                    \"Last\",\n                },\n            },\n            RetentionYearly = new Azure.Backup.Inputs.PolicyFileShareRetentionYearlyArgs\n            {\n                Count = 7,\n                Weekdays = \n                {\n                    \"Sunday\",\n                },\n                Weeks = \n                {\n                    \"Last\",\n                },\n                Months = \n                {\n                    \"January\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/backup\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = recoveryservices.NewVault(ctx, \"exampleVault\", \u0026recoveryservices.VaultArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = backup.NewPolicyFileShare(ctx, \"policy\", \u0026backup.PolicyFileShareArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tRecoveryVaultName: pulumi.Any(azurerm_recovery_services_vault.Vault.Name),\n\t\t\tTimezone:          pulumi.String(\"UTC\"),\n\t\t\tBackup: \u0026backup.PolicyFileShareBackupArgs{\n\t\t\t\tFrequency: pulumi.String(\"Daily\"),\n\t\t\t\tTime:      pulumi.String(\"23:00\"),\n\t\t\t},\n\t\t\tRetentionDaily: \u0026backup.PolicyFileShareRetentionDailyArgs{\n\t\t\t\tCount: pulumi.Int(10),\n\t\t\t},\n\t\t\tRetentionWeekly: \u0026backup.PolicyFileShareRetentionWeeklyArgs{\n\t\t\t\tCount: pulumi.Int(7),\n\t\t\t\tWeekdays: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Sunday\"),\n\t\t\t\t\tpulumi.String(\"Wednesday\"),\n\t\t\t\t\tpulumi.String(\"Friday\"),\n\t\t\t\t\tpulumi.String(\"Saturday\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRetentionMonthly: \u0026backup.PolicyFileShareRetentionMonthlyArgs{\n\t\t\t\tCount: pulumi.Int(7),\n\t\t\t\tWeekdays: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Sunday\"),\n\t\t\t\t\tpulumi.String(\"Wednesday\"),\n\t\t\t\t},\n\t\t\t\tWeeks: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"First\"),\n\t\t\t\t\tpulumi.String(\"Last\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRetentionYearly: \u0026backup.PolicyFileShareRetentionYearlyArgs{\n\t\t\t\tCount: pulumi.Int(7),\n\t\t\t\tWeekdays: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Sunday\"),\n\t\t\t\t},\n\t\t\t\tWeeks: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Last\"),\n\t\t\t\t},\n\t\t\t\tMonths: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"January\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure File Share Backup Policies can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:backup/policyFileShare:PolicyFileShare policy1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.RecoveryServices/vaults/example-recovery-vault/backupPolicies/policy1\n```\n\n ",
      "inputProperties": {
        "backup": {
          "$ref": "#/types/azure:backup/PolicyFileShareBackup:PolicyFileShareBackup",
          "description": "Configures the Policy backup frequency and times as documented in the `backup` block below.\n"
        },
        "name": {
          "description": "Specifies the name of the policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "Specifies the name of the Recovery Services Vault to use. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retentionDaily": {
          "$ref": "#/types/azure:backup/PolicyFileShareRetentionDaily:PolicyFileShareRetentionDaily",
          "description": "Configures the policy daily retention as documented in the `retention_daily` block below.\n"
        },
        "retentionMonthly": {
          "$ref": "#/types/azure:backup/PolicyFileShareRetentionMonthly:PolicyFileShareRetentionMonthly",
          "description": "Configures the policy monthly retention as documented in the `retention_monthly` block below.\n"
        },
        "retentionWeekly": {
          "$ref": "#/types/azure:backup/PolicyFileShareRetentionWeekly:PolicyFileShareRetentionWeekly",
          "description": "Configures the policy weekly retention as documented in the `retention_weekly` block below.\n"
        },
        "retentionYearly": {
          "$ref": "#/types/azure:backup/PolicyFileShareRetentionYearly:PolicyFileShareRetentionYearly",
          "description": "Configures the policy yearly retention as documented in the `retention_yearly` block below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "timezone": {
          "description": "Specifies the timezone. [the possible values are defined here](http://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/). Defaults to `UTC`\n",
          "type": "string"
        }
      },
      "properties": {
        "backup": {
          "$ref": "#/types/azure:backup/PolicyFileShareBackup:PolicyFileShareBackup",
          "description": "Configures the Policy backup frequency and times as documented in the `backup` block below.\n"
        },
        "name": {
          "description": "Specifies the name of the policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "Specifies the name of the Recovery Services Vault to use. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retentionDaily": {
          "$ref": "#/types/azure:backup/PolicyFileShareRetentionDaily:PolicyFileShareRetentionDaily",
          "description": "Configures the policy daily retention as documented in the `retention_daily` block below.\n"
        },
        "retentionMonthly": {
          "$ref": "#/types/azure:backup/PolicyFileShareRetentionMonthly:PolicyFileShareRetentionMonthly",
          "description": "Configures the policy monthly retention as documented in the `retention_monthly` block below.\n"
        },
        "retentionWeekly": {
          "$ref": "#/types/azure:backup/PolicyFileShareRetentionWeekly:PolicyFileShareRetentionWeekly",
          "description": "Configures the policy weekly retention as documented in the `retention_weekly` block below.\n"
        },
        "retentionYearly": {
          "$ref": "#/types/azure:backup/PolicyFileShareRetentionYearly:PolicyFileShareRetentionYearly",
          "description": "Configures the policy yearly retention as documented in the `retention_yearly` block below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "timezone": {
          "description": "Specifies the timezone. [the possible values are defined here](http://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/). Defaults to `UTC`\n",
          "type": "string"
        }
      },
      "required": [
        "backup",
        "name",
        "recoveryVaultName",
        "resourceGroupName",
        "retentionDaily"
      ],
      "requiredInputs": [
        "backup",
        "recoveryVaultName",
        "resourceGroupName",
        "retentionDaily"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering PolicyFileShare resources.\n",
        "properties": {
          "backup": {
            "$ref": "#/types/azure:backup/PolicyFileShareBackup:PolicyFileShareBackup",
            "description": "Configures the Policy backup frequency and times as documented in the `backup` block below.\n"
          },
          "name": {
            "description": "Specifies the name of the policy. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "recoveryVaultName": {
            "description": "Specifies the name of the Recovery Services Vault to use. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the policy. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "retentionDaily": {
            "$ref": "#/types/azure:backup/PolicyFileShareRetentionDaily:PolicyFileShareRetentionDaily",
            "description": "Configures the policy daily retention as documented in the `retention_daily` block below.\n"
          },
          "retentionMonthly": {
            "$ref": "#/types/azure:backup/PolicyFileShareRetentionMonthly:PolicyFileShareRetentionMonthly",
            "description": "Configures the policy monthly retention as documented in the `retention_monthly` block below.\n"
          },
          "retentionWeekly": {
            "$ref": "#/types/azure:backup/PolicyFileShareRetentionWeekly:PolicyFileShareRetentionWeekly",
            "description": "Configures the policy weekly retention as documented in the `retention_weekly` block below.\n"
          },
          "retentionYearly": {
            "$ref": "#/types/azure:backup/PolicyFileShareRetentionYearly:PolicyFileShareRetentionYearly",
            "description": "Configures the policy yearly retention as documented in the `retention_yearly` block below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "timezone": {
            "description": "Specifies the timezone. [the possible values are defined here](http://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/). Defaults to `UTC`\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:backup/policyVM:PolicyVM": {
      "description": "Manages an Azure Backup VM Backup Policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVault = new azure.recoveryservices.Vault(\"exampleVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n});\nconst examplePolicyVM = new azure.backup.PolicyVM(\"examplePolicyVM\", {\n    resourceGroupName: exampleResourceGroup.name,\n    recoveryVaultName: exampleVault.name,\n    timezone: \"UTC\",\n    backup: {\n        frequency: \"Daily\",\n        time: \"23:00\",\n    },\n    retentionDaily: {\n        count: 10,\n    },\n    retentionWeekly: {\n        count: 42,\n        weekdays: [\n            \"Sunday\",\n            \"Wednesday\",\n            \"Friday\",\n            \"Saturday\",\n        ],\n    },\n    retentionMonthly: {\n        count: 7,\n        weekdays: [\n            \"Sunday\",\n            \"Wednesday\",\n        ],\n        weeks: [\n            \"First\",\n            \"Last\",\n        ],\n    },\n    retentionYearly: {\n        count: 77,\n        weekdays: [\"Sunday\"],\n        weeks: [\"Last\"],\n        months: [\"January\"],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_vault = azure.recoveryservices.Vault(\"exampleVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\")\nexample_policy_vm = azure.backup.PolicyVM(\"examplePolicyVM\",\n    resource_group_name=example_resource_group.name,\n    recovery_vault_name=example_vault.name,\n    timezone=\"UTC\",\n    backup=azure.backup.PolicyVMBackupArgs(\n        frequency=\"Daily\",\n        time=\"23:00\",\n    ),\n    retention_daily=azure.backup.PolicyVMRetentionDailyArgs(\n        count=10,\n    ),\n    retention_weekly=azure.backup.PolicyVMRetentionWeeklyArgs(\n        count=42,\n        weekdays=[\n            \"Sunday\",\n            \"Wednesday\",\n            \"Friday\",\n            \"Saturday\",\n        ],\n    ),\n    retention_monthly=azure.backup.PolicyVMRetentionMonthlyArgs(\n        count=7,\n        weekdays=[\n            \"Sunday\",\n            \"Wednesday\",\n        ],\n        weeks=[\n            \"First\",\n            \"Last\",\n        ],\n    ),\n    retention_yearly=azure.backup.PolicyVMRetentionYearlyArgs(\n        count=77,\n        weekdays=[\"Sunday\"],\n        weeks=[\"Last\"],\n        months=[\"January\"],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVault = new Azure.RecoveryServices.Vault(\"exampleVault\", new Azure.RecoveryServices.VaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n        });\n        var examplePolicyVM = new Azure.Backup.PolicyVM(\"examplePolicyVM\", new Azure.Backup.PolicyVMArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            RecoveryVaultName = exampleVault.Name,\n            Timezone = \"UTC\",\n            Backup = new Azure.Backup.Inputs.PolicyVMBackupArgs\n            {\n                Frequency = \"Daily\",\n                Time = \"23:00\",\n            },\n            RetentionDaily = new Azure.Backup.Inputs.PolicyVMRetentionDailyArgs\n            {\n                Count = 10,\n            },\n            RetentionWeekly = new Azure.Backup.Inputs.PolicyVMRetentionWeeklyArgs\n            {\n                Count = 42,\n                Weekdays = \n                {\n                    \"Sunday\",\n                    \"Wednesday\",\n                    \"Friday\",\n                    \"Saturday\",\n                },\n            },\n            RetentionMonthly = new Azure.Backup.Inputs.PolicyVMRetentionMonthlyArgs\n            {\n                Count = 7,\n                Weekdays = \n                {\n                    \"Sunday\",\n                    \"Wednesday\",\n                },\n                Weeks = \n                {\n                    \"First\",\n                    \"Last\",\n                },\n            },\n            RetentionYearly = new Azure.Backup.Inputs.PolicyVMRetentionYearlyArgs\n            {\n                Count = 77,\n                Weekdays = \n                {\n                    \"Sunday\",\n                },\n                Weeks = \n                {\n                    \"Last\",\n                },\n                Months = \n                {\n                    \"January\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/backup\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVault, err := recoveryservices.NewVault(ctx, \"exampleVault\", \u0026recoveryservices.VaultArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = backup.NewPolicyVM(ctx, \"examplePolicyVM\", \u0026backup.PolicyVMArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tRecoveryVaultName: exampleVault.Name,\n\t\t\tTimezone:          pulumi.String(\"UTC\"),\n\t\t\tBackup: \u0026backup.PolicyVMBackupArgs{\n\t\t\t\tFrequency: pulumi.String(\"Daily\"),\n\t\t\t\tTime:      pulumi.String(\"23:00\"),\n\t\t\t},\n\t\t\tRetentionDaily: \u0026backup.PolicyVMRetentionDailyArgs{\n\t\t\t\tCount: pulumi.Int(10),\n\t\t\t},\n\t\t\tRetentionWeekly: \u0026backup.PolicyVMRetentionWeeklyArgs{\n\t\t\t\tCount: pulumi.Int(42),\n\t\t\t\tWeekdays: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Sunday\"),\n\t\t\t\t\tpulumi.String(\"Wednesday\"),\n\t\t\t\t\tpulumi.String(\"Friday\"),\n\t\t\t\t\tpulumi.String(\"Saturday\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRetentionMonthly: \u0026backup.PolicyVMRetentionMonthlyArgs{\n\t\t\t\tCount: pulumi.Int(7),\n\t\t\t\tWeekdays: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Sunday\"),\n\t\t\t\t\tpulumi.String(\"Wednesday\"),\n\t\t\t\t},\n\t\t\t\tWeeks: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"First\"),\n\t\t\t\t\tpulumi.String(\"Last\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRetentionYearly: \u0026backup.PolicyVMRetentionYearlyArgs{\n\t\t\t\tCount: pulumi.Int(77),\n\t\t\t\tWeekdays: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Sunday\"),\n\t\t\t\t},\n\t\t\t\tWeeks: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Last\"),\n\t\t\t\t},\n\t\t\t\tMonths: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"January\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVM Backup Policies can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:backup/policyVM:PolicyVM policy1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.RecoveryServices/vaults/example-recovery-vault/backupPolicies/policy1\n```\n\n ",
      "inputProperties": {
        "backup": {
          "$ref": "#/types/azure:backup/PolicyVMBackup:PolicyVMBackup",
          "description": "Configures the Policy backup frequency, times \u0026 days as documented in the `backup` block below.\n"
        },
        "instantRestoreRetentionDays": {
          "description": "Specifies the instant restore retention range in days.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the Backup Policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "Specifies the name of the Recovery Services Vault to use. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retentionDaily": {
          "$ref": "#/types/azure:backup/PolicyVMRetentionDaily:PolicyVMRetentionDaily",
          "description": "Configures the policy daily retention as documented in the `retention_daily` block below. Required when backup frequency is `Daily`.\n"
        },
        "retentionMonthly": {
          "$ref": "#/types/azure:backup/PolicyVMRetentionMonthly:PolicyVMRetentionMonthly",
          "description": "Configures the policy monthly retention as documented in the `retention_monthly` block below.\n"
        },
        "retentionWeekly": {
          "$ref": "#/types/azure:backup/PolicyVMRetentionWeekly:PolicyVMRetentionWeekly",
          "description": "Configures the policy weekly retention as documented in the `retention_weekly` block below. Required when backup frequency is `Weekly`.\n"
        },
        "retentionYearly": {
          "$ref": "#/types/azure:backup/PolicyVMRetentionYearly:PolicyVMRetentionYearly",
          "description": "Configures the policy yearly retention as documented in the `retention_yearly` block below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "timezone": {
          "description": "Specifies the timezone. [the possible values are defined here](http://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/). Defaults to `UTC`\n",
          "type": "string"
        }
      },
      "properties": {
        "backup": {
          "$ref": "#/types/azure:backup/PolicyVMBackup:PolicyVMBackup",
          "description": "Configures the Policy backup frequency, times \u0026 days as documented in the `backup` block below.\n"
        },
        "instantRestoreRetentionDays": {
          "description": "Specifies the instant restore retention range in days.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the Backup Policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "Specifies the name of the Recovery Services Vault to use. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retentionDaily": {
          "$ref": "#/types/azure:backup/PolicyVMRetentionDaily:PolicyVMRetentionDaily",
          "description": "Configures the policy daily retention as documented in the `retention_daily` block below. Required when backup frequency is `Daily`.\n"
        },
        "retentionMonthly": {
          "$ref": "#/types/azure:backup/PolicyVMRetentionMonthly:PolicyVMRetentionMonthly",
          "description": "Configures the policy monthly retention as documented in the `retention_monthly` block below.\n"
        },
        "retentionWeekly": {
          "$ref": "#/types/azure:backup/PolicyVMRetentionWeekly:PolicyVMRetentionWeekly",
          "description": "Configures the policy weekly retention as documented in the `retention_weekly` block below. Required when backup frequency is `Weekly`.\n"
        },
        "retentionYearly": {
          "$ref": "#/types/azure:backup/PolicyVMRetentionYearly:PolicyVMRetentionYearly",
          "description": "Configures the policy yearly retention as documented in the `retention_yearly` block below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "timezone": {
          "description": "Specifies the timezone. [the possible values are defined here](http://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/). Defaults to `UTC`\n",
          "type": "string"
        }
      },
      "required": [
        "backup",
        "instantRestoreRetentionDays",
        "name",
        "recoveryVaultName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "backup",
        "recoveryVaultName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering PolicyVM resources.\n",
        "properties": {
          "backup": {
            "$ref": "#/types/azure:backup/PolicyVMBackup:PolicyVMBackup",
            "description": "Configures the Policy backup frequency, times \u0026 days as documented in the `backup` block below.\n"
          },
          "instantRestoreRetentionDays": {
            "description": "Specifies the instant restore retention range in days.\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the Backup Policy. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "recoveryVaultName": {
            "description": "Specifies the name of the Recovery Services Vault to use. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the policy. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "retentionDaily": {
            "$ref": "#/types/azure:backup/PolicyVMRetentionDaily:PolicyVMRetentionDaily",
            "description": "Configures the policy daily retention as documented in the `retention_daily` block below. Required when backup frequency is `Daily`.\n"
          },
          "retentionMonthly": {
            "$ref": "#/types/azure:backup/PolicyVMRetentionMonthly:PolicyVMRetentionMonthly",
            "description": "Configures the policy monthly retention as documented in the `retention_monthly` block below.\n"
          },
          "retentionWeekly": {
            "$ref": "#/types/azure:backup/PolicyVMRetentionWeekly:PolicyVMRetentionWeekly",
            "description": "Configures the policy weekly retention as documented in the `retention_weekly` block below. Required when backup frequency is `Weekly`.\n"
          },
          "retentionYearly": {
            "$ref": "#/types/azure:backup/PolicyVMRetentionYearly:PolicyVMRetentionYearly",
            "description": "Configures the policy yearly retention as documented in the `retention_yearly` block below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "timezone": {
            "description": "Specifies the timezone. [the possible values are defined here](http://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/). Defaults to `UTC`\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:backup/protectedFileShare:ProtectedFileShare": {
      "description": "Manages an Azure Backup Protected File Share to enable backups for file shares within an Azure Storage Account\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst vault = new azure.recoveryservices.Vault(\"vault\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    sku: \"Standard\",\n});\nconst sa = new azure.storage.Account(\"sa\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleShare = new azure.storage.Share(\"exampleShare\", {storageAccountName: sa.name});\nconst protection_container = new azure.backup.ContainerStorageAccount(\"protection-container\", {\n    resourceGroupName: rg.name,\n    recoveryVaultName: vault.name,\n    storageAccountId: sa.id,\n});\nconst examplePolicyFileShare = new azure.backup.PolicyFileShare(\"examplePolicyFileShare\", {\n    resourceGroupName: rg.name,\n    recoveryVaultName: vault.name,\n    backup: {\n        frequency: \"Daily\",\n        time: \"23:00\",\n    },\n    retentionDaily: {\n        count: 10,\n    },\n});\nconst share1 = new azure.backup.ProtectedFileShare(\"share1\", {\n    resourceGroupName: rg.name,\n    recoveryVaultName: vault.name,\n    sourceStorageAccountId: protection_container.storageAccountId,\n    sourceFileShareName: exampleShare.name,\n    backupPolicyId: examplePolicyFileShare.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nvault = azure.recoveryservices.Vault(\"vault\",\n    location=rg.location,\n    resource_group_name=rg.name,\n    sku=\"Standard\")\nsa = azure.storage.Account(\"sa\",\n    location=rg.location,\n    resource_group_name=rg.name,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_share = azure.storage.Share(\"exampleShare\", storage_account_name=sa.name)\nprotection_container = azure.backup.ContainerStorageAccount(\"protection-container\",\n    resource_group_name=rg.name,\n    recovery_vault_name=vault.name,\n    storage_account_id=sa.id)\nexample_policy_file_share = azure.backup.PolicyFileShare(\"examplePolicyFileShare\",\n    resource_group_name=rg.name,\n    recovery_vault_name=vault.name,\n    backup=azure.backup.PolicyFileShareBackupArgs(\n        frequency=\"Daily\",\n        time=\"23:00\",\n    ),\n    retention_daily=azure.backup.PolicyFileShareRetentionDailyArgs(\n        count=10,\n    ))\nshare1 = azure.backup.ProtectedFileShare(\"share1\",\n    resource_group_name=rg.name,\n    recovery_vault_name=vault.name,\n    source_storage_account_id=protection_container.storage_account_id,\n    source_file_share_name=example_share.name,\n    backup_policy_id=example_policy_file_share.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var vault = new Azure.RecoveryServices.Vault(\"vault\", new Azure.RecoveryServices.VaultArgs\n        {\n            Location = rg.Location,\n            ResourceGroupName = rg.Name,\n            Sku = \"Standard\",\n        });\n        var sa = new Azure.Storage.Account(\"sa\", new Azure.Storage.AccountArgs\n        {\n            Location = rg.Location,\n            ResourceGroupName = rg.Name,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleShare = new Azure.Storage.Share(\"exampleShare\", new Azure.Storage.ShareArgs\n        {\n            StorageAccountName = sa.Name,\n        });\n        var protection_container = new Azure.Backup.ContainerStorageAccount(\"protection-container\", new Azure.Backup.ContainerStorageAccountArgs\n        {\n            ResourceGroupName = rg.Name,\n            RecoveryVaultName = vault.Name,\n            StorageAccountId = sa.Id,\n        });\n        var examplePolicyFileShare = new Azure.Backup.PolicyFileShare(\"examplePolicyFileShare\", new Azure.Backup.PolicyFileShareArgs\n        {\n            ResourceGroupName = rg.Name,\n            RecoveryVaultName = vault.Name,\n            Backup = new Azure.Backup.Inputs.PolicyFileShareBackupArgs\n            {\n                Frequency = \"Daily\",\n                Time = \"23:00\",\n            },\n            RetentionDaily = new Azure.Backup.Inputs.PolicyFileShareRetentionDailyArgs\n            {\n                Count = 10,\n            },\n        });\n        var share1 = new Azure.Backup.ProtectedFileShare(\"share1\", new Azure.Backup.ProtectedFileShareArgs\n        {\n            ResourceGroupName = rg.Name,\n            RecoveryVaultName = vault.Name,\n            SourceStorageAccountId = protection_container.StorageAccountId,\n            SourceFileShareName = exampleShare.Name,\n            BackupPolicyId = examplePolicyFileShare.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/backup\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvault, err := recoveryservices.NewVault(ctx, \"vault\", \u0026recoveryservices.VaultArgs{\n\t\t\tLocation:          rg.Location,\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsa, err := storage.NewAccount(ctx, \"sa\", \u0026storage.AccountArgs{\n\t\t\tLocation:               rg.Location,\n\t\t\tResourceGroupName:      rg.Name,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleShare, err := storage.NewShare(ctx, \"exampleShare\", \u0026storage.ShareArgs{\n\t\t\tStorageAccountName: sa.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = backup.NewContainerStorageAccount(ctx, \"protection_container\", \u0026backup.ContainerStorageAccountArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tRecoveryVaultName: vault.Name,\n\t\t\tStorageAccountId:  sa.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePolicyFileShare, err := backup.NewPolicyFileShare(ctx, \"examplePolicyFileShare\", \u0026backup.PolicyFileShareArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tRecoveryVaultName: vault.Name,\n\t\t\tBackup: \u0026backup.PolicyFileShareBackupArgs{\n\t\t\t\tFrequency: pulumi.String(\"Daily\"),\n\t\t\t\tTime:      pulumi.String(\"23:00\"),\n\t\t\t},\n\t\t\tRetentionDaily: \u0026backup.PolicyFileShareRetentionDailyArgs{\n\t\t\t\tCount: pulumi.Int(10),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = backup.NewProtectedFileShare(ctx, \"share1\", \u0026backup.ProtectedFileShareArgs{\n\t\t\tResourceGroupName:      rg.Name,\n\t\t\tRecoveryVaultName:      vault.Name,\n\t\t\tSourceStorageAccountId: protection_container.StorageAccountId,\n\t\t\tSourceFileShareName:    exampleShare.Name,\n\t\t\tBackupPolicyId:         examplePolicyFileShare.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure Backup Protected File Shares can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:backup/protectedFileShare:ProtectedFileShare item1 \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.RecoveryServices/vaults/example-recovery-vault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;group2;example-storage-account/protectedItems/AzureFileShare;3f6e3108a45793581bcbd1c61c87a3b2ceeb4ff4bc02a95ce9d1022b23722935\"\n```\n\n -\u003e **NOTE** The ID requires quoting as there are semicolons. This user unfriendly ID can be found in the Deployments of the used resourcegroup, look for an Deployment which starts with `ConfigureAFSProtection-`, click then `Go to resource`. ",
      "inputProperties": {
        "backupPolicyId": {
          "description": "Specifies the ID of the backup policy to use. The policy must be an Azure File Share backup policy. Other types are not supported.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "Specifies the name of the Recovery Services Vault to use. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Azure Backup Protected File Share. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceFileShareName": {
          "description": "Specifies the name of the file share to backup. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceStorageAccountId": {
          "description": "Specifies the ID of the storage account of the file share to backup. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "backupPolicyId": {
          "description": "Specifies the ID of the backup policy to use. The policy must be an Azure File Share backup policy. Other types are not supported.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "Specifies the name of the Recovery Services Vault to use. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Azure Backup Protected File Share. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceFileShareName": {
          "description": "Specifies the name of the file share to backup. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceStorageAccountId": {
          "description": "Specifies the ID of the storage account of the file share to backup. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "backupPolicyId",
        "recoveryVaultName",
        "resourceGroupName",
        "sourceFileShareName",
        "sourceStorageAccountId"
      ],
      "requiredInputs": [
        "backupPolicyId",
        "recoveryVaultName",
        "resourceGroupName",
        "sourceFileShareName",
        "sourceStorageAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ProtectedFileShare resources.\n",
        "properties": {
          "backupPolicyId": {
            "description": "Specifies the ID of the backup policy to use. The policy must be an Azure File Share backup policy. Other types are not supported.\n",
            "type": "string"
          },
          "recoveryVaultName": {
            "description": "Specifies the name of the Recovery Services Vault to use. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Azure Backup Protected File Share. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sourceFileShareName": {
            "description": "Specifies the name of the file share to backup. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sourceStorageAccountId": {
            "description": "Specifies the ID of the storage account of the file share to backup. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:backup/protectedVM:ProtectedVM": {
      "description": "Manages Azure Backup for an Azure VM\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVault = new azure.recoveryservices.Vault(\"exampleVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n});\nconst examplePolicyVM = new azure.backup.PolicyVM(\"examplePolicyVM\", {\n    resourceGroupName: exampleResourceGroup.name,\n    recoveryVaultName: exampleVault.name,\n    backup: {\n        frequency: \"Daily\",\n        time: \"23:00\",\n    },\n});\nconst vm1 = new azure.backup.ProtectedVM(\"vm1\", {\n    resourceGroupName: exampleResourceGroup.name,\n    recoveryVaultName: exampleVault.name,\n    sourceVmId: azurerm_virtual_machine.example.id,\n    backupPolicyId: examplePolicyVM.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_vault = azure.recoveryservices.Vault(\"exampleVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\")\nexample_policy_vm = azure.backup.PolicyVM(\"examplePolicyVM\",\n    resource_group_name=example_resource_group.name,\n    recovery_vault_name=example_vault.name,\n    backup=azure.backup.PolicyVMBackupArgs(\n        frequency=\"Daily\",\n        time=\"23:00\",\n    ))\nvm1 = azure.backup.ProtectedVM(\"vm1\",\n    resource_group_name=example_resource_group.name,\n    recovery_vault_name=example_vault.name,\n    source_vm_id=azurerm_virtual_machine[\"example\"][\"id\"],\n    backup_policy_id=example_policy_vm.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVault = new Azure.RecoveryServices.Vault(\"exampleVault\", new Azure.RecoveryServices.VaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n        });\n        var examplePolicyVM = new Azure.Backup.PolicyVM(\"examplePolicyVM\", new Azure.Backup.PolicyVMArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            RecoveryVaultName = exampleVault.Name,\n            Backup = new Azure.Backup.Inputs.PolicyVMBackupArgs\n            {\n                Frequency = \"Daily\",\n                Time = \"23:00\",\n            },\n        });\n        var vm1 = new Azure.Backup.ProtectedVM(\"vm1\", new Azure.Backup.ProtectedVMArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            RecoveryVaultName = exampleVault.Name,\n            SourceVmId = azurerm_virtual_machine.Example.Id,\n            BackupPolicyId = examplePolicyVM.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/backup\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVault, err := recoveryservices.NewVault(ctx, \"exampleVault\", \u0026recoveryservices.VaultArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePolicyVM, err := backup.NewPolicyVM(ctx, \"examplePolicyVM\", \u0026backup.PolicyVMArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tRecoveryVaultName: exampleVault.Name,\n\t\t\tBackup: \u0026backup.PolicyVMBackupArgs{\n\t\t\t\tFrequency: pulumi.String(\"Daily\"),\n\t\t\t\tTime:      pulumi.String(\"23:00\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = backup.NewProtectedVM(ctx, \"vm1\", \u0026backup.ProtectedVMArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tRecoveryVaultName: exampleVault.Name,\n\t\t\tSourceVmId:        pulumi.Any(azurerm_virtual_machine.Example.Id),\n\t\t\tBackupPolicyId:    examplePolicyVM.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRecovery Services Protected VMs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:backup/protectedVM:ProtectedVM item1 \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.RecoveryServices/vaults/example-recovery-vault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;group1;vm1/protectedItems/vm;iaasvmcontainerv2;group1;vm1\"\n```\n\n Note the ID requires quoting as there are semicolons ",
      "inputProperties": {
        "backupPolicyId": {
          "description": "Specifies the id of the backup policy to use.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "Specifies the name of the Recovery Services Vault to use. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Recovery Services Vault. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceVmId": {
          "description": "Specifies the ID of the VM to backup. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "backupPolicyId": {
          "description": "Specifies the id of the backup policy to use.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "Specifies the name of the Recovery Services Vault to use. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Recovery Services Vault. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceVmId": {
          "description": "Specifies the ID of the VM to backup. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "backupPolicyId",
        "recoveryVaultName",
        "resourceGroupName",
        "sourceVmId"
      ],
      "requiredInputs": [
        "backupPolicyId",
        "recoveryVaultName",
        "resourceGroupName",
        "sourceVmId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ProtectedVM resources.\n",
        "properties": {
          "backupPolicyId": {
            "description": "Specifies the id of the backup policy to use.\n",
            "type": "string"
          },
          "recoveryVaultName": {
            "description": "Specifies the name of the Recovery Services Vault to use. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Recovery Services Vault. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sourceVmId": {
            "description": "Specifies the ID of the VM to backup. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:batch/account:Account": {
      "description": "Manages an Azure Batch account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleBatch_accountAccount = new azure.batch.Account(\"exampleBatch/accountAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    poolAllocationMode: \"BatchService\",\n    storageAccountId: exampleAccount.id,\n    tags: {\n        env: \"test\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_batch_account_account = azure.batch.Account(\"exampleBatch/accountAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    pool_allocation_mode=\"BatchService\",\n    storage_account_id=example_account.id,\n    tags={\n        \"env\": \"test\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleBatch_accountAccount = new Azure.Batch.Account(\"exampleBatch/accountAccount\", new Azure.Batch.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            PoolAllocationMode = \"BatchService\",\n            StorageAccountId = exampleAccount.Id,\n            Tags = \n            {\n                { \"env\", \"test\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/batch\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = batch.NewAccount(ctx, \"exampleBatch_accountAccount\", \u0026batch.AccountArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tLocation:           exampleResourceGroup.Location,\n\t\t\tPoolAllocationMode: pulumi.String(\"BatchService\"),\n\t\t\tStorageAccountId:   exampleAccount.ID(),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"env\": pulumi.String(\"test\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBatch Account can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:batch/account:Account example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Batch/batchAccounts/account1\n```\n\n ",
      "inputProperties": {
        "keyVaultReference": {
          "$ref": "#/types/azure:batch/AccountKeyVaultReference:AccountKeyVaultReference",
          "description": "A `key_vault_reference` block that describes the Azure KeyVault reference to use when deploying the Azure Batch account using the `UserSubscription` pool allocation mode.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Batch account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "poolAllocationMode": {
          "description": "Specifies the mode to use for pool allocation. Possible values are `BatchService` or `UserSubscription`. Defaults to `BatchService`.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Batch account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "Specifies the storage account to use for the Batch account. If not specified, Azure Batch will manage the storage.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "accountEndpoint": {
          "description": "The account endpoint used to interact with the Batch service.\n",
          "type": "string"
        },
        "keyVaultReference": {
          "$ref": "#/types/azure:batch/AccountKeyVaultReference:AccountKeyVaultReference",
          "description": "A `key_vault_reference` block that describes the Azure KeyVault reference to use when deploying the Azure Batch account using the `UserSubscription` pool allocation mode.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Batch account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "poolAllocationMode": {
          "description": "Specifies the mode to use for pool allocation. Possible values are `BatchService` or `UserSubscription`. Defaults to `BatchService`.\n",
          "type": "string"
        },
        "primaryAccessKey": {
          "description": "The Batch account primary access key.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Batch account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryAccessKey": {
          "description": "The Batch account secondary access key.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "Specifies the storage account to use for the Batch account. If not specified, Azure Batch will manage the storage.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "accountEndpoint",
        "location",
        "name",
        "primaryAccessKey",
        "resourceGroupName",
        "secondaryAccessKey",
        "storageAccountId"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Account resources.\n",
        "properties": {
          "accountEndpoint": {
            "description": "The account endpoint used to interact with the Batch service.\n",
            "type": "string"
          },
          "keyVaultReference": {
            "$ref": "#/types/azure:batch/AccountKeyVaultReference:AccountKeyVaultReference",
            "description": "A `key_vault_reference` block that describes the Azure KeyVault reference to use when deploying the Azure Batch account using the `UserSubscription` pool allocation mode.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Batch account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "poolAllocationMode": {
            "description": "Specifies the mode to use for pool allocation. Possible values are `BatchService` or `UserSubscription`. Defaults to `BatchService`.\n",
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The Batch account primary access key.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether public network access is allowed for this server. Defaults to `true`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Batch account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The Batch account secondary access key.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "Specifies the storage account to use for the Batch account. If not specified, Azure Batch will manage the storage.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:batch/application:Application": {
      "description": "Manages Azure Batch Application instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleBatch_accountAccount = new azure.batch.Account(\"exampleBatch/accountAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    poolAllocationMode: \"BatchService\",\n    storageAccountId: exampleAccount.id,\n});\nconst exampleApplication = new azure.batch.Application(\"exampleApplication\", {\n    resourceGroupName: exampleResourceGroup.name,\n    accountName: exampleBatch / accountAccount.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_batch_account_account = azure.batch.Account(\"exampleBatch/accountAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    pool_allocation_mode=\"BatchService\",\n    storage_account_id=example_account.id)\nexample_application = azure.batch.Application(\"exampleApplication\",\n    resource_group_name=example_resource_group.name,\n    account_name=example_batch / account_account[\"name\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleBatch_accountAccount = new Azure.Batch.Account(\"exampleBatch/accountAccount\", new Azure.Batch.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            PoolAllocationMode = \"BatchService\",\n            StorageAccountId = exampleAccount.Id,\n        });\n        var exampleApplication = new Azure.Batch.Application(\"exampleApplication\", new Azure.Batch.ApplicationArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            AccountName = exampleBatch / accountAccount.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/batch\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = batch.NewAccount(ctx, \"exampleBatch_accountAccount\", \u0026batch.AccountArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tLocation:           exampleResourceGroup.Location,\n\t\t\tPoolAllocationMode: pulumi.String(\"BatchService\"),\n\t\t\tStorageAccountId:   exampleAccount.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = batch.NewApplication(ctx, \"exampleApplication\", \u0026batch.ApplicationArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAccountName:       exampleBatch / accountAccount.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBatch Applications can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:batch/application:Application example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Batch/batchAccounts/exampleba/applications/example-batch-application\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "The name of the Batch account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "allowUpdates": {
          "description": "A value indicating whether packages within the application may be overwritten using the same version string. Defaults to `true`.\n",
          "type": "boolean"
        },
        "defaultVersion": {
          "description": "The package to use if a client requests the application but does not specify a version. This property can only be set to the name of an existing package.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name for the application.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the application. This must be unique within the account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group that contains the Batch account. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "accountName": {
          "description": "The name of the Batch account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "allowUpdates": {
          "description": "A value indicating whether packages within the application may be overwritten using the same version string. Defaults to `true`.\n",
          "type": "boolean"
        },
        "defaultVersion": {
          "description": "The package to use if a client requests the application but does not specify a version. This property can only be set to the name of an existing package.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name for the application.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the application. This must be unique within the account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group that contains the Batch account. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "accountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Application resources.\n",
        "properties": {
          "accountName": {
            "description": "The name of the Batch account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "allowUpdates": {
            "description": "A value indicating whether packages within the application may be overwritten using the same version string. Defaults to `true`.\n",
            "type": "boolean"
          },
          "defaultVersion": {
            "description": "The package to use if a client requests the application but does not specify a version. This property can only be set to the name of an existing package.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name for the application.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the application. This must be unique within the account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group that contains the Batch account. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:batch/certificate:Certificate": {
      "description": "Manages a certificate in an Azure Batch account.\n\n\n## Import\n\nBatch Certificates can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:batch/certificate:Certificate example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Batch/batchAccounts/batch1/certificates/certificate1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "Specifies the name of the Batch account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "certificate": {
          "description": "The base64-encoded contents of the certificate.\n",
          "language": {
            "csharp": {
              "name": "BatchCertificate"
            }
          },
          "type": "string"
        },
        "format": {
          "description": "The format of the certificate. Possible values are `Cer` or `Pfx`.\n",
          "type": "string"
        },
        "password": {
          "description": "The password to access the certificate's private key. This can only be specified when `format` is `Pfx`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Batch account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "thumbprint": {
          "description": "The thumbprint of the certificate. At this time the only supported value is 'SHA1'.\n",
          "type": "string"
        },
        "thumbprintAlgorithm": {
          "type": "string"
        }
      },
      "properties": {
        "accountName": {
          "description": "Specifies the name of the Batch account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "certificate": {
          "description": "The base64-encoded contents of the certificate.\n",
          "language": {
            "csharp": {
              "name": "BatchCertificate"
            }
          },
          "type": "string"
        },
        "format": {
          "description": "The format of the certificate. Possible values are `Cer` or `Pfx`.\n",
          "type": "string"
        },
        "name": {
          "description": "The generated name of the certificate.\n",
          "type": "string"
        },
        "password": {
          "description": "The password to access the certificate's private key. This can only be specified when `format` is `Pfx`.\n",
          "type": "string"
        },
        "publicData": {
          "description": "The public key of the certificate.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Batch account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "thumbprint": {
          "description": "The thumbprint of the certificate. At this time the only supported value is 'SHA1'.\n",
          "type": "string"
        },
        "thumbprintAlgorithm": {
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "certificate",
        "format",
        "name",
        "publicData",
        "resourceGroupName",
        "thumbprint",
        "thumbprintAlgorithm"
      ],
      "requiredInputs": [
        "accountName",
        "certificate",
        "format",
        "resourceGroupName",
        "thumbprint",
        "thumbprintAlgorithm"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Certificate resources.\n",
        "properties": {
          "accountName": {
            "description": "Specifies the name of the Batch account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "certificate": {
            "description": "The base64-encoded contents of the certificate.\n",
            "language": {
              "csharp": {
                "name": "BatchCertificate"
              }
            },
            "type": "string"
          },
          "format": {
            "description": "The format of the certificate. Possible values are `Cer` or `Pfx`.\n",
            "type": "string"
          },
          "name": {
            "description": "The generated name of the certificate.\n",
            "type": "string"
          },
          "password": {
            "description": "The password to access the certificate's private key. This can only be specified when `format` is `Pfx`.\n",
            "type": "string"
          },
          "publicData": {
            "description": "The public key of the certificate.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Batch account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "thumbprint": {
            "description": "The thumbprint of the certificate. At this time the only supported value is 'SHA1'.\n",
            "type": "string"
          },
          "thumbprintAlgorithm": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:batch/job:Job": {
      "description": "Manages a Batch Job.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"west europe\"});\nconst exampleAccount = new azure.batch.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst examplePool = new azure.batch.Pool(\"examplePool\", {\n    resourceGroupName: exampleResourceGroup.name,\n    accountName: exampleAccount.name,\n    nodeAgentSkuId: \"batch.node.ubuntu 16.04\",\n    vmSize: \"Standard_A1\",\n    fixedScale: {\n        targetDedicatedNodes: 1,\n    },\n    storageImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04.0-LTS\",\n        version: \"latest\",\n    },\n});\nconst exampleJob = new azure.batch.Job(\"exampleJob\", {batchPoolId: examplePool.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"west europe\")\nexample_account = azure.batch.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_pool = azure.batch.Pool(\"examplePool\",\n    resource_group_name=example_resource_group.name,\n    account_name=example_account.name,\n    node_agent_sku_id=\"batch.node.ubuntu 16.04\",\n    vm_size=\"Standard_A1\",\n    fixed_scale=azure.batch.PoolFixedScaleArgs(\n        target_dedicated_nodes=1,\n    ),\n    storage_image_reference=azure.batch.PoolStorageImageReferenceArgs(\n        publisher=\"Canonical\",\n        offer=\"UbuntuServer\",\n        sku=\"16.04.0-LTS\",\n        version=\"latest\",\n    ))\nexample_job = azure.batch.Job(\"exampleJob\", batch_pool_id=example_pool.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"west europe\",\n        });\n        var exampleAccount = new Azure.Batch.Account(\"exampleAccount\", new Azure.Batch.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var examplePool = new Azure.Batch.Pool(\"examplePool\", new Azure.Batch.PoolArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            AccountName = exampleAccount.Name,\n            NodeAgentSkuId = \"batch.node.ubuntu 16.04\",\n            VmSize = \"Standard_A1\",\n            FixedScale = new Azure.Batch.Inputs.PoolFixedScaleArgs\n            {\n                TargetDedicatedNodes = 1,\n            },\n            StorageImageReference = new Azure.Batch.Inputs.PoolStorageImageReferenceArgs\n            {\n                Publisher = \"Canonical\",\n                Offer = \"UbuntuServer\",\n                Sku = \"16.04.0-LTS\",\n                Version = \"latest\",\n            },\n        });\n        var exampleJob = new Azure.Batch.Job(\"exampleJob\", new Azure.Batch.JobArgs\n        {\n            BatchPoolId = examplePool.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/batch\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"west europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := batch.NewAccount(ctx, \"exampleAccount\", \u0026batch.AccountArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePool, err := batch.NewPool(ctx, \"examplePool\", \u0026batch.PoolArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAccountName:       exampleAccount.Name,\n\t\t\tNodeAgentSkuId:    pulumi.String(\"batch.node.ubuntu 16.04\"),\n\t\t\tVmSize:            pulumi.String(\"Standard_A1\"),\n\t\t\tFixedScale: \u0026batch.PoolFixedScaleArgs{\n\t\t\t\tTargetDedicatedNodes: pulumi.Int(1),\n\t\t\t},\n\t\t\tStorageImageReference: \u0026batch.PoolStorageImageReferenceArgs{\n\t\t\t\tPublisher: pulumi.String(\"Canonical\"),\n\t\t\t\tOffer:     pulumi.String(\"UbuntuServer\"),\n\t\t\t\tSku:       pulumi.String(\"16.04.0-LTS\"),\n\t\t\t\tVersion:   pulumi.String(\"latest\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = batch.NewJob(ctx, \"exampleJob\", \u0026batch.JobArgs{\n\t\t\tBatchPoolId: examplePool.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBatch Jobs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:batch/job:Job example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Batch/batchAccounts/account1/pools/pool1/jobs/job1\n```\n\n ",
      "inputProperties": {
        "batchPoolId": {
          "description": "The ID of the Batch Pool. Changing this forces a new Batch Job to be created.\n",
          "type": "string"
        },
        "commonEnvironmentProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies a map of common environment settings applied to this Batch Job. Changing this forces a new Batch Job to be created.\n",
          "type": "object"
        },
        "displayName": {
          "description": "The display name of this Batch Job. Changing this forces a new Batch Job to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Batch Job. Changing this forces a new Batch Job to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "The priority of this Batch Job, possible values can range from -1000 (lowest) to 1000 (highest). Defaults to `0`.\n",
          "type": "integer"
        },
        "taskRetryMaximum": {
          "description": "The number of retries to each Batch Task belongs to this Batch Job. If this is set to `0`, the Batch service does not retry Tasks. If this is set to `-1`, the Batch service retries Batch Tasks without limit. Default value is `0`.\n",
          "type": "integer"
        }
      },
      "properties": {
        "batchPoolId": {
          "description": "The ID of the Batch Pool. Changing this forces a new Batch Job to be created.\n",
          "type": "string"
        },
        "commonEnvironmentProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies a map of common environment settings applied to this Batch Job. Changing this forces a new Batch Job to be created.\n",
          "type": "object"
        },
        "displayName": {
          "description": "The display name of this Batch Job. Changing this forces a new Batch Job to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Batch Job. Changing this forces a new Batch Job to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "The priority of this Batch Job, possible values can range from -1000 (lowest) to 1000 (highest). Defaults to `0`.\n",
          "type": "integer"
        },
        "taskRetryMaximum": {
          "description": "The number of retries to each Batch Task belongs to this Batch Job. If this is set to `0`, the Batch service does not retry Tasks. If this is set to `-1`, the Batch service retries Batch Tasks without limit. Default value is `0`.\n",
          "type": "integer"
        }
      },
      "required": [
        "batchPoolId",
        "name"
      ],
      "requiredInputs": [
        "batchPoolId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Job resources.\n",
        "properties": {
          "batchPoolId": {
            "description": "The ID of the Batch Pool. Changing this forces a new Batch Job to be created.\n",
            "type": "string"
          },
          "commonEnvironmentProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies a map of common environment settings applied to this Batch Job. Changing this forces a new Batch Job to be created.\n",
            "type": "object"
          },
          "displayName": {
            "description": "The display name of this Batch Job. Changing this forces a new Batch Job to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Batch Job. Changing this forces a new Batch Job to be created.\n",
            "type": "string"
          },
          "priority": {
            "description": "The priority of this Batch Job, possible values can range from -1000 (lowest) to 1000 (highest). Defaults to `0`.\n",
            "type": "integer"
          },
          "taskRetryMaximum": {
            "description": "The number of retries to each Batch Task belongs to this Batch Job. If this is set to `0`, the Batch service does not retry Tasks. If this is set to `-1`, the Batch service retries Batch Tasks without limit. Default value is `0`.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:batch/pool:Pool": {
      "description": "Manages an Azure Batch pool.\n\n\n## Import\n\nBatch Pools can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:batch/pool:Pool example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myGroup1/providers/Microsoft.Batch/batchAccounts/myBatchAccount1/pools/myBatchPool1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "Specifies the name of the Batch account in which the pool will be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "autoScale": {
          "$ref": "#/types/azure:batch/PoolAutoScale:PoolAutoScale",
          "description": "A `auto_scale` block that describes the scale settings when using auto scale.\n"
        },
        "certificates": {
          "description": "One or more `certificate` blocks that describe the certificates to be installed on each compute node in the pool.\n",
          "items": {
            "$ref": "#/types/azure:batch/PoolCertificate:PoolCertificate"
          },
          "type": "array"
        },
        "containerConfiguration": {
          "$ref": "#/types/azure:batch/PoolContainerConfiguration:PoolContainerConfiguration",
          "description": "The container configuration used in the pool's VMs.\n"
        },
        "displayName": {
          "description": "Specifies the display name of the Batch pool.\n",
          "type": "string"
        },
        "fixedScale": {
          "$ref": "#/types/azure:batch/PoolFixedScale:PoolFixedScale",
          "description": "A `fixed_scale` block that describes the scale settings when using fixed scale.\n"
        },
        "maxTasksPerNode": {
          "description": "Specifies the maximum number of tasks that can run concurrently on a single compute node in the pool. Defaults to `1`. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of custom batch pool metadata.\n",
          "type": "object"
        },
        "name": {
          "description": "Specifies the name of the Batch pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkConfiguration": {
          "$ref": "#/types/azure:batch/PoolNetworkConfiguration:PoolNetworkConfiguration",
          "description": "A `network_configuration` block that describes the network configurations for the Batch pool.\n"
        },
        "nodeAgentSkuId": {
          "description": "Specifies the Sku of the node agents that will be created in the Batch pool.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Batch pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "startTask": {
          "$ref": "#/types/azure:batch/PoolStartTask:PoolStartTask",
          "description": "A `start_task` block that describes the start task settings for the Batch pool.\n"
        },
        "stopPendingResizeOperation": {
          "type": "boolean"
        },
        "storageImageReference": {
          "$ref": "#/types/azure:batch/PoolStorageImageReference:PoolStorageImageReference",
          "description": "A `storage_image_reference` for the virtual machines that will compose the Batch pool.\n"
        },
        "vmSize": {
          "description": "Specifies the size of the VM created in the Batch pool.\n",
          "type": "string"
        }
      },
      "properties": {
        "accountName": {
          "description": "Specifies the name of the Batch account in which the pool will be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "autoScale": {
          "$ref": "#/types/azure:batch/PoolAutoScale:PoolAutoScale",
          "description": "A `auto_scale` block that describes the scale settings when using auto scale.\n"
        },
        "certificates": {
          "description": "One or more `certificate` blocks that describe the certificates to be installed on each compute node in the pool.\n",
          "items": {
            "$ref": "#/types/azure:batch/PoolCertificate:PoolCertificate"
          },
          "type": "array"
        },
        "containerConfiguration": {
          "$ref": "#/types/azure:batch/PoolContainerConfiguration:PoolContainerConfiguration",
          "description": "The container configuration used in the pool's VMs.\n"
        },
        "displayName": {
          "description": "Specifies the display name of the Batch pool.\n",
          "type": "string"
        },
        "fixedScale": {
          "$ref": "#/types/azure:batch/PoolFixedScale:PoolFixedScale",
          "description": "A `fixed_scale` block that describes the scale settings when using fixed scale.\n"
        },
        "maxTasksPerNode": {
          "description": "Specifies the maximum number of tasks that can run concurrently on a single compute node in the pool. Defaults to `1`. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of custom batch pool metadata.\n",
          "type": "object"
        },
        "name": {
          "description": "Specifies the name of the Batch pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkConfiguration": {
          "$ref": "#/types/azure:batch/PoolNetworkConfiguration:PoolNetworkConfiguration",
          "description": "A `network_configuration` block that describes the network configurations for the Batch pool.\n"
        },
        "nodeAgentSkuId": {
          "description": "Specifies the Sku of the node agents that will be created in the Batch pool.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Batch pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "startTask": {
          "$ref": "#/types/azure:batch/PoolStartTask:PoolStartTask",
          "description": "A `start_task` block that describes the start task settings for the Batch pool.\n"
        },
        "stopPendingResizeOperation": {
          "type": "boolean"
        },
        "storageImageReference": {
          "$ref": "#/types/azure:batch/PoolStorageImageReference:PoolStorageImageReference",
          "description": "A `storage_image_reference` for the virtual machines that will compose the Batch pool.\n"
        },
        "vmSize": {
          "description": "Specifies the size of the VM created in the Batch pool.\n",
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "name",
        "nodeAgentSkuId",
        "resourceGroupName",
        "storageImageReference",
        "vmSize"
      ],
      "requiredInputs": [
        "accountName",
        "nodeAgentSkuId",
        "resourceGroupName",
        "storageImageReference",
        "vmSize"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Pool resources.\n",
        "properties": {
          "accountName": {
            "description": "Specifies the name of the Batch account in which the pool will be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "autoScale": {
            "$ref": "#/types/azure:batch/PoolAutoScale:PoolAutoScale",
            "description": "A `auto_scale` block that describes the scale settings when using auto scale.\n"
          },
          "certificates": {
            "description": "One or more `certificate` blocks that describe the certificates to be installed on each compute node in the pool.\n",
            "items": {
              "$ref": "#/types/azure:batch/PoolCertificate:PoolCertificate"
            },
            "type": "array"
          },
          "containerConfiguration": {
            "$ref": "#/types/azure:batch/PoolContainerConfiguration:PoolContainerConfiguration",
            "description": "The container configuration used in the pool's VMs.\n"
          },
          "displayName": {
            "description": "Specifies the display name of the Batch pool.\n",
            "type": "string"
          },
          "fixedScale": {
            "$ref": "#/types/azure:batch/PoolFixedScale:PoolFixedScale",
            "description": "A `fixed_scale` block that describes the scale settings when using fixed scale.\n"
          },
          "maxTasksPerNode": {
            "description": "Specifies the maximum number of tasks that can run concurrently on a single compute node in the pool. Defaults to `1`. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of custom batch pool metadata.\n",
            "type": "object"
          },
          "name": {
            "description": "Specifies the name of the Batch pool. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkConfiguration": {
            "$ref": "#/types/azure:batch/PoolNetworkConfiguration:PoolNetworkConfiguration",
            "description": "A `network_configuration` block that describes the network configurations for the Batch pool.\n"
          },
          "nodeAgentSkuId": {
            "description": "Specifies the Sku of the node agents that will be created in the Batch pool.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Batch pool. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "startTask": {
            "$ref": "#/types/azure:batch/PoolStartTask:PoolStartTask",
            "description": "A `start_task` block that describes the start task settings for the Batch pool.\n"
          },
          "stopPendingResizeOperation": {
            "type": "boolean"
          },
          "storageImageReference": {
            "$ref": "#/types/azure:batch/PoolStorageImageReference:PoolStorageImageReference",
            "description": "A `storage_image_reference` for the virtual machines that will compose the Batch pool.\n"
          },
          "vmSize": {
            "description": "Specifies the size of the VM created in the Batch pool.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:blueprint/assignment:Assignment": {
      "description": "Manages a Blueprint Assignment resource\n\n\u003e **NOTE:** Azure Blueprints are in Preview and potentially subject to breaking change without notice.\n\n\u003e **NOTE:** Azure Blueprint Assignments can only be applied to Subscriptions.  Assignments to Management Groups is not currently supported by the service or by this provider.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleSubscription = azure.core.getSubscription({});\nconst exampleDefinition = exampleSubscription.then(exampleSubscription =\u003e azure.blueprint.getDefinition({\n    name: \"exampleBlueprint\",\n    scopeId: exampleSubscription.id,\n}));\nconst examplePublishedVersion = Promise.all([exampleDefinition, exampleDefinition]).then(([exampleDefinition, exampleDefinition1]) =\u003e azure.blueprint.getPublishedVersion({\n    scopeId: exampleDefinition.scopeId,\n    blueprintName: exampleDefinition1.name,\n    version: \"v1.0.0\",\n}));\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {\n    location: \"West Europe\",\n    tags: {\n        Environment: \"example\",\n    },\n});\nconst exampleUserAssignedIdentity = new azure.authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst operator = new azure.authorization.Assignment(\"operator\", {\n    scope: exampleSubscription.then(exampleSubscription =\u003e exampleSubscription.id),\n    roleDefinitionName: \"Blueprint Operator\",\n    principalId: exampleUserAssignedIdentity.principalId,\n});\nconst owner = new azure.authorization.Assignment(\"owner\", {\n    scope: exampleSubscription.then(exampleSubscription =\u003e exampleSubscription.id),\n    roleDefinitionName: \"Owner\",\n    principalId: exampleUserAssignedIdentity.principalId,\n});\nconst exampleAssignment = new azure.blueprint.Assignment(\"exampleAssignment\", {\n    targetSubscriptionId: exampleSubscription.then(exampleSubscription =\u003e exampleSubscription.id),\n    versionId: examplePublishedVersion.then(examplePublishedVersion =\u003e examplePublishedVersion.id),\n    location: exampleResourceGroup.location,\n    lockMode: \"AllResourcesDoNotDelete\",\n    lockExcludePrincipals: [current.then(current =\u003e current.objectId)],\n    identity: {\n        type: \"UserAssigned\",\n        identityIds: [exampleUserAssignedIdentity.id],\n    },\n    resourceGroups: `    {\n      \"ResourceGroup\": {\n        \"name\": \"exampleRG-bp\"\n      }\n    }\n`,\n    parameterValues: `    {\n      \"allowedlocationsforresourcegroups_listOfAllowedLocations\": {\n        \"value\": [\"westus\", \"westus2\", \"eastus\", \"centralus\", \"centraluseuap\", \"southcentralus\", \"northcentralus\", \"westcentralus\", \"eastus2\", \"eastus2euap\", \"brazilsouth\", \"brazilus\", \"northeurope\", \"westeurope\", \"eastasia\", \"southeastasia\", \"japanwest\", \"japaneast\", \"koreacentral\", \"koreasouth\", \"indiasouth\", \"indiawest\", \"indiacentral\", \"australiaeast\", \"australiasoutheast\", \"canadacentral\", \"canadaeast\", \"uknorth\", \"uksouth2\", \"uksouth\", \"ukwest\", \"francecentral\", \"francesouth\", \"australiacentral\", \"australiacentral2\", \"uaecentral\", \"uaenorth\", \"southafricanorth\", \"southafricawest\", \"switzerlandnorth\", \"switzerlandwest\", \"germanynorth\", \"germanywestcentral\", \"norwayeast\", \"norwaywest\"]\n      }\n    }\n`,\n}, {\n    dependsOn: [\n        operator,\n        owner,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_subscription = azure.core.get_subscription()\nexample_definition = azure.blueprint.get_definition(name=\"exampleBlueprint\",\n    scope_id=example_subscription.id)\nexample_published_version = azure.blueprint.get_published_version(scope_id=example_definition.scope_id,\n    blueprint_name=example_definition.name,\n    version=\"v1.0.0\")\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\",\n    location=\"West Europe\",\n    tags={\n        \"Environment\": \"example\",\n    })\nexample_user_assigned_identity = azure.authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\noperator = azure.authorization.Assignment(\"operator\",\n    scope=example_subscription.id,\n    role_definition_name=\"Blueprint Operator\",\n    principal_id=example_user_assigned_identity.principal_id)\nowner = azure.authorization.Assignment(\"owner\",\n    scope=example_subscription.id,\n    role_definition_name=\"Owner\",\n    principal_id=example_user_assigned_identity.principal_id)\nexample_assignment = azure.blueprint.Assignment(\"exampleAssignment\",\n    target_subscription_id=example_subscription.id,\n    version_id=example_published_version.id,\n    location=example_resource_group.location,\n    lock_mode=\"AllResourcesDoNotDelete\",\n    lock_exclude_principals=[current.object_id],\n    identity=azure.blueprint.AssignmentIdentityArgs(\n        type=\"UserAssigned\",\n        identity_ids=[example_user_assigned_identity.id],\n    ),\n    resource_groups=\"\"\"    {\n      \"ResourceGroup\": {\n        \"name\": \"exampleRG-bp\"\n      }\n    }\n\"\"\",\n    parameter_values=\"\"\"    {\n      \"allowedlocationsforresourcegroups_listOfAllowedLocations\": {\n        \"value\": [\"westus\", \"westus2\", \"eastus\", \"centralus\", \"centraluseuap\", \"southcentralus\", \"northcentralus\", \"westcentralus\", \"eastus2\", \"eastus2euap\", \"brazilsouth\", \"brazilus\", \"northeurope\", \"westeurope\", \"eastasia\", \"southeastasia\", \"japanwest\", \"japaneast\", \"koreacentral\", \"koreasouth\", \"indiasouth\", \"indiawest\", \"indiacentral\", \"australiaeast\", \"australiasoutheast\", \"canadacentral\", \"canadaeast\", \"uknorth\", \"uksouth2\", \"uksouth\", \"ukwest\", \"francecentral\", \"francesouth\", \"australiacentral\", \"australiacentral2\", \"uaecentral\", \"uaenorth\", \"southafricanorth\", \"southafricawest\", \"switzerlandnorth\", \"switzerlandwest\", \"germanynorth\", \"germanywestcentral\", \"norwayeast\", \"norwaywest\"]\n      }\n    }\n\"\"\",\n    opts=pulumi.ResourceOptions(depends_on=[\n            operator,\n            owner,\n        ]))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleSubscription = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var exampleDefinition = exampleSubscription.Apply(exampleSubscription =\u003e Output.Create(Azure.Blueprint.GetDefinition.InvokeAsync(new Azure.Blueprint.GetDefinitionArgs\n        {\n            Name = \"exampleBlueprint\",\n            ScopeId = exampleSubscription.Id,\n        })));\n        var examplePublishedVersion = Output.Tuple(exampleDefinition, exampleDefinition).Apply(values =\u003e\n        {\n            var exampleDefinition = values.Item1;\n            var exampleDefinition1 = values.Item2;\n            return Output.Create(Azure.Blueprint.GetPublishedVersion.InvokeAsync(new Azure.Blueprint.GetPublishedVersionArgs\n            {\n                ScopeId = exampleDefinition.ScopeId,\n                BlueprintName = exampleDefinition1.Name,\n                Version = \"v1.0.0\",\n            }));\n        });\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n            Tags = \n            {\n                { \"Environment\", \"example\" },\n            },\n        });\n        var exampleUserAssignedIdentity = new Azure.Authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\", new Azure.Authorization.UserAssignedIdentityArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var @operator = new Azure.Authorization.Assignment(\"operator\", new Azure.Authorization.AssignmentArgs\n        {\n            Scope = exampleSubscription.Apply(exampleSubscription =\u003e exampleSubscription.Id),\n            RoleDefinitionName = \"Blueprint Operator\",\n            PrincipalId = exampleUserAssignedIdentity.PrincipalId,\n        });\n        var owner = new Azure.Authorization.Assignment(\"owner\", new Azure.Authorization.AssignmentArgs\n        {\n            Scope = exampleSubscription.Apply(exampleSubscription =\u003e exampleSubscription.Id),\n            RoleDefinitionName = \"Owner\",\n            PrincipalId = exampleUserAssignedIdentity.PrincipalId,\n        });\n        var exampleAssignment = new Azure.Blueprint.Assignment(\"exampleAssignment\", new Azure.Blueprint.AssignmentArgs\n        {\n            TargetSubscriptionId = exampleSubscription.Apply(exampleSubscription =\u003e exampleSubscription.Id),\n            VersionId = examplePublishedVersion.Apply(examplePublishedVersion =\u003e examplePublishedVersion.Id),\n            Location = exampleResourceGroup.Location,\n            LockMode = \"AllResourcesDoNotDelete\",\n            LockExcludePrincipals = \n            {\n                current.Apply(current =\u003e current.ObjectId),\n            },\n            Identity = new Azure.Blueprint.Inputs.AssignmentIdentityArgs\n            {\n                Type = \"UserAssigned\",\n                IdentityIds = \n                {\n                    exampleUserAssignedIdentity.Id,\n                },\n            },\n            ResourceGroups = @\"    {\n      \"\"ResourceGroup\"\": {\n        \"\"name\"\": \"\"exampleRG-bp\"\"\n      }\n    }\n\",\n            ParameterValues = @\"    {\n      \"\"allowedlocationsforresourcegroups_listOfAllowedLocations\"\": {\n        \"\"value\"\": [\"\"westus\"\", \"\"westus2\"\", \"\"eastus\"\", \"\"centralus\"\", \"\"centraluseuap\"\", \"\"southcentralus\"\", \"\"northcentralus\"\", \"\"westcentralus\"\", \"\"eastus2\"\", \"\"eastus2euap\"\", \"\"brazilsouth\"\", \"\"brazilus\"\", \"\"northeurope\"\", \"\"westeurope\"\", \"\"eastasia\"\", \"\"southeastasia\"\", \"\"japanwest\"\", \"\"japaneast\"\", \"\"koreacentral\"\", \"\"koreasouth\"\", \"\"indiasouth\"\", \"\"indiawest\"\", \"\"indiacentral\"\", \"\"australiaeast\"\", \"\"australiasoutheast\"\", \"\"canadacentral\"\", \"\"canadaeast\"\", \"\"uknorth\"\", \"\"uksouth2\"\", \"\"uksouth\"\", \"\"ukwest\"\", \"\"francecentral\"\", \"\"francesouth\"\", \"\"australiacentral\"\", \"\"australiacentral2\"\", \"\"uaecentral\"\", \"\"uaenorth\"\", \"\"southafricanorth\"\", \"\"southafricawest\"\", \"\"switzerlandnorth\"\", \"\"switzerlandwest\"\", \"\"germanynorth\"\", \"\"germanywestcentral\"\", \"\"norwayeast\"\", \"\"norwaywest\"\"]\n      }\n    }\n\",\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                @operator,\n                owner,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/blueprint\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubscription, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDefinition, err := blueprint.GetDefinition(ctx, \u0026blueprint.GetDefinitionArgs{\n\t\t\tName:    \"exampleBlueprint\",\n\t\t\tScopeId: exampleSubscription.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublishedVersion, err := blueprint.GetPublishedVersion(ctx, \u0026blueprint.GetPublishedVersionArgs{\n\t\t\tScopeId:       exampleDefinition.ScopeId,\n\t\t\tBlueprintName: exampleDefinition.Name,\n\t\t\tVersion:       \"v1.0.0\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUserAssignedIdentity, err := authorization.NewUserAssignedIdentity(ctx, \"exampleUserAssignedIdentity\", \u0026authorization.UserAssignedIdentityArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\toperator, err := authorization.NewAssignment(ctx, \"operator\", \u0026authorization.AssignmentArgs{\n\t\t\tScope:              pulumi.String(exampleSubscription.Id),\n\t\t\tRoleDefinitionName: pulumi.String(\"Blueprint Operator\"),\n\t\t\tPrincipalId:        exampleUserAssignedIdentity.PrincipalId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\towner, err := authorization.NewAssignment(ctx, \"owner\", \u0026authorization.AssignmentArgs{\n\t\t\tScope:              pulumi.String(exampleSubscription.Id),\n\t\t\tRoleDefinitionName: pulumi.String(\"Owner\"),\n\t\t\tPrincipalId:        exampleUserAssignedIdentity.PrincipalId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = blueprint.NewAssignment(ctx, \"exampleAssignment\", \u0026blueprint.AssignmentArgs{\n\t\t\tTargetSubscriptionId: pulumi.String(exampleSubscription.Id),\n\t\t\tVersionId:            pulumi.String(examplePublishedVersion.Id),\n\t\t\tLocation:             exampleResourceGroup.Location,\n\t\t\tLockMode:             pulumi.String(\"AllResourcesDoNotDelete\"),\n\t\t\tLockExcludePrincipals: pulumi.StringArray{\n\t\t\t\tpulumi.String(current.ObjectId),\n\t\t\t},\n\t\t\tIdentity: \u0026blueprint.AssignmentIdentityArgs{\n\t\t\t\tType: pulumi.String(\"UserAssigned\"),\n\t\t\t\tIdentityIds: pulumi.StringArray{\n\t\t\t\t\texampleUserAssignedIdentity.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroups:  pulumi.String(fmt.Sprintf(\"%v%v%v%v%v\", \"    {\\n\", \"      \\\"ResourceGroup\\\": {\\n\", \"        \\\"name\\\": \\\"exampleRG-bp\\\"\\n\", \"      }\\n\", \"    }\\n\")),\n\t\t\tParameterValues: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v\", \"    {\\n\", \"      \\\"allowedlocationsforresourcegroups_listOfAllowedLocations\\\": {\\n\", \"        \\\"value\\\": [\\\"westus\\\", \\\"westus2\\\", \\\"eastus\\\", \\\"centralus\\\", \\\"centraluseuap\\\", \\\"southcentralus\\\", \\\"northcentralus\\\", \\\"westcentralus\\\", \\\"eastus2\\\", \\\"eastus2euap\\\", \\\"brazilsouth\\\", \\\"brazilus\\\", \\\"northeurope\\\", \\\"westeurope\\\", \\\"eastasia\\\", \\\"southeastasia\\\", \\\"japanwest\\\", \\\"japaneast\\\", \\\"koreacentral\\\", \\\"koreasouth\\\", \\\"indiasouth\\\", \\\"indiawest\\\", \\\"indiacentral\\\", \\\"australiaeast\\\", \\\"australiasoutheast\\\", \\\"canadacentral\\\", \\\"canadaeast\\\", \\\"uknorth\\\", \\\"uksouth2\\\", \\\"uksouth\\\", \\\"ukwest\\\", \\\"francecentral\\\", \\\"francesouth\\\", \\\"australiacentral\\\", \\\"australiacentral2\\\", \\\"uaecentral\\\", \\\"uaenorth\\\", \\\"southafricanorth\\\", \\\"southafricawest\\\", \\\"switzerlandnorth\\\", \\\"switzerlandwest\\\", \\\"germanynorth\\\", \\\"germanywestcentral\\\", \\\"norwayeast\\\", \\\"norwaywest\\\"]\\n\", \"      }\\n\", \"    }\\n\")),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\toperator,\n\t\t\towner,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure Blueprint Assignments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:blueprint/assignment:Assignment example \"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Blueprint/blueprintAssignments/assignSimpleBlueprint\"\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:blueprint/AssignmentIdentity:AssignmentIdentity"
        },
        "location": {
          "description": "The Azure location of the Assignment.\n",
          "type": "string"
        },
        "lockExcludePrincipals": {
          "description": "a list of up to 5 Principal IDs that are permitted to bypass the locks applied by the Blueprint.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "lockMode": {
          "description": "The locking mode of the Blueprint Assignment.  One of `None` (Default), `AllResourcesReadOnly`, or `AlResourcesDoNotDelete`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Blueprint Assignment\n",
          "type": "string"
        },
        "parameterValues": {
          "description": "a JSON string to supply Blueprint Assignment parameter values.\n",
          "type": "string"
        },
        "resourceGroups": {
          "description": "a JSON string to supply the Blueprint Resource Group information.\n",
          "type": "string"
        },
        "targetSubscriptionId": {
          "description": "The Subscription ID the Blueprint Published Version is to be applied to.\n",
          "type": "string"
        },
        "versionId": {
          "description": "The ID of the Published Version of the blueprint to be assigned.\n",
          "type": "string"
        }
      },
      "properties": {
        "blueprintName": {
          "description": "The name of the blueprint assigned\n",
          "type": "string"
        },
        "description": {
          "description": "The Description on the Blueprint\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the blueprint\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:blueprint/AssignmentIdentity:AssignmentIdentity"
        },
        "location": {
          "description": "The Azure location of the Assignment.\n",
          "type": "string"
        },
        "lockExcludePrincipals": {
          "description": "a list of up to 5 Principal IDs that are permitted to bypass the locks applied by the Blueprint.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "lockMode": {
          "description": "The locking mode of the Blueprint Assignment.  One of `None` (Default), `AllResourcesReadOnly`, or `AlResourcesDoNotDelete`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Blueprint Assignment\n",
          "type": "string"
        },
        "parameterValues": {
          "description": "a JSON string to supply Blueprint Assignment parameter values.\n",
          "type": "string"
        },
        "resourceGroups": {
          "description": "a JSON string to supply the Blueprint Resource Group information.\n",
          "type": "string"
        },
        "targetSubscriptionId": {
          "description": "The Subscription ID the Blueprint Published Version is to be applied to.\n",
          "type": "string"
        },
        "type": {
          "description": "The Identity type for the Managed Service Identity. Currently only `UserAssigned` is supported.\n",
          "type": "string"
        },
        "versionId": {
          "description": "The ID of the Published Version of the blueprint to be assigned.\n",
          "type": "string"
        }
      },
      "required": [
        "blueprintName",
        "description",
        "displayName",
        "location",
        "name",
        "targetSubscriptionId",
        "type",
        "versionId"
      ],
      "requiredInputs": [
        "targetSubscriptionId",
        "versionId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Assignment resources.\n",
        "properties": {
          "blueprintName": {
            "description": "The name of the blueprint assigned\n",
            "type": "string"
          },
          "description": {
            "description": "The Description on the Blueprint\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the blueprint\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:blueprint/AssignmentIdentity:AssignmentIdentity"
          },
          "location": {
            "description": "The Azure location of the Assignment.\n",
            "type": "string"
          },
          "lockExcludePrincipals": {
            "description": "a list of up to 5 Principal IDs that are permitted to bypass the locks applied by the Blueprint.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "lockMode": {
            "description": "The locking mode of the Blueprint Assignment.  One of `None` (Default), `AllResourcesReadOnly`, or `AlResourcesDoNotDelete`.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Blueprint Assignment\n",
            "type": "string"
          },
          "parameterValues": {
            "description": "a JSON string to supply Blueprint Assignment parameter values.\n",
            "type": "string"
          },
          "resourceGroups": {
            "description": "a JSON string to supply the Blueprint Resource Group information.\n",
            "type": "string"
          },
          "targetSubscriptionId": {
            "description": "The Subscription ID the Blueprint Published Version is to be applied to.\n",
            "type": "string"
          },
          "type": {
            "description": "The Identity type for the Managed Service Identity. Currently only `UserAssigned` is supported.\n",
            "type": "string"
          },
          "versionId": {
            "description": "The ID of the Published Version of the blueprint to be assigned.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:bot/channelAlexa:ChannelAlexa": {
      "description": "Manages an Alexa integration for a Bot Channel\n\n\u003e **Note** A bot can only have a single Alexa Channel associated with it.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleChannelsRegistration = new azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\", {\n    location: \"global\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"F0\",\n    microsoftAppId: current.then(current =\u003e current.clientId),\n});\nconst exampleChannelAlexa = new azure.bot.ChannelAlexa(\"exampleChannelAlexa\", {\n    botName: exampleChannelsRegistration.name,\n    location: exampleChannelsRegistration.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skillId: \"amzn1.ask.skill.00000000-0000-0000-0000-000000000000\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_channels_registration = azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\",\n    location=\"global\",\n    resource_group_name=example_resource_group.name,\n    sku=\"F0\",\n    microsoft_app_id=current.client_id)\nexample_channel_alexa = azure.bot.ChannelAlexa(\"exampleChannelAlexa\",\n    bot_name=example_channels_registration.name,\n    location=example_channels_registration.location,\n    resource_group_name=example_resource_group.name,\n    skill_id=\"amzn1.ask.skill.00000000-0000-0000-0000-000000000000\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleChannelsRegistration = new Azure.Bot.ChannelsRegistration(\"exampleChannelsRegistration\", new Azure.Bot.ChannelsRegistrationArgs\n        {\n            Location = \"global\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"F0\",\n            MicrosoftAppId = current.Apply(current =\u003e current.ClientId),\n        });\n        var exampleChannelAlexa = new Azure.Bot.ChannelAlexa(\"exampleChannelAlexa\", new Azure.Bot.ChannelAlexaArgs\n        {\n            BotName = exampleChannelsRegistration.Name,\n            Location = exampleChannelsRegistration.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkillId = \"amzn1.ask.skill.00000000-0000-0000-0000-000000000000\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleChannelsRegistration, err := bot.NewChannelsRegistration(ctx, \"exampleChannelsRegistration\", \u0026bot.ChannelsRegistrationArgs{\n\t\t\tLocation:          pulumi.String(\"global\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"F0\"),\n\t\t\tMicrosoftAppId:    pulumi.String(current.ClientId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bot.NewChannelAlexa(ctx, \"exampleChannelAlexa\", \u0026bot.ChannelAlexaArgs{\n\t\t\tBotName:           exampleChannelsRegistration.Name,\n\t\t\tLocation:          exampleChannelsRegistration.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkillId:           pulumi.String(\"amzn1.ask.skill.00000000-0000-0000-0000-000000000000\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe Alexa Integration for a Bot Channel can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:bot/channelAlexa:ChannelAlexa example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.BotService/botServices/botService1/channels/AlexaChannel\n```\n\n ",
      "inputProperties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Alexa Channel should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skillId": {
          "description": "The Alexa skill ID for the Alexa Channel.\n",
          "type": "string"
        }
      },
      "properties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Alexa Channel should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skillId": {
          "description": "The Alexa skill ID for the Alexa Channel.\n",
          "type": "string"
        }
      },
      "required": [
        "botName",
        "location",
        "resourceGroupName",
        "skillId"
      ],
      "requiredInputs": [
        "botName",
        "resourceGroupName",
        "skillId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ChannelAlexa resources.\n",
        "properties": {
          "botName": {
            "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the Alexa Channel should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skillId": {
            "description": "The Alexa skill ID for the Alexa Channel.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:bot/channelDirectLine:ChannelDirectLine": {
      "description": "Manages a Directline integration for a Bot Channel\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleChannelsRegistration = new azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\", {\n    location: \"global\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"F0\",\n    microsoftAppId: current.then(current =\u003e current.clientId),\n});\nconst exampleChannelDirectLine = new azure.bot.ChannelDirectLine(\"exampleChannelDirectLine\", {\n    botName: exampleChannelsRegistration.name,\n    location: exampleChannelsRegistration.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sites: [{\n        name: \"default\",\n        enabled: true,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_channels_registration = azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\",\n    location=\"global\",\n    resource_group_name=example_resource_group.name,\n    sku=\"F0\",\n    microsoft_app_id=current.client_id)\nexample_channel_direct_line = azure.bot.ChannelDirectLine(\"exampleChannelDirectLine\",\n    bot_name=example_channels_registration.name,\n    location=example_channels_registration.location,\n    resource_group_name=example_resource_group.name,\n    sites=[azure.bot.ChannelDirectLineSiteArgs(\n        name=\"default\",\n        enabled=True,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleChannelsRegistration = new Azure.Bot.ChannelsRegistration(\"exampleChannelsRegistration\", new Azure.Bot.ChannelsRegistrationArgs\n        {\n            Location = \"global\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"F0\",\n            MicrosoftAppId = current.Apply(current =\u003e current.ClientId),\n        });\n        var exampleChannelDirectLine = new Azure.Bot.ChannelDirectLine(\"exampleChannelDirectLine\", new Azure.Bot.ChannelDirectLineArgs\n        {\n            BotName = exampleChannelsRegistration.Name,\n            Location = exampleChannelsRegistration.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sites = \n            {\n                new Azure.Bot.Inputs.ChannelDirectLineSiteArgs\n                {\n                    Name = \"default\",\n                    Enabled = true,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleChannelsRegistration, err := bot.NewChannelsRegistration(ctx, \"exampleChannelsRegistration\", \u0026bot.ChannelsRegistrationArgs{\n\t\t\tLocation:          pulumi.String(\"global\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"F0\"),\n\t\t\tMicrosoftAppId:    pulumi.String(current.ClientId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bot.NewChannelDirectLine(ctx, \"exampleChannelDirectLine\", \u0026bot.ChannelDirectLineArgs{\n\t\t\tBotName:           exampleChannelsRegistration.Name,\n\t\t\tLocation:          exampleChannelsRegistration.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSites: bot.ChannelDirectLineSiteArray{\n\t\t\t\t\u0026bot.ChannelDirectLineSiteArgs{\n\t\t\t\t\tName:    pulumi.String(\"default\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe Directline Channel for a Bot can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:bot/channelDirectLine:ChannelDirectLine example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.BotService/botServices/example/channels/DirectlineChannel\n```\n\n ",
      "inputProperties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Bot Channel. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sites": {
          "description": "A site represents a client application that you want to connect to your bot. Multiple `site` blocks may be defined as below\n",
          "items": {
            "$ref": "#/types/azure:bot/ChannelDirectLineSite:ChannelDirectLineSite"
          },
          "type": "array"
        }
      },
      "properties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Bot Channel. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sites": {
          "description": "A site represents a client application that you want to connect to your bot. Multiple `site` blocks may be defined as below\n",
          "items": {
            "$ref": "#/types/azure:bot/ChannelDirectLineSite:ChannelDirectLineSite"
          },
          "type": "array"
        }
      },
      "required": [
        "botName",
        "location",
        "resourceGroupName",
        "sites"
      ],
      "requiredInputs": [
        "botName",
        "resourceGroupName",
        "sites"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ChannelDirectLine resources.\n",
        "properties": {
          "botName": {
            "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Bot Channel. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sites": {
            "description": "A site represents a client application that you want to connect to your bot. Multiple `site` blocks may be defined as below\n",
            "items": {
              "$ref": "#/types/azure:bot/ChannelDirectLineSite:ChannelDirectLineSite"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:bot/channelDirectLineSpeech:ChannelDirectLineSpeech": {
      "description": "Manages a Direct Line Speech integration for a Bot Channel\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.cognitive.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    kind: \"SpeechServices\",\n    skuName: \"S0\",\n});\nconst exampleChannelsRegistration = new azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\", {\n    location: \"global\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"F0\",\n    microsoftAppId: current.then(current =\u003e current.clientId),\n});\nconst exampleChannelDirectLineSpeech = new azure.bot.ChannelDirectLineSpeech(\"exampleChannelDirectLineSpeech\", {\n    botName: exampleChannelsRegistration.name,\n    location: exampleChannelsRegistration.location,\n    resourceGroupName: exampleResourceGroup.name,\n    cognitiveServiceLocation: exampleAccount.location,\n    cognitiveServiceAccessKey: exampleAccount.primaryAccessKey,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.cognitive.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    kind=\"SpeechServices\",\n    sku_name=\"S0\")\nexample_channels_registration = azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\",\n    location=\"global\",\n    resource_group_name=example_resource_group.name,\n    sku=\"F0\",\n    microsoft_app_id=current.client_id)\nexample_channel_direct_line_speech = azure.bot.ChannelDirectLineSpeech(\"exampleChannelDirectLineSpeech\",\n    bot_name=example_channels_registration.name,\n    location=example_channels_registration.location,\n    resource_group_name=example_resource_group.name,\n    cognitive_service_location=example_account.location,\n    cognitive_service_access_key=example_account.primary_access_key)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Cognitive.Account(\"exampleAccount\", new Azure.Cognitive.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Kind = \"SpeechServices\",\n            SkuName = \"S0\",\n        });\n        var exampleChannelsRegistration = new Azure.Bot.ChannelsRegistration(\"exampleChannelsRegistration\", new Azure.Bot.ChannelsRegistrationArgs\n        {\n            Location = \"global\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"F0\",\n            MicrosoftAppId = current.Apply(current =\u003e current.ClientId),\n        });\n        var exampleChannelDirectLineSpeech = new Azure.Bot.ChannelDirectLineSpeech(\"exampleChannelDirectLineSpeech\", new Azure.Bot.ChannelDirectLineSpeechArgs\n        {\n            BotName = exampleChannelsRegistration.Name,\n            Location = exampleChannelsRegistration.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            CognitiveServiceLocation = exampleAccount.Location,\n            CognitiveServiceAccessKey = exampleAccount.PrimaryAccessKey,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cognitive\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := cognitive.NewAccount(ctx, \"exampleAccount\", \u0026cognitive.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tKind:              pulumi.String(\"SpeechServices\"),\n\t\t\tSkuName:           pulumi.String(\"S0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleChannelsRegistration, err := bot.NewChannelsRegistration(ctx, \"exampleChannelsRegistration\", \u0026bot.ChannelsRegistrationArgs{\n\t\t\tLocation:          pulumi.String(\"global\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"F0\"),\n\t\t\tMicrosoftAppId:    pulumi.String(current.ClientId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bot.NewChannelDirectLineSpeech(ctx, \"exampleChannelDirectLineSpeech\", \u0026bot.ChannelDirectLineSpeechArgs{\n\t\t\tBotName:                   exampleChannelsRegistration.Name,\n\t\t\tLocation:                  exampleChannelsRegistration.Location,\n\t\t\tResourceGroupName:         exampleResourceGroup.Name,\n\t\t\tCognitiveServiceLocation:  exampleAccount.Location,\n\t\t\tCognitiveServiceAccessKey: exampleAccount.PrimaryAccessKey,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDirect Line Speech Channels can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:bot/channelDirectLineSpeech:ChannelDirectLineSpeech example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.BotService/botServices/botService1/channels/DirectLineSpeechChannel\n```\n\n ",
      "inputProperties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "cognitiveServiceAccessKey": {
          "description": "The access key to access the Cognitive Service.\n",
          "type": "string"
        },
        "cognitiveServiceLocation": {
          "description": "Specifies the supported Azure location where the Cognitive Service resource exists.\n",
          "type": "string"
        },
        "customSpeechModelId": {
          "description": "The custom speech model id for the Direct Line Speech Channel.\n",
          "type": "string"
        },
        "customVoiceDeploymentId": {
          "description": "The custom voice deployment id for the Direct Line Speech Channel.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Direct Line Speech Channel should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "cognitiveServiceAccessKey": {
          "description": "The access key to access the Cognitive Service.\n",
          "type": "string"
        },
        "cognitiveServiceLocation": {
          "description": "Specifies the supported Azure location where the Cognitive Service resource exists.\n",
          "type": "string"
        },
        "customSpeechModelId": {
          "description": "The custom speech model id for the Direct Line Speech Channel.\n",
          "type": "string"
        },
        "customVoiceDeploymentId": {
          "description": "The custom voice deployment id for the Direct Line Speech Channel.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Direct Line Speech Channel should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "botName",
        "cognitiveServiceAccessKey",
        "cognitiveServiceLocation",
        "location",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "botName",
        "cognitiveServiceAccessKey",
        "cognitiveServiceLocation",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ChannelDirectLineSpeech resources.\n",
        "properties": {
          "botName": {
            "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "cognitiveServiceAccessKey": {
            "description": "The access key to access the Cognitive Service.\n",
            "type": "string"
          },
          "cognitiveServiceLocation": {
            "description": "Specifies the supported Azure location where the Cognitive Service resource exists.\n",
            "type": "string"
          },
          "customSpeechModelId": {
            "description": "The custom speech model id for the Direct Line Speech Channel.\n",
            "type": "string"
          },
          "customVoiceDeploymentId": {
            "description": "The custom voice deployment id for the Direct Line Speech Channel.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the Direct Line Speech Channel should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:bot/channelEmail:ChannelEmail": {
      "description": "Manages a Email integration for a Bot Channel\n\n\u003e **Note** A bot can only have a single Email Channel associated with it.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleChannelsRegistration = new azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\", {\n    location: \"global\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"F0\",\n    microsoftAppId: current.then(current =\u003e current.clientId),\n});\nconst exampleChannelEmail = new azure.bot.ChannelEmail(\"exampleChannelEmail\", {\n    botName: exampleChannelsRegistration.name,\n    location: exampleChannelsRegistration.location,\n    resourceGroupName: exampleResourceGroup.name,\n    clientId: \"exampleId\",\n    clientSecret: \"exampleSecret\",\n    verificationToken: \"exampleVerificationToken\",\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe Email Integration for a Bot Channel can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:bot/channelEmail:ChannelEmail example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.BotService/botServices/example/channels/EmailChannel\n```\n\n ",
      "inputProperties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "emailAddress": {
          "description": "The email address that the Bot will authenticate with.\n",
          "type": "string"
        },
        "emailPassword": {
          "description": "The email password that the Bot will authenticate with.\n",
          "type": "string"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Bot Channel. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "emailAddress": {
          "description": "The email address that the Bot will authenticate with.\n",
          "type": "string"
        },
        "emailPassword": {
          "description": "The email password that the Bot will authenticate with.\n",
          "type": "string"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Bot Channel. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "botName",
        "emailAddress",
        "emailPassword",
        "location",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "botName",
        "emailAddress",
        "emailPassword",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ChannelEmail resources.\n",
        "properties": {
          "botName": {
            "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "emailAddress": {
            "description": "The email address that the Bot will authenticate with.\n",
            "type": "string"
          },
          "emailPassword": {
            "description": "The email password that the Bot will authenticate with.\n",
            "type": "string"
          },
          "location": {
            "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Bot Channel. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:bot/channelFacebook:ChannelFacebook": {
      "description": "Manages a Facebook integration for a Bot Channel\n\n\u003e **Note** A bot can only have a single Facebook Channel associated with it.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleChannelsRegistration = new azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\", {\n    location: \"global\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"F0\",\n    microsoftAppId: current.then(current =\u003e current.clientId),\n});\nconst exampleChannelFacebook = new azure.bot.ChannelFacebook(\"exampleChannelFacebook\", {\n    botName: exampleChannelsRegistration.name,\n    location: exampleChannelsRegistration.location,\n    resourceGroupName: exampleResourceGroup.name,\n    facebookApplicationId: \"563490254873576\",\n    facebookApplicationSecret: \"8976d2536445ad5b976dee8437b9beb0\",\n    pages: [{\n        id: \"876248795081953\",\n        accessToken: \"CGGCec3UAFPMBAKwK3Ft8SEpO8ZCuvpNBI5DClaJCDfqJj2BgEHCKxcY0FDarmUQap6XxpZC9GWCW4nZCzjcKosAZAP7SO44X8Q8gAntbDIXgYUBGp9xtS8wUkwgKPobUePcOOVFkvClxvYZByuiQxoTiK9fQ9jZCPEorbmZCsKDZAx4VLnrNwCTZAPUwXxO61gfq4ZD\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_channels_registration = azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\",\n    location=\"global\",\n    resource_group_name=example_resource_group.name,\n    sku=\"F0\",\n    microsoft_app_id=current.client_id)\nexample_channel_facebook = azure.bot.ChannelFacebook(\"exampleChannelFacebook\",\n    bot_name=example_channels_registration.name,\n    location=example_channels_registration.location,\n    resource_group_name=example_resource_group.name,\n    facebook_application_id=\"563490254873576\",\n    facebook_application_secret=\"8976d2536445ad5b976dee8437b9beb0\",\n    pages=[azure.bot.ChannelFacebookPageArgs(\n        id=\"876248795081953\",\n        access_token=\"CGGCec3UAFPMBAKwK3Ft8SEpO8ZCuvpNBI5DClaJCDfqJj2BgEHCKxcY0FDarmUQap6XxpZC9GWCW4nZCzjcKosAZAP7SO44X8Q8gAntbDIXgYUBGp9xtS8wUkwgKPobUePcOOVFkvClxvYZByuiQxoTiK9fQ9jZCPEorbmZCsKDZAx4VLnrNwCTZAPUwXxO61gfq4ZD\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleChannelsRegistration = new Azure.Bot.ChannelsRegistration(\"exampleChannelsRegistration\", new Azure.Bot.ChannelsRegistrationArgs\n        {\n            Location = \"global\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"F0\",\n            MicrosoftAppId = current.Apply(current =\u003e current.ClientId),\n        });\n        var exampleChannelFacebook = new Azure.Bot.ChannelFacebook(\"exampleChannelFacebook\", new Azure.Bot.ChannelFacebookArgs\n        {\n            BotName = exampleChannelsRegistration.Name,\n            Location = exampleChannelsRegistration.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            FacebookApplicationId = \"563490254873576\",\n            FacebookApplicationSecret = \"8976d2536445ad5b976dee8437b9beb0\",\n            Pages = \n            {\n                new Azure.Bot.Inputs.ChannelFacebookPageArgs\n                {\n                    Id = \"876248795081953\",\n                    AccessToken = \"CGGCec3UAFPMBAKwK3Ft8SEpO8ZCuvpNBI5DClaJCDfqJj2BgEHCKxcY0FDarmUQap6XxpZC9GWCW4nZCzjcKosAZAP7SO44X8Q8gAntbDIXgYUBGp9xtS8wUkwgKPobUePcOOVFkvClxvYZByuiQxoTiK9fQ9jZCPEorbmZCsKDZAx4VLnrNwCTZAPUwXxO61gfq4ZD\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleChannelsRegistration, err := bot.NewChannelsRegistration(ctx, \"exampleChannelsRegistration\", \u0026bot.ChannelsRegistrationArgs{\n\t\t\tLocation:          pulumi.String(\"global\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"F0\"),\n\t\t\tMicrosoftAppId:    pulumi.String(current.ClientId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bot.NewChannelFacebook(ctx, \"exampleChannelFacebook\", \u0026bot.ChannelFacebookArgs{\n\t\t\tBotName:                   exampleChannelsRegistration.Name,\n\t\t\tLocation:                  exampleChannelsRegistration.Location,\n\t\t\tResourceGroupName:         exampleResourceGroup.Name,\n\t\t\tFacebookApplicationId:     pulumi.String(\"563490254873576\"),\n\t\t\tFacebookApplicationSecret: pulumi.String(\"8976d2536445ad5b976dee8437b9beb0\"),\n\t\t\tPages: bot.ChannelFacebookPageArray{\n\t\t\t\t\u0026bot.ChannelFacebookPageArgs{\n\t\t\t\t\tId:          pulumi.String(\"876248795081953\"),\n\t\t\t\t\tAccessToken: pulumi.String(\"CGGCec3UAFPMBAKwK3Ft8SEpO8ZCuvpNBI5DClaJCDfqJj2BgEHCKxcY0FDarmUQap6XxpZC9GWCW4nZCzjcKosAZAP7SO44X8Q8gAntbDIXgYUBGp9xtS8wUkwgKPobUePcOOVFkvClxvYZByuiQxoTiK9fQ9jZCPEorbmZCsKDZAx4VLnrNwCTZAPUwXxO61gfq4ZD\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe Facebook Integration for a Bot Channel can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:bot/channelFacebook:ChannelFacebook example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.BotService/botServices/botService1/channels/FacebookChannel\n```\n\n ",
      "inputProperties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "facebookApplicationId": {
          "description": "The Facebook Application ID for the Facebook Channel.\n",
          "type": "string"
        },
        "facebookApplicationSecret": {
          "description": "The Facebook Application Secret for the Facebook Channel.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pages": {
          "description": "One or more `page` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:bot/ChannelFacebookPage:ChannelFacebookPage"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Facebook Channel should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "facebookApplicationId": {
          "description": "The Facebook Application ID for the Facebook Channel.\n",
          "type": "string"
        },
        "facebookApplicationSecret": {
          "description": "The Facebook Application Secret for the Facebook Channel.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pages": {
          "description": "One or more `page` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:bot/ChannelFacebookPage:ChannelFacebookPage"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Facebook Channel should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "botName",
        "facebookApplicationId",
        "facebookApplicationSecret",
        "location",
        "pages",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "botName",
        "facebookApplicationId",
        "facebookApplicationSecret",
        "pages",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ChannelFacebook resources.\n",
        "properties": {
          "botName": {
            "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "facebookApplicationId": {
            "description": "The Facebook Application ID for the Facebook Channel.\n",
            "type": "string"
          },
          "facebookApplicationSecret": {
            "description": "The Facebook Application Secret for the Facebook Channel.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "pages": {
            "description": "One or more `page` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:bot/ChannelFacebookPage:ChannelFacebookPage"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the Facebook Channel should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:bot/channelLine:ChannelLine": {
      "description": "Manages a Line integration for a Bot Channel\n\n\u003e **Note** A bot can only have a single Line Channel associated with it.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleChannelsRegistration = new azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\", {\n    location: \"global\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"F0\",\n    microsoftAppId: current.then(current =\u003e current.clientId),\n});\nconst exampleChannelLine = new azure.bot.ChannelLine(\"exampleChannelLine\", {\n    botName: exampleChannelsRegistration.name,\n    location: exampleChannelsRegistration.location,\n    resourceGroupName: exampleResourceGroup.name,\n    lineChannels: [{\n        accessToken: \"asdfdsdfTYUIOIoj1231hkjhk\",\n        secret: \"aagfdgfd123567\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_channels_registration = azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\",\n    location=\"global\",\n    resource_group_name=example_resource_group.name,\n    sku=\"F0\",\n    microsoft_app_id=current.client_id)\nexample_channel_line = azure.bot.ChannelLine(\"exampleChannelLine\",\n    bot_name=example_channels_registration.name,\n    location=example_channels_registration.location,\n    resource_group_name=example_resource_group.name,\n    line_channels=[azure.bot.ChannelLineLineChannelArgs(\n        access_token=\"asdfdsdfTYUIOIoj1231hkjhk\",\n        secret=\"aagfdgfd123567\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleChannelsRegistration = new Azure.Bot.ChannelsRegistration(\"exampleChannelsRegistration\", new Azure.Bot.ChannelsRegistrationArgs\n        {\n            Location = \"global\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"F0\",\n            MicrosoftAppId = current.Apply(current =\u003e current.ClientId),\n        });\n        var exampleChannelLine = new Azure.Bot.ChannelLine(\"exampleChannelLine\", new Azure.Bot.ChannelLineArgs\n        {\n            BotName = exampleChannelsRegistration.Name,\n            Location = exampleChannelsRegistration.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            LineChannels = \n            {\n                new Azure.Bot.Inputs.ChannelLineLineChannelArgs\n                {\n                    AccessToken = \"asdfdsdfTYUIOIoj1231hkjhk\",\n                    Secret = \"aagfdgfd123567\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleChannelsRegistration, err := bot.NewChannelsRegistration(ctx, \"exampleChannelsRegistration\", \u0026bot.ChannelsRegistrationArgs{\n\t\t\tLocation:          pulumi.String(\"global\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"F0\"),\n\t\t\tMicrosoftAppId:    pulumi.String(current.ClientId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bot.NewChannelLine(ctx, \"exampleChannelLine\", \u0026bot.ChannelLineArgs{\n\t\t\tBotName:           exampleChannelsRegistration.Name,\n\t\t\tLocation:          exampleChannelsRegistration.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLineChannels: bot.ChannelLineLineChannelArray{\n\t\t\t\t\u0026bot.ChannelLineLineChannelArgs{\n\t\t\t\t\tAccessToken: pulumi.String(\"asdfdsdfTYUIOIoj1231hkjhk\"),\n\t\t\t\t\tSecret:      pulumi.String(\"aagfdgfd123567\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe Line Integration for a Bot Channel can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:bot/channelLine:ChannelLine example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.BotService/botServices/botService1/channels/LineChannel\n```\n\n ",
      "inputProperties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "lineChannels": {
          "description": "One or more `line_channel` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:bot/ChannelLineLineChannel:ChannelLineLineChannel"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Line Channel should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "lineChannels": {
          "description": "One or more `line_channel` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:bot/ChannelLineLineChannel:ChannelLineLineChannel"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Line Channel should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "botName",
        "lineChannels",
        "location",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "botName",
        "lineChannels",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ChannelLine resources.\n",
        "properties": {
          "botName": {
            "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "lineChannels": {
            "description": "One or more `line_channel` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:bot/ChannelLineLineChannel:ChannelLineLineChannel"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the Line Channel should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:bot/channelSlack:ChannelSlack": {
      "description": "Manages a Slack integration for a Bot Channel\n\n\u003e **Note** A bot can only have a single Slack Channel associated with it.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleChannelsRegistration = new azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\", {\n    location: \"global\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"F0\",\n    microsoftAppId: current.then(current =\u003e current.clientId),\n});\nconst exampleChannelSlack = new azure.bot.ChannelSlack(\"exampleChannelSlack\", {\n    botName: exampleChannelsRegistration.name,\n    location: exampleChannelsRegistration.location,\n    resourceGroupName: exampleResourceGroup.name,\n    clientId: \"exampleId\",\n    clientSecret: \"exampleSecret\",\n    verificationToken: \"exampleVerificationToken\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_channels_registration = azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\",\n    location=\"global\",\n    resource_group_name=example_resource_group.name,\n    sku=\"F0\",\n    microsoft_app_id=current.client_id)\nexample_channel_slack = azure.bot.ChannelSlack(\"exampleChannelSlack\",\n    bot_name=example_channels_registration.name,\n    location=example_channels_registration.location,\n    resource_group_name=example_resource_group.name,\n    client_id=\"exampleId\",\n    client_secret=\"exampleSecret\",\n    verification_token=\"exampleVerificationToken\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleChannelsRegistration = new Azure.Bot.ChannelsRegistration(\"exampleChannelsRegistration\", new Azure.Bot.ChannelsRegistrationArgs\n        {\n            Location = \"global\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"F0\",\n            MicrosoftAppId = current.Apply(current =\u003e current.ClientId),\n        });\n        var exampleChannelSlack = new Azure.Bot.ChannelSlack(\"exampleChannelSlack\", new Azure.Bot.ChannelSlackArgs\n        {\n            BotName = exampleChannelsRegistration.Name,\n            Location = exampleChannelsRegistration.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ClientId = \"exampleId\",\n            ClientSecret = \"exampleSecret\",\n            VerificationToken = \"exampleVerificationToken\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleChannelsRegistration, err := bot.NewChannelsRegistration(ctx, \"exampleChannelsRegistration\", \u0026bot.ChannelsRegistrationArgs{\n\t\t\tLocation:          pulumi.String(\"global\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"F0\"),\n\t\t\tMicrosoftAppId:    pulumi.String(current.ClientId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bot.NewChannelSlack(ctx, \"exampleChannelSlack\", \u0026bot.ChannelSlackArgs{\n\t\t\tBotName:           exampleChannelsRegistration.Name,\n\t\t\tLocation:          exampleChannelsRegistration.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tClientId:          pulumi.String(\"exampleId\"),\n\t\t\tClientSecret:      pulumi.String(\"exampleSecret\"),\n\t\t\tVerificationToken: pulumi.String(\"exampleVerificationToken\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe Slack Integration for a Bot Channel can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:bot/channelSlack:ChannelSlack example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.BotService/botServices/example/channels/SlackChannel\n```\n\n ",
      "inputProperties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clientId": {
          "description": "The Client ID that will be used to authenticate with Slack.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "The Client Secret that will be used to authenticate with Slack.\n",
          "type": "string"
        },
        "landingPageUrl": {
          "description": "The Slack Landing Page URL.\n",
          "type": "string"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Bot Channel. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "verificationToken": {
          "description": "The Verification Token that will be used to authenticate with Slack.\n",
          "type": "string"
        }
      },
      "properties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clientId": {
          "description": "The Client ID that will be used to authenticate with Slack.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "The Client Secret that will be used to authenticate with Slack.\n",
          "type": "string"
        },
        "landingPageUrl": {
          "description": "The Slack Landing Page URL.\n",
          "type": "string"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Bot Channel. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "verificationToken": {
          "description": "The Verification Token that will be used to authenticate with Slack.\n",
          "type": "string"
        }
      },
      "required": [
        "botName",
        "clientId",
        "clientSecret",
        "location",
        "resourceGroupName",
        "verificationToken"
      ],
      "requiredInputs": [
        "botName",
        "clientId",
        "clientSecret",
        "resourceGroupName",
        "verificationToken"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ChannelSlack resources.\n",
        "properties": {
          "botName": {
            "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "clientId": {
            "description": "The Client ID that will be used to authenticate with Slack.\n",
            "type": "string"
          },
          "clientSecret": {
            "description": "The Client Secret that will be used to authenticate with Slack.\n",
            "type": "string"
          },
          "landingPageUrl": {
            "description": "The Slack Landing Page URL.\n",
            "type": "string"
          },
          "location": {
            "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Bot Channel. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "verificationToken": {
            "description": "The Verification Token that will be used to authenticate with Slack.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:bot/channelSms:ChannelSms": {
      "description": "Manages a SMS integration for a Bot Channel\n\n\u003e **Note** A bot can only have a single SMS Channel associated with it.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleChannelsRegistration = new azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\", {\n    location: \"global\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"F0\",\n    microsoftAppId: current.then(current =\u003e current.clientId),\n});\nconst exampleChannelSms = new azure.bot.ChannelSms(\"exampleChannelSms\", {\n    botName: exampleChannelsRegistration.name,\n    location: exampleChannelsRegistration.location,\n    resourceGroupName: exampleResourceGroup.name,\n    smsChannelAccountSecurityId: \"BG61f7cf5157f439b084e98256409c2815\",\n    smsChannelAuthToken: \"jh8980432610052ed4e29565c5e232f\",\n    phoneNumber: \"+12313803556\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_channels_registration = azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\",\n    location=\"global\",\n    resource_group_name=example_resource_group.name,\n    sku=\"F0\",\n    microsoft_app_id=current.client_id)\nexample_channel_sms = azure.bot.ChannelSms(\"exampleChannelSms\",\n    bot_name=example_channels_registration.name,\n    location=example_channels_registration.location,\n    resource_group_name=example_resource_group.name,\n    sms_channel_account_security_id=\"BG61f7cf5157f439b084e98256409c2815\",\n    sms_channel_auth_token=\"jh8980432610052ed4e29565c5e232f\",\n    phone_number=\"+12313803556\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleChannelsRegistration = new Azure.Bot.ChannelsRegistration(\"exampleChannelsRegistration\", new Azure.Bot.ChannelsRegistrationArgs\n        {\n            Location = \"global\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"F0\",\n            MicrosoftAppId = current.Apply(current =\u003e current.ClientId),\n        });\n        var exampleChannelSms = new Azure.Bot.ChannelSms(\"exampleChannelSms\", new Azure.Bot.ChannelSmsArgs\n        {\n            BotName = exampleChannelsRegistration.Name,\n            Location = exampleChannelsRegistration.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SmsChannelAccountSecurityId = \"BG61f7cf5157f439b084e98256409c2815\",\n            SmsChannelAuthToken = \"jh8980432610052ed4e29565c5e232f\",\n            PhoneNumber = \"+12313803556\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleChannelsRegistration, err := bot.NewChannelsRegistration(ctx, \"exampleChannelsRegistration\", \u0026bot.ChannelsRegistrationArgs{\n\t\t\tLocation:          pulumi.String(\"global\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"F0\"),\n\t\t\tMicrosoftAppId:    pulumi.String(current.ClientId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bot.NewChannelSms(ctx, \"exampleChannelSms\", \u0026bot.ChannelSmsArgs{\n\t\t\tBotName:                     exampleChannelsRegistration.Name,\n\t\t\tLocation:                    exampleChannelsRegistration.Location,\n\t\t\tResourceGroupName:           exampleResourceGroup.Name,\n\t\t\tSmsChannelAccountSecurityId: pulumi.String(\"BG61f7cf5157f439b084e98256409c2815\"),\n\t\t\tSmsChannelAuthToken:         pulumi.String(\"jh8980432610052ed4e29565c5e232f\"),\n\t\t\tPhoneNumber:                 pulumi.String(\"+12313803556\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe SMS Integration for a Bot Channel can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:bot/channelSms:ChannelSms example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.BotService/botServices/botService1/channels/SmsChannel\n```\n\n ",
      "inputProperties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "phoneNumber": {
          "description": "The phone number for the SMS Channel.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the SMS Channel should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "smsChannelAccountSecurityId": {
          "description": "The account security identifier (SID) for the SMS Channel.\n",
          "type": "string"
        },
        "smsChannelAuthToken": {
          "description": "The authorization token for the SMS Channel.\n",
          "type": "string"
        }
      },
      "properties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "phoneNumber": {
          "description": "The phone number for the SMS Channel.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the SMS Channel should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "smsChannelAccountSecurityId": {
          "description": "The account security identifier (SID) for the SMS Channel.\n",
          "type": "string"
        },
        "smsChannelAuthToken": {
          "description": "The authorization token for the SMS Channel.\n",
          "type": "string"
        }
      },
      "required": [
        "botName",
        "location",
        "phoneNumber",
        "resourceGroupName",
        "smsChannelAccountSecurityId",
        "smsChannelAuthToken"
      ],
      "requiredInputs": [
        "botName",
        "phoneNumber",
        "resourceGroupName",
        "smsChannelAccountSecurityId",
        "smsChannelAuthToken"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ChannelSms resources.\n",
        "properties": {
          "botName": {
            "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "phoneNumber": {
            "description": "The phone number for the SMS Channel.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the SMS Channel should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "smsChannelAccountSecurityId": {
            "description": "The account security identifier (SID) for the SMS Channel.\n",
            "type": "string"
          },
          "smsChannelAuthToken": {
            "description": "The authorization token for the SMS Channel.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:bot/channelTeams:ChannelTeams": {
      "description": "Manages a MS Teams integration for a Bot Channel\n\n\u003e **Note** A bot can only have a single MS Teams Channel associated with it.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleChannelsRegistration = new azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\", {\n    location: \"global\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"F0\",\n    microsoftAppId: current.then(current =\u003e current.clientId),\n});\nconst exampleChannelTeams = new azure.bot.ChannelTeams(\"exampleChannelTeams\", {\n    botName: exampleChannelsRegistration.name,\n    location: exampleChannelsRegistration.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_channels_registration = azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\",\n    location=\"global\",\n    resource_group_name=example_resource_group.name,\n    sku=\"F0\",\n    microsoft_app_id=current.client_id)\nexample_channel_teams = azure.bot.ChannelTeams(\"exampleChannelTeams\",\n    bot_name=example_channels_registration.name,\n    location=example_channels_registration.location,\n    resource_group_name=example_resource_group.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleChannelsRegistration = new Azure.Bot.ChannelsRegistration(\"exampleChannelsRegistration\", new Azure.Bot.ChannelsRegistrationArgs\n        {\n            Location = \"global\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"F0\",\n            MicrosoftAppId = current.Apply(current =\u003e current.ClientId),\n        });\n        var exampleChannelTeams = new Azure.Bot.ChannelTeams(\"exampleChannelTeams\", new Azure.Bot.ChannelTeamsArgs\n        {\n            BotName = exampleChannelsRegistration.Name,\n            Location = exampleChannelsRegistration.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleChannelsRegistration, err := bot.NewChannelsRegistration(ctx, \"exampleChannelsRegistration\", \u0026bot.ChannelsRegistrationArgs{\n\t\t\tLocation:          pulumi.String(\"global\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"F0\"),\n\t\t\tMicrosoftAppId:    pulumi.String(current.ClientId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bot.NewChannelTeams(ctx, \"exampleChannelTeams\", \u0026bot.ChannelTeamsArgs{\n\t\t\tBotName:           exampleChannelsRegistration.Name,\n\t\t\tLocation:          exampleChannelsRegistration.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe Microsoft Teams Integration for a Bot Channel can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:bot/channelTeams:ChannelTeams example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.BotService/botServices/example/channels/MsTeamsChannel\n```\n\n ",
      "inputProperties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "callingWebHook": {
          "description": "Specifies the webhook for Microsoft Teams channel calls.\n",
          "type": "string"
        },
        "enableCalling": {
          "description": "Specifies whether to enable Microsoft Teams channel calls. This defaults to `false`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Bot Channel. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "callingWebHook": {
          "description": "Specifies the webhook for Microsoft Teams channel calls.\n",
          "type": "string"
        },
        "enableCalling": {
          "description": "Specifies whether to enable Microsoft Teams channel calls. This defaults to `false`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Bot Channel. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "botName",
        "callingWebHook",
        "location",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "botName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ChannelTeams resources.\n",
        "properties": {
          "botName": {
            "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "callingWebHook": {
            "description": "Specifies the webhook for Microsoft Teams channel calls.\n",
            "type": "string"
          },
          "enableCalling": {
            "description": "Specifies whether to enable Microsoft Teams channel calls. This defaults to `false`.\n",
            "type": "boolean"
          },
          "location": {
            "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Bot Channel. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:bot/channelWebChat:ChannelWebChat": {
      "description": "Manages a Web Chat integration for a Bot Channel\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleChannelsRegistration = new azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\", {\n    location: \"global\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"F0\",\n    microsoftAppId: current.then(current =\u003e current.clientId),\n});\nconst exampleChannelWebChat = new azure.bot.ChannelWebChat(\"exampleChannelWebChat\", {\n    botName: exampleChannelsRegistration.name,\n    location: exampleChannelsRegistration.location,\n    resourceGroupName: exampleResourceGroup.name,\n    siteNames: [\"TestSite\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_channels_registration = azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\",\n    location=\"global\",\n    resource_group_name=example_resource_group.name,\n    sku=\"F0\",\n    microsoft_app_id=current.client_id)\nexample_channel_web_chat = azure.bot.ChannelWebChat(\"exampleChannelWebChat\",\n    bot_name=example_channels_registration.name,\n    location=example_channels_registration.location,\n    resource_group_name=example_resource_group.name,\n    site_names=[\"TestSite\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleChannelsRegistration = new Azure.Bot.ChannelsRegistration(\"exampleChannelsRegistration\", new Azure.Bot.ChannelsRegistrationArgs\n        {\n            Location = \"global\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"F0\",\n            MicrosoftAppId = current.Apply(current =\u003e current.ClientId),\n        });\n        var exampleChannelWebChat = new Azure.Bot.ChannelWebChat(\"exampleChannelWebChat\", new Azure.Bot.ChannelWebChatArgs\n        {\n            BotName = exampleChannelsRegistration.Name,\n            Location = exampleChannelsRegistration.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SiteNames = \n            {\n                \"TestSite\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleChannelsRegistration, err := bot.NewChannelsRegistration(ctx, \"exampleChannelsRegistration\", \u0026bot.ChannelsRegistrationArgs{\n\t\t\tLocation:          pulumi.String(\"global\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"F0\"),\n\t\t\tMicrosoftAppId:    pulumi.String(current.ClientId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bot.NewChannelWebChat(ctx, \"exampleChannelWebChat\", \u0026bot.ChannelWebChatArgs{\n\t\t\tBotName:           exampleChannelsRegistration.Name,\n\t\t\tLocation:          exampleChannelsRegistration.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSiteNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"TestSite\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nWeb Chat Channels can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:bot/channelWebChat:ChannelWebChat example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.BotService/botServices/botService1/channels/WebChatChannel\n```\n\n ",
      "inputProperties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Web Chat Channel should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "siteNames": {
          "description": "A list of Web Chat Site names.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "botName": {
          "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Web Chat Channel should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "siteNames": {
          "description": "A list of Web Chat Site names.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "botName",
        "location",
        "resourceGroupName",
        "siteNames"
      ],
      "requiredInputs": [
        "botName",
        "resourceGroupName",
        "siteNames"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ChannelWebChat resources.\n",
        "properties": {
          "botName": {
            "description": "The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the Web Chat Channel should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "siteNames": {
            "description": "A list of Web Chat Site names.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:bot/channelsRegistration:ChannelsRegistration": {
      "description": "Manages a Bot Channels Registration.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleChannelsRegistration = new azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\", {\n    location: \"global\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"F0\",\n    microsoftAppId: current.then(current =\u003e current.clientId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_channels_registration = azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\",\n    location=\"global\",\n    resource_group_name=example_resource_group.name,\n    sku=\"F0\",\n    microsoft_app_id=current.client_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleChannelsRegistration = new Azure.Bot.ChannelsRegistration(\"exampleChannelsRegistration\", new Azure.Bot.ChannelsRegistrationArgs\n        {\n            Location = \"global\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"F0\",\n            MicrosoftAppId = current.Apply(current =\u003e current.ClientId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bot.NewChannelsRegistration(ctx, \"exampleChannelsRegistration\", \u0026bot.ChannelsRegistrationArgs{\n\t\t\tLocation:          pulumi.String(\"global\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"F0\"),\n\t\t\tMicrosoftAppId:    pulumi.String(current.ClientId),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBot Channels Registration can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:bot/channelsRegistration:ChannelsRegistration example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.BotService/botServices/example\n```\n\n ",
      "inputProperties": {
        "cmkKeyVaultUrl": {
          "description": "The CMK Key Vault Key URL to encrypt the Bot Channels Registration with the Customer Managed Encryption Key.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Bot Channels Registration.\n",
          "type": "string"
        },
        "developerAppInsightsApiKey": {
          "description": "The Application Insights API Key to associate with the Bot Channels Registration.\n",
          "type": "string"
        },
        "developerAppInsightsApplicationId": {
          "description": "The Application Insights Application ID to associate with the Bot Channels Registration.\n",
          "type": "string"
        },
        "developerAppInsightsKey": {
          "description": "The Application Insights Key to associate with the Bot Channels Registration.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The name of the Bot Channels Registration will be displayed as. This defaults to `name` if not specified.\n",
          "type": "string"
        },
        "endpoint": {
          "description": "The Bot Channels Registration endpoint.\n",
          "type": "string"
        },
        "iconUrl": {
          "description": "The icon URL to visually identify the Bot Channels Registration.\n",
          "type": "string"
        },
        "isolatedNetworkEnabled": {
          "description": "Is the Bot Channels Registration in an isolated network?\n",
          "type": "boolean"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "microsoftAppId": {
          "description": "The Microsoft Application ID for the Bot Channels Registration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Bot Channels Registration. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Bot Channels Registration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "The SKU of the Bot Channels Registration. Valid values include `F0` or `S1`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "cmkKeyVaultUrl": {
          "description": "The CMK Key Vault Key URL to encrypt the Bot Channels Registration with the Customer Managed Encryption Key.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Bot Channels Registration.\n",
          "type": "string"
        },
        "developerAppInsightsApiKey": {
          "description": "The Application Insights API Key to associate with the Bot Channels Registration.\n",
          "type": "string"
        },
        "developerAppInsightsApplicationId": {
          "description": "The Application Insights Application ID to associate with the Bot Channels Registration.\n",
          "type": "string"
        },
        "developerAppInsightsKey": {
          "description": "The Application Insights Key to associate with the Bot Channels Registration.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The name of the Bot Channels Registration will be displayed as. This defaults to `name` if not specified.\n",
          "type": "string"
        },
        "endpoint": {
          "description": "The Bot Channels Registration endpoint.\n",
          "type": "string"
        },
        "iconUrl": {
          "description": "The icon URL to visually identify the Bot Channels Registration.\n",
          "type": "string"
        },
        "isolatedNetworkEnabled": {
          "description": "Is the Bot Channels Registration in an isolated network?\n",
          "type": "boolean"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "microsoftAppId": {
          "description": "The Microsoft Application ID for the Bot Channels Registration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Bot Channels Registration. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Bot Channels Registration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "The SKU of the Bot Channels Registration. Valid values include `F0` or `S1`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "developerAppInsightsApiKey",
        "developerAppInsightsApplicationId",
        "developerAppInsightsKey",
        "displayName",
        "iconUrl",
        "location",
        "microsoftAppId",
        "name",
        "resourceGroupName",
        "sku"
      ],
      "requiredInputs": [
        "microsoftAppId",
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ChannelsRegistration resources.\n",
        "properties": {
          "cmkKeyVaultUrl": {
            "description": "The CMK Key Vault Key URL to encrypt the Bot Channels Registration with the Customer Managed Encryption Key.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the Bot Channels Registration.\n",
            "type": "string"
          },
          "developerAppInsightsApiKey": {
            "description": "The Application Insights API Key to associate with the Bot Channels Registration.\n",
            "type": "string"
          },
          "developerAppInsightsApplicationId": {
            "description": "The Application Insights Application ID to associate with the Bot Channels Registration.\n",
            "type": "string"
          },
          "developerAppInsightsKey": {
            "description": "The Application Insights Key to associate with the Bot Channels Registration.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The name of the Bot Channels Registration will be displayed as. This defaults to `name` if not specified.\n",
            "type": "string"
          },
          "endpoint": {
            "description": "The Bot Channels Registration endpoint.\n",
            "type": "string"
          },
          "iconUrl": {
            "description": "The icon URL to visually identify the Bot Channels Registration.\n",
            "type": "string"
          },
          "isolatedNetworkEnabled": {
            "description": "Is the Bot Channels Registration in an isolated network?\n",
            "type": "boolean"
          },
          "location": {
            "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "microsoftAppId": {
            "description": "The Microsoft Application ID for the Bot Channels Registration. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Bot Channels Registration. Changing this forces a new resource to be created. Must be globally unique.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Bot Channels Registration. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sku": {
            "description": "The SKU of the Bot Channels Registration. Valid values include `F0` or `S1`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:bot/connection:Connection": {
      "description": "Manages a Bot Connection.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleChannelsRegistration = new azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\", {\n    location: \"global\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"F0\",\n    microsoftAppId: current.then(current =\u003e current.clientId),\n});\nconst exampleConnection = new azure.bot.Connection(\"exampleConnection\", {\n    botName: exampleChannelsRegistration.name,\n    location: exampleChannelsRegistration.location,\n    resourceGroupName: exampleResourceGroup.name,\n    serviceProviderName: \"box\",\n    clientId: \"exampleId\",\n    clientSecret: \"exampleSecret\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_channels_registration = azure.bot.ChannelsRegistration(\"exampleChannelsRegistration\",\n    location=\"global\",\n    resource_group_name=example_resource_group.name,\n    sku=\"F0\",\n    microsoft_app_id=current.client_id)\nexample_connection = azure.bot.Connection(\"exampleConnection\",\n    bot_name=example_channels_registration.name,\n    location=example_channels_registration.location,\n    resource_group_name=example_resource_group.name,\n    service_provider_name=\"box\",\n    client_id=\"exampleId\",\n    client_secret=\"exampleSecret\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleChannelsRegistration = new Azure.Bot.ChannelsRegistration(\"exampleChannelsRegistration\", new Azure.Bot.ChannelsRegistrationArgs\n        {\n            Location = \"global\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"F0\",\n            MicrosoftAppId = current.Apply(current =\u003e current.ClientId),\n        });\n        var exampleConnection = new Azure.Bot.Connection(\"exampleConnection\", new Azure.Bot.ConnectionArgs\n        {\n            BotName = exampleChannelsRegistration.Name,\n            Location = exampleChannelsRegistration.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServiceProviderName = \"box\",\n            ClientId = \"exampleId\",\n            ClientSecret = \"exampleSecret\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleChannelsRegistration, err := bot.NewChannelsRegistration(ctx, \"exampleChannelsRegistration\", \u0026bot.ChannelsRegistrationArgs{\n\t\t\tLocation:          pulumi.String(\"global\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"F0\"),\n\t\t\tMicrosoftAppId:    pulumi.String(current.ClientId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bot.NewConnection(ctx, \"exampleConnection\", \u0026bot.ConnectionArgs{\n\t\t\tBotName:             exampleChannelsRegistration.Name,\n\t\t\tLocation:            exampleChannelsRegistration.Location,\n\t\t\tResourceGroupName:   exampleResourceGroup.Name,\n\t\t\tServiceProviderName: pulumi.String(\"box\"),\n\t\t\tClientId:            pulumi.String(\"exampleId\"),\n\t\t\tClientSecret:        pulumi.String(\"exampleSecret\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBot Connection can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:bot/connection:Connection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.BotService/botServices/example/connections/example\n```\n\n ",
      "inputProperties": {
        "botName": {
          "description": "The name of the Bot Resource this connection will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clientId": {
          "description": "The Client ID that will be used to authenticate with the service provider.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "The Client Secret that will be used to authenticate with the service provider.\n",
          "type": "string"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Bot Connection. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional parameters to apply to the connection.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Bot Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scopes": {
          "description": "The Scopes at which the connection should be applied.\n",
          "type": "string"
        },
        "serviceProviderName": {
          "description": "The name of the service provider that will be associated with this connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "botName": {
          "description": "The name of the Bot Resource this connection will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clientId": {
          "description": "The Client ID that will be used to authenticate with the service provider.\n",
          "type": "string"
        },
        "clientSecret": {
          "description": "The Client Secret that will be used to authenticate with the service provider.\n",
          "type": "string"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Bot Connection. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional parameters to apply to the connection.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Bot Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scopes": {
          "description": "The Scopes at which the connection should be applied.\n",
          "type": "string"
        },
        "serviceProviderName": {
          "description": "The name of the service provider that will be associated with this connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "botName",
        "clientId",
        "clientSecret",
        "location",
        "name",
        "resourceGroupName",
        "serviceProviderName"
      ],
      "requiredInputs": [
        "botName",
        "clientId",
        "clientSecret",
        "resourceGroupName",
        "serviceProviderName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Connection resources.\n",
        "properties": {
          "botName": {
            "description": "The name of the Bot Resource this connection will be associated with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "clientId": {
            "description": "The Client ID that will be used to authenticate with the service provider.\n",
            "type": "string"
          },
          "clientSecret": {
            "description": "The Client Secret that will be used to authenticate with the service provider.\n",
            "type": "string"
          },
          "location": {
            "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Bot Connection. Changing this forces a new resource to be created. Must be globally unique.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional parameters to apply to the connection.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Bot Connection. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scopes": {
            "description": "The Scopes at which the connection should be applied.\n",
            "type": "string"
          },
          "serviceProviderName": {
            "description": "The name of the service provider that will be associated with this connection. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:bot/webApp:WebApp": {
      "description": "Manages a Bot Web App.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleWebApp = new azure.bot.WebApp(\"exampleWebApp\", {\n    location: \"global\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"F0\",\n    microsoftAppId: current.then(current =\u003e current.clientId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_web_app = azure.bot.WebApp(\"exampleWebApp\",\n    location=\"global\",\n    resource_group_name=example_resource_group.name,\n    sku=\"F0\",\n    microsoft_app_id=current.client_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleWebApp = new Azure.Bot.WebApp(\"exampleWebApp\", new Azure.Bot.WebAppArgs\n        {\n            Location = \"global\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"F0\",\n            MicrosoftAppId = current.Apply(current =\u003e current.ClientId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bot.NewWebApp(ctx, \"exampleWebApp\", \u0026bot.WebAppArgs{\n\t\t\tLocation:          pulumi.String(\"global\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"F0\"),\n\t\t\tMicrosoftAppId:    pulumi.String(current.ClientId),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBot Web App's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:bot/webApp:WebApp example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.BotService/botServices/example\n```\n\n ",
      "inputProperties": {
        "developerAppInsightsApiKey": {
          "description": "The Application Insights API Key to associate with the Web App Bot.\n",
          "type": "string"
        },
        "developerAppInsightsApplicationId": {
          "description": "The Application Insights Application ID to associate with the Web App Bot.\n",
          "type": "string"
        },
        "developerAppInsightsKey": {
          "description": "The Application Insights Key to associate with the Web App Bot.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The name of the Web App Bot will be displayed as. This defaults to `name` if not specified.\n",
          "type": "string"
        },
        "endpoint": {
          "description": "The Web App Bot endpoint.\n",
          "type": "string"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "luisAppIds": {
          "description": "A list of LUIS App IDs to associate with the Web App Bot.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "luisKey": {
          "description": "The LUIS key to associate with the Web App Bot.\n",
          "type": "string"
        },
        "microsoftAppId": {
          "description": "The Microsoft Application ID for the Web App Bot. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Web App Bot. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Web App Bot. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "The SKU of the Web App Bot. Valid values include `F0` or `S1`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "developerAppInsightsApiKey": {
          "description": "The Application Insights API Key to associate with the Web App Bot.\n",
          "type": "string"
        },
        "developerAppInsightsApplicationId": {
          "description": "The Application Insights Application ID to associate with the Web App Bot.\n",
          "type": "string"
        },
        "developerAppInsightsKey": {
          "description": "The Application Insights Key to associate with the Web App Bot.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The name of the Web App Bot will be displayed as. This defaults to `name` if not specified.\n",
          "type": "string"
        },
        "endpoint": {
          "description": "The Web App Bot endpoint.\n",
          "type": "string"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "luisAppIds": {
          "description": "A list of LUIS App IDs to associate with the Web App Bot.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "luisKey": {
          "description": "The LUIS key to associate with the Web App Bot.\n",
          "type": "string"
        },
        "microsoftAppId": {
          "description": "The Microsoft Application ID for the Web App Bot. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Web App Bot. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Web App Bot. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "The SKU of the Web App Bot. Valid values include `F0` or `S1`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "developerAppInsightsApiKey",
        "developerAppInsightsApplicationId",
        "developerAppInsightsKey",
        "displayName",
        "location",
        "microsoftAppId",
        "name",
        "resourceGroupName",
        "sku"
      ],
      "requiredInputs": [
        "microsoftAppId",
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WebApp resources.\n",
        "properties": {
          "developerAppInsightsApiKey": {
            "description": "The Application Insights API Key to associate with the Web App Bot.\n",
            "type": "string"
          },
          "developerAppInsightsApplicationId": {
            "description": "The Application Insights Application ID to associate with the Web App Bot.\n",
            "type": "string"
          },
          "developerAppInsightsKey": {
            "description": "The Application Insights Key to associate with the Web App Bot.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The name of the Web App Bot will be displayed as. This defaults to `name` if not specified.\n",
            "type": "string"
          },
          "endpoint": {
            "description": "The Web App Bot endpoint.\n",
            "type": "string"
          },
          "location": {
            "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "luisAppIds": {
            "description": "A list of LUIS App IDs to associate with the Web App Bot.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "luisKey": {
            "description": "The LUIS key to associate with the Web App Bot.\n",
            "type": "string"
          },
          "microsoftAppId": {
            "description": "The Microsoft Application ID for the Web App Bot. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Web App Bot. Changing this forces a new resource to be created. Must be globally unique.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Web App Bot. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sku": {
            "description": "The SKU of the Web App Bot. Valid values include `F0` or `S1`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:cdn/endpoint:Endpoint": {
      "description": "\n\n\n## Import\n\nCDN Endpoints can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cdn/endpoint:Endpoint example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Cdn/profiles/myprofile1/endpoints/myendpoint1\n```\n\n ",
      "inputProperties": {
        "contentTypesToCompresses": {
          "description": "An array of strings that indicates a content types on which compression will be applied. The value for the elements should be MIME types.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "deliveryRules": {
          "description": "Rules for the rules engine. An endpoint can contain up until 4 of those rules that consist of conditions and actions. A `delivery_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRule:EndpointDeliveryRule"
          },
          "type": "array"
        },
        "geoFilters": {
          "description": "A set of Geo Filters for this CDN Endpoint. Each `geo_filter` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointGeoFilter:EndpointGeoFilter"
          },
          "type": "array"
        },
        "globalDeliveryRule": {
          "$ref": "#/types/azure:cdn/EndpointGlobalDeliveryRule:EndpointGlobalDeliveryRule",
          "description": "Actions that are valid for all resources regardless of any conditions. A `global_delivery_rule` block as defined below.\n"
        },
        "isCompressionEnabled": {
          "description": "Indicates whether compression is to be enabled.\n",
          "type": "boolean"
        },
        "isHttpAllowed": {
          "description": "Defaults to `true`.\n",
          "type": "boolean"
        },
        "isHttpsAllowed": {
          "description": "Defaults to `true`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the origin. This is an arbitrary value. However, this value needs to be unique under the endpoint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "optimizationType": {
          "description": "What types of optimization should this CDN Endpoint optimize for? Possible values include `DynamicSiteAcceleration`, `GeneralMediaStreaming`, `GeneralWebDelivery`, `LargeFileDownload` and `VideoOnDemandMediaStreaming`.\n",
          "type": "string"
        },
        "originHostHeader": {
          "description": "The host header CDN provider will send along with content requests to origins.\n",
          "type": "string"
        },
        "originPath": {
          "description": "The path used at for origin requests.\n",
          "type": "string"
        },
        "origins": {
          "description": "The set of origins of the CDN endpoint. When multiple origins exist, the first origin will be used as primary and rest will be used as failover options. Each `origin` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointOrigin:EndpointOrigin"
          },
          "type": "array"
        },
        "probePath": {
          "description": "the path to a file hosted on the origin which helps accelerate delivery of the dynamic content and calculate the most optimal routes for the CDN. This is relative to the `origin_path`.\n",
          "type": "string"
        },
        "profileName": {
          "description": "The CDN Profile to which to attach the CDN Endpoint.\n",
          "type": "string"
        },
        "querystringCachingBehaviour": {
          "description": "Sets query string caching behavior. Allowed values are `IgnoreQueryString`, `BypassCaching` and `UseQueryString`. `NotSet` value can be used for `Premium Verizon` CDN profile. Defaults to `IgnoreQueryString`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the CDN Endpoint.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "contentTypesToCompresses": {
          "description": "An array of strings that indicates a content types on which compression will be applied. The value for the elements should be MIME types.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "deliveryRules": {
          "description": "Rules for the rules engine. An endpoint can contain up until 4 of those rules that consist of conditions and actions. A `delivery_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRule:EndpointDeliveryRule"
          },
          "type": "array"
        },
        "geoFilters": {
          "description": "A set of Geo Filters for this CDN Endpoint. Each `geo_filter` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointGeoFilter:EndpointGeoFilter"
          },
          "type": "array"
        },
        "globalDeliveryRule": {
          "$ref": "#/types/azure:cdn/EndpointGlobalDeliveryRule:EndpointGlobalDeliveryRule",
          "description": "Actions that are valid for all resources regardless of any conditions. A `global_delivery_rule` block as defined below.\n"
        },
        "hostName": {
          "description": "A string that determines the hostname/IP address of the origin server. This string can be a domain name, Storage Account endpoint, Web App endpoint, IPv4 address or IPv6 address. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "isCompressionEnabled": {
          "description": "Indicates whether compression is to be enabled.\n",
          "type": "boolean"
        },
        "isHttpAllowed": {
          "description": "Defaults to `true`.\n",
          "type": "boolean"
        },
        "isHttpsAllowed": {
          "description": "Defaults to `true`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the origin. This is an arbitrary value. However, this value needs to be unique under the endpoint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "optimizationType": {
          "description": "What types of optimization should this CDN Endpoint optimize for? Possible values include `DynamicSiteAcceleration`, `GeneralMediaStreaming`, `GeneralWebDelivery`, `LargeFileDownload` and `VideoOnDemandMediaStreaming`.\n",
          "type": "string"
        },
        "originHostHeader": {
          "description": "The host header CDN provider will send along with content requests to origins.\n",
          "type": "string"
        },
        "originPath": {
          "description": "The path used at for origin requests.\n",
          "type": "string"
        },
        "origins": {
          "description": "The set of origins of the CDN endpoint. When multiple origins exist, the first origin will be used as primary and rest will be used as failover options. Each `origin` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointOrigin:EndpointOrigin"
          },
          "type": "array"
        },
        "probePath": {
          "description": "the path to a file hosted on the origin which helps accelerate delivery of the dynamic content and calculate the most optimal routes for the CDN. This is relative to the `origin_path`.\n",
          "type": "string"
        },
        "profileName": {
          "description": "The CDN Profile to which to attach the CDN Endpoint.\n",
          "type": "string"
        },
        "querystringCachingBehaviour": {
          "description": "Sets query string caching behavior. Allowed values are `IgnoreQueryString`, `BypassCaching` and `UseQueryString`. `NotSet` value can be used for `Premium Verizon` CDN profile. Defaults to `IgnoreQueryString`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the CDN Endpoint.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "contentTypesToCompresses",
        "hostName",
        "location",
        "name",
        "origins",
        "originPath",
        "probePath",
        "profileName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "origins",
        "profileName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Endpoint resources.\n",
        "properties": {
          "contentTypesToCompresses": {
            "description": "An array of strings that indicates a content types on which compression will be applied. The value for the elements should be MIME types.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "deliveryRules": {
            "description": "Rules for the rules engine. An endpoint can contain up until 4 of those rules that consist of conditions and actions. A `delivery_rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:cdn/EndpointDeliveryRule:EndpointDeliveryRule"
            },
            "type": "array"
          },
          "geoFilters": {
            "description": "A set of Geo Filters for this CDN Endpoint. Each `geo_filter` block supports fields documented below.\n",
            "items": {
              "$ref": "#/types/azure:cdn/EndpointGeoFilter:EndpointGeoFilter"
            },
            "type": "array"
          },
          "globalDeliveryRule": {
            "$ref": "#/types/azure:cdn/EndpointGlobalDeliveryRule:EndpointGlobalDeliveryRule",
            "description": "Actions that are valid for all resources regardless of any conditions. A `global_delivery_rule` block as defined below.\n"
          },
          "hostName": {
            "description": "A string that determines the hostname/IP address of the origin server. This string can be a domain name, Storage Account endpoint, Web App endpoint, IPv4 address or IPv6 address. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "isCompressionEnabled": {
            "description": "Indicates whether compression is to be enabled.\n",
            "type": "boolean"
          },
          "isHttpAllowed": {
            "description": "Defaults to `true`.\n",
            "type": "boolean"
          },
          "isHttpsAllowed": {
            "description": "Defaults to `true`.\n",
            "type": "boolean"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the origin. This is an arbitrary value. However, this value needs to be unique under the endpoint. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "optimizationType": {
            "description": "What types of optimization should this CDN Endpoint optimize for? Possible values include `DynamicSiteAcceleration`, `GeneralMediaStreaming`, `GeneralWebDelivery`, `LargeFileDownload` and `VideoOnDemandMediaStreaming`.\n",
            "type": "string"
          },
          "originHostHeader": {
            "description": "The host header CDN provider will send along with content requests to origins.\n",
            "type": "string"
          },
          "originPath": {
            "description": "The path used at for origin requests.\n",
            "type": "string"
          },
          "origins": {
            "description": "The set of origins of the CDN endpoint. When multiple origins exist, the first origin will be used as primary and rest will be used as failover options. Each `origin` block supports fields documented below.\n",
            "items": {
              "$ref": "#/types/azure:cdn/EndpointOrigin:EndpointOrigin"
            },
            "type": "array"
          },
          "probePath": {
            "description": "the path to a file hosted on the origin which helps accelerate delivery of the dynamic content and calculate the most optimal routes for the CDN. This is relative to the `origin_path`.\n",
            "type": "string"
          },
          "profileName": {
            "description": "The CDN Profile to which to attach the CDN Endpoint.\n",
            "type": "string"
          },
          "querystringCachingBehaviour": {
            "description": "Sets query string caching behavior. Allowed values are `IgnoreQueryString`, `BypassCaching` and `UseQueryString`. `NotSet` value can be used for `Premium Verizon` CDN profile. Defaults to `IgnoreQueryString`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the CDN Endpoint.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:cdn/endpointCustomDomain:EndpointCustomDomain": {
      "description": "Manages a Custom Domain for a CDN Endpoint.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"west europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleProfile = new azure.cdn.Profile(\"exampleProfile\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard_Verizon\",\n});\nconst exampleEndpoint = new azure.cdn.Endpoint(\"exampleEndpoint\", {\n    profileName: exampleProfile.name,\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    origins: [{\n        name: \"example\",\n        hostName: exampleAccount.primaryBlobHost,\n    }],\n});\nconst exampleZone = azure.dns.getZone({\n    name: \"example-domain.com\",\n    resourceGroupName: \"domain-rg\",\n});\nconst exampleCNameRecord = new azure.dns.CNameRecord(\"exampleCNameRecord\", {\n    zoneName: exampleZone.then(exampleZone =\u003e exampleZone.name),\n    resourceGroupName: exampleZone.then(exampleZone =\u003e exampleZone.resourceGroupName),\n    ttl: 3600,\n    targetResourceId: exampleEndpoint.id,\n});\nconst exampleEndpointCustomDomain = new azure.cdn.EndpointCustomDomain(\"exampleEndpointCustomDomain\", {\n    cdnEndpointId: exampleEndpoint.id,\n    hostName: pulumi.all([exampleCNameRecord.name, exampleZone]).apply(([name, exampleZone]) =\u003e `${name}.${exampleZone.name}`),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"west europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_profile = azure.cdn.Profile(\"exampleProfile\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard_Verizon\")\nexample_endpoint = azure.cdn.Endpoint(\"exampleEndpoint\",\n    profile_name=example_profile.name,\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    origins=[azure.cdn.EndpointOriginArgs(\n        name=\"example\",\n        host_name=example_account.primary_blob_host,\n    )])\nexample_zone = azure.dns.get_zone(name=\"example-domain.com\",\n    resource_group_name=\"domain-rg\")\nexample_c_name_record = azure.dns.CNameRecord(\"exampleCNameRecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_zone.resource_group_name,\n    ttl=3600,\n    target_resource_id=example_endpoint.id)\nexample_endpoint_custom_domain = azure.cdn.EndpointCustomDomain(\"exampleEndpointCustomDomain\",\n    cdn_endpoint_id=example_endpoint.id,\n    host_name=example_c_name_record.name.apply(lambda name: f\"{name}.{example_zone.name}\"))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"west europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleProfile = new Azure.Cdn.Profile(\"exampleProfile\", new Azure.Cdn.ProfileArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard_Verizon\",\n        });\n        var exampleEndpoint = new Azure.Cdn.Endpoint(\"exampleEndpoint\", new Azure.Cdn.EndpointArgs\n        {\n            ProfileName = exampleProfile.Name,\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Origins = \n            {\n                new Azure.Cdn.Inputs.EndpointOriginArgs\n                {\n                    Name = \"example\",\n                    HostName = exampleAccount.PrimaryBlobHost,\n                },\n            },\n        });\n        var exampleZone = Output.Create(Azure.Dns.GetZone.InvokeAsync(new Azure.Dns.GetZoneArgs\n        {\n            Name = \"example-domain.com\",\n            ResourceGroupName = \"domain-rg\",\n        }));\n        var exampleCNameRecord = new Azure.Dns.CNameRecord(\"exampleCNameRecord\", new Azure.Dns.CNameRecordArgs\n        {\n            ZoneName = exampleZone.Apply(exampleZone =\u003e exampleZone.Name),\n            ResourceGroupName = exampleZone.Apply(exampleZone =\u003e exampleZone.ResourceGroupName),\n            Ttl = 3600,\n            TargetResourceId = exampleEndpoint.Id,\n        });\n        var exampleEndpointCustomDomain = new Azure.Cdn.EndpointCustomDomain(\"exampleEndpointCustomDomain\", new Azure.Cdn.EndpointCustomDomainArgs\n        {\n            CdnEndpointId = exampleEndpoint.Id,\n            HostName = Output.Tuple(exampleCNameRecord.Name, exampleZone).Apply(values =\u003e\n            {\n                var name = values.Item1;\n                var exampleZone = values.Item2;\n                return $\"{name}.{exampleZone.Name}\";\n            }),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cdn\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"west europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleProfile, err := cdn.NewProfile(ctx, \"exampleProfile\", \u0026cdn.ProfileArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard_Verizon\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEndpoint, err := cdn.NewEndpoint(ctx, \"exampleEndpoint\", \u0026cdn.EndpointArgs{\n\t\t\tProfileName:       exampleProfile.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tOrigins: cdn.EndpointOriginArray{\n\t\t\t\t\u0026cdn.EndpointOriginArgs{\n\t\t\t\t\tName:     pulumi.String(\"example\"),\n\t\t\t\t\tHostName: exampleAccount.PrimaryBlobHost,\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\topt0 := \"domain-rg\"\n\t\texampleZone, err := dns.LookupZone(ctx, \u0026dns.LookupZoneArgs{\n\t\t\tName:              \"example-domain.com\",\n\t\t\tResourceGroupName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCNameRecord, err := dns.NewCNameRecord(ctx, \"exampleCNameRecord\", \u0026dns.CNameRecordArgs{\n\t\t\tZoneName:          pulumi.String(exampleZone.Name),\n\t\t\tResourceGroupName: pulumi.String(exampleZone.ResourceGroupName),\n\t\t\tTtl:               pulumi.Int(3600),\n\t\t\tTargetResourceId:  exampleEndpoint.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cdn.NewEndpointCustomDomain(ctx, \"exampleEndpointCustomDomain\", \u0026cdn.EndpointCustomDomainArgs{\n\t\t\tCdnEndpointId: exampleEndpoint.ID(),\n\t\t\tHostName: exampleCNameRecord.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v%v%v\", name, \".\", exampleZone.Name), nil\n\t\t\t}).(pulumi.StringOutput),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCDN Endpoint Custom Domains can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cdn/endpointCustomDomain:EndpointCustomDomain example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Cdn/profiles/profile1/endpoints/endpoint1/customDomains/domain1\n```\n\n ",
      "inputProperties": {
        "cdnEndpointId": {
          "description": "The ID of the CDN Endpoint. Changing this forces a new CDN Endpoint Custom Domain to be created.\n",
          "type": "string"
        },
        "hostName": {
          "description": "The host name of the custom domain. Changing this forces a new CDN Endpoint Custom Domain to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this CDN Endpoint Custom Domain. Changing this forces a new CDN Endpoint Custom Domain to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "cdnEndpointId": {
          "description": "The ID of the CDN Endpoint. Changing this forces a new CDN Endpoint Custom Domain to be created.\n",
          "type": "string"
        },
        "hostName": {
          "description": "The host name of the custom domain. Changing this forces a new CDN Endpoint Custom Domain to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this CDN Endpoint Custom Domain. Changing this forces a new CDN Endpoint Custom Domain to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "cdnEndpointId",
        "hostName",
        "name"
      ],
      "requiredInputs": [
        "cdnEndpointId",
        "hostName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EndpointCustomDomain resources.\n",
        "properties": {
          "cdnEndpointId": {
            "description": "The ID of the CDN Endpoint. Changing this forces a new CDN Endpoint Custom Domain to be created.\n",
            "type": "string"
          },
          "hostName": {
            "description": "The host name of the custom domain. Changing this forces a new CDN Endpoint Custom Domain to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this CDN Endpoint Custom Domain. Changing this forces a new CDN Endpoint Custom Domain to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:cdn/profile:Profile": {
      "description": "\n\n\n## Import\n\nCDN Profiles can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cdn/profile:Profile example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Cdn/profiles/myprofile1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the CDN Profile. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the CDN Profile.\n",
          "type": "string"
        },
        "sku": {
          "description": "The pricing related information of current CDN profile. Accepted values are `Standard_Akamai`, `Standard_ChinaCdn`, `Standard_Microsoft`, `Standard_Verizon` or `Premium_Verizon`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the CDN Profile. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the CDN Profile.\n",
          "type": "string"
        },
        "sku": {
          "description": "The pricing related information of current CDN profile. Accepted values are `Standard_Akamai`, `Standard_ChinaCdn`, `Standard_Microsoft`, `Standard_Verizon` or `Premium_Verizon`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "sku"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Profile resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the CDN Profile. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the CDN Profile.\n",
            "type": "string"
          },
          "sku": {
            "description": "The pricing related information of current CDN profile. Accepted values are `Standard_Akamai`, `Standard_ChinaCdn`, `Standard_Microsoft`, `Standard_Verizon` or `Premium_Verizon`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:cognitive/account:Account": {
      "description": "\n\n\n## Import\n\nCognitive Service Accounts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cognitive/account:Account account1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.CognitiveServices/accounts/account1\n```\n\n ",
      "inputProperties": {
        "customSubdomainName": {
          "description": "The subdomain name used for token-based authentication. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "fqdns": {
          "description": "List of FQDNs allowed for the Cognitive Account.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "identity": {
          "$ref": "#/types/azure:cognitive/AccountIdentity:AccountIdentity",
          "description": "An `identity` block is documented below.\n"
        },
        "kind": {
          "description": "Specifies the type of Cognitive Service Account that should be created. Possible values are `Academic`, `AnomalyDetector`, `Bing.Autosuggest`, `Bing.Autosuggest.v7`, `Bing.CustomSearch`, `Bing.Search`, `Bing.Search.v7`, `Bing.Speech`, `Bing.SpellCheck`, `Bing.SpellCheck.v7`, `CognitiveServices`, `ComputerVision`, `ContentModerator`, `CustomSpeech`, `CustomVision.Prediction`, `CustomVision.Training`, `Emotion`, `Face`,`FormRecognizer`, `ImmersiveReader`, `LUIS`, `LUIS.Authoring`, `MetricsAdvisor`, `Personalizer`, `QnAMaker`, `Recommendations`, `SpeakerRecognition`, `Speech`, `SpeechServices`, `SpeechTranslation`, `TextAnalytics`, `TextTranslation` and `WebLM`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "localAuthEnabled": {
          "description": "Whether local authentication methods is enabled for the Cognitive Account. Defaults to `true`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metricsAdvisorAadClientId": {
          "description": "The Azure AD Client ID (Application ID). This attribute is only set when kind is `MetricsAdvisor`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metricsAdvisorAadTenantId": {
          "description": "The Azure AD Tenant ID. This attribute is only set when kind is `MetricsAdvisor`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metricsAdvisorSuperUserName": {
          "description": "The super user of Metrics Advisor. This attribute is only set when kind is `MetricsAdvisor`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metricsAdvisorWebsiteName": {
          "description": "The website name of Metrics Advisor. This attribute is only set when kind is `MetricsAdvisor`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Cognitive Service Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkAcls": {
          "$ref": "#/types/azure:cognitive/AccountNetworkAcls:AccountNetworkAcls",
          "description": "A `network_acls` block as defined below.\n"
        },
        "outboundNetworkAccessRestrited": {
          "description": "Whether outbound network access is restricted for the Cognitive Account. Defaults to `false`.\n",
          "type": "boolean"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether public network access is allowed for the Cognitive Account. Defaults to `true`.\n",
          "type": "boolean"
        },
        "qnaRuntimeEndpoint": {
          "description": "A URL to link a QnAMaker cognitive account to a QnA runtime.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cognitive Service Account is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this Cognitive Service Account. Possible values are `F0`, `F1`, `S`, `S0`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `P0`, `P1`, and `P2`.\n",
          "type": "string"
        },
        "storages": {
          "description": "An `identity` block is documented below.\n",
          "items": {
            "$ref": "#/types/azure:cognitive/AccountStorage:AccountStorage"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "customSubdomainName": {
          "description": "The subdomain name used for token-based authentication. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "endpoint": {
          "description": "The endpoint used to connect to the Cognitive Service Account.\n",
          "type": "string"
        },
        "fqdns": {
          "description": "List of FQDNs allowed for the Cognitive Account.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "identity": {
          "$ref": "#/types/azure:cognitive/AccountIdentity:AccountIdentity",
          "description": "An `identity` block is documented below.\n"
        },
        "kind": {
          "description": "Specifies the type of Cognitive Service Account that should be created. Possible values are `Academic`, `AnomalyDetector`, `Bing.Autosuggest`, `Bing.Autosuggest.v7`, `Bing.CustomSearch`, `Bing.Search`, `Bing.Search.v7`, `Bing.Speech`, `Bing.SpellCheck`, `Bing.SpellCheck.v7`, `CognitiveServices`, `ComputerVision`, `ContentModerator`, `CustomSpeech`, `CustomVision.Prediction`, `CustomVision.Training`, `Emotion`, `Face`,`FormRecognizer`, `ImmersiveReader`, `LUIS`, `LUIS.Authoring`, `MetricsAdvisor`, `Personalizer`, `QnAMaker`, `Recommendations`, `SpeakerRecognition`, `Speech`, `SpeechServices`, `SpeechTranslation`, `TextAnalytics`, `TextTranslation` and `WebLM`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "localAuthEnabled": {
          "description": "Whether local authentication methods is enabled for the Cognitive Account. Defaults to `true`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metricsAdvisorAadClientId": {
          "description": "The Azure AD Client ID (Application ID). This attribute is only set when kind is `MetricsAdvisor`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metricsAdvisorAadTenantId": {
          "description": "The Azure AD Tenant ID. This attribute is only set when kind is `MetricsAdvisor`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metricsAdvisorSuperUserName": {
          "description": "The super user of Metrics Advisor. This attribute is only set when kind is `MetricsAdvisor`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metricsAdvisorWebsiteName": {
          "description": "The website name of Metrics Advisor. This attribute is only set when kind is `MetricsAdvisor`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Cognitive Service Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkAcls": {
          "$ref": "#/types/azure:cognitive/AccountNetworkAcls:AccountNetworkAcls",
          "description": "A `network_acls` block as defined below.\n"
        },
        "outboundNetworkAccessRestrited": {
          "description": "Whether outbound network access is restricted for the Cognitive Account. Defaults to `false`.\n",
          "type": "boolean"
        },
        "primaryAccessKey": {
          "description": "A primary access key which can be used to connect to the Cognitive Service Account.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether public network access is allowed for the Cognitive Account. Defaults to `true`.\n",
          "type": "boolean"
        },
        "qnaRuntimeEndpoint": {
          "description": "A URL to link a QnAMaker cognitive account to a QnA runtime.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cognitive Service Account is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryAccessKey": {
          "description": "The secondary access key which can be used to connect to the Cognitive Service Account.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this Cognitive Service Account. Possible values are `F0`, `F1`, `S`, `S0`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `P0`, `P1`, and `P2`.\n",
          "type": "string"
        },
        "storages": {
          "description": "An `identity` block is documented below.\n",
          "items": {
            "$ref": "#/types/azure:cognitive/AccountStorage:AccountStorage"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "endpoint",
        "kind",
        "location",
        "name",
        "primaryAccessKey",
        "resourceGroupName",
        "secondaryAccessKey",
        "skuName"
      ],
      "requiredInputs": [
        "kind",
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Account resources.\n",
        "properties": {
          "customSubdomainName": {
            "description": "The subdomain name used for token-based authentication. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "endpoint": {
            "description": "The endpoint used to connect to the Cognitive Service Account.\n",
            "type": "string"
          },
          "fqdns": {
            "description": "List of FQDNs allowed for the Cognitive Account.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "identity": {
            "$ref": "#/types/azure:cognitive/AccountIdentity:AccountIdentity",
            "description": "An `identity` block is documented below.\n"
          },
          "kind": {
            "description": "Specifies the type of Cognitive Service Account that should be created. Possible values are `Academic`, `AnomalyDetector`, `Bing.Autosuggest`, `Bing.Autosuggest.v7`, `Bing.CustomSearch`, `Bing.Search`, `Bing.Search.v7`, `Bing.Speech`, `Bing.SpellCheck`, `Bing.SpellCheck.v7`, `CognitiveServices`, `ComputerVision`, `ContentModerator`, `CustomSpeech`, `CustomVision.Prediction`, `CustomVision.Training`, `Emotion`, `Face`,`FormRecognizer`, `ImmersiveReader`, `LUIS`, `LUIS.Authoring`, `MetricsAdvisor`, `Personalizer`, `QnAMaker`, `Recommendations`, `SpeakerRecognition`, `Speech`, `SpeechServices`, `SpeechTranslation`, `TextAnalytics`, `TextTranslation` and `WebLM`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "localAuthEnabled": {
            "description": "Whether local authentication methods is enabled for the Cognitive Account. Defaults to `true`.\n",
            "type": "boolean"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metricsAdvisorAadClientId": {
            "description": "The Azure AD Client ID (Application ID). This attribute is only set when kind is `MetricsAdvisor`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metricsAdvisorAadTenantId": {
            "description": "The Azure AD Tenant ID. This attribute is only set when kind is `MetricsAdvisor`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metricsAdvisorSuperUserName": {
            "description": "The super user of Metrics Advisor. This attribute is only set when kind is `MetricsAdvisor`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metricsAdvisorWebsiteName": {
            "description": "The website name of Metrics Advisor. This attribute is only set when kind is `MetricsAdvisor`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Cognitive Service Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkAcls": {
            "$ref": "#/types/azure:cognitive/AccountNetworkAcls:AccountNetworkAcls",
            "description": "A `network_acls` block as defined below.\n"
          },
          "outboundNetworkAccessRestrited": {
            "description": "Whether outbound network access is restricted for the Cognitive Account. Defaults to `false`.\n",
            "type": "boolean"
          },
          "primaryAccessKey": {
            "description": "A primary access key which can be used to connect to the Cognitive Service Account.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether public network access is allowed for the Cognitive Account. Defaults to `true`.\n",
            "type": "boolean"
          },
          "qnaRuntimeEndpoint": {
            "description": "A URL to link a QnAMaker cognitive account to a QnA runtime.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Cognitive Service Account is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The secondary access key which can be used to connect to the Cognitive Service Account.\n",
            "type": "string"
          },
          "skuName": {
            "description": "Specifies the SKU Name for this Cognitive Service Account. Possible values are `F0`, `F1`, `S`, `S0`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `P0`, `P1`, and `P2`.\n",
            "type": "string"
          },
          "storages": {
            "description": "An `identity` block is documented below.\n",
            "items": {
              "$ref": "#/types/azure:cognitive/AccountStorage:AccountStorage"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:cognitive/accountCustomerManagedKey:AccountCustomerManagedKey": {
      "description": "Manages a Customer Managed Key for a Cognitive Services Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West US\"});\nconst exampleUserAssignedIdentity = new azure.authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleAccount = new azure.cognitive.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    kind: \"Face\",\n    skuName: \"E0\",\n    customSubdomainName: \"example-account\",\n    identity: {\n        type: \"SystemAssigned, UserAssigned\",\n        identityIds: [exampleUserAssignedIdentity.id],\n    },\n});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"standard\",\n    softDeleteEnabled: true,\n    purgeProtectionEnabled: true,\n    accessPolicies: [\n        {\n            tenantId: azurerm_cognitive_account.test.identity[0].tenant_id,\n            objectId: azurerm_cognitive_account.test.identity[0].principal_id,\n            keyPermissions: [\n                \"Get\",\n                \"Create\",\n                \"List\",\n                \"Restore\",\n                \"Recover\",\n                \"UnwrapKey\",\n                \"WrapKey\",\n                \"Purge\",\n                \"Encrypt\",\n                \"Decrypt\",\n                \"Sign\",\n                \"Verify\",\n            ],\n            secretPermissions: [\"Get\"],\n        },\n        {\n            tenantId: current.then(current =\u003e current.tenantId),\n            objectId: current.then(current =\u003e current.objectId),\n            keyPermissions: [\n                \"Get\",\n                \"Create\",\n                \"Delete\",\n                \"List\",\n                \"Restore\",\n                \"Recover\",\n                \"UnwrapKey\",\n                \"WrapKey\",\n                \"Purge\",\n                \"Encrypt\",\n                \"Decrypt\",\n                \"Sign\",\n                \"Verify\",\n            ],\n            secretPermissions: [\"Get\"],\n        },\n        {\n            tenantId: azurerm_user_assigned_identity.test.tenant_id,\n            objectId: azurerm_user_assigned_identity.test.principal_id,\n            keyPermissions: [\n                \"Get\",\n                \"Create\",\n                \"Delete\",\n                \"List\",\n                \"Restore\",\n                \"Recover\",\n                \"UnwrapKey\",\n                \"WrapKey\",\n                \"Purge\",\n                \"Encrypt\",\n                \"Decrypt\",\n                \"Sign\",\n                \"Verify\",\n            ],\n            secretPermissions: [\"Get\"],\n        },\n    ],\n});\nconst exampleKey = new azure.keyvault.Key(\"exampleKey\", {\n    keyVaultId: exampleKeyVault.id,\n    keyType: \"RSA\",\n    keySize: 2048,\n    keyOpts: [\n        \"decrypt\",\n        \"encrypt\",\n        \"sign\",\n        \"unwrapKey\",\n        \"verify\",\n        \"wrapKey\",\n    ],\n});\nconst exampleAccountCustomerManagedKey = new azure.cognitive.AccountCustomerManagedKey(\"exampleAccountCustomerManagedKey\", {\n    cognitiveAccountId: exampleAccount.id,\n    keyVaultKeyId: exampleKey.id,\n    identityClientId: exampleUserAssignedIdentity.clientId,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West US\")\nexample_user_assigned_identity = azure.authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_account = azure.cognitive.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    kind=\"Face\",\n    sku_name=\"E0\",\n    custom_subdomain_name=\"example-account\",\n    identity=azure.cognitive.AccountIdentityArgs(\n        type=\"SystemAssigned, UserAssigned\",\n        identity_ids=[example_user_assigned_identity.id],\n    ))\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"standard\",\n    soft_delete_enabled=True,\n    purge_protection_enabled=True,\n    access_policies=[\n        azure.keyvault.KeyVaultAccessPolicyArgs(\n            tenant_id=azurerm_cognitive_account[\"test\"][\"identity\"][0][\"tenant_id\"],\n            object_id=azurerm_cognitive_account[\"test\"][\"identity\"][0][\"principal_id\"],\n            key_permissions=[\n                \"Get\",\n                \"Create\",\n                \"List\",\n                \"Restore\",\n                \"Recover\",\n                \"UnwrapKey\",\n                \"WrapKey\",\n                \"Purge\",\n                \"Encrypt\",\n                \"Decrypt\",\n                \"Sign\",\n                \"Verify\",\n            ],\n            secret_permissions=[\"Get\"],\n        ),\n        azure.keyvault.KeyVaultAccessPolicyArgs(\n            tenant_id=current.tenant_id,\n            object_id=current.object_id,\n            key_permissions=[\n                \"Get\",\n                \"Create\",\n                \"Delete\",\n                \"List\",\n                \"Restore\",\n                \"Recover\",\n                \"UnwrapKey\",\n                \"WrapKey\",\n                \"Purge\",\n                \"Encrypt\",\n                \"Decrypt\",\n                \"Sign\",\n                \"Verify\",\n            ],\n            secret_permissions=[\"Get\"],\n        ),\n        azure.keyvault.KeyVaultAccessPolicyArgs(\n            tenant_id=azurerm_user_assigned_identity[\"test\"][\"tenant_id\"],\n            object_id=azurerm_user_assigned_identity[\"test\"][\"principal_id\"],\n            key_permissions=[\n                \"Get\",\n                \"Create\",\n                \"Delete\",\n                \"List\",\n                \"Restore\",\n                \"Recover\",\n                \"UnwrapKey\",\n                \"WrapKey\",\n                \"Purge\",\n                \"Encrypt\",\n                \"Decrypt\",\n                \"Sign\",\n                \"Verify\",\n            ],\n            secret_permissions=[\"Get\"],\n        ),\n    ])\nexample_key = azure.keyvault.Key(\"exampleKey\",\n    key_vault_id=example_key_vault.id,\n    key_type=\"RSA\",\n    key_size=2048,\n    key_opts=[\n        \"decrypt\",\n        \"encrypt\",\n        \"sign\",\n        \"unwrapKey\",\n        \"verify\",\n        \"wrapKey\",\n    ])\nexample_account_customer_managed_key = azure.cognitive.AccountCustomerManagedKey(\"exampleAccountCustomerManagedKey\",\n    cognitive_account_id=example_account.id,\n    key_vault_key_id=example_key.id,\n    identity_client_id=example_user_assigned_identity.client_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West US\",\n        });\n        var exampleUserAssignedIdentity = new Azure.Authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\", new Azure.Authorization.UserAssignedIdentityArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleAccount = new Azure.Cognitive.Account(\"exampleAccount\", new Azure.Cognitive.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Kind = \"Face\",\n            SkuName = \"E0\",\n            CustomSubdomainName = \"example-account\",\n            Identity = new Azure.Cognitive.Inputs.AccountIdentityArgs\n            {\n                Type = \"SystemAssigned, UserAssigned\",\n                IdentityIds = \n                {\n                    exampleUserAssignedIdentity.Id,\n                },\n            },\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"standard\",\n            SoftDeleteEnabled = true,\n            PurgeProtectionEnabled = true,\n            AccessPolicies = \n            {\n                new Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs\n                {\n                    TenantId = azurerm_cognitive_account.Test.Identity[0].Tenant_id,\n                    ObjectId = azurerm_cognitive_account.Test.Identity[0].Principal_id,\n                    KeyPermissions = \n                    {\n                        \"Get\",\n                        \"Create\",\n                        \"List\",\n                        \"Restore\",\n                        \"Recover\",\n                        \"UnwrapKey\",\n                        \"WrapKey\",\n                        \"Purge\",\n                        \"Encrypt\",\n                        \"Decrypt\",\n                        \"Sign\",\n                        \"Verify\",\n                    },\n                    SecretPermissions = \n                    {\n                        \"Get\",\n                    },\n                },\n                new Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs\n                {\n                    TenantId = current.Apply(current =\u003e current.TenantId),\n                    ObjectId = current.Apply(current =\u003e current.ObjectId),\n                    KeyPermissions = \n                    {\n                        \"Get\",\n                        \"Create\",\n                        \"Delete\",\n                        \"List\",\n                        \"Restore\",\n                        \"Recover\",\n                        \"UnwrapKey\",\n                        \"WrapKey\",\n                        \"Purge\",\n                        \"Encrypt\",\n                        \"Decrypt\",\n                        \"Sign\",\n                        \"Verify\",\n                    },\n                    SecretPermissions = \n                    {\n                        \"Get\",\n                    },\n                },\n                new Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs\n                {\n                    TenantId = azurerm_user_assigned_identity.Test.Tenant_id,\n                    ObjectId = azurerm_user_assigned_identity.Test.Principal_id,\n                    KeyPermissions = \n                    {\n                        \"Get\",\n                        \"Create\",\n                        \"Delete\",\n                        \"List\",\n                        \"Restore\",\n                        \"Recover\",\n                        \"UnwrapKey\",\n                        \"WrapKey\",\n                        \"Purge\",\n                        \"Encrypt\",\n                        \"Decrypt\",\n                        \"Sign\",\n                        \"Verify\",\n                    },\n                    SecretPermissions = \n                    {\n                        \"Get\",\n                    },\n                },\n            },\n        });\n        var exampleKey = new Azure.KeyVault.Key(\"exampleKey\", new Azure.KeyVault.KeyArgs\n        {\n            KeyVaultId = exampleKeyVault.Id,\n            KeyType = \"RSA\",\n            KeySize = 2048,\n            KeyOpts = \n            {\n                \"decrypt\",\n                \"encrypt\",\n                \"sign\",\n                \"unwrapKey\",\n                \"verify\",\n                \"wrapKey\",\n            },\n        });\n        var exampleAccountCustomerManagedKey = new Azure.Cognitive.AccountCustomerManagedKey(\"exampleAccountCustomerManagedKey\", new Azure.Cognitive.AccountCustomerManagedKeyArgs\n        {\n            CognitiveAccountId = exampleAccount.Id,\n            KeyVaultKeyId = exampleKey.Id,\n            IdentityClientId = exampleUserAssignedIdentity.ClientId,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cognitive\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUserAssignedIdentity, err := authorization.NewUserAssignedIdentity(ctx, \"exampleUserAssignedIdentity\", \u0026authorization.UserAssignedIdentityArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := cognitive.NewAccount(ctx, \"exampleAccount\", \u0026cognitive.AccountArgs{\n\t\t\tLocation:            exampleResourceGroup.Location,\n\t\t\tResourceGroupName:   exampleResourceGroup.Name,\n\t\t\tKind:                pulumi.String(\"Face\"),\n\t\t\tSkuName:             pulumi.String(\"E0\"),\n\t\t\tCustomSubdomainName: pulumi.String(\"example-account\"),\n\t\t\tIdentity: \u0026cognitive.AccountIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned, UserAssigned\"),\n\t\t\t\tIdentityIds: pulumi.StringArray{\n\t\t\t\t\texampleUserAssignedIdentity.ID(),\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\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tTenantId:               pulumi.String(current.TenantId),\n\t\t\tSkuName:                pulumi.String(\"standard\"),\n\t\t\tSoftDeleteEnabled:      pulumi.Bool(true),\n\t\t\tPurgeProtectionEnabled: pulumi.Bool(true),\n\t\t\tAccessPolicies: keyvault.KeyVaultAccessPolicyArray{\n\t\t\t\t\u0026keyvault.KeyVaultAccessPolicyArgs{\n\t\t\t\t\tTenantId: pulumi.Any(azurerm_cognitive_account.Test.Identity[0].Tenant_id),\n\t\t\t\t\tObjectId: pulumi.Any(azurerm_cognitive_account.Test.Identity[0].Principal_id),\n\t\t\t\t\tKeyPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Get\"),\n\t\t\t\t\t\tpulumi.String(\"Create\"),\n\t\t\t\t\t\tpulumi.String(\"List\"),\n\t\t\t\t\t\tpulumi.String(\"Restore\"),\n\t\t\t\t\t\tpulumi.String(\"Recover\"),\n\t\t\t\t\t\tpulumi.String(\"UnwrapKey\"),\n\t\t\t\t\t\tpulumi.String(\"WrapKey\"),\n\t\t\t\t\t\tpulumi.String(\"Purge\"),\n\t\t\t\t\t\tpulumi.String(\"Encrypt\"),\n\t\t\t\t\t\tpulumi.String(\"Decrypt\"),\n\t\t\t\t\t\tpulumi.String(\"Sign\"),\n\t\t\t\t\t\tpulumi.String(\"Verify\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecretPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Get\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026keyvault.KeyVaultAccessPolicyArgs{\n\t\t\t\t\tTenantId: pulumi.String(current.TenantId),\n\t\t\t\t\tObjectId: pulumi.String(current.ObjectId),\n\t\t\t\t\tKeyPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Get\"),\n\t\t\t\t\t\tpulumi.String(\"Create\"),\n\t\t\t\t\t\tpulumi.String(\"Delete\"),\n\t\t\t\t\t\tpulumi.String(\"List\"),\n\t\t\t\t\t\tpulumi.String(\"Restore\"),\n\t\t\t\t\t\tpulumi.String(\"Recover\"),\n\t\t\t\t\t\tpulumi.String(\"UnwrapKey\"),\n\t\t\t\t\t\tpulumi.String(\"WrapKey\"),\n\t\t\t\t\t\tpulumi.String(\"Purge\"),\n\t\t\t\t\t\tpulumi.String(\"Encrypt\"),\n\t\t\t\t\t\tpulumi.String(\"Decrypt\"),\n\t\t\t\t\t\tpulumi.String(\"Sign\"),\n\t\t\t\t\t\tpulumi.String(\"Verify\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecretPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Get\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026keyvault.KeyVaultAccessPolicyArgs{\n\t\t\t\t\tTenantId: pulumi.Any(azurerm_user_assigned_identity.Test.Tenant_id),\n\t\t\t\t\tObjectId: pulumi.Any(azurerm_user_assigned_identity.Test.Principal_id),\n\t\t\t\t\tKeyPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Get\"),\n\t\t\t\t\t\tpulumi.String(\"Create\"),\n\t\t\t\t\t\tpulumi.String(\"Delete\"),\n\t\t\t\t\t\tpulumi.String(\"List\"),\n\t\t\t\t\t\tpulumi.String(\"Restore\"),\n\t\t\t\t\t\tpulumi.String(\"Recover\"),\n\t\t\t\t\t\tpulumi.String(\"UnwrapKey\"),\n\t\t\t\t\t\tpulumi.String(\"WrapKey\"),\n\t\t\t\t\t\tpulumi.String(\"Purge\"),\n\t\t\t\t\t\tpulumi.String(\"Encrypt\"),\n\t\t\t\t\t\tpulumi.String(\"Decrypt\"),\n\t\t\t\t\t\tpulumi.String(\"Sign\"),\n\t\t\t\t\t\tpulumi.String(\"Verify\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecretPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Get\"),\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\texampleKey, err := keyvault.NewKey(ctx, \"exampleKey\", \u0026keyvault.KeyArgs{\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t\tKeyType:    pulumi.String(\"RSA\"),\n\t\t\tKeySize:    pulumi.Int(2048),\n\t\t\tKeyOpts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"decrypt\"),\n\t\t\t\tpulumi.String(\"encrypt\"),\n\t\t\t\tpulumi.String(\"sign\"),\n\t\t\t\tpulumi.String(\"unwrapKey\"),\n\t\t\t\tpulumi.String(\"verify\"),\n\t\t\t\tpulumi.String(\"wrapKey\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cognitive.NewAccountCustomerManagedKey(ctx, \"exampleAccountCustomerManagedKey\", \u0026cognitive.AccountCustomerManagedKeyArgs{\n\t\t\tCognitiveAccountId: exampleAccount.ID(),\n\t\t\tKeyVaultKeyId:      exampleKey.ID(),\n\t\t\tIdentityClientId:   exampleUserAssignedIdentity.ClientId,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCustomer Managed Keys for a Cognitive Account can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cognitive/accountCustomerManagedKey:AccountCustomerManagedKey example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.CognitiveServices/accounts/account1\n```\n\n ",
      "inputProperties": {
        "cognitiveAccountId": {
          "description": "The ID of the Cognitive Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "identityClientId": {
          "description": "The Client ID of the User Assigned Identity that has access to the key. This property only needs to be specified when there're multiple identities attached to the Cognitive Account.\n",
          "type": "string"
        },
        "keyVaultKeyId": {
          "description": "The ID of the Key Vault Key which should be used to Encrypt the data in this Cognitive Account.\n",
          "type": "string"
        }
      },
      "properties": {
        "cognitiveAccountId": {
          "description": "The ID of the Cognitive Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "identityClientId": {
          "description": "The Client ID of the User Assigned Identity that has access to the key. This property only needs to be specified when there're multiple identities attached to the Cognitive Account.\n",
          "type": "string"
        },
        "keyVaultKeyId": {
          "description": "The ID of the Key Vault Key which should be used to Encrypt the data in this Cognitive Account.\n",
          "type": "string"
        }
      },
      "required": [
        "cognitiveAccountId",
        "keyVaultKeyId"
      ],
      "requiredInputs": [
        "cognitiveAccountId",
        "keyVaultKeyId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AccountCustomerManagedKey resources.\n",
        "properties": {
          "cognitiveAccountId": {
            "description": "The ID of the Cognitive Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "identityClientId": {
            "description": "The Client ID of the User Assigned Identity that has access to the key. This property only needs to be specified when there're multiple identities attached to the Cognitive Account.\n",
            "type": "string"
          },
          "keyVaultKeyId": {
            "description": "The ID of the Key Vault Key which should be used to Encrypt the data in this Cognitive Account.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:communication/service:Service": {
      "description": "Manages a Communication Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.communication.Service(\"exampleService\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataLocation: \"United States\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.communication.Service(\"exampleService\",\n    resource_group_name=example_resource_group.name,\n    data_location=\"United States\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.Communication.Service(\"exampleService\", new Azure.Communication.ServiceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataLocation = \"United States\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/communication\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = communication.NewService(ctx, \"exampleService\", \u0026communication.ServiceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataLocation:      pulumi.String(\"United States\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCommunication Services can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:communication/service:Service example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Communication/CommunicationServices/communicationService1\n```\n\n ",
      "inputProperties": {
        "dataLocation": {
          "description": "The location where the Communication service stores its data at rest. Possible values are `Asia Pacific`, `Australia`, `Europe`, `UK` and `United States`. Defaults to `United States`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Communication Service resource. Changing this forces a new Communication Service to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Communication Service should exist. Changing this forces a new Communication Service to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Communication Service.\n",
          "type": "object"
        }
      },
      "properties": {
        "dataLocation": {
          "description": "The location where the Communication service stores its data at rest. Possible values are `Asia Pacific`, `Australia`, `Europe`, `UK` and `United States`. Defaults to `United States`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Communication Service resource. Changing this forces a new Communication Service to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Communication Service should exist. Changing this forces a new Communication Service to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Communication Service.\n",
          "type": "object"
        }
      },
      "required": [
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Service resources.\n",
        "properties": {
          "dataLocation": {
            "description": "The location where the Communication service stores its data at rest. Possible values are `Asia Pacific`, `Australia`, `Europe`, `UK` and `United States`. Defaults to `United States`.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Communication Service resource. Changing this forces a new Communication Service to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Communication Service should exist. Changing this forces a new Communication Service to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Communication Service.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/availabilitySet:AvailabilitySet": {
      "description": "Manages an Availability Set for Virtual Machines.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAvailabilitySet = new azure.compute.AvailabilitySet(\"exampleAvailabilitySet\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_availability_set = azure.compute.AvailabilitySet(\"exampleAvailabilitySet\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAvailabilitySet = new Azure.Compute.AvailabilitySet(\"exampleAvailabilitySet\", new Azure.Compute.AvailabilitySetArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewAvailabilitySet(ctx, \"exampleAvailabilitySet\", \u0026compute.AvailabilitySetArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAvailability Sets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/availabilitySet:AvailabilitySet group1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/availabilitySets/webAvailSet\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managed": {
          "description": "Specifies whether the availability set is managed or not. Possible values are `true` (to specify aligned) or `false` (to specify classic). Default is `true`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the availability set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "platformFaultDomainCount": {
          "description": "Specifies the number of fault domains that are used. Defaults to `3`. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "platformUpdateDomainCount": {
          "description": "Specifies the number of update domains that are used. Defaults to `5`. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the availability set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managed": {
          "description": "Specifies whether the availability set is managed or not. Possible values are `true` (to specify aligned) or `false` (to specify classic). Default is `true`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the availability set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "platformFaultDomainCount": {
          "description": "Specifies the number of fault domains that are used. Defaults to `3`. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "platformUpdateDomainCount": {
          "description": "Specifies the number of update domains that are used. Defaults to `5`. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the availability set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AvailabilitySet resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "managed": {
            "description": "Specifies whether the availability set is managed or not. Possible values are `true` (to specify aligned) or `false` (to specify classic). Default is `true`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the availability set. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "platformFaultDomainCount": {
            "description": "Specifies the number of fault domains that are used. Defaults to `3`. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "platformUpdateDomainCount": {
            "description": "Specifies the number of update domains that are used. Defaults to `5`. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "proximityPlacementGroupId": {
            "description": "The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the availability set. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/bastionHost:BastionHost": {
      "description": "Manages a Bastion Host.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis example deploys an Azure Bastion Host Instance to a target virtual network.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"192.168.1.0/24\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"192.168.1.224/27\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n    sku: \"Standard\",\n});\nconst exampleBastionHost = new azure.compute.BastionHost(\"exampleBastionHost\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfiguration: {\n        name: \"configuration\",\n        subnetId: exampleSubnet.id,\n        publicIpAddressId: examplePublicIp.id,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"192.168.1.0/24\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"192.168.1.224/27\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\",\n    sku=\"Standard\")\nexample_bastion_host = azure.compute.BastionHost(\"exampleBastionHost\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configuration=azure.compute.BastionHostIpConfigurationArgs(\n        name=\"configuration\",\n        subnet_id=example_subnet.id,\n        public_ip_address_id=example_public_ip.id,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"192.168.1.0/24\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"192.168.1.224/27\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n            Sku = \"Standard\",\n        });\n        var exampleBastionHost = new Azure.Compute.BastionHost(\"exampleBastionHost\", new Azure.Compute.BastionHostArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfiguration = new Azure.Compute.Inputs.BastionHostIpConfigurationArgs\n            {\n                Name = \"configuration\",\n                SubnetId = exampleSubnet.Id,\n                PublicIpAddressId = examplePublicIp.Id,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.1.0/24\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.1.224/27\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBastionHost(ctx, \"exampleBastionHost\", \u0026compute.BastionHostArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfiguration: \u0026compute.BastionHostIpConfigurationArgs{\n\t\t\t\tName:              pulumi.String(\"configuration\"),\n\t\t\t\tSubnetId:          exampleSubnet.ID(),\n\t\t\t\tPublicIpAddressId: examplePublicIp.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBastion Hosts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/bastionHost:BastionHost example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/bastionHosts/instance1\n```\n\n ",
      "inputProperties": {
        "ipConfiguration": {
          "$ref": "#/types/azure:compute/BastionHostIpConfiguration:BastionHostIpConfiguration",
          "description": "A `ip_configuration` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.  Review [Azure Bastion Host FAQ](https://docs.microsoft.com/en-us/azure/bastion/bastion-faq) for supported locations.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Bastion Host. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Bastion Host.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "dnsName": {
          "description": "The FQDN for the Bastion Host.\n",
          "type": "string"
        },
        "ipConfiguration": {
          "$ref": "#/types/azure:compute/BastionHostIpConfiguration:BastionHostIpConfiguration",
          "description": "A `ip_configuration` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.  Review [Azure Bastion Host FAQ](https://docs.microsoft.com/en-us/azure/bastion/bastion-faq) for supported locations.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Bastion Host. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Bastion Host.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "dnsName",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BastionHost resources.\n",
        "properties": {
          "dnsName": {
            "description": "The FQDN for the Bastion Host.\n",
            "type": "string"
          },
          "ipConfiguration": {
            "$ref": "#/types/azure:compute/BastionHostIpConfiguration:BastionHostIpConfiguration",
            "description": "A `ip_configuration` block as defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.  Review [Azure Bastion Host FAQ](https://docs.microsoft.com/en-us/azure/bastion/bastion-faq) for supported locations.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Bastion Host. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Bastion Host.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/configurationPolicyAssignment:ConfigurationPolicyAssignment": {
      "description": "\u003e **NOTE:** This resource has been deprecated in favour of the `azure.policy.VirtualMachineConfigurationAssignment` resource and will be removed in the next major version of the AzureRM Provider. The new resource shares the same fields as this one, information on migrating can be found in this guide.\n\nApplies a Configuration Policy to a Virtual Machine.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"10.0.0.0/16\"],\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    ipConfigurations: [{\n        name: \"internal\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleWindowsVirtualMachine = new azure.compute.WindowsVirtualMachine(\"exampleWindowsVirtualMachine\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    size: \"Standard_F2\",\n    adminUsername: \"adminuser\",\n    adminPassword: `P@$$w0rd1234!`,\n    networkInterfaceIds: [exampleNetworkInterface.id],\n    identity: {\n        type: \"SystemAssigned\",\n    },\n    osDisk: {\n        caching: \"ReadWrite\",\n        storageAccountType: \"Standard_LRS\",\n    },\n    sourceImageReference: {\n        publisher: \"MicrosoftWindowsServer\",\n        offer: \"WindowsServer\",\n        sku: \"2019-Datacenter\",\n        version: \"latest\",\n    },\n});\nconst exampleExtension = new azure.compute.Extension(\"exampleExtension\", {\n    virtualMachineId: exampleWindowsVirtualMachine.id,\n    publisher: \"Microsoft.GuestConfiguration\",\n    type: \"ConfigurationforWindows\",\n    typeHandlerVersion: \"1.0\",\n    autoUpgradeMinorVersion: \"true\",\n});\nconst exampleConfigurationPolicyAssignment = new azure.compute.ConfigurationPolicyAssignment(\"exampleConfigurationPolicyAssignment\", {\n    location: exampleWindowsVirtualMachine.location,\n    virtualMachineId: exampleWindowsVirtualMachine.id,\n    configuration: {\n        name: \"AzureWindowsBaseline\",\n        version: \"1.*\",\n        parameters: [\n            {\n                name: \"Minimum Password Length;ExpectedValue\",\n                value: \"16\",\n            },\n            {\n                name: \"Minimum Password Age;ExpectedValue\",\n                value: \"0\",\n            },\n            {\n                name: \"Maximum Password Age;ExpectedValue\",\n                value: \"30,45\",\n            },\n            {\n                name: \"Enforce Password History;ExpectedValue\",\n                value: \"10\",\n            },\n            {\n                name: \"Password Must Meet Complexity Requirements;ExpectedValue\",\n                value: \"1\",\n            },\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    address_spaces=[\"10.0.0.0/16\"])\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"internal\",\n        subnet_id=example_subnet.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nexample_windows_virtual_machine = azure.compute.WindowsVirtualMachine(\"exampleWindowsVirtualMachine\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    size=\"Standard_F2\",\n    admin_username=\"adminuser\",\n    admin_password=\"P@$$w0rd1234!\",\n    network_interface_ids=[example_network_interface.id],\n    identity=azure.compute.WindowsVirtualMachineIdentityArgs(\n        type=\"SystemAssigned\",\n    ),\n    os_disk=azure.compute.WindowsVirtualMachineOsDiskArgs(\n        caching=\"ReadWrite\",\n        storage_account_type=\"Standard_LRS\",\n    ),\n    source_image_reference=azure.compute.WindowsVirtualMachineSourceImageReferenceArgs(\n        publisher=\"MicrosoftWindowsServer\",\n        offer=\"WindowsServer\",\n        sku=\"2019-Datacenter\",\n        version=\"latest\",\n    ))\nexample_extension = azure.compute.Extension(\"exampleExtension\",\n    virtual_machine_id=example_windows_virtual_machine.id,\n    publisher=\"Microsoft.GuestConfiguration\",\n    type=\"ConfigurationforWindows\",\n    type_handler_version=\"1.0\",\n    auto_upgrade_minor_version=True)\nexample_configuration_policy_assignment = azure.compute.ConfigurationPolicyAssignment(\"exampleConfigurationPolicyAssignment\",\n    location=example_windows_virtual_machine.location,\n    virtual_machine_id=example_windows_virtual_machine.id,\n    configuration=azure.compute.ConfigurationPolicyAssignmentConfigurationArgs(\n        name=\"AzureWindowsBaseline\",\n        version=\"1.*\",\n        parameters=[\n            azure.compute.ConfigurationPolicyAssignmentConfigurationParameterArgs(\n                name=\"Minimum Password Length;ExpectedValue\",\n                value=\"16\",\n            ),\n            azure.compute.ConfigurationPolicyAssignmentConfigurationParameterArgs(\n                name=\"Minimum Password Age;ExpectedValue\",\n                value=\"0\",\n            ),\n            azure.compute.ConfigurationPolicyAssignmentConfigurationParameterArgs(\n                name=\"Maximum Password Age;ExpectedValue\",\n                value=\"30,45\",\n            ),\n            azure.compute.ConfigurationPolicyAssignmentConfigurationParameterArgs(\n                name=\"Enforce Password History;ExpectedValue\",\n                value=\"10\",\n            ),\n            azure.compute.ConfigurationPolicyAssignmentConfigurationParameterArgs(\n                name=\"Password Must Meet Complexity Requirements;ExpectedValue\",\n                value=\"1\",\n            ),\n        ],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"internal\",\n                    SubnetId = exampleSubnet.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var exampleWindowsVirtualMachine = new Azure.Compute.WindowsVirtualMachine(\"exampleWindowsVirtualMachine\", new Azure.Compute.WindowsVirtualMachineArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Size = \"Standard_F2\",\n            AdminUsername = \"adminuser\",\n            AdminPassword = \"P@$$w0rd1234!\",\n            NetworkInterfaceIds = \n            {\n                exampleNetworkInterface.Id,\n            },\n            Identity = new Azure.Compute.Inputs.WindowsVirtualMachineIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n            OsDisk = new Azure.Compute.Inputs.WindowsVirtualMachineOsDiskArgs\n            {\n                Caching = \"ReadWrite\",\n                StorageAccountType = \"Standard_LRS\",\n            },\n            SourceImageReference = new Azure.Compute.Inputs.WindowsVirtualMachineSourceImageReferenceArgs\n            {\n                Publisher = \"MicrosoftWindowsServer\",\n                Offer = \"WindowsServer\",\n                Sku = \"2019-Datacenter\",\n                Version = \"latest\",\n            },\n        });\n        var exampleExtension = new Azure.Compute.Extension(\"exampleExtension\", new Azure.Compute.ExtensionArgs\n        {\n            VirtualMachineId = exampleWindowsVirtualMachine.Id,\n            Publisher = \"Microsoft.GuestConfiguration\",\n            Type = \"ConfigurationforWindows\",\n            TypeHandlerVersion = \"1.0\",\n            AutoUpgradeMinorVersion = true,\n        });\n        var exampleConfigurationPolicyAssignment = new Azure.Compute.ConfigurationPolicyAssignment(\"exampleConfigurationPolicyAssignment\", new Azure.Compute.ConfigurationPolicyAssignmentArgs\n        {\n            Location = exampleWindowsVirtualMachine.Location,\n            VirtualMachineId = exampleWindowsVirtualMachine.Id,\n            Configuration = new Azure.Compute.Inputs.ConfigurationPolicyAssignmentConfigurationArgs\n            {\n                Name = \"AzureWindowsBaseline\",\n                Version = \"1.*\",\n                Parameters = \n                {\n                    new Azure.Compute.Inputs.ConfigurationPolicyAssignmentConfigurationParameterArgs\n                    {\n                        Name = \"Minimum Password Length;ExpectedValue\",\n                        Value = \"16\",\n                    },\n                    new Azure.Compute.Inputs.ConfigurationPolicyAssignmentConfigurationParameterArgs\n                    {\n                        Name = \"Minimum Password Age;ExpectedValue\",\n                        Value = \"0\",\n                    },\n                    new Azure.Compute.Inputs.ConfigurationPolicyAssignmentConfigurationParameterArgs\n                    {\n                        Name = \"Maximum Password Age;ExpectedValue\",\n                        Value = \"30,45\",\n                    },\n                    new Azure.Compute.Inputs.ConfigurationPolicyAssignmentConfigurationParameterArgs\n                    {\n                        Name = \"Enforce Password History;ExpectedValue\",\n                        Value = \"10\",\n                    },\n                    new Azure.Compute.Inputs.ConfigurationPolicyAssignmentConfigurationParameterArgs\n                    {\n                        Name = \"Password Must Meet Complexity Requirements;ExpectedValue\",\n                        Value = \"1\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkInterface, err := network.NewNetworkInterface(ctx, \"exampleNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"internal\"),\n\t\t\t\t\tSubnetId:                   exampleSubnet.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\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\texampleWindowsVirtualMachine, err := compute.NewWindowsVirtualMachine(ctx, \"exampleWindowsVirtualMachine\", \u0026compute.WindowsVirtualMachineArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSize:              pulumi.String(\"Standard_F2\"),\n\t\t\tAdminUsername:     pulumi.String(\"adminuser\"),\n\t\t\tAdminPassword:     pulumi.String(fmt.Sprintf(\"%v%v%v%v\", \"P@\", \"$\", \"$\", \"w0rd1234!\")),\n\t\t\tNetworkInterfaceIds: pulumi.StringArray{\n\t\t\t\texampleNetworkInterface.ID(),\n\t\t\t},\n\t\t\tIdentity: \u0026compute.WindowsVirtualMachineIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t\tOsDisk: \u0026compute.WindowsVirtualMachineOsDiskArgs{\n\t\t\t\tCaching:            pulumi.String(\"ReadWrite\"),\n\t\t\t\tStorageAccountType: pulumi.String(\"Standard_LRS\"),\n\t\t\t},\n\t\t\tSourceImageReference: \u0026compute.WindowsVirtualMachineSourceImageReferenceArgs{\n\t\t\t\tPublisher: pulumi.String(\"MicrosoftWindowsServer\"),\n\t\t\t\tOffer:     pulumi.String(\"WindowsServer\"),\n\t\t\t\tSku:       pulumi.String(\"2019-Datacenter\"),\n\t\t\t\tVersion:   pulumi.String(\"latest\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewExtension(ctx, \"exampleExtension\", \u0026compute.ExtensionArgs{\n\t\t\tVirtualMachineId:        exampleWindowsVirtualMachine.ID(),\n\t\t\tPublisher:               pulumi.String(\"Microsoft.GuestConfiguration\"),\n\t\t\tType:                    pulumi.String(\"ConfigurationforWindows\"),\n\t\t\tTypeHandlerVersion:      pulumi.String(\"1.0\"),\n\t\t\tAutoUpgradeMinorVersion: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewConfigurationPolicyAssignment(ctx, \"exampleConfigurationPolicyAssignment\", \u0026compute.ConfigurationPolicyAssignmentArgs{\n\t\t\tLocation:         exampleWindowsVirtualMachine.Location,\n\t\t\tVirtualMachineId: exampleWindowsVirtualMachine.ID(),\n\t\t\tConfiguration: \u0026compute.ConfigurationPolicyAssignmentConfigurationArgs{\n\t\t\t\tName:    pulumi.String(\"AzureWindowsBaseline\"),\n\t\t\t\tVersion: pulumi.String(\"1.*\"),\n\t\t\t\tParameters: compute.ConfigurationPolicyAssignmentConfigurationParameterArray{\n\t\t\t\t\t\u0026compute.ConfigurationPolicyAssignmentConfigurationParameterArgs{\n\t\t\t\t\t\tName:  pulumi.String(\"Minimum Password Length;ExpectedValue\"),\n\t\t\t\t\t\tValue: pulumi.String(\"16\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026compute.ConfigurationPolicyAssignmentConfigurationParameterArgs{\n\t\t\t\t\t\tName:  pulumi.String(\"Minimum Password Age;ExpectedValue\"),\n\t\t\t\t\t\tValue: pulumi.String(\"0\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026compute.ConfigurationPolicyAssignmentConfigurationParameterArgs{\n\t\t\t\t\t\tName:  pulumi.String(\"Maximum Password Age;ExpectedValue\"),\n\t\t\t\t\t\tValue: pulumi.String(\"30,45\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026compute.ConfigurationPolicyAssignmentConfigurationParameterArgs{\n\t\t\t\t\t\tName:  pulumi.String(\"Enforce Password History;ExpectedValue\"),\n\t\t\t\t\t\tValue: pulumi.String(\"10\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026compute.ConfigurationPolicyAssignmentConfigurationParameterArgs{\n\t\t\t\t\t\tName:  pulumi.String(\"Password Must Meet Complexity Requirements;ExpectedValue\"),\n\t\t\t\t\t\tValue: pulumi.String(\"1\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Machine Configuration Policy Assignments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/configurationPolicyAssignment:ConfigurationPolicyAssignment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Compute/virtualMachines/vm1/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/assignment1\n```\n\n ",
      "inputProperties": {
        "configuration": {
          "$ref": "#/types/azure:compute/ConfigurationPolicyAssignmentConfiguration:ConfigurationPolicyAssignmentConfiguration",
          "description": "A `configuration` block as defined below.\n"
        },
        "location": {
          "description": "The Azure location where the Virtual Machine Configuration Policy Assignment should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Virtual Machine Configuration Policy Assignment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "The resource ID of the Virtual Machine which this Guest Configuration Assignment should apply to. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "configuration": {
          "$ref": "#/types/azure:compute/ConfigurationPolicyAssignmentConfiguration:ConfigurationPolicyAssignmentConfiguration",
          "description": "A `configuration` block as defined below.\n"
        },
        "location": {
          "description": "The Azure location where the Virtual Machine Configuration Policy Assignment should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Virtual Machine Configuration Policy Assignment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "The resource ID of the Virtual Machine which this Guest Configuration Assignment should apply to. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "configuration",
        "location",
        "name",
        "virtualMachineId"
      ],
      "requiredInputs": [
        "configuration",
        "virtualMachineId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ConfigurationPolicyAssignment resources.\n",
        "properties": {
          "configuration": {
            "$ref": "#/types/azure:compute/ConfigurationPolicyAssignmentConfiguration:ConfigurationPolicyAssignmentConfiguration",
            "description": "A `configuration` block as defined below.\n"
          },
          "location": {
            "description": "The Azure location where the Virtual Machine Configuration Policy Assignment should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Virtual Machine Configuration Policy Assignment. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "virtualMachineId": {
            "description": "The resource ID of the Virtual Machine which this Guest Configuration Assignment should apply to. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/dataDiskAttachment:DataDiskAttachment": {
      "description": "Manages attaching a Disk to a Virtual Machine.\n\n\u003e **NOTE:** Data Disks can be attached either directly on the `azure.compute.VirtualMachine` resource, or using the `azure.compute.DataDiskAttachment` resource - but the two cannot be used together. If both are used against the same Virtual Machine, spurious changes will occur.\n\n\u003e **Please Note:** only Managed Disks are supported via this separate resource, Unmanaged Disks can be attached using the `storage_data_disk` block in the `azure.compute.VirtualMachine` resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst config = new pulumi.Config();\nconst prefix = config.get(\"prefix\") || \"example\";\nconst vmName = `${prefix}-vm`;\nconst mainResourceGroup = new azure.core.ResourceGroup(\"mainResourceGroup\", {location: \"West Europe\"});\nconst mainVirtualNetwork = new azure.network.VirtualNetwork(\"mainVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: mainResourceGroup.location,\n    resourceGroupName: mainResourceGroup.name,\n});\nconst internal = new azure.network.Subnet(\"internal\", {\n    resourceGroupName: mainResourceGroup.name,\n    virtualNetworkName: mainVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst mainNetworkInterface = new azure.network.NetworkInterface(\"mainNetworkInterface\", {\n    location: mainResourceGroup.location,\n    resourceGroupName: mainResourceGroup.name,\n    ipConfigurations: [{\n        name: \"internal\",\n        subnetId: internal.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleVirtualMachine = new azure.compute.VirtualMachine(\"exampleVirtualMachine\", {\n    location: mainResourceGroup.location,\n    resourceGroupName: mainResourceGroup.name,\n    networkInterfaceIds: [mainNetworkInterface.id],\n    vmSize: \"Standard_F2\",\n    storageImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04-LTS\",\n        version: \"latest\",\n    },\n    storageOsDisk: {\n        name: \"myosdisk1\",\n        caching: \"ReadWrite\",\n        createOption: \"FromImage\",\n        managedDiskType: \"Standard_LRS\",\n    },\n    osProfile: {\n        computerName: vmName,\n        adminUsername: \"testadmin\",\n        adminPassword: \"Password1234!\",\n    },\n    osProfileLinuxConfig: {\n        disablePasswordAuthentication: false,\n    },\n});\nconst exampleManagedDisk = new azure.compute.ManagedDisk(\"exampleManagedDisk\", {\n    location: mainResourceGroup.location,\n    resourceGroupName: mainResourceGroup.name,\n    storageAccountType: \"Standard_LRS\",\n    createOption: \"Empty\",\n    diskSizeGb: 10,\n});\nconst exampleDataDiskAttachment = new azure.compute.DataDiskAttachment(\"exampleDataDiskAttachment\", {\n    managedDiskId: exampleManagedDisk.id,\n    virtualMachineId: exampleVirtualMachine.id,\n    lun: \"10\",\n    caching: \"ReadWrite\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nconfig = pulumi.Config()\nprefix = config.get(\"prefix\")\nif prefix is None:\n    prefix = \"example\"\nvm_name = f\"{prefix}-vm\"\nmain_resource_group = azure.core.ResourceGroup(\"mainResourceGroup\", location=\"West Europe\")\nmain_virtual_network = azure.network.VirtualNetwork(\"mainVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=main_resource_group.location,\n    resource_group_name=main_resource_group.name)\ninternal = azure.network.Subnet(\"internal\",\n    resource_group_name=main_resource_group.name,\n    virtual_network_name=main_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nmain_network_interface = azure.network.NetworkInterface(\"mainNetworkInterface\",\n    location=main_resource_group.location,\n    resource_group_name=main_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"internal\",\n        subnet_id=internal.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nexample_virtual_machine = azure.compute.VirtualMachine(\"exampleVirtualMachine\",\n    location=main_resource_group.location,\n    resource_group_name=main_resource_group.name,\n    network_interface_ids=[main_network_interface.id],\n    vm_size=\"Standard_F2\",\n    storage_image_reference=azure.compute.VirtualMachineStorageImageReferenceArgs(\n        publisher=\"Canonical\",\n        offer=\"UbuntuServer\",\n        sku=\"16.04-LTS\",\n        version=\"latest\",\n    ),\n    storage_os_disk=azure.compute.VirtualMachineStorageOsDiskArgs(\n        name=\"myosdisk1\",\n        caching=\"ReadWrite\",\n        create_option=\"FromImage\",\n        managed_disk_type=\"Standard_LRS\",\n    ),\n    os_profile=azure.compute.VirtualMachineOsProfileArgs(\n        computer_name=vm_name,\n        admin_username=\"testadmin\",\n        admin_password=\"Password1234!\",\n    ),\n    os_profile_linux_config=azure.compute.VirtualMachineOsProfileLinuxConfigArgs(\n        disable_password_authentication=False,\n    ))\nexample_managed_disk = azure.compute.ManagedDisk(\"exampleManagedDisk\",\n    location=main_resource_group.location,\n    resource_group_name=main_resource_group.name,\n    storage_account_type=\"Standard_LRS\",\n    create_option=\"Empty\",\n    disk_size_gb=10)\nexample_data_disk_attachment = azure.compute.DataDiskAttachment(\"exampleDataDiskAttachment\",\n    managed_disk_id=example_managed_disk.id,\n    virtual_machine_id=example_virtual_machine.id,\n    lun=10,\n    caching=\"ReadWrite\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var config = new Config();\n        var prefix = config.Get(\"prefix\") ?? \"example\";\n        var vmName = $\"{prefix}-vm\";\n        var mainResourceGroup = new Azure.Core.ResourceGroup(\"mainResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var mainVirtualNetwork = new Azure.Network.VirtualNetwork(\"mainVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = mainResourceGroup.Location,\n            ResourceGroupName = mainResourceGroup.Name,\n        });\n        var @internal = new Azure.Network.Subnet(\"internal\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = mainResourceGroup.Name,\n            VirtualNetworkName = mainVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var mainNetworkInterface = new Azure.Network.NetworkInterface(\"mainNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = mainResourceGroup.Location,\n            ResourceGroupName = mainResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"internal\",\n                    SubnetId = @internal.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var exampleVirtualMachine = new Azure.Compute.VirtualMachine(\"exampleVirtualMachine\", new Azure.Compute.VirtualMachineArgs\n        {\n            Location = mainResourceGroup.Location,\n            ResourceGroupName = mainResourceGroup.Name,\n            NetworkInterfaceIds = \n            {\n                mainNetworkInterface.Id,\n            },\n            VmSize = \"Standard_F2\",\n            StorageImageReference = new Azure.Compute.Inputs.VirtualMachineStorageImageReferenceArgs\n            {\n                Publisher = \"Canonical\",\n                Offer = \"UbuntuServer\",\n                Sku = \"16.04-LTS\",\n                Version = \"latest\",\n            },\n            StorageOsDisk = new Azure.Compute.Inputs.VirtualMachineStorageOsDiskArgs\n            {\n                Name = \"myosdisk1\",\n                Caching = \"ReadWrite\",\n                CreateOption = \"FromImage\",\n                ManagedDiskType = \"Standard_LRS\",\n            },\n            OsProfile = new Azure.Compute.Inputs.VirtualMachineOsProfileArgs\n            {\n                ComputerName = vmName,\n                AdminUsername = \"testadmin\",\n                AdminPassword = \"Password1234!\",\n            },\n            OsProfileLinuxConfig = new Azure.Compute.Inputs.VirtualMachineOsProfileLinuxConfigArgs\n            {\n                DisablePasswordAuthentication = false,\n            },\n        });\n        var exampleManagedDisk = new Azure.Compute.ManagedDisk(\"exampleManagedDisk\", new Azure.Compute.ManagedDiskArgs\n        {\n            Location = mainResourceGroup.Location,\n            ResourceGroupName = mainResourceGroup.Name,\n            StorageAccountType = \"Standard_LRS\",\n            CreateOption = \"Empty\",\n            DiskSizeGb = 10,\n        });\n        var exampleDataDiskAttachment = new Azure.Compute.DataDiskAttachment(\"exampleDataDiskAttachment\", new Azure.Compute.DataDiskAttachmentArgs\n        {\n            ManagedDiskId = exampleManagedDisk.Id,\n            VirtualMachineId = exampleVirtualMachine.Id,\n            Lun = 10,\n            Caching = \"ReadWrite\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tprefix := \"example\"\n\t\tif param := cfg.Get(\"prefix\"); param != \"\" {\n\t\t\tprefix = param\n\t\t}\n\t\tvmName := fmt.Sprintf(\"%v%v\", prefix, \"-vm\")\n\t\tmainResourceGroup, err := core.NewResourceGroup(ctx, \"mainResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"mainVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          mainResourceGroup.Location,\n\t\t\tResourceGroupName: mainResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinternal, err := network.NewSubnet(ctx, \"internal\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  mainResourceGroup.Name,\n\t\t\tVirtualNetworkName: mainVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainNetworkInterface, err := network.NewNetworkInterface(ctx, \"mainNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tLocation:          mainResourceGroup.Location,\n\t\t\tResourceGroupName: mainResourceGroup.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"internal\"),\n\t\t\t\t\tSubnetId:                   internal.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\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\texampleVirtualMachine, err := compute.NewVirtualMachine(ctx, \"exampleVirtualMachine\", \u0026compute.VirtualMachineArgs{\n\t\t\tLocation:          mainResourceGroup.Location,\n\t\t\tResourceGroupName: mainResourceGroup.Name,\n\t\t\tNetworkInterfaceIds: pulumi.StringArray{\n\t\t\t\tmainNetworkInterface.ID(),\n\t\t\t},\n\t\t\tVmSize: pulumi.String(\"Standard_F2\"),\n\t\t\tStorageImageReference: \u0026compute.VirtualMachineStorageImageReferenceArgs{\n\t\t\t\tPublisher: pulumi.String(\"Canonical\"),\n\t\t\t\tOffer:     pulumi.String(\"UbuntuServer\"),\n\t\t\t\tSku:       pulumi.String(\"16.04-LTS\"),\n\t\t\t\tVersion:   pulumi.String(\"latest\"),\n\t\t\t},\n\t\t\tStorageOsDisk: \u0026compute.VirtualMachineStorageOsDiskArgs{\n\t\t\t\tName:            pulumi.String(\"myosdisk1\"),\n\t\t\t\tCaching:         pulumi.String(\"ReadWrite\"),\n\t\t\t\tCreateOption:    pulumi.String(\"FromImage\"),\n\t\t\t\tManagedDiskType: pulumi.String(\"Standard_LRS\"),\n\t\t\t},\n\t\t\tOsProfile: \u0026compute.VirtualMachineOsProfileArgs{\n\t\t\t\tComputerName:  pulumi.String(vmName),\n\t\t\t\tAdminUsername: pulumi.String(\"testadmin\"),\n\t\t\t\tAdminPassword: pulumi.String(\"Password1234!\"),\n\t\t\t},\n\t\t\tOsProfileLinuxConfig: \u0026compute.VirtualMachineOsProfileLinuxConfigArgs{\n\t\t\t\tDisablePasswordAuthentication: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleManagedDisk, err := compute.NewManagedDisk(ctx, \"exampleManagedDisk\", \u0026compute.ManagedDiskArgs{\n\t\t\tLocation:           mainResourceGroup.Location,\n\t\t\tResourceGroupName:  mainResourceGroup.Name,\n\t\t\tStorageAccountType: pulumi.String(\"Standard_LRS\"),\n\t\t\tCreateOption:       pulumi.String(\"Empty\"),\n\t\t\tDiskSizeGb:         pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewDataDiskAttachment(ctx, \"exampleDataDiskAttachment\", \u0026compute.DataDiskAttachmentArgs{\n\t\t\tManagedDiskId:    exampleManagedDisk.ID(),\n\t\t\tVirtualMachineId: exampleVirtualMachine.ID(),\n\t\t\tLun:              pulumi.Int(10),\n\t\t\tCaching:          pulumi.String(\"ReadWrite\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Machines Data Disk Attachments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/dataDiskAttachment:DataDiskAttachment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.compute/virtualMachines/machine1/dataDisks/disk1\n```\n\n ",
      "inputProperties": {
        "caching": {
          "description": "Specifies the caching requirements for this Data Disk. Possible values include `None`, `ReadOnly` and `ReadWrite`.\n",
          "type": "string"
        },
        "createOption": {
          "description": "The Create Option of the Data Disk, such as `Empty` or `Attach`. Defaults to `Attach`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "lun": {
          "description": "The Logical Unit Number of the Data Disk, which needs to be unique within the Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "managedDiskId": {
          "description": "The ID of an existing Managed Disk which should be attached. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "The ID of the Virtual Machine to which the Data Disk should be attached. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "writeAcceleratorEnabled": {
          "description": "Specifies if Write Accelerator is enabled on the disk. This can only be enabled on `Premium_LRS` managed disks with no caching and [M-Series VMs](https://docs.microsoft.com/en-us/azure/virtual-machines/workloads/sap/how-to-enable-write-accelerator). Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "caching": {
          "description": "Specifies the caching requirements for this Data Disk. Possible values include `None`, `ReadOnly` and `ReadWrite`.\n",
          "type": "string"
        },
        "createOption": {
          "description": "The Create Option of the Data Disk, such as `Empty` or `Attach`. Defaults to `Attach`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "lun": {
          "description": "The Logical Unit Number of the Data Disk, which needs to be unique within the Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "managedDiskId": {
          "description": "The ID of an existing Managed Disk which should be attached. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "The ID of the Virtual Machine to which the Data Disk should be attached. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "writeAcceleratorEnabled": {
          "description": "Specifies if Write Accelerator is enabled on the disk. This can only be enabled on `Premium_LRS` managed disks with no caching and [M-Series VMs](https://docs.microsoft.com/en-us/azure/virtual-machines/workloads/sap/how-to-enable-write-accelerator). Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "caching",
        "lun",
        "managedDiskId",
        "virtualMachineId"
      ],
      "requiredInputs": [
        "caching",
        "lun",
        "managedDiskId",
        "virtualMachineId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataDiskAttachment resources.\n",
        "properties": {
          "caching": {
            "description": "Specifies the caching requirements for this Data Disk. Possible values include `None`, `ReadOnly` and `ReadWrite`.\n",
            "type": "string"
          },
          "createOption": {
            "description": "The Create Option of the Data Disk, such as `Empty` or `Attach`. Defaults to `Attach`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "lun": {
            "description": "The Logical Unit Number of the Data Disk, which needs to be unique within the Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "managedDiskId": {
            "description": "The ID of an existing Managed Disk which should be attached. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "virtualMachineId": {
            "description": "The ID of the Virtual Machine to which the Data Disk should be attached. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "writeAcceleratorEnabled": {
            "description": "Specifies if Write Accelerator is enabled on the disk. This can only be enabled on `Premium_LRS` managed disks with no caching and [M-Series VMs](https://docs.microsoft.com/en-us/azure/virtual-machines/workloads/sap/how-to-enable-write-accelerator). Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/dedicatedHost:DedicatedHost": {
      "description": "Manage a Dedicated Host within a Dedicated Host Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleDedicatedHostGroup = new azure.compute.DedicatedHostGroup(\"exampleDedicatedHostGroup\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    platformFaultDomainCount: 2,\n});\nconst exampleDedicatedHost = new azure.compute.DedicatedHost(\"exampleDedicatedHost\", {\n    location: exampleResourceGroup.location,\n    dedicatedHostGroupId: exampleDedicatedHostGroup.id,\n    skuName: \"DSv3-Type1\",\n    platformFaultDomain: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_dedicated_host_group = azure.compute.DedicatedHostGroup(\"exampleDedicatedHostGroup\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    platform_fault_domain_count=2)\nexample_dedicated_host = azure.compute.DedicatedHost(\"exampleDedicatedHost\",\n    location=example_resource_group.location,\n    dedicated_host_group_id=example_dedicated_host_group.id,\n    sku_name=\"DSv3-Type1\",\n    platform_fault_domain=1)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleDedicatedHostGroup = new Azure.Compute.DedicatedHostGroup(\"exampleDedicatedHostGroup\", new Azure.Compute.DedicatedHostGroupArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            PlatformFaultDomainCount = 2,\n        });\n        var exampleDedicatedHost = new Azure.Compute.DedicatedHost(\"exampleDedicatedHost\", new Azure.Compute.DedicatedHostArgs\n        {\n            Location = exampleResourceGroup.Location,\n            DedicatedHostGroupId = exampleDedicatedHostGroup.Id,\n            SkuName = \"DSv3-Type1\",\n            PlatformFaultDomain = 1,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDedicatedHostGroup, err := compute.NewDedicatedHostGroup(ctx, \"exampleDedicatedHostGroup\", \u0026compute.DedicatedHostGroupArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tLocation:                 exampleResourceGroup.Location,\n\t\t\tPlatformFaultDomainCount: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewDedicatedHost(ctx, \"exampleDedicatedHost\", \u0026compute.DedicatedHostArgs{\n\t\t\tLocation:             exampleResourceGroup.Location,\n\t\t\tDedicatedHostGroupId: exampleDedicatedHostGroup.ID(),\n\t\t\tSkuName:              pulumi.String(\"DSv3-Type1\"),\n\t\t\tPlatformFaultDomain:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDedicated Hosts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/dedicatedHost:DedicatedHost example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/hostGroups/group1/hosts/host1\n```\n\n ",
      "inputProperties": {
        "autoReplaceOnFailure": {
          "description": "Should the Dedicated Host automatically be replaced in case of a Hardware Failure? Defaults to `true`.\n",
          "type": "boolean"
        },
        "dedicatedHostGroupId": {
          "description": "Specifies the ID of the Dedicated Host Group where the Dedicated Host should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "licenseType": {
          "description": "Specifies the software license type that will be applied to the VMs deployed on the Dedicated Host. Possible values are `None`, `Windows_Server_Hybrid` and `Windows_Server_Perpetual`. Defaults to `None`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specify the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of this Dedicated Host. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "platformFaultDomain": {
          "description": "Specify the fault domain of the Dedicated Host Group in which to create the Dedicated Host. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "skuName": {
          "description": "Specify the sku name of the Dedicated Host. Possible values are `DSv3-Type1`, `DSv3-Type2`, `DSv4-Type1`, `ESv3-Type1`, `ESv3-Type2`,`FSv2-Type2`, `DASv4-Type1`, `DCSv2-Type1`, `DDSv4-Type1`, `DSv3-Type1`, `DSv3-Type2`, `DSv3-Type3`, `DSv4-Type1`, `EASv4-Type1`, `EDSv4-Type1`, `ESv3-Type1`, `ESv3-Type2`, `ESv3-Type3`, `ESv4-Type1`, `FSv2-Type2`, `FSv2-Type3`, `LSv2-Type1`, `MS-Type1`, `MSm-Type1`, `MSmv2-Type1`, `MSv2-Type1`, `NVASv4-Type1`, and `NVSv3-Type1`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "autoReplaceOnFailure": {
          "description": "Should the Dedicated Host automatically be replaced in case of a Hardware Failure? Defaults to `true`.\n",
          "type": "boolean"
        },
        "dedicatedHostGroupId": {
          "description": "Specifies the ID of the Dedicated Host Group where the Dedicated Host should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "licenseType": {
          "description": "Specifies the software license type that will be applied to the VMs deployed on the Dedicated Host. Possible values are `None`, `Windows_Server_Hybrid` and `Windows_Server_Perpetual`. Defaults to `None`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specify the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of this Dedicated Host. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "platformFaultDomain": {
          "description": "Specify the fault domain of the Dedicated Host Group in which to create the Dedicated Host. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "skuName": {
          "description": "Specify the sku name of the Dedicated Host. Possible values are `DSv3-Type1`, `DSv3-Type2`, `DSv4-Type1`, `ESv3-Type1`, `ESv3-Type2`,`FSv2-Type2`, `DASv4-Type1`, `DCSv2-Type1`, `DDSv4-Type1`, `DSv3-Type1`, `DSv3-Type2`, `DSv3-Type3`, `DSv4-Type1`, `EASv4-Type1`, `EDSv4-Type1`, `ESv3-Type1`, `ESv3-Type2`, `ESv3-Type3`, `ESv4-Type1`, `FSv2-Type2`, `FSv2-Type3`, `LSv2-Type1`, `MS-Type1`, `MSm-Type1`, `MSmv2-Type1`, `MSv2-Type1`, `NVASv4-Type1`, and `NVSv3-Type1`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "dedicatedHostGroupId",
        "location",
        "name",
        "platformFaultDomain",
        "skuName"
      ],
      "requiredInputs": [
        "dedicatedHostGroupId",
        "platformFaultDomain",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DedicatedHost resources.\n",
        "properties": {
          "autoReplaceOnFailure": {
            "description": "Should the Dedicated Host automatically be replaced in case of a Hardware Failure? Defaults to `true`.\n",
            "type": "boolean"
          },
          "dedicatedHostGroupId": {
            "description": "Specifies the ID of the Dedicated Host Group where the Dedicated Host should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "licenseType": {
            "description": "Specifies the software license type that will be applied to the VMs deployed on the Dedicated Host. Possible values are `None`, `Windows_Server_Hybrid` and `Windows_Server_Perpetual`. Defaults to `None`.\n",
            "type": "string"
          },
          "location": {
            "description": "Specify the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of this Dedicated Host. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "platformFaultDomain": {
            "description": "Specify the fault domain of the Dedicated Host Group in which to create the Dedicated Host. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "skuName": {
            "description": "Specify the sku name of the Dedicated Host. Possible values are `DSv3-Type1`, `DSv3-Type2`, `DSv4-Type1`, `ESv3-Type1`, `ESv3-Type2`,`FSv2-Type2`, `DASv4-Type1`, `DCSv2-Type1`, `DDSv4-Type1`, `DSv3-Type1`, `DSv3-Type2`, `DSv3-Type3`, `DSv4-Type1`, `EASv4-Type1`, `EDSv4-Type1`, `ESv3-Type1`, `ESv3-Type2`, `ESv3-Type3`, `ESv4-Type1`, `FSv2-Type2`, `FSv2-Type3`, `LSv2-Type1`, `MS-Type1`, `MSm-Type1`, `MSmv2-Type1`, `MSv2-Type1`, `NVASv4-Type1`, and `NVSv3-Type1`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/dedicatedHostGroup:DedicatedHostGroup": {
      "description": "Manage a Dedicated Host Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleDedicatedHostGroup = new azure.compute.DedicatedHostGroup(\"exampleDedicatedHostGroup\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    platformFaultDomainCount: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_dedicated_host_group = azure.compute.DedicatedHostGroup(\"exampleDedicatedHostGroup\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    platform_fault_domain_count=1)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleDedicatedHostGroup = new Azure.Compute.DedicatedHostGroup(\"exampleDedicatedHostGroup\", new Azure.Compute.DedicatedHostGroupArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            PlatformFaultDomainCount = 1,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewDedicatedHostGroup(ctx, \"exampleDedicatedHostGroup\", \u0026compute.DedicatedHostGroupArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tLocation:                 exampleResourceGroup.Location,\n\t\t\tPlatformFaultDomainCount: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDedicated Host Group can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/dedicatedHostGroup:DedicatedHostGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Compute/hostGroups/group1\n```\n\n ",
      "inputProperties": {
        "automaticPlacementEnabled": {
          "description": "Would virtual machines or virtual machine scale sets be placed automatically on this Dedicated Host Group? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "location": {
          "description": "The Azure location where the Dedicated Host Group exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Dedicated Host Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "platformFaultDomainCount": {
          "description": "The number of fault domains that the Dedicated Host Group spans. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the resource group the Dedicated Host Group is located in. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zones": {
          "description": "A list of Availability Zones in which the Dedicated Host Group should be located. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "automaticPlacementEnabled": {
          "description": "Would virtual machines or virtual machine scale sets be placed automatically on this Dedicated Host Group? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "location": {
          "description": "The Azure location where the Dedicated Host Group exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Dedicated Host Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "platformFaultDomainCount": {
          "description": "The number of fault domains that the Dedicated Host Group spans. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the resource group the Dedicated Host Group is located in. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zones": {
          "description": "A list of Availability Zones in which the Dedicated Host Group should be located. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "platformFaultDomainCount",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "platformFaultDomainCount",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DedicatedHostGroup resources.\n",
        "properties": {
          "automaticPlacementEnabled": {
            "description": "Would virtual machines or virtual machine scale sets be placed automatically on this Dedicated Host Group? Defaults to `false`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "location": {
            "description": "The Azure location where the Dedicated Host Group exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Dedicated Host Group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "platformFaultDomainCount": {
            "description": "The number of fault domains that the Dedicated Host Group spans. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group the Dedicated Host Group is located in. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "zones": {
            "description": "A list of Availability Zones in which the Dedicated Host Group should be located. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/diskAccess:DiskAccess": {
      "description": "Manages a Disk Access.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.compute.DiskAccess(\"example\", {\n    location: \"West Europe\",\n    resourceGroupName: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.DiskAccess(\"example\",\n    location=\"West Europe\",\n    resource_group_name=\"example\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Compute.DiskAccess(\"example\", new Azure.Compute.DiskAccessArgs\n        {\n            Location = \"West Europe\",\n            ResourceGroupName = \"example\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\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 := compute.NewDiskAccess(ctx, \"example\", \u0026compute.DiskAccessArgs{\n\t\t\tLocation:          pulumi.String(\"West Europe\"),\n\t\t\tResourceGroupName: pulumi.String(\"example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDisk Access resource can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/diskAccess:DiskAccess example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/diskAccesses/diskAccess1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The Azure Region where the Disk Access should exist. Changing this forces a new Disk to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Disk Access. Changing this forces a new Disk Access to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Disk Access should exist. Changing this forces a new Disk Access to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Disk Access.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "The Azure Region where the Disk Access should exist. Changing this forces a new Disk to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Disk Access. Changing this forces a new Disk Access to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Disk Access should exist. Changing this forces a new Disk Access to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Disk Access.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DiskAccess resources.\n",
        "properties": {
          "location": {
            "description": "The Azure Region where the Disk Access should exist. Changing this forces a new Disk to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Disk Access. Changing this forces a new Disk Access to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Disk Access should exist. Changing this forces a new Disk Access to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Disk Access.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/diskEncryptionSet:DiskEncryptionSet": {
      "description": "Manages a Disk Encryption Set.\n\n\u003e **NOTE:** At this time the Key Vault used to store the Active Key for this Disk Encryption Set must have both Soft Delete \u0026 Purge Protection enabled - which are not yet supported by this provider.\n\n\n## Import\n\nDisk Encryption Sets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/diskEncryptionSet:DiskEncryptionSet example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Compute/diskEncryptionSets/encryptionSet1\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:compute/DiskEncryptionSetIdentity:DiskEncryptionSetIdentity",
          "description": "A `identity` block defined below.\n"
        },
        "keyVaultKeyId": {
          "description": "Specifies the URL to a Key Vault Key (either from a Key Vault Key, or the Key URL for the Key Vault Secret).\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region where the Disk Encryption Set exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Disk Encryption Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group where the Disk Encryption Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Disk Encryption Set.\n",
          "type": "object"
        }
      },
      "properties": {
        "identity": {
          "$ref": "#/types/azure:compute/DiskEncryptionSetIdentity:DiskEncryptionSetIdentity",
          "description": "A `identity` block defined below.\n"
        },
        "keyVaultKeyId": {
          "description": "Specifies the URL to a Key Vault Key (either from a Key Vault Key, or the Key URL for the Key Vault Secret).\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region where the Disk Encryption Set exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Disk Encryption Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group where the Disk Encryption Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Disk Encryption Set.\n",
          "type": "object"
        }
      },
      "required": [
        "identity",
        "keyVaultKeyId",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "identity",
        "keyVaultKeyId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DiskEncryptionSet resources.\n",
        "properties": {
          "identity": {
            "$ref": "#/types/azure:compute/DiskEncryptionSetIdentity:DiskEncryptionSetIdentity",
            "description": "A `identity` block defined below.\n"
          },
          "keyVaultKeyId": {
            "description": "Specifies the URL to a Key Vault Key (either from a Key Vault Key, or the Key URL for the Key Vault Secret).\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the Azure Region where the Disk Encryption Set exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Disk Encryption Set. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where the Disk Encryption Set should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Disk Encryption Set.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/extension:Extension": {
      "description": "Manages a Virtual Machine Extension to provide post deployment configuration\nand run automated tasks.\n\n\u003e **NOTE:** Custom Script Extensions for Linux \u0026 Windows require that the `commandToExecute` returns a `0` exit code to be classified as successfully deployed. You can achieve this by appending `exit 0` to the end of your `commandToExecute`.\n\n\u003e **NOTE:** Custom Script Extensions require that the Azure Virtual Machine Guest Agent is running on the Virtual Machine.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"testconfiguration1\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    tags: {\n        environment: \"staging\",\n    },\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleVirtualMachine = new azure.compute.VirtualMachine(\"exampleVirtualMachine\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    networkInterfaceIds: [exampleNetworkInterface.id],\n    vmSize: \"Standard_F2\",\n    storageImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04-LTS\",\n        version: \"latest\",\n    },\n    storageOsDisk: {\n        name: \"myosdisk1\",\n        vhdUri: pulumi.interpolate`${exampleAccount.primaryBlobEndpoint}${exampleContainer.name}/myosdisk1.vhd`,\n        caching: \"ReadWrite\",\n        createOption: \"FromImage\",\n    },\n    osProfile: {\n        computerName: \"hostname\",\n        adminUsername: \"testadmin\",\n        adminPassword: \"Password1234!\",\n    },\n    osProfileLinuxConfig: {\n        disablePasswordAuthentication: false,\n    },\n    tags: {\n        environment: \"staging\",\n    },\n});\nconst exampleExtension = new azure.compute.Extension(\"exampleExtension\", {\n    virtualMachineId: exampleVirtualMachine.id,\n    publisher: \"Microsoft.Azure.Extensions\",\n    type: \"CustomScript\",\n    typeHandlerVersion: \"2.0\",\n    settings: `\t{\n\t\t\"commandToExecute\": \"hostname \u0026\u0026 uptime\"\n\t}\n`,\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"testconfiguration1\",\n        subnet_id=example_subnet.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    tags={\n        \"environment\": \"staging\",\n    })\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_virtual_machine = azure.compute.VirtualMachine(\"exampleVirtualMachine\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    network_interface_ids=[example_network_interface.id],\n    vm_size=\"Standard_F2\",\n    storage_image_reference=azure.compute.VirtualMachineStorageImageReferenceArgs(\n        publisher=\"Canonical\",\n        offer=\"UbuntuServer\",\n        sku=\"16.04-LTS\",\n        version=\"latest\",\n    ),\n    storage_os_disk=azure.compute.VirtualMachineStorageOsDiskArgs(\n        name=\"myosdisk1\",\n        vhd_uri=pulumi.Output.all(example_account.primary_blob_endpoint, example_container.name).apply(lambda primary_blob_endpoint, name: f\"{primary_blob_endpoint}{name}/myosdisk1.vhd\"),\n        caching=\"ReadWrite\",\n        create_option=\"FromImage\",\n    ),\n    os_profile=azure.compute.VirtualMachineOsProfileArgs(\n        computer_name=\"hostname\",\n        admin_username=\"testadmin\",\n        admin_password=\"Password1234!\",\n    ),\n    os_profile_linux_config=azure.compute.VirtualMachineOsProfileLinuxConfigArgs(\n        disable_password_authentication=False,\n    ),\n    tags={\n        \"environment\": \"staging\",\n    })\nexample_extension = azure.compute.Extension(\"exampleExtension\",\n    virtual_machine_id=example_virtual_machine.id,\n    publisher=\"Microsoft.Azure.Extensions\",\n    type=\"CustomScript\",\n    type_handler_version=\"2.0\",\n    settings=\"\"\"\t{\n\t\t\"commandToExecute\": \"hostname \u0026\u0026 uptime\"\n\t}\n\"\"\",\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"testconfiguration1\",\n                    SubnetId = exampleSubnet.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleVirtualMachine = new Azure.Compute.VirtualMachine(\"exampleVirtualMachine\", new Azure.Compute.VirtualMachineArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            NetworkInterfaceIds = \n            {\n                exampleNetworkInterface.Id,\n            },\n            VmSize = \"Standard_F2\",\n            StorageImageReference = new Azure.Compute.Inputs.VirtualMachineStorageImageReferenceArgs\n            {\n                Publisher = \"Canonical\",\n                Offer = \"UbuntuServer\",\n                Sku = \"16.04-LTS\",\n                Version = \"latest\",\n            },\n            StorageOsDisk = new Azure.Compute.Inputs.VirtualMachineStorageOsDiskArgs\n            {\n                Name = \"myosdisk1\",\n                VhdUri = Output.Tuple(exampleAccount.PrimaryBlobEndpoint, exampleContainer.Name).Apply(values =\u003e\n                {\n                    var primaryBlobEndpoint = values.Item1;\n                    var name = values.Item2;\n                    return $\"{primaryBlobEndpoint}{name}/myosdisk1.vhd\";\n                }),\n                Caching = \"ReadWrite\",\n                CreateOption = \"FromImage\",\n            },\n            OsProfile = new Azure.Compute.Inputs.VirtualMachineOsProfileArgs\n            {\n                ComputerName = \"hostname\",\n                AdminUsername = \"testadmin\",\n                AdminPassword = \"Password1234!\",\n            },\n            OsProfileLinuxConfig = new Azure.Compute.Inputs.VirtualMachineOsProfileLinuxConfigArgs\n            {\n                DisablePasswordAuthentication = false,\n            },\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n        var exampleExtension = new Azure.Compute.Extension(\"exampleExtension\", new Azure.Compute.ExtensionArgs\n        {\n            VirtualMachineId = exampleVirtualMachine.Id,\n            Publisher = \"Microsoft.Azure.Extensions\",\n            Type = \"CustomScript\",\n            TypeHandlerVersion = \"2.0\",\n            Settings = @\"\t{\n\t\t\"\"commandToExecute\"\": \"\"hostname \u0026\u0026 uptime\"\"\n\t}\n\",\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkInterface, err := network.NewNetworkInterface(ctx, \"exampleNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"testconfiguration1\"),\n\t\t\t\t\tSubnetId:                   exampleSubnet.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\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\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualMachine, err := compute.NewVirtualMachine(ctx, \"exampleVirtualMachine\", \u0026compute.VirtualMachineArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNetworkInterfaceIds: pulumi.StringArray{\n\t\t\t\texampleNetworkInterface.ID(),\n\t\t\t},\n\t\t\tVmSize: pulumi.String(\"Standard_F2\"),\n\t\t\tStorageImageReference: \u0026compute.VirtualMachineStorageImageReferenceArgs{\n\t\t\t\tPublisher: pulumi.String(\"Canonical\"),\n\t\t\t\tOffer:     pulumi.String(\"UbuntuServer\"),\n\t\t\t\tSku:       pulumi.String(\"16.04-LTS\"),\n\t\t\t\tVersion:   pulumi.String(\"latest\"),\n\t\t\t},\n\t\t\tStorageOsDisk: \u0026compute.VirtualMachineStorageOsDiskArgs{\n\t\t\t\tName: pulumi.String(\"myosdisk1\"),\n\t\t\t\tVhdUri: pulumi.All(exampleAccount.PrimaryBlobEndpoint, exampleContainer.Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tprimaryBlobEndpoint := _args[0].(string)\n\t\t\t\t\tname := _args[1].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"%v%v%v\", primaryBlobEndpoint, name, \"/myosdisk1.vhd\"), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tCaching:      pulumi.String(\"ReadWrite\"),\n\t\t\t\tCreateOption: pulumi.String(\"FromImage\"),\n\t\t\t},\n\t\t\tOsProfile: \u0026compute.VirtualMachineOsProfileArgs{\n\t\t\t\tComputerName:  pulumi.String(\"hostname\"),\n\t\t\t\tAdminUsername: pulumi.String(\"testadmin\"),\n\t\t\t\tAdminPassword: pulumi.String(\"Password1234!\"),\n\t\t\t},\n\t\t\tOsProfileLinuxConfig: \u0026compute.VirtualMachineOsProfileLinuxConfigArgs{\n\t\t\t\tDisablePasswordAuthentication: pulumi.Bool(false),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewExtension(ctx, \"exampleExtension\", \u0026compute.ExtensionArgs{\n\t\t\tVirtualMachineId:   exampleVirtualMachine.ID(),\n\t\t\tPublisher:          pulumi.String(\"Microsoft.Azure.Extensions\"),\n\t\t\tType:               pulumi.String(\"CustomScript\"),\n\t\t\tTypeHandlerVersion: pulumi.String(\"2.0\"),\n\t\t\tSettings: pulumi.String(fmt.Sprintf(\"%v%v%v\", \"\t{\\n\", \"\t\t\\\"commandToExecute\\\": \\\"hostname \u0026\u0026 uptime\\\"\\n\", \"\t}\\n\")),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Machine Extensions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/extension:Extension example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/virtualMachines/myVM/extensions/hostname\n```\n\n ",
      "inputProperties": {
        "autoUpgradeMinorVersion": {
          "description": "Specifies if the platform deploys\nthe latest minor version update to the `type_handler_version` specified.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the virtual machine extension peering. Changing\nthis forces a new resource to be created.\n",
          "type": "string"
        },
        "protectedSettings": {
          "description": "The protected_settings passed to the\nextension, like settings, these are specified as a JSON object in a string.\n",
          "type": "string"
        },
        "publisher": {
          "description": "The publisher of the extension, available publishers can be found by using the Azure CLI. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "settings": {
          "description": "The settings passed to the extension, these are\nspecified as a JSON object in a string.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "type": {
          "description": "The type of extension, available types for a publisher can\nbe found using the Azure CLI.\n",
          "type": "string"
        },
        "typeHandlerVersion": {
          "description": "Specifies the version of the extension to\nuse, available versions can be found using the Azure CLI.\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "The ID of the Virtual Machine. Changing this forces a new resource to be created\n",
          "type": "string"
        }
      },
      "properties": {
        "autoUpgradeMinorVersion": {
          "description": "Specifies if the platform deploys\nthe latest minor version update to the `type_handler_version` specified.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the virtual machine extension peering. Changing\nthis forces a new resource to be created.\n",
          "type": "string"
        },
        "protectedSettings": {
          "description": "The protected_settings passed to the\nextension, like settings, these are specified as a JSON object in a string.\n",
          "type": "string"
        },
        "publisher": {
          "description": "The publisher of the extension, available publishers can be found by using the Azure CLI. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "settings": {
          "description": "The settings passed to the extension, these are\nspecified as a JSON object in a string.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "type": {
          "description": "The type of extension, available types for a publisher can\nbe found using the Azure CLI.\n",
          "type": "string"
        },
        "typeHandlerVersion": {
          "description": "Specifies the version of the extension to\nuse, available versions can be found using the Azure CLI.\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "The ID of the Virtual Machine. Changing this forces a new resource to be created\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "publisher",
        "type",
        "typeHandlerVersion",
        "virtualMachineId"
      ],
      "requiredInputs": [
        "publisher",
        "type",
        "typeHandlerVersion",
        "virtualMachineId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Extension resources.\n",
        "properties": {
          "autoUpgradeMinorVersion": {
            "description": "Specifies if the platform deploys\nthe latest minor version update to the `type_handler_version` specified.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name of the virtual machine extension peering. Changing\nthis forces a new resource to be created.\n",
            "type": "string"
          },
          "protectedSettings": {
            "description": "The protected_settings passed to the\nextension, like settings, these are specified as a JSON object in a string.\n",
            "type": "string"
          },
          "publisher": {
            "description": "The publisher of the extension, available publishers can be found by using the Azure CLI. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "settings": {
            "description": "The settings passed to the extension, these are\nspecified as a JSON object in a string.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "type": {
            "description": "The type of extension, available types for a publisher can\nbe found using the Azure CLI.\n",
            "type": "string"
          },
          "typeHandlerVersion": {
            "description": "Specifies the version of the extension to\nuse, available versions can be found using the Azure CLI.\n",
            "type": "string"
          },
          "virtualMachineId": {
            "description": "The ID of the Virtual Machine. Changing this forces a new resource to be created\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/image:Image": {
      "description": "Manages a custom virtual machine image that can be used to create virtual machines.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Creating From VHD\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleImage = new azure.compute.Image(\"exampleImage\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    osDisk: {\n        osType: \"Linux\",\n        osState: \"Generalized\",\n        blobUri: \"{blob_uri}\",\n        sizeGb: 30,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_image = azure.compute.Image(\"exampleImage\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    os_disk=azure.compute.ImageOsDiskArgs(\n        os_type=\"Linux\",\n        os_state=\"Generalized\",\n        blob_uri=\"{blob_uri}\",\n        size_gb=30,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleImage = new Azure.Compute.Image(\"exampleImage\", new Azure.Compute.ImageArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            OsDisk = new Azure.Compute.Inputs.ImageOsDiskArgs\n            {\n                OsType = \"Linux\",\n                OsState = \"Generalized\",\n                BlobUri = \"{blob_uri}\",\n                SizeGb = 30,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewImage(ctx, \"exampleImage\", \u0026compute.ImageArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tOsDisk: \u0026compute.ImageOsDiskArgs{\n\t\t\t\tOsType:  pulumi.String(\"Linux\"),\n\t\t\t\tOsState: pulumi.String(\"Generalized\"),\n\t\t\t\tBlobUri: pulumi.String(\"{blob_uri}\"),\n\t\t\t\tSizeGb:  pulumi.Int(30),\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\n{{% /example %}}\n{{% example %}}\n### Creating From Virtual Machine (VM Must Be Generalized Beforehand)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleImage = new azure.compute.Image(\"exampleImage\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    sourceVirtualMachineId: \"{vm_id}\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_image = azure.compute.Image(\"exampleImage\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    source_virtual_machine_id=\"{vm_id}\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleImage = new Azure.Compute.Image(\"exampleImage\", new Azure.Compute.ImageArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            SourceVirtualMachineId = \"{vm_id}\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewImage(ctx, \"exampleImage\", \u0026compute.ImageArgs{\n\t\t\tLocation:               pulumi.String(\"West US\"),\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tSourceVirtualMachineId: pulumi.String(\"{vm_id}\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nImages can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/image:Image example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.compute/images/image1\n```\n\n ",
      "inputProperties": {
        "dataDisks": {
          "description": "One or more `data_disk` elements as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/ImageDataDisk:ImageDataDisk"
          },
          "type": "array"
        },
        "hyperVGeneration": {
          "description": "The HyperVGenerationType of the VirtualMachine created from the image as `V1`, `V2`. The default is `V1`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specified the supported Azure location where the resource exists.\nChanging this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the image. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "osDisk": {
          "$ref": "#/types/azure:compute/ImageOsDisk:ImageOsDisk",
          "description": "One or more `os_disk` elements as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create\nthe image. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceVirtualMachineId": {
          "description": "The Virtual Machine ID from which to create the image.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zoneResilient": {
          "description": "Is zone resiliency enabled?  Defaults to `false`.  Changing this forces a new resource to be created.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "dataDisks": {
          "description": "One or more `data_disk` elements as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/ImageDataDisk:ImageDataDisk"
          },
          "type": "array"
        },
        "hyperVGeneration": {
          "description": "The HyperVGenerationType of the VirtualMachine created from the image as `V1`, `V2`. The default is `V1`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specified the supported Azure location where the resource exists.\nChanging this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the image. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "osDisk": {
          "$ref": "#/types/azure:compute/ImageOsDisk:ImageOsDisk",
          "description": "One or more `os_disk` elements as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create\nthe image. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceVirtualMachineId": {
          "description": "The Virtual Machine ID from which to create the image.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zoneResilient": {
          "description": "Is zone resiliency enabled?  Defaults to `false`.  Changing this forces a new resource to be created.\n",
          "type": "boolean"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Image resources.\n",
        "properties": {
          "dataDisks": {
            "description": "One or more `data_disk` elements as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/ImageDataDisk:ImageDataDisk"
            },
            "type": "array"
          },
          "hyperVGeneration": {
            "description": "The HyperVGenerationType of the VirtualMachine created from the image as `V1`, `V2`. The default is `V1`.\n",
            "type": "string"
          },
          "location": {
            "description": "Specified the supported Azure location where the resource exists.\nChanging this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the image. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "osDisk": {
            "$ref": "#/types/azure:compute/ImageOsDisk:ImageOsDisk",
            "description": "One or more `os_disk` elements as defined below.\n"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create\nthe image. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sourceVirtualMachineId": {
            "description": "The Virtual Machine ID from which to create the image.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "zoneResilient": {
            "description": "Is zone resiliency enabled?  Defaults to `false`.  Changing this forces a new resource to be created.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/linuxVirtualMachine:LinuxVirtualMachine": {
      "description": "Manages a Linux Virtual Machine.\n\n## Disclaimers\n\n\u003e **Note** This provider will automatically remove the OS Disk by default - this behaviour can be configured using the `features` configuration within the Provider configuration block.\n\n\u003e **Note** This resource does not support Unmanaged Disks. If you need to use Unmanaged Disks you can continue to use the `azure.compute.VirtualMachine` resource instead.\n\n\u003e **Note** This resource does not support attaching existing OS Disks. You can instead capture an image of the OS Disk or continue to use the `azure.compute.VirtualMachine` resource instead.\n\n\u003e In this release there's a known issue where the `public_ip_address` and `public_ip_addresses` fields may not be fully populated for Dynamic Public IP's.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis example provisions a basic Linux Virtual Machine on an internal network.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * from \"fs\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"internal\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleLinuxVirtualMachine = new azure.compute.LinuxVirtualMachine(\"exampleLinuxVirtualMachine\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    size: \"Standard_F2\",\n    adminUsername: \"adminuser\",\n    networkInterfaceIds: [exampleNetworkInterface.id],\n    adminSshKeys: [{\n        username: \"adminuser\",\n        publicKey: fs.readFileSync(\"~/.ssh/id_rsa.pub\"),\n    }],\n    osDisk: {\n        caching: \"ReadWrite\",\n        storageAccountType: \"Standard_LRS\",\n    },\n    sourceImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04-LTS\",\n        version: \"latest\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"internal\",\n        subnet_id=example_subnet.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nexample_linux_virtual_machine = azure.compute.LinuxVirtualMachine(\"exampleLinuxVirtualMachine\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    size=\"Standard_F2\",\n    admin_username=\"adminuser\",\n    network_interface_ids=[example_network_interface.id],\n    admin_ssh_keys=[azure.compute.LinuxVirtualMachineAdminSshKeyArgs(\n        username=\"adminuser\",\n        public_key=(lambda path: open(path).read())(\"~/.ssh/id_rsa.pub\"),\n    )],\n    os_disk=azure.compute.LinuxVirtualMachineOsDiskArgs(\n        caching=\"ReadWrite\",\n        storage_account_type=\"Standard_LRS\",\n    ),\n    source_image_reference=azure.compute.LinuxVirtualMachineSourceImageReferenceArgs(\n        publisher=\"Canonical\",\n        offer=\"UbuntuServer\",\n        sku=\"16.04-LTS\",\n        version=\"latest\",\n    ))\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"internal\",\n                    SubnetId = exampleSubnet.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var exampleLinuxVirtualMachine = new Azure.Compute.LinuxVirtualMachine(\"exampleLinuxVirtualMachine\", new Azure.Compute.LinuxVirtualMachineArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Size = \"Standard_F2\",\n            AdminUsername = \"adminuser\",\n            NetworkInterfaceIds = \n            {\n                exampleNetworkInterface.Id,\n            },\n            AdminSshKeys = \n            {\n                new Azure.Compute.Inputs.LinuxVirtualMachineAdminSshKeyArgs\n                {\n                    Username = \"adminuser\",\n                    PublicKey = File.ReadAllText(\"~/.ssh/id_rsa.pub\"),\n                },\n            },\n            OsDisk = new Azure.Compute.Inputs.LinuxVirtualMachineOsDiskArgs\n            {\n                Caching = \"ReadWrite\",\n                StorageAccountType = \"Standard_LRS\",\n            },\n            SourceImageReference = new Azure.Compute.Inputs.LinuxVirtualMachineSourceImageReferenceArgs\n            {\n                Publisher = \"Canonical\",\n                Offer = \"UbuntuServer\",\n                Sku = \"16.04-LTS\",\n                Version = \"latest\",\n            },\n        });\n    }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLinux Virtual Machines can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/linuxVirtualMachine:LinuxVirtualMachine example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/virtualMachines/machine1\n```\n\n ",
      "inputProperties": {
        "additionalCapabilities": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineAdditionalCapabilities:LinuxVirtualMachineAdditionalCapabilities",
          "description": "A `additional_capabilities` block as defined below.\n"
        },
        "adminPassword": {
          "description": "The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "adminSshKeys": {
          "description": "One or more `admin_ssh_key` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineAdminSshKey:LinuxVirtualMachineAdminSshKey"
          },
          "type": "array"
        },
        "adminUsername": {
          "description": "The username of the local administrator used for the Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "allowExtensionOperations": {
          "description": "Should Extension Operations be allowed on this Virtual Machine?\n",
          "type": "boolean"
        },
        "availabilitySetId": {
          "description": "Specifies the ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "bootDiagnostics": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineBootDiagnostics:LinuxVirtualMachineBootDiagnostics",
          "description": "A `boot_diagnostics` block as defined below.\n"
        },
        "computerName": {
          "description": "Specifies the Hostname which should be used for this Virtual Machine. If unspecified this defaults to the value for the `name` field. If the value of the `name` field is not a valid `computer_name`, then you must specify `computer_name`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "customData": {
          "description": "The Base64-Encoded Custom Data which should be used for this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "dedicatedHostId": {
          "description": "The ID of a Dedicated Host where this machine should be run on.\n",
          "type": "string"
        },
        "disablePasswordAuthentication": {
          "description": "Should Password Authentication be disabled on this Virtual Machine? Defaults to `true`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "encryptionAtHostEnabled": {
          "description": "Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?\n",
          "type": "boolean"
        },
        "evictionPolicy": {
          "description": "Specifies what should happen when the Virtual Machine is evicted for price reasons when using a Spot instance. At this time the only supported value is `Deallocate`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "extensionsTimeBudget": {
          "description": "Specifies the duration allocated for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. Defaults to 90 minutes (`PT1H30M`).\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineIdentity:LinuxVirtualMachineIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "licenseType": {
          "description": "Specifies the BYOL Type for this Virtual Machine. Possible values are `RHEL_BYOS` and `SLES_BYOS`.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure location where the Linux Virtual Machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxBidPrice": {
          "description": "The maximum price you're willing to pay for this Virtual Machine, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machine will be evicted using the `eviction_policy`. Defaults to `-1`, which means that the Virtual Machine should not be evicted for price reasons.\n",
          "type": "number"
        },
        "name": {
          "description": "The name of the Linux Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaceIds": {
          "description": ". A list of Network Interface ID's which should be attached to this Virtual Machine. The first Network Interface ID in this list will be the Primary Network Interface on the Virtual Machine.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "osDisk": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineOsDisk:LinuxVirtualMachineOsDisk",
          "description": "A `os_disk` block as defined below.\n"
        },
        "plan": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachinePlan:LinuxVirtualMachinePlan",
          "description": "A `plan` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "platformFaultDomain": {
          "description": "Specifies the Platform Fault Domain in which this Linux Virtual Machine should be created. Defaults to `-1`, which means this will be automatically assigned to a fault domain that best maintains balance across the available fault domains. Changing this forces a new Linux Virtual Machine to be created.\n",
          "type": "integer"
        },
        "priority": {
          "description": "Specifies the priority of this Virtual Machine. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "provisionVmAgent": {
          "description": "Should the Azure VM Agent be provisioned on this Virtual Machine? Defaults to `true`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group which the Virtual Machine should be assigned to.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Linux Virtual Machine should be exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secrets": {
          "description": "One or more `secret` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineSecret:LinuxVirtualMachineSecret"
          },
          "type": "array"
        },
        "size": {
          "description": "The SKU which should be used for this Virtual Machine, such as `Standard_F2`.\n",
          "type": "string"
        },
        "sourceImageId": {
          "description": "The ID of the Image which this Virtual Machine should be created from. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceImageReference": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineSourceImageReference:LinuxVirtualMachineSourceImageReference",
          "description": "A `source_image_reference` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to this Virtual Machine.\n",
          "type": "object"
        },
        "virtualMachineScaleSetId": {
          "description": "Specifies the Orchestrated Virtual Machine Scale Set that this Virtual Machine should be created within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "zone": {
          "description": "The Zone in which this Virtual Machine should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalCapabilities": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineAdditionalCapabilities:LinuxVirtualMachineAdditionalCapabilities",
          "description": "A `additional_capabilities` block as defined below.\n"
        },
        "adminPassword": {
          "description": "The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "adminSshKeys": {
          "description": "One or more `admin_ssh_key` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineAdminSshKey:LinuxVirtualMachineAdminSshKey"
          },
          "type": "array"
        },
        "adminUsername": {
          "description": "The username of the local administrator used for the Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "allowExtensionOperations": {
          "description": "Should Extension Operations be allowed on this Virtual Machine?\n",
          "type": "boolean"
        },
        "availabilitySetId": {
          "description": "Specifies the ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "bootDiagnostics": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineBootDiagnostics:LinuxVirtualMachineBootDiagnostics",
          "description": "A `boot_diagnostics` block as defined below.\n"
        },
        "computerName": {
          "description": "Specifies the Hostname which should be used for this Virtual Machine. If unspecified this defaults to the value for the `name` field. If the value of the `name` field is not a valid `computer_name`, then you must specify `computer_name`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "customData": {
          "description": "The Base64-Encoded Custom Data which should be used for this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "dedicatedHostId": {
          "description": "The ID of a Dedicated Host where this machine should be run on.\n",
          "type": "string"
        },
        "disablePasswordAuthentication": {
          "description": "Should Password Authentication be disabled on this Virtual Machine? Defaults to `true`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "encryptionAtHostEnabled": {
          "description": "Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?\n",
          "type": "boolean"
        },
        "evictionPolicy": {
          "description": "Specifies what should happen when the Virtual Machine is evicted for price reasons when using a Spot instance. At this time the only supported value is `Deallocate`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "extensionsTimeBudget": {
          "description": "Specifies the duration allocated for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. Defaults to 90 minutes (`PT1H30M`).\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineIdentity:LinuxVirtualMachineIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "licenseType": {
          "description": "Specifies the BYOL Type for this Virtual Machine. Possible values are `RHEL_BYOS` and `SLES_BYOS`.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure location where the Linux Virtual Machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxBidPrice": {
          "description": "The maximum price you're willing to pay for this Virtual Machine, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machine will be evicted using the `eviction_policy`. Defaults to `-1`, which means that the Virtual Machine should not be evicted for price reasons.\n",
          "type": "number"
        },
        "name": {
          "description": "The name of the Linux Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaceIds": {
          "description": ". A list of Network Interface ID's which should be attached to this Virtual Machine. The first Network Interface ID in this list will be the Primary Network Interface on the Virtual Machine.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "osDisk": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineOsDisk:LinuxVirtualMachineOsDisk",
          "description": "A `os_disk` block as defined below.\n"
        },
        "plan": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachinePlan:LinuxVirtualMachinePlan",
          "description": "A `plan` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "platformFaultDomain": {
          "description": "Specifies the Platform Fault Domain in which this Linux Virtual Machine should be created. Defaults to `-1`, which means this will be automatically assigned to a fault domain that best maintains balance across the available fault domains. Changing this forces a new Linux Virtual Machine to be created.\n",
          "type": "integer"
        },
        "priority": {
          "description": "Specifies the priority of this Virtual Machine. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privateIpAddress": {
          "description": "The Primary Private IP Address assigned to this Virtual Machine.\n",
          "type": "string"
        },
        "privateIpAddresses": {
          "description": "A list of Private IP Addresses assigned to this Virtual Machine.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "provisionVmAgent": {
          "description": "Should the Azure VM Agent be provisioned on this Virtual Machine? Defaults to `true`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group which the Virtual Machine should be assigned to.\n",
          "type": "string"
        },
        "publicIpAddress": {
          "description": "The Primary Public IP Address assigned to this Virtual Machine.\n",
          "type": "string"
        },
        "publicIpAddresses": {
          "description": "A list of the Public IP Addresses assigned to this Virtual Machine.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Linux Virtual Machine should be exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secrets": {
          "description": "One or more `secret` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineSecret:LinuxVirtualMachineSecret"
          },
          "type": "array"
        },
        "size": {
          "description": "The SKU which should be used for this Virtual Machine, such as `Standard_F2`.\n",
          "type": "string"
        },
        "sourceImageId": {
          "description": "The ID of the Image which this Virtual Machine should be created from. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceImageReference": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineSourceImageReference:LinuxVirtualMachineSourceImageReference",
          "description": "A `source_image_reference` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to this Virtual Machine.\n",
          "type": "object"
        },
        "virtualMachineId": {
          "description": "A 128-bit identifier which uniquely identifies this Virtual Machine.\n",
          "type": "string"
        },
        "virtualMachineScaleSetId": {
          "description": "Specifies the Orchestrated Virtual Machine Scale Set that this Virtual Machine should be created within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "zone": {
          "description": "The Zone in which this Virtual Machine should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "adminUsername",
        "computerName",
        "location",
        "name",
        "networkInterfaceIds",
        "osDisk",
        "privateIpAddress",
        "privateIpAddresses",
        "publicIpAddress",
        "publicIpAddresses",
        "resourceGroupName",
        "size",
        "virtualMachineId",
        "zone"
      ],
      "requiredInputs": [
        "adminUsername",
        "networkInterfaceIds",
        "osDisk",
        "resourceGroupName",
        "size"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinuxVirtualMachine resources.\n",
        "properties": {
          "additionalCapabilities": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineAdditionalCapabilities:LinuxVirtualMachineAdditionalCapabilities",
            "description": "A `additional_capabilities` block as defined below.\n"
          },
          "adminPassword": {
            "description": "The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "adminSshKeys": {
            "description": "One or more `admin_ssh_key` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/LinuxVirtualMachineAdminSshKey:LinuxVirtualMachineAdminSshKey"
            },
            "type": "array"
          },
          "adminUsername": {
            "description": "The username of the local administrator used for the Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "allowExtensionOperations": {
            "description": "Should Extension Operations be allowed on this Virtual Machine?\n",
            "type": "boolean"
          },
          "availabilitySetId": {
            "description": "Specifies the ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "bootDiagnostics": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineBootDiagnostics:LinuxVirtualMachineBootDiagnostics",
            "description": "A `boot_diagnostics` block as defined below.\n"
          },
          "computerName": {
            "description": "Specifies the Hostname which should be used for this Virtual Machine. If unspecified this defaults to the value for the `name` field. If the value of the `name` field is not a valid `computer_name`, then you must specify `computer_name`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "customData": {
            "description": "The Base64-Encoded Custom Data which should be used for this Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "dedicatedHostId": {
            "description": "The ID of a Dedicated Host where this machine should be run on.\n",
            "type": "string"
          },
          "disablePasswordAuthentication": {
            "description": "Should Password Authentication be disabled on this Virtual Machine? Defaults to `true`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "encryptionAtHostEnabled": {
            "description": "Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?\n",
            "type": "boolean"
          },
          "evictionPolicy": {
            "description": "Specifies what should happen when the Virtual Machine is evicted for price reasons when using a Spot instance. At this time the only supported value is `Deallocate`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "extensionsTimeBudget": {
            "description": "Specifies the duration allocated for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. Defaults to 90 minutes (`PT1H30M`).\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineIdentity:LinuxVirtualMachineIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "licenseType": {
            "description": "Specifies the BYOL Type for this Virtual Machine. Possible values are `RHEL_BYOS` and `SLES_BYOS`.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the Linux Virtual Machine should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maxBidPrice": {
            "description": "The maximum price you're willing to pay for this Virtual Machine, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machine will be evicted using the `eviction_policy`. Defaults to `-1`, which means that the Virtual Machine should not be evicted for price reasons.\n",
            "type": "number"
          },
          "name": {
            "description": "The name of the Linux Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkInterfaceIds": {
            "description": ". A list of Network Interface ID's which should be attached to this Virtual Machine. The first Network Interface ID in this list will be the Primary Network Interface on the Virtual Machine.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "osDisk": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineOsDisk:LinuxVirtualMachineOsDisk",
            "description": "A `os_disk` block as defined below.\n"
          },
          "plan": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachinePlan:LinuxVirtualMachinePlan",
            "description": "A `plan` block as defined below. Changing this forces a new resource to be created.\n"
          },
          "platformFaultDomain": {
            "description": "Specifies the Platform Fault Domain in which this Linux Virtual Machine should be created. Defaults to `-1`, which means this will be automatically assigned to a fault domain that best maintains balance across the available fault domains. Changing this forces a new Linux Virtual Machine to be created.\n",
            "type": "integer"
          },
          "priority": {
            "description": "Specifies the priority of this Virtual Machine. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "privateIpAddress": {
            "description": "The Primary Private IP Address assigned to this Virtual Machine.\n",
            "type": "string"
          },
          "privateIpAddresses": {
            "description": "A list of Private IP Addresses assigned to this Virtual Machine.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "provisionVmAgent": {
            "description": "Should the Azure VM Agent be provisioned on this Virtual Machine? Defaults to `true`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "proximityPlacementGroupId": {
            "description": "The ID of the Proximity Placement Group which the Virtual Machine should be assigned to.\n",
            "type": "string"
          },
          "publicIpAddress": {
            "description": "The Primary Public IP Address assigned to this Virtual Machine.\n",
            "type": "string"
          },
          "publicIpAddresses": {
            "description": "A list of the Public IP Addresses assigned to this Virtual Machine.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Linux Virtual Machine should be exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secrets": {
            "description": "One or more `secret` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/LinuxVirtualMachineSecret:LinuxVirtualMachineSecret"
            },
            "type": "array"
          },
          "size": {
            "description": "The SKU which should be used for this Virtual Machine, such as `Standard_F2`.\n",
            "type": "string"
          },
          "sourceImageId": {
            "description": "The ID of the Image which this Virtual Machine should be created from. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sourceImageReference": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineSourceImageReference:LinuxVirtualMachineSourceImageReference",
            "description": "A `source_image_reference` block as defined below. Changing this forces a new resource to be created.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to this Virtual Machine.\n",
            "type": "object"
          },
          "virtualMachineId": {
            "description": "A 128-bit identifier which uniquely identifies this Virtual Machine.\n",
            "type": "string"
          },
          "virtualMachineScaleSetId": {
            "description": "Specifies the Orchestrated Virtual Machine Scale Set that this Virtual Machine should be created within. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "zone": {
            "description": "The Zone in which this Virtual Machine should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/linuxVirtualMachineScaleSet:LinuxVirtualMachineScaleSet": {
      "description": "Manages a Linux Virtual Machine Scale Set.\n\n## Disclaimers\n\n\u003e **Note** This provider will automatically update \u0026 reimage the nodes in the Scale Set (if Required) during an Update - this behaviour can be configured using the `features` configuration within the Provider configuration block.\n\n\u003e **Note:** This resource does not support Unmanaged Disks. If you need to use Unmanaged Disks you can continue to use the `azure.compute.ScaleSet` resource instead\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis example provisions a basic Linux Virtual Machine Scale Set on an internal network.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * from \"fs\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    addressSpaces: [\"10.0.0.0/16\"],\n});\nconst internal = new azure.network.Subnet(\"internal\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleLinuxVirtualMachineScaleSet = new azure.compute.LinuxVirtualMachineScaleSet(\"exampleLinuxVirtualMachineScaleSet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: \"Standard_F2\",\n    instances: 1,\n    adminUsername: \"adminuser\",\n    adminSshKeys: [{\n        username: \"adminuser\",\n        publicKey: fs.readFileSync(\"~/.ssh/id_rsa.pub\"),\n    }],\n    sourceImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04-LTS\",\n        version: \"latest\",\n    },\n    osDisk: {\n        storageAccountType: \"Standard_LRS\",\n        caching: \"ReadWrite\",\n    },\n    networkInterfaces: [{\n        name: \"example\",\n        primary: true,\n        ipConfigurations: [{\n            name: \"internal\",\n            primary: true,\n            subnetId: internal.id,\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    address_spaces=[\"10.0.0.0/16\"])\ninternal = azure.network.Subnet(\"internal\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_linux_virtual_machine_scale_set = azure.compute.LinuxVirtualMachineScaleSet(\"exampleLinuxVirtualMachineScaleSet\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=\"Standard_F2\",\n    instances=1,\n    admin_username=\"adminuser\",\n    admin_ssh_keys=[azure.compute.LinuxVirtualMachineScaleSetAdminSshKeyArgs(\n        username=\"adminuser\",\n        public_key=(lambda path: open(path).read())(\"~/.ssh/id_rsa.pub\"),\n    )],\n    source_image_reference=azure.compute.LinuxVirtualMachineScaleSetSourceImageReferenceArgs(\n        publisher=\"Canonical\",\n        offer=\"UbuntuServer\",\n        sku=\"16.04-LTS\",\n        version=\"latest\",\n    ),\n    os_disk=azure.compute.LinuxVirtualMachineScaleSetOsDiskArgs(\n        storage_account_type=\"Standard_LRS\",\n        caching=\"ReadWrite\",\n    ),\n    network_interfaces=[azure.compute.LinuxVirtualMachineScaleSetNetworkInterfaceArgs(\n        name=\"example\",\n        primary=True,\n        ip_configurations=[{\n            \"name\": \"internal\",\n            \"primary\": True,\n            \"subnet_id\": internal.id,\n        }],\n    )])\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n        });\n        var @internal = new Azure.Network.Subnet(\"internal\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleLinuxVirtualMachineScaleSet = new Azure.Compute.LinuxVirtualMachineScaleSet(\"exampleLinuxVirtualMachineScaleSet\", new Azure.Compute.LinuxVirtualMachineScaleSetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = \"Standard_F2\",\n            Instances = 1,\n            AdminUsername = \"adminuser\",\n            AdminSshKeys = \n            {\n                new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetAdminSshKeyArgs\n                {\n                    Username = \"adminuser\",\n                    PublicKey = File.ReadAllText(\"~/.ssh/id_rsa.pub\"),\n                },\n            },\n            SourceImageReference = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetSourceImageReferenceArgs\n            {\n                Publisher = \"Canonical\",\n                Offer = \"UbuntuServer\",\n                Sku = \"16.04-LTS\",\n                Version = \"latest\",\n            },\n            OsDisk = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetOsDiskArgs\n            {\n                StorageAccountType = \"Standard_LRS\",\n                Caching = \"ReadWrite\",\n            },\n            NetworkInterfaces = \n            {\n                new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceArgs\n                {\n                    Name = \"example\",\n                    Primary = true,\n                    IpConfigurations = \n                    {\n                        new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs\n                        {\n                            Name = \"internal\",\n                            Primary = true,\n                            SubnetId = @internal.Id,\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLinux Virtual Machine Scale Sets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/linuxVirtualMachineScaleSet:LinuxVirtualMachineScaleSet example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/Microsoft.Compute/virtualMachineScaleSets/scaleset1\n```\n\n ",
      "inputProperties": {
        "additionalCapabilities": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetAdditionalCapabilities:LinuxVirtualMachineScaleSetAdditionalCapabilities",
          "description": "A `additional_capabilities` block as defined below.\n"
        },
        "adminPassword": {
          "description": "The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "adminSshKeys": {
          "description": "One or more `admin_ssh_key` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetAdminSshKey:LinuxVirtualMachineScaleSetAdminSshKey"
          },
          "type": "array"
        },
        "adminUsername": {
          "description": "The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "automaticInstanceRepair": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetAutomaticInstanceRepair:LinuxVirtualMachineScaleSetAutomaticInstanceRepair",
          "description": "A `automatic_instance_repair` block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid `health_probe_id` or an [Application Health Extension](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-health-extension).\n"
        },
        "automaticOsUpgradePolicy": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy:LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy",
          "description": "A `automatic_os_upgrade_policy` block as defined below. This can only be specified when `upgrade_mode` is set to `Automatic`.\n"
        },
        "bootDiagnostics": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetBootDiagnostics:LinuxVirtualMachineScaleSetBootDiagnostics",
          "description": "A `boot_diagnostics` block as defined below.\n"
        },
        "computerNamePrefix": {
          "description": "The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the `name` field. If the value of the `name` field is not a valid `computer_name_prefix`, then you must specify `computer_name_prefix`.\n",
          "type": "string"
        },
        "customData": {
          "description": "The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.\n",
          "type": "string"
        },
        "dataDisks": {
          "description": "One or more `data_disk` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetDataDisk:LinuxVirtualMachineScaleSetDataDisk"
          },
          "type": "array"
        },
        "disablePasswordAuthentication": {
          "description": "Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to `true`.\n",
          "type": "boolean"
        },
        "doNotRunExtensionsOnOverprovisionedMachines": {
          "description": "Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to `false`.\n",
          "type": "boolean"
        },
        "encryptionAtHostEnabled": {
          "description": "Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?\n",
          "type": "boolean"
        },
        "evictionPolicy": {
          "description": "The Policy which should be used Virtual Machines are Evicted from the Scale Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "extensions": {
          "description": "One or more `extension` blocks as defined below\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetExtension:LinuxVirtualMachineScaleSetExtension"
          },
          "type": "array"
        },
        "extensionsTimeBudget": {
          "description": "Specifies the duration allocated for all extensions to start. The time duration should be between `15` minutes and `120` minutes (inclusive) and should be specified in ISO 8601 format. Defaults to `90` minutes (`PT1H30M`).\n",
          "type": "string"
        },
        "healthProbeId": {
          "description": "The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when `upgrade_mode` is set to `Automatic` or `Rolling`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetIdentity:LinuxVirtualMachineScaleSetIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "instances": {
          "description": "The number of Virtual Machines in the Scale Set.\n",
          "type": "integer"
        },
        "location": {
          "description": "The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxBidPrice": {
          "description": "The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the `eviction_policy`. Defaults to `-1`, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.\n",
          "type": "number"
        },
        "name": {
          "description": "The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaces": {
          "description": "One or more `network_interface` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetNetworkInterface:LinuxVirtualMachineScaleSetNetworkInterface"
          },
          "type": "array"
        },
        "osDisk": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetOsDisk:LinuxVirtualMachineScaleSetOsDisk",
          "description": "An `os_disk` block as defined below.\n"
        },
        "overprovision": {
          "description": "Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to `true`.\n",
          "type": "boolean"
        },
        "plan": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetPlan:LinuxVirtualMachineScaleSetPlan",
          "description": "A `plan` block as documented below.\n"
        },
        "platformFaultDomainCount": {
          "description": "Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "priority": {
          "description": "The Priority of this Virtual Machine Scale Set. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this value forces a new resource.\n",
          "type": "string"
        },
        "provisionVmAgent": {
          "description": "Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to `true`. Changing this value forces a new resource to be created.\n",
          "type": "boolean"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rollingUpgradePolicy": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetRollingUpgradePolicy:LinuxVirtualMachineScaleSetRollingUpgradePolicy",
          "description": "A `rolling_upgrade_policy` block as defined below. This is Required and can only be specified when `upgrade_mode` is set to `Automatic` or `Rolling`.\n"
        },
        "scaleInPolicy": {
          "description": "The scale-in policy rule that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled in. Possible values for the scale-in policy rules are `Default`, `NewestVM` and `OldestVM`, defaults to `Default`. For more information about scale in policy, please [refer to this doc](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-scale-in-policy).\n",
          "type": "string"
        },
        "secrets": {
          "description": "One or more `secret` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetSecret:LinuxVirtualMachineScaleSetSecret"
          },
          "type": "array"
        },
        "singlePlacementGroup": {
          "description": "Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to `true`.\n",
          "type": "boolean"
        },
        "sku": {
          "description": "The Virtual Machine SKU for the Scale Set, such as `Standard_F2`.\n",
          "type": "string"
        },
        "sourceImageId": {
          "description": "The ID of an Image which each Virtual Machine in this Scale Set should be based on.\n",
          "type": "string"
        },
        "sourceImageReference": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetSourceImageReference:LinuxVirtualMachineScaleSetSourceImageReference",
          "description": "A `source_image_reference` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to this Virtual Machine Scale Set.\n",
          "type": "object"
        },
        "terminateNotification": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetTerminateNotification:LinuxVirtualMachineScaleSetTerminateNotification",
          "description": "A `terminate_notification` block as defined below.\n"
        },
        "upgradeMode": {
          "description": "Specifies how Upgrades (e.g. changing the Image/SKU) should be performed to Virtual Machine Instances. Possible values are `Automatic`, `Manual` and `Rolling`. Defaults to `Manual`.\n",
          "type": "string"
        },
        "zoneBalance": {
          "description": "Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "zones": {
          "description": "A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "additionalCapabilities": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetAdditionalCapabilities:LinuxVirtualMachineScaleSetAdditionalCapabilities",
          "description": "A `additional_capabilities` block as defined below.\n"
        },
        "adminPassword": {
          "description": "The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "adminSshKeys": {
          "description": "One or more `admin_ssh_key` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetAdminSshKey:LinuxVirtualMachineScaleSetAdminSshKey"
          },
          "type": "array"
        },
        "adminUsername": {
          "description": "The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "automaticInstanceRepair": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetAutomaticInstanceRepair:LinuxVirtualMachineScaleSetAutomaticInstanceRepair",
          "description": "A `automatic_instance_repair` block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid `health_probe_id` or an [Application Health Extension](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-health-extension).\n"
        },
        "automaticOsUpgradePolicy": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy:LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy",
          "description": "A `automatic_os_upgrade_policy` block as defined below. This can only be specified when `upgrade_mode` is set to `Automatic`.\n"
        },
        "bootDiagnostics": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetBootDiagnostics:LinuxVirtualMachineScaleSetBootDiagnostics",
          "description": "A `boot_diagnostics` block as defined below.\n"
        },
        "computerNamePrefix": {
          "description": "The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the `name` field. If the value of the `name` field is not a valid `computer_name_prefix`, then you must specify `computer_name_prefix`.\n",
          "type": "string"
        },
        "customData": {
          "description": "The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.\n",
          "type": "string"
        },
        "dataDisks": {
          "description": "One or more `data_disk` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetDataDisk:LinuxVirtualMachineScaleSetDataDisk"
          },
          "type": "array"
        },
        "disablePasswordAuthentication": {
          "description": "Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to `true`.\n",
          "type": "boolean"
        },
        "doNotRunExtensionsOnOverprovisionedMachines": {
          "description": "Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to `false`.\n",
          "type": "boolean"
        },
        "encryptionAtHostEnabled": {
          "description": "Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?\n",
          "type": "boolean"
        },
        "evictionPolicy": {
          "description": "The Policy which should be used Virtual Machines are Evicted from the Scale Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "extensions": {
          "description": "One or more `extension` blocks as defined below\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetExtension:LinuxVirtualMachineScaleSetExtension"
          },
          "type": "array"
        },
        "extensionsTimeBudget": {
          "description": "Specifies the duration allocated for all extensions to start. The time duration should be between `15` minutes and `120` minutes (inclusive) and should be specified in ISO 8601 format. Defaults to `90` minutes (`PT1H30M`).\n",
          "type": "string"
        },
        "healthProbeId": {
          "description": "The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when `upgrade_mode` is set to `Automatic` or `Rolling`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetIdentity:LinuxVirtualMachineScaleSetIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "instances": {
          "description": "The number of Virtual Machines in the Scale Set.\n",
          "type": "integer"
        },
        "location": {
          "description": "The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxBidPrice": {
          "description": "The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the `eviction_policy`. Defaults to `-1`, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.\n",
          "type": "number"
        },
        "name": {
          "description": "The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaces": {
          "description": "One or more `network_interface` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetNetworkInterface:LinuxVirtualMachineScaleSetNetworkInterface"
          },
          "type": "array"
        },
        "osDisk": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetOsDisk:LinuxVirtualMachineScaleSetOsDisk",
          "description": "An `os_disk` block as defined below.\n"
        },
        "overprovision": {
          "description": "Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to `true`.\n",
          "type": "boolean"
        },
        "plan": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetPlan:LinuxVirtualMachineScaleSetPlan",
          "description": "A `plan` block as documented below.\n"
        },
        "platformFaultDomainCount": {
          "description": "Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "priority": {
          "description": "The Priority of this Virtual Machine Scale Set. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this value forces a new resource.\n",
          "type": "string"
        },
        "provisionVmAgent": {
          "description": "Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to `true`. Changing this value forces a new resource to be created.\n",
          "type": "boolean"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rollingUpgradePolicy": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetRollingUpgradePolicy:LinuxVirtualMachineScaleSetRollingUpgradePolicy",
          "description": "A `rolling_upgrade_policy` block as defined below. This is Required and can only be specified when `upgrade_mode` is set to `Automatic` or `Rolling`.\n"
        },
        "scaleInPolicy": {
          "description": "The scale-in policy rule that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled in. Possible values for the scale-in policy rules are `Default`, `NewestVM` and `OldestVM`, defaults to `Default`. For more information about scale in policy, please [refer to this doc](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-scale-in-policy).\n",
          "type": "string"
        },
        "secrets": {
          "description": "One or more `secret` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetSecret:LinuxVirtualMachineScaleSetSecret"
          },
          "type": "array"
        },
        "singlePlacementGroup": {
          "description": "Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to `true`.\n",
          "type": "boolean"
        },
        "sku": {
          "description": "The Virtual Machine SKU for the Scale Set, such as `Standard_F2`.\n",
          "type": "string"
        },
        "sourceImageId": {
          "description": "The ID of an Image which each Virtual Machine in this Scale Set should be based on.\n",
          "type": "string"
        },
        "sourceImageReference": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetSourceImageReference:LinuxVirtualMachineScaleSetSourceImageReference",
          "description": "A `source_image_reference` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to this Virtual Machine Scale Set.\n",
          "type": "object"
        },
        "terminateNotification": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetTerminateNotification:LinuxVirtualMachineScaleSetTerminateNotification",
          "description": "A `terminate_notification` block as defined below.\n"
        },
        "uniqueId": {
          "description": "The Unique ID for this Linux Virtual Machine Scale Set.\n",
          "type": "string"
        },
        "upgradeMode": {
          "description": "Specifies how Upgrades (e.g. changing the Image/SKU) should be performed to Virtual Machine Instances. Possible values are `Automatic`, `Manual` and `Rolling`. Defaults to `Manual`.\n",
          "type": "string"
        },
        "zoneBalance": {
          "description": "Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "zones": {
          "description": "A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "adminUsername",
        "automaticInstanceRepair",
        "computerNamePrefix",
        "extensions",
        "instances",
        "location",
        "name",
        "networkInterfaces",
        "osDisk",
        "platformFaultDomainCount",
        "resourceGroupName",
        "sku",
        "terminateNotification",
        "uniqueId"
      ],
      "requiredInputs": [
        "adminUsername",
        "instances",
        "networkInterfaces",
        "osDisk",
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinuxVirtualMachineScaleSet resources.\n",
        "properties": {
          "additionalCapabilities": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetAdditionalCapabilities:LinuxVirtualMachineScaleSetAdditionalCapabilities",
            "description": "A `additional_capabilities` block as defined below.\n"
          },
          "adminPassword": {
            "description": "The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "adminSshKeys": {
            "description": "One or more `admin_ssh_key` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetAdminSshKey:LinuxVirtualMachineScaleSetAdminSshKey"
            },
            "type": "array"
          },
          "adminUsername": {
            "description": "The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "automaticInstanceRepair": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetAutomaticInstanceRepair:LinuxVirtualMachineScaleSetAutomaticInstanceRepair",
            "description": "A `automatic_instance_repair` block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid `health_probe_id` or an [Application Health Extension](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-health-extension).\n"
          },
          "automaticOsUpgradePolicy": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy:LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy",
            "description": "A `automatic_os_upgrade_policy` block as defined below. This can only be specified when `upgrade_mode` is set to `Automatic`.\n"
          },
          "bootDiagnostics": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetBootDiagnostics:LinuxVirtualMachineScaleSetBootDiagnostics",
            "description": "A `boot_diagnostics` block as defined below.\n"
          },
          "computerNamePrefix": {
            "description": "The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the `name` field. If the value of the `name` field is not a valid `computer_name_prefix`, then you must specify `computer_name_prefix`.\n",
            "type": "string"
          },
          "customData": {
            "description": "The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.\n",
            "type": "string"
          },
          "dataDisks": {
            "description": "One or more `data_disk` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetDataDisk:LinuxVirtualMachineScaleSetDataDisk"
            },
            "type": "array"
          },
          "disablePasswordAuthentication": {
            "description": "Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to `true`.\n",
            "type": "boolean"
          },
          "doNotRunExtensionsOnOverprovisionedMachines": {
            "description": "Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to `false`.\n",
            "type": "boolean"
          },
          "encryptionAtHostEnabled": {
            "description": "Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?\n",
            "type": "boolean"
          },
          "evictionPolicy": {
            "description": "The Policy which should be used Virtual Machines are Evicted from the Scale Set. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "extensions": {
            "description": "One or more `extension` blocks as defined below\n",
            "items": {
              "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetExtension:LinuxVirtualMachineScaleSetExtension"
            },
            "type": "array"
          },
          "extensionsTimeBudget": {
            "description": "Specifies the duration allocated for all extensions to start. The time duration should be between `15` minutes and `120` minutes (inclusive) and should be specified in ISO 8601 format. Defaults to `90` minutes (`PT1H30M`).\n",
            "type": "string"
          },
          "healthProbeId": {
            "description": "The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when `upgrade_mode` is set to `Automatic` or `Rolling`.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetIdentity:LinuxVirtualMachineScaleSetIdentity",
            "description": "A `identity` block as defined below.\n"
          },
          "instances": {
            "description": "The number of Virtual Machines in the Scale Set.\n",
            "type": "integer"
          },
          "location": {
            "description": "The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maxBidPrice": {
            "description": "The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the `eviction_policy`. Defaults to `-1`, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.\n",
            "type": "number"
          },
          "name": {
            "description": "The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkInterfaces": {
            "description": "One or more `network_interface` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetNetworkInterface:LinuxVirtualMachineScaleSetNetworkInterface"
            },
            "type": "array"
          },
          "osDisk": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetOsDisk:LinuxVirtualMachineScaleSetOsDisk",
            "description": "An `os_disk` block as defined below.\n"
          },
          "overprovision": {
            "description": "Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to `true`.\n",
            "type": "boolean"
          },
          "plan": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetPlan:LinuxVirtualMachineScaleSetPlan",
            "description": "A `plan` block as documented below.\n"
          },
          "platformFaultDomainCount": {
            "description": "Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "priority": {
            "description": "The Priority of this Virtual Machine Scale Set. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this value forces a new resource.\n",
            "type": "string"
          },
          "provisionVmAgent": {
            "description": "Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to `true`. Changing this value forces a new resource to be created.\n",
            "type": "boolean"
          },
          "proximityPlacementGroupId": {
            "description": "The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "rollingUpgradePolicy": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetRollingUpgradePolicy:LinuxVirtualMachineScaleSetRollingUpgradePolicy",
            "description": "A `rolling_upgrade_policy` block as defined below. This is Required and can only be specified when `upgrade_mode` is set to `Automatic` or `Rolling`.\n"
          },
          "scaleInPolicy": {
            "description": "The scale-in policy rule that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled in. Possible values for the scale-in policy rules are `Default`, `NewestVM` and `OldestVM`, defaults to `Default`. For more information about scale in policy, please [refer to this doc](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-scale-in-policy).\n",
            "type": "string"
          },
          "secrets": {
            "description": "One or more `secret` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetSecret:LinuxVirtualMachineScaleSetSecret"
            },
            "type": "array"
          },
          "singlePlacementGroup": {
            "description": "Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to `true`.\n",
            "type": "boolean"
          },
          "sku": {
            "description": "The Virtual Machine SKU for the Scale Set, such as `Standard_F2`.\n",
            "type": "string"
          },
          "sourceImageId": {
            "description": "The ID of an Image which each Virtual Machine in this Scale Set should be based on.\n",
            "type": "string"
          },
          "sourceImageReference": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetSourceImageReference:LinuxVirtualMachineScaleSetSourceImageReference",
            "description": "A `source_image_reference` block as defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to this Virtual Machine Scale Set.\n",
            "type": "object"
          },
          "terminateNotification": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetTerminateNotification:LinuxVirtualMachineScaleSetTerminateNotification",
            "description": "A `terminate_notification` block as defined below.\n"
          },
          "uniqueId": {
            "description": "The Unique ID for this Linux Virtual Machine Scale Set.\n",
            "type": "string"
          },
          "upgradeMode": {
            "description": "Specifies how Upgrades (e.g. changing the Image/SKU) should be performed to Virtual Machine Instances. Possible values are `Automatic`, `Manual` and `Rolling`. Defaults to `Manual`.\n",
            "type": "string"
          },
          "zoneBalance": {
            "description": "Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to `false`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "zones": {
            "description": "A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/managedDisk:ManagedDisk": {
      "description": "Manages a managed disk.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### With Create Empty\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleManagedDisk = new azure.compute.ManagedDisk(\"exampleManagedDisk\", {\n    location: \"West US 2\",\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccountType: \"Standard_LRS\",\n    createOption: \"Empty\",\n    diskSizeGb: \"1\",\n    tags: {\n        environment: \"staging\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_managed_disk = azure.compute.ManagedDisk(\"exampleManagedDisk\",\n    location=\"West US 2\",\n    resource_group_name=example_resource_group.name,\n    storage_account_type=\"Standard_LRS\",\n    create_option=\"Empty\",\n    disk_size_gb=1,\n    tags={\n        \"environment\": \"staging\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleManagedDisk = new Azure.Compute.ManagedDisk(\"exampleManagedDisk\", new Azure.Compute.ManagedDiskArgs\n        {\n            Location = \"West US 2\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccountType = \"Standard_LRS\",\n            CreateOption = \"Empty\",\n            DiskSizeGb = 1,\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewManagedDisk(ctx, \"exampleManagedDisk\", \u0026compute.ManagedDiskArgs{\n\t\t\tLocation:           pulumi.String(\"West US 2\"),\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tStorageAccountType: pulumi.String(\"Standard_LRS\"),\n\t\t\tCreateOption:       pulumi.String(\"Empty\"),\n\t\t\tDiskSizeGb:         pulumi.Int(1),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\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\n{{% /example %}}\n{{% example %}}\n### With Create Copy\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst source = new azure.compute.ManagedDisk(\"source\", {\n    location: \"West US 2\",\n    resourceGroupName: example.name,\n    storageAccountType: \"Standard_LRS\",\n    createOption: \"Empty\",\n    diskSizeGb: \"1\",\n    tags: {\n        environment: \"staging\",\n    },\n});\nconst copy = new azure.compute.ManagedDisk(\"copy\", {\n    location: \"West US 2\",\n    resourceGroupName: example.name,\n    storageAccountType: \"Standard_LRS\",\n    createOption: \"Copy\",\n    sourceResourceId: source.id,\n    diskSizeGb: \"1\",\n    tags: {\n        environment: \"staging\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\nsource = azure.compute.ManagedDisk(\"source\",\n    location=\"West US 2\",\n    resource_group_name=example.name,\n    storage_account_type=\"Standard_LRS\",\n    create_option=\"Empty\",\n    disk_size_gb=1,\n    tags={\n        \"environment\": \"staging\",\n    })\ncopy = azure.compute.ManagedDisk(\"copy\",\n    location=\"West US 2\",\n    resource_group_name=example.name,\n    storage_account_type=\"Standard_LRS\",\n    create_option=\"Copy\",\n    source_resource_id=source.id,\n    disk_size_gb=1,\n    tags={\n        \"environment\": \"staging\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var source = new Azure.Compute.ManagedDisk(\"source\", new Azure.Compute.ManagedDiskArgs\n        {\n            Location = \"West US 2\",\n            ResourceGroupName = example.Name,\n            StorageAccountType = \"Standard_LRS\",\n            CreateOption = \"Empty\",\n            DiskSizeGb = 1,\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n        var copy = new Azure.Compute.ManagedDisk(\"copy\", new Azure.Compute.ManagedDiskArgs\n        {\n            Location = \"West US 2\",\n            ResourceGroupName = example.Name,\n            StorageAccountType = \"Standard_LRS\",\n            CreateOption = \"Copy\",\n            SourceResourceId = source.Id,\n            DiskSizeGb = 1,\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsource, err := compute.NewManagedDisk(ctx, \"source\", \u0026compute.ManagedDiskArgs{\n\t\t\tLocation:           pulumi.String(\"West US 2\"),\n\t\t\tResourceGroupName:  example.Name,\n\t\t\tStorageAccountType: pulumi.String(\"Standard_LRS\"),\n\t\t\tCreateOption:       pulumi.String(\"Empty\"),\n\t\t\tDiskSizeGb:         pulumi.Int(1),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewManagedDisk(ctx, \"copy\", \u0026compute.ManagedDiskArgs{\n\t\t\tLocation:           pulumi.String(\"West US 2\"),\n\t\t\tResourceGroupName:  example.Name,\n\t\t\tStorageAccountType: pulumi.String(\"Standard_LRS\"),\n\t\t\tCreateOption:       pulumi.String(\"Copy\"),\n\t\t\tSourceResourceId:   source.ID(),\n\t\t\tDiskSizeGb:         pulumi.Int(1),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nManaged Disks can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/managedDisk:ManagedDisk example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.compute/disks/manageddisk1\n```\n\n ",
      "inputProperties": {
        "createOption": {
          "description": "The method to use when creating the managed disk. Changing this forces a new resource to be created. Possible values include `Import` (Import a VHD file in to the managed disk (VHD specified with `source_uri`), `Empty` (Create an empty managed disk), `Copy` (Copy an existing managed disk or snapshot, specified with `source_resource_id`), `FromImage` (Copy a Platform Image, specified with `image_reference_id`), `Restore` (Set by Azure Backup or Site Recovery on a restored disk, specified with `source_resource_id`).\n",
          "type": "string"
        },
        "diskAccessId": {
          "description": "The ID of the disk access resource for using private endpoints on disks.\n",
          "type": "string"
        },
        "diskEncryptionSetId": {
          "description": "The ID of a Disk Encryption Set which should be used to encrypt this Managed Disk.\n",
          "type": "string"
        },
        "diskIopsReadWrite": {
          "description": "The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes.\n",
          "type": "integer"
        },
        "diskMbpsReadWrite": {
          "description": "The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second.\n",
          "type": "integer"
        },
        "diskSizeGb": {
          "description": "Specifies the size of the managed disk to create in gigabytes. If `create_option` is `Copy` or `FromImage`, then the value must be equal to or greater than the source's size. The size can only be increased.\n",
          "type": "integer"
        },
        "encryptionSettings": {
          "$ref": "#/types/azure:compute/ManagedDiskEncryptionSettings:ManagedDiskEncryptionSettings",
          "description": "A `encryption_settings` block as defined below.\n"
        },
        "imageReferenceId": {
          "description": "ID of an existing platform/marketplace disk image to copy when `create_option` is `FromImage`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specified the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Managed Disk. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkAccessPolicy": {
          "description": "Policy for accessing the disk via network. Allowed values are `AllowAll`, `AllowPrivate`, and `DenyAll`.\n",
          "type": "string"
        },
        "osType": {
          "description": "Specify a value when the source of an `Import` or `Copy` operation targets a source that contains an operating system. Valid values are `Linux` or `Windows`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Managed Disk should exist.\n",
          "type": "string"
        },
        "sourceResourceId": {
          "description": "The ID of an existing Managed Disk to copy `create_option` is `Copy` or the recovery point to restore when `create_option` is `Restore`\n",
          "type": "string"
        },
        "sourceUri": {
          "description": "URI to a valid VHD file to be used when `create_option` is `Import`.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account where the `source_uri` is located. Required when `create_option` is set to `Import`.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountType": {
          "description": "The type of storage to use for the managed disk. Possible values are `Standard_LRS`, `Premium_LRS`, `StandardSSD_LRS` or `UltraSSD_LRS`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "tier": {
          "description": "The disk performance tier to use. Possible values are documented [here](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-change-performance). This feature is currently supported only for premium SSDs.\n",
          "type": "string"
        },
        "zones": {
          "description": "A collection containing the availability zone to allocate the Managed Disk in.\n",
          "type": "string"
        }
      },
      "properties": {
        "createOption": {
          "description": "The method to use when creating the managed disk. Changing this forces a new resource to be created. Possible values include `Import` (Import a VHD file in to the managed disk (VHD specified with `source_uri`), `Empty` (Create an empty managed disk), `Copy` (Copy an existing managed disk or snapshot, specified with `source_resource_id`), `FromImage` (Copy a Platform Image, specified with `image_reference_id`), `Restore` (Set by Azure Backup or Site Recovery on a restored disk, specified with `source_resource_id`).\n",
          "type": "string"
        },
        "diskAccessId": {
          "description": "The ID of the disk access resource for using private endpoints on disks.\n",
          "type": "string"
        },
        "diskEncryptionSetId": {
          "description": "The ID of a Disk Encryption Set which should be used to encrypt this Managed Disk.\n",
          "type": "string"
        },
        "diskIopsReadWrite": {
          "description": "The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes.\n",
          "type": "integer"
        },
        "diskMbpsReadWrite": {
          "description": "The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second.\n",
          "type": "integer"
        },
        "diskSizeGb": {
          "description": "Specifies the size of the managed disk to create in gigabytes. If `create_option` is `Copy` or `FromImage`, then the value must be equal to or greater than the source's size. The size can only be increased.\n",
          "type": "integer"
        },
        "encryptionSettings": {
          "$ref": "#/types/azure:compute/ManagedDiskEncryptionSettings:ManagedDiskEncryptionSettings",
          "description": "A `encryption_settings` block as defined below.\n"
        },
        "imageReferenceId": {
          "description": "ID of an existing platform/marketplace disk image to copy when `create_option` is `FromImage`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specified the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Managed Disk. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkAccessPolicy": {
          "description": "Policy for accessing the disk via network. Allowed values are `AllowAll`, `AllowPrivate`, and `DenyAll`.\n",
          "type": "string"
        },
        "osType": {
          "description": "Specify a value when the source of an `Import` or `Copy` operation targets a source that contains an operating system. Valid values are `Linux` or `Windows`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Managed Disk should exist.\n",
          "type": "string"
        },
        "sourceResourceId": {
          "description": "The ID of an existing Managed Disk to copy `create_option` is `Copy` or the recovery point to restore when `create_option` is `Restore`\n",
          "type": "string"
        },
        "sourceUri": {
          "description": "URI to a valid VHD file to be used when `create_option` is `Import`.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account where the `source_uri` is located. Required when `create_option` is set to `Import`.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountType": {
          "description": "The type of storage to use for the managed disk. Possible values are `Standard_LRS`, `Premium_LRS`, `StandardSSD_LRS` or `UltraSSD_LRS`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "tier": {
          "description": "The disk performance tier to use. Possible values are documented [here](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-change-performance). This feature is currently supported only for premium SSDs.\n",
          "type": "string"
        },
        "zones": {
          "description": "A collection containing the availability zone to allocate the Managed Disk in.\n",
          "type": "string"
        }
      },
      "required": [
        "createOption",
        "diskIopsReadWrite",
        "diskMbpsReadWrite",
        "diskSizeGb",
        "location",
        "name",
        "resourceGroupName",
        "sourceUri",
        "storageAccountType",
        "tier"
      ],
      "requiredInputs": [
        "createOption",
        "resourceGroupName",
        "storageAccountType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ManagedDisk resources.\n",
        "properties": {
          "createOption": {
            "description": "The method to use when creating the managed disk. Changing this forces a new resource to be created. Possible values include `Import` (Import a VHD file in to the managed disk (VHD specified with `source_uri`), `Empty` (Create an empty managed disk), `Copy` (Copy an existing managed disk or snapshot, specified with `source_resource_id`), `FromImage` (Copy a Platform Image, specified with `image_reference_id`), `Restore` (Set by Azure Backup or Site Recovery on a restored disk, specified with `source_resource_id`).\n",
            "type": "string"
          },
          "diskAccessId": {
            "description": "The ID of the disk access resource for using private endpoints on disks.\n",
            "type": "string"
          },
          "diskEncryptionSetId": {
            "description": "The ID of a Disk Encryption Set which should be used to encrypt this Managed Disk.\n",
            "type": "string"
          },
          "diskIopsReadWrite": {
            "description": "The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes.\n",
            "type": "integer"
          },
          "diskMbpsReadWrite": {
            "description": "The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second.\n",
            "type": "integer"
          },
          "diskSizeGb": {
            "description": "Specifies the size of the managed disk to create in gigabytes. If `create_option` is `Copy` or `FromImage`, then the value must be equal to or greater than the source's size. The size can only be increased.\n",
            "type": "integer"
          },
          "encryptionSettings": {
            "$ref": "#/types/azure:compute/ManagedDiskEncryptionSettings:ManagedDiskEncryptionSettings",
            "description": "A `encryption_settings` block as defined below.\n"
          },
          "imageReferenceId": {
            "description": "ID of an existing platform/marketplace disk image to copy when `create_option` is `FromImage`.\n",
            "type": "string"
          },
          "location": {
            "description": "Specified the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Managed Disk. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkAccessPolicy": {
            "description": "Policy for accessing the disk via network. Allowed values are `AllowAll`, `AllowPrivate`, and `DenyAll`.\n",
            "type": "string"
          },
          "osType": {
            "description": "Specify a value when the source of an `Import` or `Copy` operation targets a source that contains an operating system. Valid values are `Linux` or `Windows`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Managed Disk should exist.\n",
            "type": "string"
          },
          "sourceResourceId": {
            "description": "The ID of an existing Managed Disk to copy `create_option` is `Copy` or the recovery point to restore when `create_option` is `Restore`\n",
            "type": "string"
          },
          "sourceUri": {
            "description": "URI to a valid VHD file to be used when `create_option` is `Import`.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of the Storage Account where the `source_uri` is located. Required when `create_option` is set to `Import`.  Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageAccountType": {
            "description": "The type of storage to use for the managed disk. Possible values are `Standard_LRS`, `Premium_LRS`, `StandardSSD_LRS` or `UltraSSD_LRS`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "tier": {
            "description": "The disk performance tier to use. Possible values are documented [here](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-change-performance). This feature is currently supported only for premium SSDs.\n",
            "type": "string"
          },
          "zones": {
            "description": "A collection containing the availability zone to allocate the Managed Disk in.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/orchestratedVirtualMachineScaleSet:OrchestratedVirtualMachineScaleSet": {
      "description": "Manages an Orchestrated Virtual Machine Scale Set.\n\n\u003e **Note:** Orchestrated Virtual Machine Scale Sets are in Public Preview and it may receive breaking changes - [more details can be found in the Azure Documentation](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/orchestration-modes).\n\n\u003e **Note:** Azure is planning to deprecate the `single_placement_group` attribute in the Orchestrated Virtual Machine Scale Set starting from api-version `2019-12-01` and there will be a breaking change in the Orchestrated Virtual Machine Scale Set.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleOrchestratedVirtualMachineScaleSet = new azure.compute.OrchestratedVirtualMachineScaleSet(\"exampleOrchestratedVirtualMachineScaleSet\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    platformFaultDomainCount: 1,\n    zones: [\"1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_orchestrated_virtual_machine_scale_set = azure.compute.OrchestratedVirtualMachineScaleSet(\"exampleOrchestratedVirtualMachineScaleSet\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    platform_fault_domain_count=1,\n    zones=[\"1\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleOrchestratedVirtualMachineScaleSet = new Azure.Compute.OrchestratedVirtualMachineScaleSet(\"exampleOrchestratedVirtualMachineScaleSet\", new Azure.Compute.OrchestratedVirtualMachineScaleSetArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PlatformFaultDomainCount = 1,\n            Zones = \n            {\n                \"1\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewOrchestratedVirtualMachineScaleSet(ctx, \"exampleOrchestratedVirtualMachineScaleSet\", \u0026compute.OrchestratedVirtualMachineScaleSetArgs{\n\t\t\tLocation:                 exampleResourceGroup.Location,\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tPlatformFaultDomainCount: pulumi.Int(1),\n\t\t\tZones: pulumi.String{\n\t\t\t\t\"1\",\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn Orchestrated Virtual Machine Scale Set can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/orchestratedVirtualMachineScaleSet:OrchestratedVirtualMachineScaleSet example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/Microsoft.Compute/virtualMachineScaleSets/scaleset1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The Azure location where the Orchestrated Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Orchestrated Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "platformFaultDomainCount": {
          "description": "Specifies the number of fault domains that are used by this Orchestrated Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group which the Virtual Machine should be assigned to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Orchestrated Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "singlePlacementGroup": {
          "description": "Should the Orchestrated Virtual Machine Scale Set use single placement group? Defaults to `false`.\n",
          "type": "boolean"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to this Orchestrated Virtual Machine Scale Set.\n",
          "type": "object"
        },
        "zones": {
          "description": "A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "location": {
          "description": "The Azure location where the Orchestrated Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Orchestrated Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "platformFaultDomainCount": {
          "description": "Specifies the number of fault domains that are used by this Orchestrated Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group which the Virtual Machine should be assigned to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Orchestrated Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "singlePlacementGroup": {
          "description": "Should the Orchestrated Virtual Machine Scale Set use single placement group? Defaults to `false`.\n",
          "type": "boolean"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to this Orchestrated Virtual Machine Scale Set.\n",
          "type": "object"
        },
        "uniqueId": {
          "description": "The Unique ID for the Orchestrated Virtual Machine Scale Set.\n",
          "type": "string"
        },
        "zones": {
          "description": "A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "platformFaultDomainCount",
        "resourceGroupName",
        "uniqueId"
      ],
      "requiredInputs": [
        "platformFaultDomainCount",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering OrchestratedVirtualMachineScaleSet resources.\n",
        "properties": {
          "location": {
            "description": "The Azure location where the Orchestrated Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Orchestrated Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "platformFaultDomainCount": {
            "description": "Specifies the number of fault domains that are used by this Orchestrated Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "proximityPlacementGroupId": {
            "description": "The ID of the Proximity Placement Group which the Virtual Machine should be assigned to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Orchestrated Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "singlePlacementGroup": {
            "description": "Should the Orchestrated Virtual Machine Scale Set use single placement group? Defaults to `false`.\n",
            "type": "boolean"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to this Orchestrated Virtual Machine Scale Set.\n",
            "type": "object"
          },
          "uniqueId": {
            "description": "The Unique ID for the Orchestrated Virtual Machine Scale Set.\n",
            "type": "string"
          },
          "zones": {
            "description": "A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/scaleSet:ScaleSet": {
      "description": "Manages a virtual machine scale set.\n\n## Disclaimers\n\n\u003e **Note:** The `azure.compute.ScaleSet` resource has been superseded by the `azure.compute.LinuxVirtualMachineScaleSet`](linux_virtual_machine_scale_set.html) and `azure.compute.WindowsVirtualMachineScaleSet` resources. The existing `azure.compute.ScaleSet` resource will continue to be available throughout the 2.x releases however is in a feature-frozen state to maintain compatibility - new functionality will instead be added to the `azure.compute.LinuxVirtualMachineScaleSet` and `azure.compute.WindowsVirtualMachineScaleSet` resources.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### With Managed Disks (Recommended)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * from \"fs\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n    domainNameLabel: exampleResourceGroup.name,\n    tags: {\n        environment: \"staging\",\n    },\n});\nconst exampleLoadBalancer = new azure.lb.LoadBalancer(\"exampleLoadBalancer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    frontendIpConfigurations: [{\n        name: \"PublicIPAddress\",\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst bpepool = new azure.lb.BackendAddressPool(\"bpepool\", {\n    resourceGroupName: exampleResourceGroup.name,\n    loadbalancerId: exampleLoadBalancer.id,\n});\nconst lbnatpool = new azure.lb.NatPool(\"lbnatpool\", {\n    resourceGroupName: exampleResourceGroup.name,\n    loadbalancerId: exampleLoadBalancer.id,\n    protocol: \"Tcp\",\n    frontendPortStart: 50000,\n    frontendPortEnd: 50119,\n    backendPort: 22,\n    frontendIpConfigurationName: \"PublicIPAddress\",\n});\nconst exampleProbe = new azure.lb.Probe(\"exampleProbe\", {\n    resourceGroupName: exampleResourceGroup.name,\n    loadbalancerId: exampleLoadBalancer.id,\n    protocol: \"Http\",\n    requestPath: \"/health\",\n    port: 8080,\n});\nconst exampleScaleSet = new azure.compute.ScaleSet(\"exampleScaleSet\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    automaticOsUpgrade: true,\n    upgradePolicyMode: \"Rolling\",\n    rollingUpgradePolicy: {\n        maxBatchInstancePercent: 20,\n        maxUnhealthyInstancePercent: 20,\n        maxUnhealthyUpgradedInstancePercent: 5,\n        pauseTimeBetweenBatches: \"PT0S\",\n    },\n    healthProbeId: exampleProbe.id,\n    sku: {\n        name: \"Standard_F2\",\n        tier: \"Standard\",\n        capacity: 2,\n    },\n    storageProfileImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04-LTS\",\n        version: \"latest\",\n    },\n    storageProfileOsDisk: {\n        name: \"\",\n        caching: \"ReadWrite\",\n        createOption: \"FromImage\",\n        managedDiskType: \"Standard_LRS\",\n    },\n    storageProfileDataDisks: [{\n        lun: 0,\n        caching: \"ReadWrite\",\n        createOption: \"Empty\",\n        diskSizeGb: 10,\n    }],\n    osProfile: {\n        computerNamePrefix: \"testvm\",\n        adminUsername: \"myadmin\",\n    },\n    osProfileLinuxConfig: {\n        disablePasswordAuthentication: true,\n        sshKeys: [{\n            path: \"/home/myadmin/.ssh/authorized_keys\",\n            keyData: fs.readFileSync(\"~/.ssh/demo_key.pub\"),\n        }],\n    },\n    networkProfiles: [{\n        name: \"mynetworkprofile\",\n        primary: true,\n        ipConfigurations: [{\n            name: \"TestIPConfiguration\",\n            primary: true,\n            subnetId: exampleSubnet.id,\n            loadBalancerBackendAddressPoolIds: [bpepool.id],\n            loadBalancerInboundNatRulesIds: [lbnatpool.id],\n        }],\n    }],\n    tags: {\n        environment: \"staging\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\",\n    domain_name_label=example_resource_group.name,\n    tags={\n        \"environment\": \"staging\",\n    })\nexample_load_balancer = azure.lb.LoadBalancer(\"exampleLoadBalancer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    frontend_ip_configurations=[azure.lb.LoadBalancerFrontendIpConfigurationArgs(\n        name=\"PublicIPAddress\",\n        public_ip_address_id=example_public_ip.id,\n    )])\nbpepool = azure.lb.BackendAddressPool(\"bpepool\",\n    resource_group_name=example_resource_group.name,\n    loadbalancer_id=example_load_balancer.id)\nlbnatpool = azure.lb.NatPool(\"lbnatpool\",\n    resource_group_name=example_resource_group.name,\n    loadbalancer_id=example_load_balancer.id,\n    protocol=\"Tcp\",\n    frontend_port_start=50000,\n    frontend_port_end=50119,\n    backend_port=22,\n    frontend_ip_configuration_name=\"PublicIPAddress\")\nexample_probe = azure.lb.Probe(\"exampleProbe\",\n    resource_group_name=example_resource_group.name,\n    loadbalancer_id=example_load_balancer.id,\n    protocol=\"Http\",\n    request_path=\"/health\",\n    port=8080)\nexample_scale_set = azure.compute.ScaleSet(\"exampleScaleSet\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    automatic_os_upgrade=True,\n    upgrade_policy_mode=\"Rolling\",\n    rolling_upgrade_policy=azure.compute.ScaleSetRollingUpgradePolicyArgs(\n        max_batch_instance_percent=20,\n        max_unhealthy_instance_percent=20,\n        max_unhealthy_upgraded_instance_percent=5,\n        pause_time_between_batches=\"PT0S\",\n    ),\n    health_probe_id=example_probe.id,\n    sku=azure.compute.ScaleSetSkuArgs(\n        name=\"Standard_F2\",\n        tier=\"Standard\",\n        capacity=2,\n    ),\n    storage_profile_image_reference=azure.compute.ScaleSetStorageProfileImageReferenceArgs(\n        publisher=\"Canonical\",\n        offer=\"UbuntuServer\",\n        sku=\"16.04-LTS\",\n        version=\"latest\",\n    ),\n    storage_profile_os_disk=azure.compute.ScaleSetStorageProfileOsDiskArgs(\n        name=\"\",\n        caching=\"ReadWrite\",\n        create_option=\"FromImage\",\n        managed_disk_type=\"Standard_LRS\",\n    ),\n    storage_profile_data_disks=[azure.compute.ScaleSetStorageProfileDataDiskArgs(\n        lun=0,\n        caching=\"ReadWrite\",\n        create_option=\"Empty\",\n        disk_size_gb=10,\n    )],\n    os_profile=azure.compute.ScaleSetOsProfileArgs(\n        computer_name_prefix=\"testvm\",\n        admin_username=\"myadmin\",\n    ),\n    os_profile_linux_config=azure.compute.ScaleSetOsProfileLinuxConfigArgs(\n        disable_password_authentication=True,\n        ssh_keys=[azure.compute.ScaleSetOsProfileLinuxConfigSshKeyArgs(\n            path=\"/home/myadmin/.ssh/authorized_keys\",\n            key_data=(lambda path: open(path).read())(\"~/.ssh/demo_key.pub\"),\n        )],\n    ),\n    network_profiles=[azure.compute.ScaleSetNetworkProfileArgs(\n        name=\"mynetworkprofile\",\n        primary=True,\n        ip_configurations=[{\n            \"name\": \"TestIPConfiguration\",\n            \"primary\": True,\n            \"subnet_id\": example_subnet.id,\n            \"loadBalancerBackendAddressPoolIds\": [bpepool.id],\n            \"loadBalancerInboundNatRulesIds\": [lbnatpool.id],\n        }],\n    )],\n    tags={\n        \"environment\": \"staging\",\n    })\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n            DomainNameLabel = exampleResourceGroup.Name,\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n        var exampleLoadBalancer = new Azure.Lb.LoadBalancer(\"exampleLoadBalancer\", new Azure.Lb.LoadBalancerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            FrontendIpConfigurations = \n            {\n                new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs\n                {\n                    Name = \"PublicIPAddress\",\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var bpepool = new Azure.Lb.BackendAddressPool(\"bpepool\", new Azure.Lb.BackendAddressPoolArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            LoadbalancerId = exampleLoadBalancer.Id,\n        });\n        var lbnatpool = new Azure.Lb.NatPool(\"lbnatpool\", new Azure.Lb.NatPoolArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            LoadbalancerId = exampleLoadBalancer.Id,\n            Protocol = \"Tcp\",\n            FrontendPortStart = 50000,\n            FrontendPortEnd = 50119,\n            BackendPort = 22,\n            FrontendIpConfigurationName = \"PublicIPAddress\",\n        });\n        var exampleProbe = new Azure.Lb.Probe(\"exampleProbe\", new Azure.Lb.ProbeArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            LoadbalancerId = exampleLoadBalancer.Id,\n            Protocol = \"Http\",\n            RequestPath = \"/health\",\n            Port = 8080,\n        });\n        var exampleScaleSet = new Azure.Compute.ScaleSet(\"exampleScaleSet\", new Azure.Compute.ScaleSetArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AutomaticOsUpgrade = true,\n            UpgradePolicyMode = \"Rolling\",\n            RollingUpgradePolicy = new Azure.Compute.Inputs.ScaleSetRollingUpgradePolicyArgs\n            {\n                MaxBatchInstancePercent = 20,\n                MaxUnhealthyInstancePercent = 20,\n                MaxUnhealthyUpgradedInstancePercent = 5,\n                PauseTimeBetweenBatches = \"PT0S\",\n            },\n            HealthProbeId = exampleProbe.Id,\n            Sku = new Azure.Compute.Inputs.ScaleSetSkuArgs\n            {\n                Name = \"Standard_F2\",\n                Tier = \"Standard\",\n                Capacity = 2,\n            },\n            StorageProfileImageReference = new Azure.Compute.Inputs.ScaleSetStorageProfileImageReferenceArgs\n            {\n                Publisher = \"Canonical\",\n                Offer = \"UbuntuServer\",\n                Sku = \"16.04-LTS\",\n                Version = \"latest\",\n            },\n            StorageProfileOsDisk = new Azure.Compute.Inputs.ScaleSetStorageProfileOsDiskArgs\n            {\n                Name = \"\",\n                Caching = \"ReadWrite\",\n                CreateOption = \"FromImage\",\n                ManagedDiskType = \"Standard_LRS\",\n            },\n            StorageProfileDataDisks = \n            {\n                new Azure.Compute.Inputs.ScaleSetStorageProfileDataDiskArgs\n                {\n                    Lun = 0,\n                    Caching = \"ReadWrite\",\n                    CreateOption = \"Empty\",\n                    DiskSizeGb = 10,\n                },\n            },\n            OsProfile = new Azure.Compute.Inputs.ScaleSetOsProfileArgs\n            {\n                ComputerNamePrefix = \"testvm\",\n                AdminUsername = \"myadmin\",\n            },\n            OsProfileLinuxConfig = new Azure.Compute.Inputs.ScaleSetOsProfileLinuxConfigArgs\n            {\n                DisablePasswordAuthentication = true,\n                SshKeys = \n                {\n                    new Azure.Compute.Inputs.ScaleSetOsProfileLinuxConfigSshKeyArgs\n                    {\n                        Path = \"/home/myadmin/.ssh/authorized_keys\",\n                        KeyData = File.ReadAllText(\"~/.ssh/demo_key.pub\"),\n                    },\n                },\n            },\n            NetworkProfiles = \n            {\n                new Azure.Compute.Inputs.ScaleSetNetworkProfileArgs\n                {\n                    Name = \"mynetworkprofile\",\n                    Primary = true,\n                    IpConfigurations = \n                    {\n                        new Azure.Compute.Inputs.ScaleSetNetworkProfileIpConfigurationArgs\n                        {\n                            Name = \"TestIPConfiguration\",\n                            Primary = true,\n                            SubnetId = exampleSubnet.Id,\n                            LoadBalancerBackendAddressPoolIds = \n                            {\n                                bpepool.Id,\n                            },\n                            LoadBalancerInboundNatRulesIds = \n                            {\n                                lbnatpool.Id,\n                            },\n                        },\n                    },\n                },\n            },\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n    }\n\n}\n```\n\n{{% /example %}}\n{{% example %}}\n### With Unmanaged Disks\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * from \"fs\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: \"westus\",\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    tags: {\n        environment: \"staging\",\n    },\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleScaleSet = new azure.compute.ScaleSet(\"exampleScaleSet\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    upgradePolicyMode: \"Manual\",\n    sku: {\n        name: \"Standard_F2\",\n        tier: \"Standard\",\n        capacity: 2,\n    },\n    osProfile: {\n        computerNamePrefix: \"testvm\",\n        adminUsername: \"myadmin\",\n    },\n    osProfileLinuxConfig: {\n        disablePasswordAuthentication: true,\n        sshKeys: [{\n            path: \"/home/myadmin/.ssh/authorized_keys\",\n            keyData: fs.readFileSync(\"~/.ssh/demo_key.pub\"),\n        }],\n    },\n    networkProfiles: [{\n        name: \"TestNetworkProfile\",\n        primary: true,\n        ipConfigurations: [{\n            name: \"TestIPConfiguration\",\n            primary: true,\n            subnetId: exampleSubnet.id,\n        }],\n    }],\n    storageProfileOsDisk: {\n        name: \"osDiskProfile\",\n        caching: \"ReadWrite\",\n        createOption: \"FromImage\",\n        vhdContainers: [pulumi.interpolate`${exampleAccount.primaryBlobEndpoint}${exampleContainer.name}`],\n    },\n    storageProfileImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04-LTS\",\n        version: \"latest\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=\"West US\",\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=\"westus\",\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    tags={\n        \"environment\": \"staging\",\n    })\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_scale_set = azure.compute.ScaleSet(\"exampleScaleSet\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    upgrade_policy_mode=\"Manual\",\n    sku=azure.compute.ScaleSetSkuArgs(\n        name=\"Standard_F2\",\n        tier=\"Standard\",\n        capacity=2,\n    ),\n    os_profile=azure.compute.ScaleSetOsProfileArgs(\n        computer_name_prefix=\"testvm\",\n        admin_username=\"myadmin\",\n    ),\n    os_profile_linux_config=azure.compute.ScaleSetOsProfileLinuxConfigArgs(\n        disable_password_authentication=True,\n        ssh_keys=[azure.compute.ScaleSetOsProfileLinuxConfigSshKeyArgs(\n            path=\"/home/myadmin/.ssh/authorized_keys\",\n            key_data=(lambda path: open(path).read())(\"~/.ssh/demo_key.pub\"),\n        )],\n    ),\n    network_profiles=[azure.compute.ScaleSetNetworkProfileArgs(\n        name=\"TestNetworkProfile\",\n        primary=True,\n        ip_configurations=[{\n            \"name\": \"TestIPConfiguration\",\n            \"primary\": True,\n            \"subnet_id\": example_subnet.id,\n        }],\n    )],\n    storage_profile_os_disk=azure.compute.ScaleSetStorageProfileOsDiskArgs(\n        name=\"osDiskProfile\",\n        caching=\"ReadWrite\",\n        create_option=\"FromImage\",\n        vhd_containers=[pulumi.Output.all(example_account.primary_blob_endpoint, example_container.name).apply(lambda primary_blob_endpoint, name: f\"{primary_blob_endpoint}{name}\")],\n    ),\n    storage_profile_image_reference=azure.compute.ScaleSetStorageProfileImageReferenceArgs(\n        publisher=\"Canonical\",\n        offer=\"UbuntuServer\",\n        sku=\"16.04-LTS\",\n        version=\"latest\",\n    ))\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = \"westus\",\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleScaleSet = new Azure.Compute.ScaleSet(\"exampleScaleSet\", new Azure.Compute.ScaleSetArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            UpgradePolicyMode = \"Manual\",\n            Sku = new Azure.Compute.Inputs.ScaleSetSkuArgs\n            {\n                Name = \"Standard_F2\",\n                Tier = \"Standard\",\n                Capacity = 2,\n            },\n            OsProfile = new Azure.Compute.Inputs.ScaleSetOsProfileArgs\n            {\n                ComputerNamePrefix = \"testvm\",\n                AdminUsername = \"myadmin\",\n            },\n            OsProfileLinuxConfig = new Azure.Compute.Inputs.ScaleSetOsProfileLinuxConfigArgs\n            {\n                DisablePasswordAuthentication = true,\n                SshKeys = \n                {\n                    new Azure.Compute.Inputs.ScaleSetOsProfileLinuxConfigSshKeyArgs\n                    {\n                        Path = \"/home/myadmin/.ssh/authorized_keys\",\n                        KeyData = File.ReadAllText(\"~/.ssh/demo_key.pub\"),\n                    },\n                },\n            },\n            NetworkProfiles = \n            {\n                new Azure.Compute.Inputs.ScaleSetNetworkProfileArgs\n                {\n                    Name = \"TestNetworkProfile\",\n                    Primary = true,\n                    IpConfigurations = \n                    {\n                        new Azure.Compute.Inputs.ScaleSetNetworkProfileIpConfigurationArgs\n                        {\n                            Name = \"TestIPConfiguration\",\n                            Primary = true,\n                            SubnetId = exampleSubnet.Id,\n                        },\n                    },\n                },\n            },\n            StorageProfileOsDisk = new Azure.Compute.Inputs.ScaleSetStorageProfileOsDiskArgs\n            {\n                Name = \"osDiskProfile\",\n                Caching = \"ReadWrite\",\n                CreateOption = \"FromImage\",\n                VhdContainers = \n                {\n                    Output.Tuple(exampleAccount.PrimaryBlobEndpoint, exampleContainer.Name).Apply(values =\u003e\n                    {\n                        var primaryBlobEndpoint = values.Item1;\n                        var name = values.Item2;\n                        return $\"{primaryBlobEndpoint}{name}\";\n                    }),\n                },\n            },\n            StorageProfileImageReference = new Azure.Compute.Inputs.ScaleSetStorageProfileImageReferenceArgs\n            {\n                Publisher = \"Canonical\",\n                Offer = \"UbuntuServer\",\n                Sku = \"16.04-LTS\",\n                Version = \"latest\",\n            },\n        });\n    }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n## Example of storage_profile_image_reference with id\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleImage = new azure.compute.Image(\"exampleImage\", {});\n// ...\nconst exampleScaleSet = new azure.compute.ScaleSet(\"exampleScaleSet\", {storageProfileImageReference: {\n    id: exampleImage.id,\n}});\n// ...\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_image = azure.compute.Image(\"exampleImage\")\n# ...\nexample_scale_set = azure.compute.ScaleSet(\"exampleScaleSet\", storage_profile_image_reference=azure.compute.ScaleSetStorageProfileImageReferenceArgs(\n    id=example_image.id,\n))\n# ...\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleImage = new Azure.Compute.Image(\"exampleImage\", new Azure.Compute.ImageArgs\n        {\n        });\n        // ...\n        var exampleScaleSet = new Azure.Compute.ScaleSet(\"exampleScaleSet\", new Azure.Compute.ScaleSetArgs\n        {\n            StorageProfileImageReference = new Azure.Compute.Inputs.ScaleSetStorageProfileImageReferenceArgs\n            {\n                Id = exampleImage.Id,\n            },\n        });\n        // ...\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleImage, err := compute.NewImage(ctx, \"exampleImage\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewScaleSet(ctx, \"exampleScaleSet\", \u0026compute.ScaleSetArgs{\n\t\t\tStorageProfileImageReference: \u0026compute.ScaleSetStorageProfileImageReferenceArgs{\n\t\t\t\tId: exampleImage.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\n\n## Import\n\nVirtual Machine Scale Sets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/scaleSet:ScaleSet scaleset1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/virtualMachineScaleSets/scaleset1\n```\n\n ",
      "inputProperties": {
        "automaticOsUpgrade": {
          "description": "Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when `upgrade_policy_mode` is set to `Rolling`. Defaults to `false`.\n",
          "type": "boolean"
        },
        "bootDiagnostics": {
          "$ref": "#/types/azure:compute/ScaleSetBootDiagnostics:ScaleSetBootDiagnostics",
          "description": "A boot diagnostics profile block as referenced below.\n"
        },
        "evictionPolicy": {
          "description": "Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are `Deallocate` and `Delete`.\n",
          "type": "string"
        },
        "extensions": {
          "description": "Can be specified multiple times to add extension profiles to the scale set. Each `extension` block supports the fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:compute/ScaleSetExtension:ScaleSetExtension"
          },
          "type": "array"
        },
        "healthProbeId": {
          "description": "Specifies the identifier for the load balancer health probe. Required when using `Rolling` as your `upgrade_policy_mode`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:compute/ScaleSetIdentity:ScaleSetIdentity"
        },
        "licenseType": {
          "description": "Specifies the Windows OS license type. If supplied, the only allowed values are `Windows_Client` and `Windows_Server`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkProfiles": {
          "description": "A collection of network profile block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:compute/ScaleSetNetworkProfile:ScaleSetNetworkProfile"
          },
          "type": "array"
        },
        "osProfile": {
          "$ref": "#/types/azure:compute/ScaleSetOsProfile:ScaleSetOsProfile",
          "description": "A Virtual Machine OS Profile block as documented below.\n"
        },
        "osProfileLinuxConfig": {
          "$ref": "#/types/azure:compute/ScaleSetOsProfileLinuxConfig:ScaleSetOsProfileLinuxConfig",
          "description": "A Linux config block as documented below.\n"
        },
        "osProfileSecrets": {
          "description": "A collection of Secret blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:compute/ScaleSetOsProfileSecret:ScaleSetOsProfileSecret"
          },
          "type": "array"
        },
        "osProfileWindowsConfig": {
          "$ref": "#/types/azure:compute/ScaleSetOsProfileWindowsConfig:ScaleSetOsProfileWindowsConfig",
          "description": "A Windows config block as documented below.\n"
        },
        "overprovision": {
          "description": "Specifies whether the virtual machine scale set should be overprovisioned. Defaults to `true`.\n",
          "type": "boolean"
        },
        "plan": {
          "$ref": "#/types/azure:compute/ScaleSetPlan:ScaleSetPlan",
          "description": "A plan block as documented below.\n"
        },
        "priority": {
          "description": "Specifies the priority for the Virtual Machines in the Scale Set. Defaults to `Regular`. Possible values are `Low` and `Regular`.\n",
          "type": "string"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rollingUpgradePolicy": {
          "$ref": "#/types/azure:compute/ScaleSetRollingUpgradePolicy:ScaleSetRollingUpgradePolicy",
          "description": "A `rolling_upgrade_policy` block as defined below. This is only applicable when the `upgrade_policy_mode` is `Rolling`.\n"
        },
        "singlePlacementGroup": {
          "description": "Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Default is true. Changing this forces a new resource to be created. See [documentation](http://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-placement-groups) for more information.\n",
          "type": "boolean"
        },
        "sku": {
          "$ref": "#/types/azure:compute/ScaleSetSku:ScaleSetSku",
          "description": "A sku block as documented below.\n"
        },
        "storageProfileDataDisks": {
          "description": "A storage profile data disk block as documented below\n",
          "items": {
            "$ref": "#/types/azure:compute/ScaleSetStorageProfileDataDisk:ScaleSetStorageProfileDataDisk"
          },
          "type": "array"
        },
        "storageProfileImageReference": {
          "$ref": "#/types/azure:compute/ScaleSetStorageProfileImageReference:ScaleSetStorageProfileImageReference",
          "description": "A storage profile image reference block as documented below.\n"
        },
        "storageProfileOsDisk": {
          "$ref": "#/types/azure:compute/ScaleSetStorageProfileOsDisk:ScaleSetStorageProfileOsDisk",
          "description": "A storage profile os disk block as documented below\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "upgradePolicyMode": {
          "description": "Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, `Rolling`, `Manual`, or `Automatic`. When choosing `Rolling`, you will need to set a health probe.\n",
          "type": "string"
        },
        "zones": {
          "description": "A collection of availability zones to spread the Virtual Machines over.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "automaticOsUpgrade": {
          "description": "Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when `upgrade_policy_mode` is set to `Rolling`. Defaults to `false`.\n",
          "type": "boolean"
        },
        "bootDiagnostics": {
          "$ref": "#/types/azure:compute/ScaleSetBootDiagnostics:ScaleSetBootDiagnostics",
          "description": "A boot diagnostics profile block as referenced below.\n"
        },
        "evictionPolicy": {
          "description": "Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are `Deallocate` and `Delete`.\n",
          "type": "string"
        },
        "extensions": {
          "description": "Can be specified multiple times to add extension profiles to the scale set. Each `extension` block supports the fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:compute/ScaleSetExtension:ScaleSetExtension"
          },
          "type": "array"
        },
        "healthProbeId": {
          "description": "Specifies the identifier for the load balancer health probe. Required when using `Rolling` as your `upgrade_policy_mode`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:compute/ScaleSetIdentity:ScaleSetIdentity"
        },
        "licenseType": {
          "description": "Specifies the Windows OS license type. If supplied, the only allowed values are `Windows_Client` and `Windows_Server`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkProfiles": {
          "description": "A collection of network profile block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:compute/ScaleSetNetworkProfile:ScaleSetNetworkProfile"
          },
          "type": "array"
        },
        "osProfile": {
          "$ref": "#/types/azure:compute/ScaleSetOsProfile:ScaleSetOsProfile",
          "description": "A Virtual Machine OS Profile block as documented below.\n"
        },
        "osProfileLinuxConfig": {
          "$ref": "#/types/azure:compute/ScaleSetOsProfileLinuxConfig:ScaleSetOsProfileLinuxConfig",
          "description": "A Linux config block as documented below.\n"
        },
        "osProfileSecrets": {
          "description": "A collection of Secret blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:compute/ScaleSetOsProfileSecret:ScaleSetOsProfileSecret"
          },
          "type": "array"
        },
        "osProfileWindowsConfig": {
          "$ref": "#/types/azure:compute/ScaleSetOsProfileWindowsConfig:ScaleSetOsProfileWindowsConfig",
          "description": "A Windows config block as documented below.\n"
        },
        "overprovision": {
          "description": "Specifies whether the virtual machine scale set should be overprovisioned. Defaults to `true`.\n",
          "type": "boolean"
        },
        "plan": {
          "$ref": "#/types/azure:compute/ScaleSetPlan:ScaleSetPlan",
          "description": "A plan block as documented below.\n"
        },
        "priority": {
          "description": "Specifies the priority for the Virtual Machines in the Scale Set. Defaults to `Regular`. Possible values are `Low` and `Regular`.\n",
          "type": "string"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rollingUpgradePolicy": {
          "$ref": "#/types/azure:compute/ScaleSetRollingUpgradePolicy:ScaleSetRollingUpgradePolicy",
          "description": "A `rolling_upgrade_policy` block as defined below. This is only applicable when the `upgrade_policy_mode` is `Rolling`.\n"
        },
        "singlePlacementGroup": {
          "description": "Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Default is true. Changing this forces a new resource to be created. See [documentation](http://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-placement-groups) for more information.\n",
          "type": "boolean"
        },
        "sku": {
          "$ref": "#/types/azure:compute/ScaleSetSku:ScaleSetSku",
          "description": "A sku block as documented below.\n"
        },
        "storageProfileDataDisks": {
          "description": "A storage profile data disk block as documented below\n",
          "items": {
            "$ref": "#/types/azure:compute/ScaleSetStorageProfileDataDisk:ScaleSetStorageProfileDataDisk"
          },
          "type": "array"
        },
        "storageProfileImageReference": {
          "$ref": "#/types/azure:compute/ScaleSetStorageProfileImageReference:ScaleSetStorageProfileImageReference",
          "description": "A storage profile image reference block as documented below.\n"
        },
        "storageProfileOsDisk": {
          "$ref": "#/types/azure:compute/ScaleSetStorageProfileOsDisk:ScaleSetStorageProfileOsDisk",
          "description": "A storage profile os disk block as documented below\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "upgradePolicyMode": {
          "description": "Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, `Rolling`, `Manual`, or `Automatic`. When choosing `Rolling`, you will need to set a health probe.\n",
          "type": "string"
        },
        "zones": {
          "description": "A collection of availability zones to spread the Virtual Machines over.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "identity",
        "licenseType",
        "location",
        "name",
        "networkProfiles",
        "osProfile",
        "osProfileLinuxConfig",
        "resourceGroupName",
        "sku",
        "storageProfileImageReference",
        "storageProfileOsDisk",
        "upgradePolicyMode"
      ],
      "requiredInputs": [
        "networkProfiles",
        "osProfile",
        "resourceGroupName",
        "sku",
        "storageProfileOsDisk",
        "upgradePolicyMode"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ScaleSet resources.\n",
        "properties": {
          "automaticOsUpgrade": {
            "description": "Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when `upgrade_policy_mode` is set to `Rolling`. Defaults to `false`.\n",
            "type": "boolean"
          },
          "bootDiagnostics": {
            "$ref": "#/types/azure:compute/ScaleSetBootDiagnostics:ScaleSetBootDiagnostics",
            "description": "A boot diagnostics profile block as referenced below.\n"
          },
          "evictionPolicy": {
            "description": "Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are `Deallocate` and `Delete`.\n",
            "type": "string"
          },
          "extensions": {
            "description": "Can be specified multiple times to add extension profiles to the scale set. Each `extension` block supports the fields documented below.\n",
            "items": {
              "$ref": "#/types/azure:compute/ScaleSetExtension:ScaleSetExtension"
            },
            "type": "array"
          },
          "healthProbeId": {
            "description": "Specifies the identifier for the load balancer health probe. Required when using `Rolling` as your `upgrade_policy_mode`.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:compute/ScaleSetIdentity:ScaleSetIdentity"
          },
          "licenseType": {
            "description": "Specifies the Windows OS license type. If supplied, the only allowed values are `Windows_Client` and `Windows_Server`.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkProfiles": {
            "description": "A collection of network profile block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:compute/ScaleSetNetworkProfile:ScaleSetNetworkProfile"
            },
            "type": "array"
          },
          "osProfile": {
            "$ref": "#/types/azure:compute/ScaleSetOsProfile:ScaleSetOsProfile",
            "description": "A Virtual Machine OS Profile block as documented below.\n"
          },
          "osProfileLinuxConfig": {
            "$ref": "#/types/azure:compute/ScaleSetOsProfileLinuxConfig:ScaleSetOsProfileLinuxConfig",
            "description": "A Linux config block as documented below.\n"
          },
          "osProfileSecrets": {
            "description": "A collection of Secret blocks as documented below.\n",
            "items": {
              "$ref": "#/types/azure:compute/ScaleSetOsProfileSecret:ScaleSetOsProfileSecret"
            },
            "type": "array"
          },
          "osProfileWindowsConfig": {
            "$ref": "#/types/azure:compute/ScaleSetOsProfileWindowsConfig:ScaleSetOsProfileWindowsConfig",
            "description": "A Windows config block as documented below.\n"
          },
          "overprovision": {
            "description": "Specifies whether the virtual machine scale set should be overprovisioned. Defaults to `true`.\n",
            "type": "boolean"
          },
          "plan": {
            "$ref": "#/types/azure:compute/ScaleSetPlan:ScaleSetPlan",
            "description": "A plan block as documented below.\n"
          },
          "priority": {
            "description": "Specifies the priority for the Virtual Machines in the Scale Set. Defaults to `Regular`. Possible values are `Low` and `Regular`.\n",
            "type": "string"
          },
          "proximityPlacementGroupId": {
            "description": "The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "rollingUpgradePolicy": {
            "$ref": "#/types/azure:compute/ScaleSetRollingUpgradePolicy:ScaleSetRollingUpgradePolicy",
            "description": "A `rolling_upgrade_policy` block as defined below. This is only applicable when the `upgrade_policy_mode` is `Rolling`.\n"
          },
          "singlePlacementGroup": {
            "description": "Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Default is true. Changing this forces a new resource to be created. See [documentation](http://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-placement-groups) for more information.\n",
            "type": "boolean"
          },
          "sku": {
            "$ref": "#/types/azure:compute/ScaleSetSku:ScaleSetSku",
            "description": "A sku block as documented below.\n"
          },
          "storageProfileDataDisks": {
            "description": "A storage profile data disk block as documented below\n",
            "items": {
              "$ref": "#/types/azure:compute/ScaleSetStorageProfileDataDisk:ScaleSetStorageProfileDataDisk"
            },
            "type": "array"
          },
          "storageProfileImageReference": {
            "$ref": "#/types/azure:compute/ScaleSetStorageProfileImageReference:ScaleSetStorageProfileImageReference",
            "description": "A storage profile image reference block as documented below.\n"
          },
          "storageProfileOsDisk": {
            "$ref": "#/types/azure:compute/ScaleSetStorageProfileOsDisk:ScaleSetStorageProfileOsDisk",
            "description": "A storage profile os disk block as documented below\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "upgradePolicyMode": {
            "description": "Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, `Rolling`, `Manual`, or `Automatic`. When choosing `Rolling`, you will need to set a health probe.\n",
            "type": "string"
          },
          "zones": {
            "description": "A collection of availability zones to spread the Virtual Machines over.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/sharedImage:SharedImage": {
      "description": "Manages a Shared Image within a Shared Image Gallery.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSharedImageGallery = new azure.compute.SharedImageGallery(\"exampleSharedImageGallery\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    description: \"Shared images and things.\",\n    tags: {\n        Hello: \"There\",\n        World: \"Example\",\n    },\n});\nconst exampleSharedImage = new azure.compute.SharedImage(\"exampleSharedImage\", {\n    galleryName: exampleSharedImageGallery.name,\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    osType: \"Linux\",\n    identifier: {\n        publisher: \"PublisherName\",\n        offer: \"OfferName\",\n        sku: \"ExampleSku\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_shared_image_gallery = azure.compute.SharedImageGallery(\"exampleSharedImageGallery\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    description=\"Shared images and things.\",\n    tags={\n        \"Hello\": \"There\",\n        \"World\": \"Example\",\n    })\nexample_shared_image = azure.compute.SharedImage(\"exampleSharedImage\",\n    gallery_name=example_shared_image_gallery.name,\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    os_type=\"Linux\",\n    identifier=azure.compute.SharedImageIdentifierArgs(\n        publisher=\"PublisherName\",\n        offer=\"OfferName\",\n        sku=\"ExampleSku\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSharedImageGallery = new Azure.Compute.SharedImageGallery(\"exampleSharedImageGallery\", new Azure.Compute.SharedImageGalleryArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Description = \"Shared images and things.\",\n            Tags = \n            {\n                { \"Hello\", \"There\" },\n                { \"World\", \"Example\" },\n            },\n        });\n        var exampleSharedImage = new Azure.Compute.SharedImage(\"exampleSharedImage\", new Azure.Compute.SharedImageArgs\n        {\n            GalleryName = exampleSharedImageGallery.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            OsType = \"Linux\",\n            Identifier = new Azure.Compute.Inputs.SharedImageIdentifierArgs\n            {\n                Publisher = \"PublisherName\",\n                Offer = \"OfferName\",\n                Sku = \"ExampleSku\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSharedImageGallery, err := compute.NewSharedImageGallery(ctx, \"exampleSharedImageGallery\", \u0026compute.SharedImageGalleryArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tDescription:       pulumi.String(\"Shared images and things.\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Hello\": pulumi.String(\"There\"),\n\t\t\t\t\"World\": pulumi.String(\"Example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewSharedImage(ctx, \"exampleSharedImage\", \u0026compute.SharedImageArgs{\n\t\t\tGalleryName:       exampleSharedImageGallery.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tOsType:            pulumi.String(\"Linux\"),\n\t\t\tIdentifier: \u0026compute.SharedImageIdentifierArgs{\n\t\t\t\tPublisher: pulumi.String(\"PublisherName\"),\n\t\t\t\tOffer:     pulumi.String(\"OfferName\"),\n\t\t\t\tSku:       pulumi.String(\"ExampleSku\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nShared Images can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/sharedImage:SharedImage image1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/galleries/gallery1/images/image1\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "A description of this Shared Image.\n",
          "type": "string"
        },
        "eula": {
          "description": "The End User Licence Agreement for the Shared Image.\n",
          "type": "string"
        },
        "galleryName": {
          "description": "Specifies the name of the Shared Image Gallery in which this Shared Image should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "hyperVGeneration": {
          "description": "The generation of HyperV that the Virtual Machine used to create the Shared Image is based on. Possible values are `V1` and `V2`. Defaults to `V1`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "identifier": {
          "$ref": "#/types/azure:compute/SharedImageIdentifier:SharedImageIdentifier",
          "description": "An `identifier` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the Shared Image Gallery exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Shared Image. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "osType": {
          "description": "The type of Operating System present in this Shared Image. Possible values are `Linux` and `Windows`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privacyStatementUri": {
          "description": "The URI containing the Privacy Statement associated with this Shared Image.\n",
          "type": "string"
        },
        "purchasePlan": {
          "$ref": "#/types/azure:compute/SharedImagePurchasePlan:SharedImagePurchasePlan",
          "description": "A `purchase_plan` block as defined below.\n"
        },
        "releaseNoteUri": {
          "description": "The URI containing the Release Notes associated with this Shared Image.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "specialized": {
          "description": "Specifies that the Operating System used inside this Image has not been Generalized (for example, `sysprep` on Windows has not been run). Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Shared Image.\n",
          "type": "object"
        }
      },
      "properties": {
        "description": {
          "description": "A description of this Shared Image.\n",
          "type": "string"
        },
        "eula": {
          "description": "The End User Licence Agreement for the Shared Image.\n",
          "type": "string"
        },
        "galleryName": {
          "description": "Specifies the name of the Shared Image Gallery in which this Shared Image should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "hyperVGeneration": {
          "description": "The generation of HyperV that the Virtual Machine used to create the Shared Image is based on. Possible values are `V1` and `V2`. Defaults to `V1`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "identifier": {
          "$ref": "#/types/azure:compute/SharedImageIdentifier:SharedImageIdentifier",
          "description": "An `identifier` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the Shared Image Gallery exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Shared Image. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "osType": {
          "description": "The type of Operating System present in this Shared Image. Possible values are `Linux` and `Windows`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privacyStatementUri": {
          "description": "The URI containing the Privacy Statement associated with this Shared Image.\n",
          "type": "string"
        },
        "purchasePlan": {
          "$ref": "#/types/azure:compute/SharedImagePurchasePlan:SharedImagePurchasePlan",
          "description": "A `purchase_plan` block as defined below.\n"
        },
        "releaseNoteUri": {
          "description": "The URI containing the Release Notes associated with this Shared Image.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "specialized": {
          "description": "Specifies that the Operating System used inside this Image has not been Generalized (for example, `sysprep` on Windows has not been run). Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Shared Image.\n",
          "type": "object"
        }
      },
      "required": [
        "galleryName",
        "identifier",
        "location",
        "name",
        "osType",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "galleryName",
        "identifier",
        "osType",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SharedImage resources.\n",
        "properties": {
          "description": {
            "description": "A description of this Shared Image.\n",
            "type": "string"
          },
          "eula": {
            "description": "The End User Licence Agreement for the Shared Image.\n",
            "type": "string"
          },
          "galleryName": {
            "description": "Specifies the name of the Shared Image Gallery in which this Shared Image should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "hyperVGeneration": {
            "description": "The generation of HyperV that the Virtual Machine used to create the Shared Image is based on. Possible values are `V1` and `V2`. Defaults to `V1`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "identifier": {
            "$ref": "#/types/azure:compute/SharedImageIdentifier:SharedImageIdentifier",
            "description": "An `identifier` block as defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the Shared Image Gallery exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Shared Image. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "osType": {
            "description": "The type of Operating System present in this Shared Image. Possible values are `Linux` and `Windows`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "privacyStatementUri": {
            "description": "The URI containing the Privacy Statement associated with this Shared Image.\n",
            "type": "string"
          },
          "purchasePlan": {
            "$ref": "#/types/azure:compute/SharedImagePurchasePlan:SharedImagePurchasePlan",
            "description": "A `purchase_plan` block as defined below.\n"
          },
          "releaseNoteUri": {
            "description": "The URI containing the Release Notes associated with this Shared Image.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "specialized": {
            "description": "Specifies that the Operating System used inside this Image has not been Generalized (for example, `sysprep` on Windows has not been run). Defaults to `false`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Shared Image.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/sharedImageGallery:SharedImageGallery": {
      "description": "Manages a Shared Image Gallery.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSharedImageGallery = new azure.compute.SharedImageGallery(\"exampleSharedImageGallery\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    description: \"Shared images and things.\",\n    tags: {\n        Hello: \"There\",\n        World: \"Example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_shared_image_gallery = azure.compute.SharedImageGallery(\"exampleSharedImageGallery\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    description=\"Shared images and things.\",\n    tags={\n        \"Hello\": \"There\",\n        \"World\": \"Example\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSharedImageGallery = new Azure.Compute.SharedImageGallery(\"exampleSharedImageGallery\", new Azure.Compute.SharedImageGalleryArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Description = \"Shared images and things.\",\n            Tags = \n            {\n                { \"Hello\", \"There\" },\n                { \"World\", \"Example\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewSharedImageGallery(ctx, \"exampleSharedImageGallery\", \u0026compute.SharedImageGalleryArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tDescription:       pulumi.String(\"Shared images and things.\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Hello\": pulumi.String(\"There\"),\n\t\t\t\t\"World\": pulumi.String(\"Example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nShared Image Galleries can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/sharedImageGallery:SharedImageGallery gallery1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/galleries/gallery1\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "A description for this Shared Image Gallery.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Shared Image Gallery. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Shared Image Gallery. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Shared Image Gallery.\n",
          "type": "object"
        }
      },
      "properties": {
        "description": {
          "description": "A description for this Shared Image Gallery.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Shared Image Gallery. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Shared Image Gallery. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Shared Image Gallery.\n",
          "type": "object"
        },
        "uniqueName": {
          "description": "The Unique Name for this Shared Image Gallery.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "uniqueName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SharedImageGallery resources.\n",
        "properties": {
          "description": {
            "description": "A description for this Shared Image Gallery.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Shared Image Gallery. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Shared Image Gallery. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Shared Image Gallery.\n",
            "type": "object"
          },
          "uniqueName": {
            "description": "The Unique Name for this Shared Image Gallery.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/sharedImageVersion:SharedImageVersion": {
      "description": "Manages a Version of a Shared Image within a Shared Image Gallery.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst existingImage = azure.compute.getImage({\n    name: \"search-api\",\n    resourceGroupName: \"packerimages\",\n});\nconst existingSharedImage = azure.compute.getSharedImage({\n    name: \"existing-image\",\n    galleryName: \"existing_gallery\",\n    resourceGroupName: \"existing-resources\",\n});\nconst example = new azure.compute.SharedImageVersion(\"example\", {\n    galleryName: existingSharedImage.then(existingSharedImage =\u003e existingSharedImage.galleryName),\n    imageName: existingSharedImage.then(existingSharedImage =\u003e existingSharedImage.name),\n    resourceGroupName: existingSharedImage.then(existingSharedImage =\u003e existingSharedImage.resourceGroupName),\n    location: existingSharedImage.then(existingSharedImage =\u003e existingSharedImage.location),\n    managedImageId: existingImage.then(existingImage =\u003e existingImage.id),\n    targetRegions: [{\n        name: existingSharedImage.then(existingSharedImage =\u003e existingSharedImage.location),\n        regionalReplicaCount: 5,\n        storageAccountType: \"Standard_LRS\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexisting_image = azure.compute.get_image(name=\"search-api\",\n    resource_group_name=\"packerimages\")\nexisting_shared_image = azure.compute.get_shared_image(name=\"existing-image\",\n    gallery_name=\"existing_gallery\",\n    resource_group_name=\"existing-resources\")\nexample = azure.compute.SharedImageVersion(\"example\",\n    gallery_name=existing_shared_image.gallery_name,\n    image_name=existing_shared_image.name,\n    resource_group_name=existing_shared_image.resource_group_name,\n    location=existing_shared_image.location,\n    managed_image_id=existing_image.id,\n    target_regions=[azure.compute.SharedImageVersionTargetRegionArgs(\n        name=existing_shared_image.location,\n        regional_replica_count=5,\n        storage_account_type=\"Standard_LRS\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var existingImage = Output.Create(Azure.Compute.GetImage.InvokeAsync(new Azure.Compute.GetImageArgs\n        {\n            Name = \"search-api\",\n            ResourceGroupName = \"packerimages\",\n        }));\n        var existingSharedImage = Output.Create(Azure.Compute.GetSharedImage.InvokeAsync(new Azure.Compute.GetSharedImageArgs\n        {\n            Name = \"existing-image\",\n            GalleryName = \"existing_gallery\",\n            ResourceGroupName = \"existing-resources\",\n        }));\n        var example = new Azure.Compute.SharedImageVersion(\"example\", new Azure.Compute.SharedImageVersionArgs\n        {\n            GalleryName = existingSharedImage.Apply(existingSharedImage =\u003e existingSharedImage.GalleryName),\n            ImageName = existingSharedImage.Apply(existingSharedImage =\u003e existingSharedImage.Name),\n            ResourceGroupName = existingSharedImage.Apply(existingSharedImage =\u003e existingSharedImage.ResourceGroupName),\n            Location = existingSharedImage.Apply(existingSharedImage =\u003e existingSharedImage.Location),\n            ManagedImageId = existingImage.Apply(existingImage =\u003e existingImage.Id),\n            TargetRegions = \n            {\n                new Azure.Compute.Inputs.SharedImageVersionTargetRegionArgs\n                {\n                    Name = existingSharedImage.Apply(existingSharedImage =\u003e existingSharedImage.Location),\n                    RegionalReplicaCount = 5,\n                    StorageAccountType = \"Standard_LRS\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"search-api\"\n\t\texistingImage, err := compute.LookupImage(ctx, \u0026compute.LookupImageArgs{\n\t\t\tName:              \u0026opt0,\n\t\t\tResourceGroupName: \"packerimages\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texistingSharedImage, err := compute.LookupSharedImage(ctx, \u0026compute.LookupSharedImageArgs{\n\t\t\tName:              \"existing-image\",\n\t\t\tGalleryName:       \"existing_gallery\",\n\t\t\tResourceGroupName: \"existing-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewSharedImageVersion(ctx, \"example\", \u0026compute.SharedImageVersionArgs{\n\t\t\tGalleryName:       pulumi.String(existingSharedImage.GalleryName),\n\t\t\tImageName:         pulumi.String(existingSharedImage.Name),\n\t\t\tResourceGroupName: pulumi.String(existingSharedImage.ResourceGroupName),\n\t\t\tLocation:          pulumi.String(existingSharedImage.Location),\n\t\t\tManagedImageId:    pulumi.String(existingImage.Id),\n\t\t\tTargetRegions: compute.SharedImageVersionTargetRegionArray{\n\t\t\t\t\u0026compute.SharedImageVersionTargetRegionArgs{\n\t\t\t\t\tName:                 pulumi.String(existingSharedImage.Location),\n\t\t\t\t\tRegionalReplicaCount: pulumi.Int(5),\n\t\t\t\t\tStorageAccountType:   pulumi.String(\"Standard_LRS\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nShared Image Versions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/sharedImageVersion:SharedImageVersion version /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/galleries/gallery1/images/image1/versions/1.2.3\n```\n\n ",
      "inputProperties": {
        "excludeFromLatest": {
          "description": "Should this Image Version be excluded from the `latest` filter? If set to `true` this Image Version won't be returned for the `latest` version. Defaults to `false`.\n",
          "type": "boolean"
        },
        "galleryName": {
          "description": "The name of the Shared Image Gallery in which the Shared Image exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "imageName": {
          "description": "The name of the Shared Image within the Shared Image Gallery in which this Version should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region in which the Shared Image Gallery exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managedImageId": {
          "description": "The ID of the Managed Image or Virtual Machine ID which should be used for this Shared Image Version. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The version number for this Image Version, such as `1.0.0`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "osDiskSnapshotId": {
          "description": "The ID of the OS disk snapshot which should be used for this Shared Image Version. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A collection of tags which should be applied to this resource.\n",
          "type": "object"
        },
        "targetRegions": {
          "description": "One or more `target_region` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:compute/SharedImageVersionTargetRegion:SharedImageVersionTargetRegion"
          },
          "type": "array"
        }
      },
      "properties": {
        "excludeFromLatest": {
          "description": "Should this Image Version be excluded from the `latest` filter? If set to `true` this Image Version won't be returned for the `latest` version. Defaults to `false`.\n",
          "type": "boolean"
        },
        "galleryName": {
          "description": "The name of the Shared Image Gallery in which the Shared Image exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "imageName": {
          "description": "The name of the Shared Image within the Shared Image Gallery in which this Version should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region in which the Shared Image Gallery exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managedImageId": {
          "description": "The ID of the Managed Image or Virtual Machine ID which should be used for this Shared Image Version. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The version number for this Image Version, such as `1.0.0`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "osDiskSnapshotId": {
          "description": "The ID of the OS disk snapshot which should be used for this Shared Image Version. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A collection of tags which should be applied to this resource.\n",
          "type": "object"
        },
        "targetRegions": {
          "description": "One or more `target_region` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:compute/SharedImageVersionTargetRegion:SharedImageVersionTargetRegion"
          },
          "type": "array"
        }
      },
      "required": [
        "galleryName",
        "imageName",
        "location",
        "name",
        "resourceGroupName",
        "targetRegions"
      ],
      "requiredInputs": [
        "galleryName",
        "imageName",
        "resourceGroupName",
        "targetRegions"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SharedImageVersion resources.\n",
        "properties": {
          "excludeFromLatest": {
            "description": "Should this Image Version be excluded from the `latest` filter? If set to `true` this Image Version won't be returned for the `latest` version. Defaults to `false`.\n",
            "type": "boolean"
          },
          "galleryName": {
            "description": "The name of the Shared Image Gallery in which the Shared Image exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "imageName": {
            "description": "The name of the Shared Image within the Shared Image Gallery in which this Version should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region in which the Shared Image Gallery exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "managedImageId": {
            "description": "The ID of the Managed Image or Virtual Machine ID which should be used for this Shared Image Version. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The version number for this Image Version, such as `1.0.0`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "osDiskSnapshotId": {
            "description": "The ID of the OS disk snapshot which should be used for this Shared Image Version. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A collection of tags which should be applied to this resource.\n",
            "type": "object"
          },
          "targetRegions": {
            "description": "One or more `target_region` blocks as documented below.\n",
            "items": {
              "$ref": "#/types/azure:compute/SharedImageVersionTargetRegion:SharedImageVersionTargetRegion"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/snapshot:Snapshot": {
      "description": "Manages a Disk Snapshot.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleManagedDisk = new azure.compute.ManagedDisk(\"exampleManagedDisk\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccountType: \"Standard_LRS\",\n    createOption: \"Empty\",\n    diskSizeGb: \"10\",\n});\nconst exampleSnapshot = new azure.compute.Snapshot(\"exampleSnapshot\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    createOption: \"Copy\",\n    sourceUri: exampleManagedDisk.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_managed_disk = azure.compute.ManagedDisk(\"exampleManagedDisk\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_account_type=\"Standard_LRS\",\n    create_option=\"Empty\",\n    disk_size_gb=10)\nexample_snapshot = azure.compute.Snapshot(\"exampleSnapshot\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    create_option=\"Copy\",\n    source_uri=example_managed_disk.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleManagedDisk = new Azure.Compute.ManagedDisk(\"exampleManagedDisk\", new Azure.Compute.ManagedDiskArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccountType = \"Standard_LRS\",\n            CreateOption = \"Empty\",\n            DiskSizeGb = 10,\n        });\n        var exampleSnapshot = new Azure.Compute.Snapshot(\"exampleSnapshot\", new Azure.Compute.SnapshotArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            CreateOption = \"Copy\",\n            SourceUri = exampleManagedDisk.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleManagedDisk, err := compute.NewManagedDisk(ctx, \"exampleManagedDisk\", \u0026compute.ManagedDiskArgs{\n\t\t\tLocation:           exampleResourceGroup.Location,\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tStorageAccountType: pulumi.String(\"Standard_LRS\"),\n\t\t\tCreateOption:       pulumi.String(\"Empty\"),\n\t\t\tDiskSizeGb:         pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewSnapshot(ctx, \"exampleSnapshot\", \u0026compute.SnapshotArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tCreateOption:      pulumi.String(\"Copy\"),\n\t\t\tSourceUri:         exampleManagedDisk.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSnapshots can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/snapshot:Snapshot example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/snapshots/snapshot1\n```\n\n ",
      "inputProperties": {
        "createOption": {
          "description": "Indicates how the snapshot is to be created. Possible values are `Copy` or `Import`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "diskSizeGb": {
          "description": "The size of the Snapshotted Disk in GB.\n",
          "type": "integer"
        },
        "encryptionSettings": {
          "$ref": "#/types/azure:compute/SnapshotEncryptionSettings:SnapshotEncryptionSettings"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Snapshot resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Snapshot. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceResourceId": {
          "description": "Specifies a reference to an existing snapshot, when `create_option` is `Copy`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceUri": {
          "description": "Specifies the URI to a Managed or Unmanaged Disk. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "Specifies the ID of an storage account. Used with `source_uri` to allow authorization during import of unmanaged blobs from a different subscription. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "createOption": {
          "description": "Indicates how the snapshot is to be created. Possible values are `Copy` or `Import`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "diskSizeGb": {
          "description": "The size of the Snapshotted Disk in GB.\n",
          "type": "integer"
        },
        "encryptionSettings": {
          "$ref": "#/types/azure:compute/SnapshotEncryptionSettings:SnapshotEncryptionSettings"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Snapshot resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Snapshot. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceResourceId": {
          "description": "Specifies a reference to an existing snapshot, when `create_option` is `Copy`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceUri": {
          "description": "Specifies the URI to a Managed or Unmanaged Disk. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "Specifies the ID of an storage account. Used with `source_uri` to allow authorization during import of unmanaged blobs from a different subscription. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "createOption",
        "diskSizeGb",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "createOption",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Snapshot resources.\n",
        "properties": {
          "createOption": {
            "description": "Indicates how the snapshot is to be created. Possible values are `Copy` or `Import`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "diskSizeGb": {
            "description": "The size of the Snapshotted Disk in GB.\n",
            "type": "integer"
          },
          "encryptionSettings": {
            "$ref": "#/types/azure:compute/SnapshotEncryptionSettings:SnapshotEncryptionSettings"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Snapshot resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Snapshot. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sourceResourceId": {
            "description": "Specifies a reference to an existing snapshot, when `create_option` is `Copy`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sourceUri": {
            "description": "Specifies the URI to a Managed or Unmanaged Disk. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "Specifies the ID of an storage account. Used with `source_uri` to allow authorization during import of unmanaged blobs from a different subscription. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/sshPublicKey:SshPublicKey": {
      "description": "Manages a SSH Public Key.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * from \"fs\";\n\nconst example = new azure.compute.SshPublicKey(\"example\", {\n    resourceGroupName: \"example\",\n    location: \"West Europe\",\n    publicKey: fs.readFileSync(\"~/.ssh/id_rsa.pub\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.compute.SshPublicKey(\"example\",\n    resource_group_name=\"example\",\n    location=\"West Europe\",\n    public_key=(lambda path: open(path).read())(\"~/.ssh/id_rsa.pub\"))\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Compute.SshPublicKey(\"example\", new Azure.Compute.SshPublicKeyArgs\n        {\n            ResourceGroupName = \"example\",\n            Location = \"West Europe\",\n            PublicKey = File.ReadAllText(\"~/.ssh/id_rsa.pub\"),\n        });\n    }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSSH Public Keys can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/sshPublicKey:SshPublicKey example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Compute/SshPublicKeys/mySshPublicKeyName1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The Azure Region where the SSH Public Key should exist. Changing this forces a new SSH Public Key to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this SSH Public Key. Changing this forces a new SSH Public Key to be created.\n",
          "type": "string"
        },
        "publicKey": {
          "description": "SSH public key used to authenticate to a virtual machine through ssh. the provided public key needs to be at least 2048-bit and in ssh-rsa format.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the SSH Public Key should exist. Changing this forces a new SSH Public Key to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the SSH Public Key.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "The Azure Region where the SSH Public Key should exist. Changing this forces a new SSH Public Key to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this SSH Public Key. Changing this forces a new SSH Public Key to be created.\n",
          "type": "string"
        },
        "publicKey": {
          "description": "SSH public key used to authenticate to a virtual machine through ssh. the provided public key needs to be at least 2048-bit and in ssh-rsa format.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the SSH Public Key should exist. Changing this forces a new SSH Public Key to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the SSH Public Key.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "publicKey",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "publicKey",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SshPublicKey resources.\n",
        "properties": {
          "location": {
            "description": "The Azure Region where the SSH Public Key should exist. Changing this forces a new SSH Public Key to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this SSH Public Key. Changing this forces a new SSH Public Key to be created.\n",
            "type": "string"
          },
          "publicKey": {
            "description": "SSH public key used to authenticate to a virtual machine through ssh. the provided public key needs to be at least 2048-bit and in ssh-rsa format.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the SSH Public Key should exist. Changing this forces a new SSH Public Key to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the SSH Public Key.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/virtualMachine:VirtualMachine": {
      "description": "Manages a Virtual Machine.\n\n## Disclaimers\n\n\u003e **Note:** The `azure.compute.VirtualMachine` resource has been superseded by the `azure.compute.LinuxVirtualMachine` and `azure.compute.WindowsVirtualMachine` resources. The existing `azure.compute.VirtualMachine` resource will continue to be available throughout the 2.x releases however is in a feature-frozen state to maintain compatibility - new functionality will instead be added to the `azure.compute.LinuxVirtualMachine` and `azure.compute.WindowsVirtualMachine` resources.\n\n\u003e **Note:** Data Disks can be attached either directly on the `azure.compute.VirtualMachine` resource, or using the `azure.compute.DataDiskAttachment` resource - but the two cannot be used together. If both are used against the same Virtual Machine, spurious changes will occur.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### From An Azure Platform Image)\n\nThis example provisions a Virtual Machine with Managed Disks.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst config = new pulumi.Config();\nconst prefix = config.get(\"prefix\") || \"tfvmex\";\nconst mainResourceGroup = new azure.core.ResourceGroup(\"mainResourceGroup\", {location: \"West Europe\"});\nconst mainVirtualNetwork = new azure.network.VirtualNetwork(\"mainVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: mainResourceGroup.location,\n    resourceGroupName: mainResourceGroup.name,\n});\nconst internal = new azure.network.Subnet(\"internal\", {\n    resourceGroupName: mainResourceGroup.name,\n    virtualNetworkName: mainVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst mainNetworkInterface = new azure.network.NetworkInterface(\"mainNetworkInterface\", {\n    location: mainResourceGroup.location,\n    resourceGroupName: mainResourceGroup.name,\n    ipConfigurations: [{\n        name: \"testconfiguration1\",\n        subnetId: internal.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst mainVirtualMachine = new azure.compute.VirtualMachine(\"mainVirtualMachine\", {\n    location: mainResourceGroup.location,\n    resourceGroupName: mainResourceGroup.name,\n    networkInterfaceIds: [mainNetworkInterface.id],\n    vmSize: \"Standard_DS1_v2\",\n    storageImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04-LTS\",\n        version: \"latest\",\n    },\n    storageOsDisk: {\n        name: \"myosdisk1\",\n        caching: \"ReadWrite\",\n        createOption: \"FromImage\",\n        managedDiskType: \"Standard_LRS\",\n    },\n    osProfile: {\n        computerName: \"hostname\",\n        adminUsername: \"testadmin\",\n        adminPassword: \"Password1234!\",\n    },\n    osProfileLinuxConfig: {\n        disablePasswordAuthentication: false,\n    },\n    tags: {\n        environment: \"staging\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nconfig = pulumi.Config()\nprefix = config.get(\"prefix\")\nif prefix is None:\n    prefix = \"tfvmex\"\nmain_resource_group = azure.core.ResourceGroup(\"mainResourceGroup\", location=\"West Europe\")\nmain_virtual_network = azure.network.VirtualNetwork(\"mainVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=main_resource_group.location,\n    resource_group_name=main_resource_group.name)\ninternal = azure.network.Subnet(\"internal\",\n    resource_group_name=main_resource_group.name,\n    virtual_network_name=main_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nmain_network_interface = azure.network.NetworkInterface(\"mainNetworkInterface\",\n    location=main_resource_group.location,\n    resource_group_name=main_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"testconfiguration1\",\n        subnet_id=internal.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nmain_virtual_machine = azure.compute.VirtualMachine(\"mainVirtualMachine\",\n    location=main_resource_group.location,\n    resource_group_name=main_resource_group.name,\n    network_interface_ids=[main_network_interface.id],\n    vm_size=\"Standard_DS1_v2\",\n    storage_image_reference=azure.compute.VirtualMachineStorageImageReferenceArgs(\n        publisher=\"Canonical\",\n        offer=\"UbuntuServer\",\n        sku=\"16.04-LTS\",\n        version=\"latest\",\n    ),\n    storage_os_disk=azure.compute.VirtualMachineStorageOsDiskArgs(\n        name=\"myosdisk1\",\n        caching=\"ReadWrite\",\n        create_option=\"FromImage\",\n        managed_disk_type=\"Standard_LRS\",\n    ),\n    os_profile=azure.compute.VirtualMachineOsProfileArgs(\n        computer_name=\"hostname\",\n        admin_username=\"testadmin\",\n        admin_password=\"Password1234!\",\n    ),\n    os_profile_linux_config=azure.compute.VirtualMachineOsProfileLinuxConfigArgs(\n        disable_password_authentication=False,\n    ),\n    tags={\n        \"environment\": \"staging\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var config = new Config();\n        var prefix = config.Get(\"prefix\") ?? \"tfvmex\";\n        var mainResourceGroup = new Azure.Core.ResourceGroup(\"mainResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var mainVirtualNetwork = new Azure.Network.VirtualNetwork(\"mainVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = mainResourceGroup.Location,\n            ResourceGroupName = mainResourceGroup.Name,\n        });\n        var @internal = new Azure.Network.Subnet(\"internal\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = mainResourceGroup.Name,\n            VirtualNetworkName = mainVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var mainNetworkInterface = new Azure.Network.NetworkInterface(\"mainNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = mainResourceGroup.Location,\n            ResourceGroupName = mainResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"testconfiguration1\",\n                    SubnetId = @internal.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var mainVirtualMachine = new Azure.Compute.VirtualMachine(\"mainVirtualMachine\", new Azure.Compute.VirtualMachineArgs\n        {\n            Location = mainResourceGroup.Location,\n            ResourceGroupName = mainResourceGroup.Name,\n            NetworkInterfaceIds = \n            {\n                mainNetworkInterface.Id,\n            },\n            VmSize = \"Standard_DS1_v2\",\n            StorageImageReference = new Azure.Compute.Inputs.VirtualMachineStorageImageReferenceArgs\n            {\n                Publisher = \"Canonical\",\n                Offer = \"UbuntuServer\",\n                Sku = \"16.04-LTS\",\n                Version = \"latest\",\n            },\n            StorageOsDisk = new Azure.Compute.Inputs.VirtualMachineStorageOsDiskArgs\n            {\n                Name = \"myosdisk1\",\n                Caching = \"ReadWrite\",\n                CreateOption = \"FromImage\",\n                ManagedDiskType = \"Standard_LRS\",\n            },\n            OsProfile = new Azure.Compute.Inputs.VirtualMachineOsProfileArgs\n            {\n                ComputerName = \"hostname\",\n                AdminUsername = \"testadmin\",\n                AdminPassword = \"Password1234!\",\n            },\n            OsProfileLinuxConfig = new Azure.Compute.Inputs.VirtualMachineOsProfileLinuxConfigArgs\n            {\n                DisablePasswordAuthentication = false,\n            },\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tprefix := \"tfvmex\"\n\t\tif param := cfg.Get(\"prefix\"); param != \"\" {\n\t\t\tprefix = param\n\t\t}\n\t\tmainResourceGroup, err := core.NewResourceGroup(ctx, \"mainResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"mainVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          mainResourceGroup.Location,\n\t\t\tResourceGroupName: mainResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinternal, err := network.NewSubnet(ctx, \"internal\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  mainResourceGroup.Name,\n\t\t\tVirtualNetworkName: mainVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainNetworkInterface, err := network.NewNetworkInterface(ctx, \"mainNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tLocation:          mainResourceGroup.Location,\n\t\t\tResourceGroupName: mainResourceGroup.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"testconfiguration1\"),\n\t\t\t\t\tSubnetId:                   internal.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\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 = compute.NewVirtualMachine(ctx, \"mainVirtualMachine\", \u0026compute.VirtualMachineArgs{\n\t\t\tLocation:          mainResourceGroup.Location,\n\t\t\tResourceGroupName: mainResourceGroup.Name,\n\t\t\tNetworkInterfaceIds: pulumi.StringArray{\n\t\t\t\tmainNetworkInterface.ID(),\n\t\t\t},\n\t\t\tVmSize: pulumi.String(\"Standard_DS1_v2\"),\n\t\t\tStorageImageReference: \u0026compute.VirtualMachineStorageImageReferenceArgs{\n\t\t\t\tPublisher: pulumi.String(\"Canonical\"),\n\t\t\t\tOffer:     pulumi.String(\"UbuntuServer\"),\n\t\t\t\tSku:       pulumi.String(\"16.04-LTS\"),\n\t\t\t\tVersion:   pulumi.String(\"latest\"),\n\t\t\t},\n\t\t\tStorageOsDisk: \u0026compute.VirtualMachineStorageOsDiskArgs{\n\t\t\t\tName:            pulumi.String(\"myosdisk1\"),\n\t\t\t\tCaching:         pulumi.String(\"ReadWrite\"),\n\t\t\t\tCreateOption:    pulumi.String(\"FromImage\"),\n\t\t\t\tManagedDiskType: pulumi.String(\"Standard_LRS\"),\n\t\t\t},\n\t\t\tOsProfile: \u0026compute.VirtualMachineOsProfileArgs{\n\t\t\t\tComputerName:  pulumi.String(\"hostname\"),\n\t\t\t\tAdminUsername: pulumi.String(\"testadmin\"),\n\t\t\t\tAdminPassword: pulumi.String(\"Password1234!\"),\n\t\t\t},\n\t\t\tOsProfileLinuxConfig: \u0026compute.VirtualMachineOsProfileLinuxConfigArgs{\n\t\t\t\tDisablePasswordAuthentication: pulumi.Bool(false),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Machines can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/virtualMachine:VirtualMachine example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.compute/virtualMachines/machine1\n```\n\n ",
      "inputProperties": {
        "additionalCapabilities": {
          "$ref": "#/types/azure:compute/VirtualMachineAdditionalCapabilities:VirtualMachineAdditionalCapabilities",
          "description": "A `additional_capabilities` block.\n"
        },
        "availabilitySetId": {
          "description": "The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "bootDiagnostics": {
          "$ref": "#/types/azure:compute/VirtualMachineBootDiagnostics:VirtualMachineBootDiagnostics",
          "description": "A `boot_diagnostics` block.\n"
        },
        "deleteDataDisksOnTermination": {
          "description": "Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to `false`.\n",
          "type": "boolean"
        },
        "deleteOsDiskOnTermination": {
          "description": "Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to `false`.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:compute/VirtualMachineIdentity:VirtualMachineIdentity",
          "description": "A `identity` block.\n"
        },
        "licenseType": {
          "description": "Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are `Windows_Client` and `Windows_Server`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaceIds": {
          "description": "A list of Network Interface ID's which should be associated with the Virtual Machine.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "osProfile": {
          "$ref": "#/types/azure:compute/VirtualMachineOsProfile:VirtualMachineOsProfile",
          "description": "An `os_profile` block. Required when `create_option` in the `storage_os_disk` block is set to `FromImage`.\n"
        },
        "osProfileLinuxConfig": {
          "$ref": "#/types/azure:compute/VirtualMachineOsProfileLinuxConfig:VirtualMachineOsProfileLinuxConfig",
          "description": "A `os_profile_linux_config` block.\n"
        },
        "osProfileSecrets": {
          "description": "One or more `os_profile_secrets` blocks.\n",
          "items": {
            "$ref": "#/types/azure:compute/VirtualMachineOsProfileSecret:VirtualMachineOsProfileSecret"
          },
          "type": "array"
        },
        "osProfileWindowsConfig": {
          "$ref": "#/types/azure:compute/VirtualMachineOsProfileWindowsConfig:VirtualMachineOsProfileWindowsConfig",
          "description": "A `os_profile_windows_config` block.\n"
        },
        "plan": {
          "$ref": "#/types/azure:compute/VirtualMachinePlan:VirtualMachinePlan",
          "description": "A `plan` block.\n"
        },
        "primaryNetworkInterfaceId": {
          "description": "The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.\n",
          "type": "string"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageDataDisks": {
          "description": "One or more `storage_data_disk` blocks.\n",
          "items": {
            "$ref": "#/types/azure:compute/VirtualMachineStorageDataDisk:VirtualMachineStorageDataDisk"
          },
          "type": "array"
        },
        "storageImageReference": {
          "$ref": "#/types/azure:compute/VirtualMachineStorageImageReference:VirtualMachineStorageImageReference",
          "description": "A `storage_image_reference` block.\n"
        },
        "storageOsDisk": {
          "$ref": "#/types/azure:compute/VirtualMachineStorageOsDisk:VirtualMachineStorageOsDisk",
          "description": "A `storage_os_disk` block.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Virtual Machine.\n",
          "type": "object"
        },
        "vmSize": {
          "description": "Specifies the [size of the Virtual Machine](https://docs.microsoft.com/azure/virtual-machines/sizes-general). See also [Azure VM Naming Conventions](https://docs.microsoft.com/azure/virtual-machines/vm-naming-conventions).\n",
          "type": "string"
        },
        "zones": {
          "description": "A list of a single item of the Availability Zone which the Virtual Machine should be allocated in.\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalCapabilities": {
          "$ref": "#/types/azure:compute/VirtualMachineAdditionalCapabilities:VirtualMachineAdditionalCapabilities",
          "description": "A `additional_capabilities` block.\n"
        },
        "availabilitySetId": {
          "description": "The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "bootDiagnostics": {
          "$ref": "#/types/azure:compute/VirtualMachineBootDiagnostics:VirtualMachineBootDiagnostics",
          "description": "A `boot_diagnostics` block.\n"
        },
        "deleteDataDisksOnTermination": {
          "description": "Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to `false`.\n",
          "type": "boolean"
        },
        "deleteOsDiskOnTermination": {
          "description": "Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to `false`.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:compute/VirtualMachineIdentity:VirtualMachineIdentity",
          "description": "A `identity` block.\n"
        },
        "licenseType": {
          "description": "Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are `Windows_Client` and `Windows_Server`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaceIds": {
          "description": "A list of Network Interface ID's which should be associated with the Virtual Machine.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "osProfile": {
          "$ref": "#/types/azure:compute/VirtualMachineOsProfile:VirtualMachineOsProfile",
          "description": "An `os_profile` block. Required when `create_option` in the `storage_os_disk` block is set to `FromImage`.\n"
        },
        "osProfileLinuxConfig": {
          "$ref": "#/types/azure:compute/VirtualMachineOsProfileLinuxConfig:VirtualMachineOsProfileLinuxConfig",
          "description": "A `os_profile_linux_config` block.\n"
        },
        "osProfileSecrets": {
          "description": "One or more `os_profile_secrets` blocks.\n",
          "items": {
            "$ref": "#/types/azure:compute/VirtualMachineOsProfileSecret:VirtualMachineOsProfileSecret"
          },
          "type": "array"
        },
        "osProfileWindowsConfig": {
          "$ref": "#/types/azure:compute/VirtualMachineOsProfileWindowsConfig:VirtualMachineOsProfileWindowsConfig",
          "description": "A `os_profile_windows_config` block.\n"
        },
        "plan": {
          "$ref": "#/types/azure:compute/VirtualMachinePlan:VirtualMachinePlan",
          "description": "A `plan` block.\n"
        },
        "primaryNetworkInterfaceId": {
          "description": "The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.\n",
          "type": "string"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageDataDisks": {
          "description": "One or more `storage_data_disk` blocks.\n",
          "items": {
            "$ref": "#/types/azure:compute/VirtualMachineStorageDataDisk:VirtualMachineStorageDataDisk"
          },
          "type": "array"
        },
        "storageImageReference": {
          "$ref": "#/types/azure:compute/VirtualMachineStorageImageReference:VirtualMachineStorageImageReference",
          "description": "A `storage_image_reference` block.\n"
        },
        "storageOsDisk": {
          "$ref": "#/types/azure:compute/VirtualMachineStorageOsDisk:VirtualMachineStorageOsDisk",
          "description": "A `storage_os_disk` block.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Virtual Machine.\n",
          "type": "object"
        },
        "vmSize": {
          "description": "Specifies the [size of the Virtual Machine](https://docs.microsoft.com/azure/virtual-machines/sizes-general). See also [Azure VM Naming Conventions](https://docs.microsoft.com/azure/virtual-machines/vm-naming-conventions).\n",
          "type": "string"
        },
        "zones": {
          "description": "A list of a single item of the Availability Zone which the Virtual Machine should be allocated in.\n",
          "type": "string"
        }
      },
      "required": [
        "availabilitySetId",
        "identity",
        "licenseType",
        "location",
        "name",
        "networkInterfaceIds",
        "resourceGroupName",
        "storageDataDisks",
        "storageImageReference",
        "storageOsDisk",
        "vmSize"
      ],
      "requiredInputs": [
        "networkInterfaceIds",
        "resourceGroupName",
        "storageOsDisk",
        "vmSize"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualMachine resources.\n",
        "properties": {
          "additionalCapabilities": {
            "$ref": "#/types/azure:compute/VirtualMachineAdditionalCapabilities:VirtualMachineAdditionalCapabilities",
            "description": "A `additional_capabilities` block.\n"
          },
          "availabilitySetId": {
            "description": "The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "bootDiagnostics": {
            "$ref": "#/types/azure:compute/VirtualMachineBootDiagnostics:VirtualMachineBootDiagnostics",
            "description": "A `boot_diagnostics` block.\n"
          },
          "deleteDataDisksOnTermination": {
            "description": "Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to `false`.\n",
            "type": "boolean"
          },
          "deleteOsDiskOnTermination": {
            "description": "Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to `false`.\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:compute/VirtualMachineIdentity:VirtualMachineIdentity",
            "description": "A `identity` block.\n"
          },
          "licenseType": {
            "description": "Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are `Windows_Client` and `Windows_Server`.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkInterfaceIds": {
            "description": "A list of Network Interface ID's which should be associated with the Virtual Machine.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "osProfile": {
            "$ref": "#/types/azure:compute/VirtualMachineOsProfile:VirtualMachineOsProfile",
            "description": "An `os_profile` block. Required when `create_option` in the `storage_os_disk` block is set to `FromImage`.\n"
          },
          "osProfileLinuxConfig": {
            "$ref": "#/types/azure:compute/VirtualMachineOsProfileLinuxConfig:VirtualMachineOsProfileLinuxConfig",
            "description": "A `os_profile_linux_config` block.\n"
          },
          "osProfileSecrets": {
            "description": "One or more `os_profile_secrets` blocks.\n",
            "items": {
              "$ref": "#/types/azure:compute/VirtualMachineOsProfileSecret:VirtualMachineOsProfileSecret"
            },
            "type": "array"
          },
          "osProfileWindowsConfig": {
            "$ref": "#/types/azure:compute/VirtualMachineOsProfileWindowsConfig:VirtualMachineOsProfileWindowsConfig",
            "description": "A `os_profile_windows_config` block.\n"
          },
          "plan": {
            "$ref": "#/types/azure:compute/VirtualMachinePlan:VirtualMachinePlan",
            "description": "A `plan` block.\n"
          },
          "primaryNetworkInterfaceId": {
            "description": "The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.\n",
            "type": "string"
          },
          "proximityPlacementGroupId": {
            "description": "The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageDataDisks": {
            "description": "One or more `storage_data_disk` blocks.\n",
            "items": {
              "$ref": "#/types/azure:compute/VirtualMachineStorageDataDisk:VirtualMachineStorageDataDisk"
            },
            "type": "array"
          },
          "storageImageReference": {
            "$ref": "#/types/azure:compute/VirtualMachineStorageImageReference:VirtualMachineStorageImageReference",
            "description": "A `storage_image_reference` block.\n"
          },
          "storageOsDisk": {
            "$ref": "#/types/azure:compute/VirtualMachineStorageOsDisk:VirtualMachineStorageOsDisk",
            "description": "A `storage_os_disk` block.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Virtual Machine.\n",
            "type": "object"
          },
          "vmSize": {
            "description": "Specifies the [size of the Virtual Machine](https://docs.microsoft.com/azure/virtual-machines/sizes-general). See also [Azure VM Naming Conventions](https://docs.microsoft.com/azure/virtual-machines/vm-naming-conventions).\n",
            "type": "string"
          },
          "zones": {
            "description": "A list of a single item of the Availability Zone which the Virtual Machine should be allocated in.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/virtualMachineScaleSetExtension:VirtualMachineScaleSetExtension": {
      "description": "Manages an Extension for a Virtual Machine Scale Set.\n\n\u003e **NOTE:** This resource is not intended to be used with the `azure.compute.ScaleSet` resource - instead it's intended for this to be used with the `azure.compute.LinuxVirtualMachineScaleSet` and `azure.compute.WindowsVirtualMachineScaleSet` resources.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleLinuxVirtualMachineScaleSet = new azure.compute.LinuxVirtualMachineScaleSet(\"exampleLinuxVirtualMachineScaleSet\", {});\n//...\nconst exampleVirtualMachineScaleSetExtension = new azure.compute.VirtualMachineScaleSetExtension(\"exampleVirtualMachineScaleSetExtension\", {\n    virtualMachineScaleSetId: exampleLinuxVirtualMachineScaleSet.id,\n    publisher: \"Microsoft.Azure.Extensions\",\n    type: \"CustomScript\",\n    typeHandlerVersion: \"2.0\",\n    settings: JSON.stringify({\n        commandToExecute: `echo $HOSTNAME`,\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_azure as azure\n\nexample_linux_virtual_machine_scale_set = azure.compute.LinuxVirtualMachineScaleSet(\"exampleLinuxVirtualMachineScaleSet\")\n#...\nexample_virtual_machine_scale_set_extension = azure.compute.VirtualMachineScaleSetExtension(\"exampleVirtualMachineScaleSetExtension\",\n    virtual_machine_scale_set_id=example_linux_virtual_machine_scale_set.id,\n    publisher=\"Microsoft.Azure.Extensions\",\n    type=\"CustomScript\",\n    type_handler_version=\"2.0\",\n    settings=json.dumps({\n        \"commandToExecute\": \"echo $HOSTNAME\",\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleLinuxVirtualMachineScaleSet = new Azure.Compute.LinuxVirtualMachineScaleSet(\"exampleLinuxVirtualMachineScaleSet\", new Azure.Compute.LinuxVirtualMachineScaleSetArgs\n        {\n        });\n        //...\n        var exampleVirtualMachineScaleSetExtension = new Azure.Compute.VirtualMachineScaleSetExtension(\"exampleVirtualMachineScaleSetExtension\", new Azure.Compute.VirtualMachineScaleSetExtensionArgs\n        {\n            VirtualMachineScaleSetId = exampleLinuxVirtualMachineScaleSet.Id,\n            Publisher = \"Microsoft.Azure.Extensions\",\n            Type = \"CustomScript\",\n            TypeHandlerVersion = \"2.0\",\n            Settings = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n            {\n                { \"commandToExecute\", \"echo $HOSTNAME\" },\n            }),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleLinuxVirtualMachineScaleSet, err := compute.NewLinuxVirtualMachineScaleSet(ctx, \"exampleLinuxVirtualMachineScaleSet\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"commandToExecute\": fmt.Sprintf(\"%v%v%v\", \"echo \", \"$\", \"HOSTNAME\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = compute.NewVirtualMachineScaleSetExtension(ctx, \"exampleVirtualMachineScaleSetExtension\", \u0026compute.VirtualMachineScaleSetExtensionArgs{\n\t\t\tVirtualMachineScaleSetId: exampleLinuxVirtualMachineScaleSet.ID(),\n\t\t\tPublisher:                pulumi.String(\"Microsoft.Azure.Extensions\"),\n\t\t\tType:                     pulumi.String(\"CustomScript\"),\n\t\t\tTypeHandlerVersion:       pulumi.String(\"2.0\"),\n\t\t\tSettings:                 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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Machine Scale Set Extensions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/virtualMachineScaleSetExtension:VirtualMachineScaleSetExtension test /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Compute/virtualMachineScaleSets/scaleSet1/extensions/extension1\n```\n\n ",
      "inputProperties": {
        "autoUpgradeMinorVersion": {
          "description": "Should the latest version of the Extension be used at Deployment Time, if one is available? This won't auto-update the extension on existing installation. Defaults to `true`.\n",
          "type": "boolean"
        },
        "forceUpdateTag": {
          "description": "A value which, when different to the previous value can be used to force-run the Extension even if the Extension Configuration hasn't changed.\n",
          "type": "string"
        },
        "name": {
          "description": "The name for the Virtual Machine Scale Set Extension. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "protectedSettings": {
          "description": "A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.\n",
          "type": "string"
        },
        "provisionAfterExtensions": {
          "description": "An ordered list of Extension names which this should be provisioned after.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "publisher": {
          "description": "Specifies the Publisher of the Extension. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "settings": {
          "description": "A JSON String which specifies Settings for the Extension.\n",
          "type": "string"
        },
        "type": {
          "description": "Specifies the Type of the Extension. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "typeHandlerVersion": {
          "description": "Specifies the version of the extension to use, available versions can be found using the Azure CLI.\n",
          "type": "string"
        },
        "virtualMachineScaleSetId": {
          "description": "The ID of the Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "autoUpgradeMinorVersion": {
          "description": "Should the latest version of the Extension be used at Deployment Time, if one is available? This won't auto-update the extension on existing installation. Defaults to `true`.\n",
          "type": "boolean"
        },
        "forceUpdateTag": {
          "description": "A value which, when different to the previous value can be used to force-run the Extension even if the Extension Configuration hasn't changed.\n",
          "type": "string"
        },
        "name": {
          "description": "The name for the Virtual Machine Scale Set Extension. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "protectedSettings": {
          "description": "A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.\n",
          "type": "string"
        },
        "provisionAfterExtensions": {
          "description": "An ordered list of Extension names which this should be provisioned after.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "publisher": {
          "description": "Specifies the Publisher of the Extension. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "settings": {
          "description": "A JSON String which specifies Settings for the Extension.\n",
          "type": "string"
        },
        "type": {
          "description": "Specifies the Type of the Extension. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "typeHandlerVersion": {
          "description": "Specifies the version of the extension to use, available versions can be found using the Azure CLI.\n",
          "type": "string"
        },
        "virtualMachineScaleSetId": {
          "description": "The ID of the Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "publisher",
        "type",
        "typeHandlerVersion",
        "virtualMachineScaleSetId"
      ],
      "requiredInputs": [
        "publisher",
        "type",
        "typeHandlerVersion",
        "virtualMachineScaleSetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualMachineScaleSetExtension resources.\n",
        "properties": {
          "autoUpgradeMinorVersion": {
            "description": "Should the latest version of the Extension be used at Deployment Time, if one is available? This won't auto-update the extension on existing installation. Defaults to `true`.\n",
            "type": "boolean"
          },
          "forceUpdateTag": {
            "description": "A value which, when different to the previous value can be used to force-run the Extension even if the Extension Configuration hasn't changed.\n",
            "type": "string"
          },
          "name": {
            "description": "The name for the Virtual Machine Scale Set Extension. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "protectedSettings": {
            "description": "A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.\n",
            "type": "string"
          },
          "provisionAfterExtensions": {
            "description": "An ordered list of Extension names which this should be provisioned after.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "publisher": {
            "description": "Specifies the Publisher of the Extension. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "settings": {
            "description": "A JSON String which specifies Settings for the Extension.\n",
            "type": "string"
          },
          "type": {
            "description": "Specifies the Type of the Extension. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "typeHandlerVersion": {
            "description": "Specifies the version of the extension to use, available versions can be found using the Azure CLI.\n",
            "type": "string"
          },
          "virtualMachineScaleSetId": {
            "description": "The ID of the Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/windowsVirtualMachine:WindowsVirtualMachine": {
      "description": "Manages a Windows Virtual Machine.\n\n## Disclaimers\n\n\u003e **Note** This provider will automatically remove the OS Disk by default - this behaviour can be configured using the `features` configuration within the Provider configuration block.\n\n\u003e **Note** This resource does not support Unmanaged Disks. If you need to use Unmanaged Disks you can continue to use the `azure.compute.VirtualMachine` resource instead.\n\n\u003e **Note** This resource does not support attaching existing OS Disks. You can instead capture an image of the OS Disk or continue to use the `azure.compute.VirtualMachine` resource instead.\n\n\u003e In this release there's a known issue where the `public_ip_address` and `public_ip_addresses` fields may not be fully populated for Dynamic Public IP's.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis example provisions a basic Windows Virtual Machine on an internal network.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"internal\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleWindowsVirtualMachine = new azure.compute.WindowsVirtualMachine(\"exampleWindowsVirtualMachine\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    size: \"Standard_F2\",\n    adminUsername: \"adminuser\",\n    adminPassword: `P@$$w0rd1234!`,\n    networkInterfaceIds: [exampleNetworkInterface.id],\n    osDisk: {\n        caching: \"ReadWrite\",\n        storageAccountType: \"Standard_LRS\",\n    },\n    sourceImageReference: {\n        publisher: \"MicrosoftWindowsServer\",\n        offer: \"WindowsServer\",\n        sku: \"2016-Datacenter\",\n        version: \"latest\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"internal\",\n        subnet_id=example_subnet.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nexample_windows_virtual_machine = azure.compute.WindowsVirtualMachine(\"exampleWindowsVirtualMachine\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    size=\"Standard_F2\",\n    admin_username=\"adminuser\",\n    admin_password=\"P@$$w0rd1234!\",\n    network_interface_ids=[example_network_interface.id],\n    os_disk=azure.compute.WindowsVirtualMachineOsDiskArgs(\n        caching=\"ReadWrite\",\n        storage_account_type=\"Standard_LRS\",\n    ),\n    source_image_reference=azure.compute.WindowsVirtualMachineSourceImageReferenceArgs(\n        publisher=\"MicrosoftWindowsServer\",\n        offer=\"WindowsServer\",\n        sku=\"2016-Datacenter\",\n        version=\"latest\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"internal\",\n                    SubnetId = exampleSubnet.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var exampleWindowsVirtualMachine = new Azure.Compute.WindowsVirtualMachine(\"exampleWindowsVirtualMachine\", new Azure.Compute.WindowsVirtualMachineArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Size = \"Standard_F2\",\n            AdminUsername = \"adminuser\",\n            AdminPassword = \"P@$$w0rd1234!\",\n            NetworkInterfaceIds = \n            {\n                exampleNetworkInterface.Id,\n            },\n            OsDisk = new Azure.Compute.Inputs.WindowsVirtualMachineOsDiskArgs\n            {\n                Caching = \"ReadWrite\",\n                StorageAccountType = \"Standard_LRS\",\n            },\n            SourceImageReference = new Azure.Compute.Inputs.WindowsVirtualMachineSourceImageReferenceArgs\n            {\n                Publisher = \"MicrosoftWindowsServer\",\n                Offer = \"WindowsServer\",\n                Sku = \"2016-Datacenter\",\n                Version = \"latest\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkInterface, err := network.NewNetworkInterface(ctx, \"exampleNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"internal\"),\n\t\t\t\t\tSubnetId:                   exampleSubnet.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\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 = compute.NewWindowsVirtualMachine(ctx, \"exampleWindowsVirtualMachine\", \u0026compute.WindowsVirtualMachineArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSize:              pulumi.String(\"Standard_F2\"),\n\t\t\tAdminUsername:     pulumi.String(\"adminuser\"),\n\t\t\tAdminPassword:     pulumi.String(fmt.Sprintf(\"%v%v%v%v\", \"P@\", \"$\", \"$\", \"w0rd1234!\")),\n\t\t\tNetworkInterfaceIds: pulumi.StringArray{\n\t\t\t\texampleNetworkInterface.ID(),\n\t\t\t},\n\t\t\tOsDisk: \u0026compute.WindowsVirtualMachineOsDiskArgs{\n\t\t\t\tCaching:            pulumi.String(\"ReadWrite\"),\n\t\t\t\tStorageAccountType: pulumi.String(\"Standard_LRS\"),\n\t\t\t},\n\t\t\tSourceImageReference: \u0026compute.WindowsVirtualMachineSourceImageReferenceArgs{\n\t\t\t\tPublisher: pulumi.String(\"MicrosoftWindowsServer\"),\n\t\t\t\tOffer:     pulumi.String(\"WindowsServer\"),\n\t\t\t\tSku:       pulumi.String(\"2016-Datacenter\"),\n\t\t\t\tVersion:   pulumi.String(\"latest\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nWindows Virtual Machines can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/windowsVirtualMachine:WindowsVirtualMachine example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/Microsoft.Compute/virtualMachines/machine1\n```\n\n ",
      "inputProperties": {
        "additionalCapabilities": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineAdditionalCapabilities:WindowsVirtualMachineAdditionalCapabilities",
          "description": "A `additional_capabilities` block as defined below.\n"
        },
        "additionalUnattendContents": {
          "description": "One or more `additional_unattend_content` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineAdditionalUnattendContent:WindowsVirtualMachineAdditionalUnattendContent"
          },
          "type": "array"
        },
        "adminPassword": {
          "description": "The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "adminUsername": {
          "description": "The username of the local administrator used for the Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "allowExtensionOperations": {
          "description": "Should Extension Operations be allowed on this Virtual Machine?\n",
          "type": "boolean"
        },
        "availabilitySetId": {
          "description": "Specifies the ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "bootDiagnostics": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineBootDiagnostics:WindowsVirtualMachineBootDiagnostics",
          "description": "A `boot_diagnostics` block as defined below.\n"
        },
        "computerName": {
          "description": "Specifies the Hostname which should be used for this Virtual Machine. If unspecified this defaults to the value for the `name` field. If the value of the `name` field is not a valid `computer_name`, then you must specify `computer_name`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "customData": {
          "description": "The Base64-Encoded Custom Data which should be used for this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "dedicatedHostId": {
          "description": "The ID of a Dedicated Host where this machine should be run on.\n",
          "type": "string"
        },
        "enableAutomaticUpdates": {
          "description": "Specifies if Automatic Updates are Enabled for the Windows Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "encryptionAtHostEnabled": {
          "description": "Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?\n",
          "type": "boolean"
        },
        "evictionPolicy": {
          "description": "Specifies what should happen when the Virtual Machine is evicted for price reasons when using a Spot instance. At this time the only supported value is `Deallocate`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "extensionsTimeBudget": {
          "description": "Specifies the duration allocated for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. Defaults to 90 minutes (`PT1H30M`).\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineIdentity:WindowsVirtualMachineIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "licenseType": {
          "description": "Specifies the type of on-premise license (also known as [Azure Hybrid Use Benefit](https://docs.microsoft.com/en-us/windows-server/get-started/azure-hybrid-benefit)) which should be used for this Virtual Machine. Possible values are `None`, `Windows_Client` and `Windows_Server`.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure location where the Windows Virtual Machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxBidPrice": {
          "description": "The maximum price you're willing to pay for this Virtual Machine, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machine will be evicted using the `eviction_policy`. Defaults to `-1`, which means that the Virtual Machine should not be evicted for price reasons.\n",
          "type": "number"
        },
        "name": {
          "description": "The name of the Windows Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaceIds": {
          "description": ". A list of Network Interface ID's which should be attached to this Virtual Machine. The first Network Interface ID in this list will be the Primary Network Interface on the Virtual Machine.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "osDisk": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineOsDisk:WindowsVirtualMachineOsDisk",
          "description": "A `os_disk` block as defined below.\n"
        },
        "patchMode": {
          "description": "Specifies the mode of in-guest patching to this Windows Virtual Machine. Possible values are `Manual`, `AutomaticByOS` and `AutomaticByPlatform`. Defaults to `AutomaticByOS`.\n",
          "type": "string"
        },
        "plan": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachinePlan:WindowsVirtualMachinePlan",
          "description": "A `plan` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "platformFaultDomain": {
          "description": "Specifies the Platform Fault Domain in which this Windows Virtual Machine should be created. Defaults to `-1`, which means this will be automatically assigned to a fault domain that best maintains balance across the available fault domains. Changing this forces a new Windows Virtual Machine to be created.\n",
          "type": "integer"
        },
        "priority": {
          "description": "Specifies the priority of this Virtual Machine. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "provisionVmAgent": {
          "description": "Should the Azure VM Agent be provisioned on this Virtual Machine? Defaults to `true`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group which the Virtual Machine should be assigned to.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Windows Virtual Machine should be exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secrets": {
          "description": "One or more `secret` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineSecret:WindowsVirtualMachineSecret"
          },
          "type": "array"
        },
        "size": {
          "description": "The SKU which should be used for this Virtual Machine, such as `Standard_F2`.\n",
          "type": "string"
        },
        "sourceImageId": {
          "description": "The ID of the Image which this Virtual Machine should be created from. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceImageReference": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineSourceImageReference:WindowsVirtualMachineSourceImageReference",
          "description": "A `source_image_reference` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to this Virtual Machine.\n",
          "type": "object"
        },
        "timezone": {
          "description": "Specifies the Time Zone which should be used by the Virtual Machine, [the possible values are defined here](https://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/).\n",
          "type": "string"
        },
        "virtualMachineScaleSetId": {
          "description": "Specifies the Orchestrated Virtual Machine Scale Set that this Virtual Machine should be created within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "winrmListeners": {
          "description": "One or more `winrm_listener` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineWinrmListener:WindowsVirtualMachineWinrmListener"
          },
          "type": "array"
        },
        "zone": {
          "description": "The Zone in which this Virtual Machine should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalCapabilities": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineAdditionalCapabilities:WindowsVirtualMachineAdditionalCapabilities",
          "description": "A `additional_capabilities` block as defined below.\n"
        },
        "additionalUnattendContents": {
          "description": "One or more `additional_unattend_content` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineAdditionalUnattendContent:WindowsVirtualMachineAdditionalUnattendContent"
          },
          "type": "array"
        },
        "adminPassword": {
          "description": "The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "adminUsername": {
          "description": "The username of the local administrator used for the Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "allowExtensionOperations": {
          "description": "Should Extension Operations be allowed on this Virtual Machine?\n",
          "type": "boolean"
        },
        "availabilitySetId": {
          "description": "Specifies the ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "bootDiagnostics": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineBootDiagnostics:WindowsVirtualMachineBootDiagnostics",
          "description": "A `boot_diagnostics` block as defined below.\n"
        },
        "computerName": {
          "description": "Specifies the Hostname which should be used for this Virtual Machine. If unspecified this defaults to the value for the `name` field. If the value of the `name` field is not a valid `computer_name`, then you must specify `computer_name`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "customData": {
          "description": "The Base64-Encoded Custom Data which should be used for this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "dedicatedHostId": {
          "description": "The ID of a Dedicated Host where this machine should be run on.\n",
          "type": "string"
        },
        "enableAutomaticUpdates": {
          "description": "Specifies if Automatic Updates are Enabled for the Windows Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "encryptionAtHostEnabled": {
          "description": "Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?\n",
          "type": "boolean"
        },
        "evictionPolicy": {
          "description": "Specifies what should happen when the Virtual Machine is evicted for price reasons when using a Spot instance. At this time the only supported value is `Deallocate`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "extensionsTimeBudget": {
          "description": "Specifies the duration allocated for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. Defaults to 90 minutes (`PT1H30M`).\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineIdentity:WindowsVirtualMachineIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "licenseType": {
          "description": "Specifies the type of on-premise license (also known as [Azure Hybrid Use Benefit](https://docs.microsoft.com/en-us/windows-server/get-started/azure-hybrid-benefit)) which should be used for this Virtual Machine. Possible values are `None`, `Windows_Client` and `Windows_Server`.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure location where the Windows Virtual Machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxBidPrice": {
          "description": "The maximum price you're willing to pay for this Virtual Machine, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machine will be evicted using the `eviction_policy`. Defaults to `-1`, which means that the Virtual Machine should not be evicted for price reasons.\n",
          "type": "number"
        },
        "name": {
          "description": "The name of the Windows Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaceIds": {
          "description": ". A list of Network Interface ID's which should be attached to this Virtual Machine. The first Network Interface ID in this list will be the Primary Network Interface on the Virtual Machine.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "osDisk": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineOsDisk:WindowsVirtualMachineOsDisk",
          "description": "A `os_disk` block as defined below.\n"
        },
        "patchMode": {
          "description": "Specifies the mode of in-guest patching to this Windows Virtual Machine. Possible values are `Manual`, `AutomaticByOS` and `AutomaticByPlatform`. Defaults to `AutomaticByOS`.\n",
          "type": "string"
        },
        "plan": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachinePlan:WindowsVirtualMachinePlan",
          "description": "A `plan` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "platformFaultDomain": {
          "description": "Specifies the Platform Fault Domain in which this Windows Virtual Machine should be created. Defaults to `-1`, which means this will be automatically assigned to a fault domain that best maintains balance across the available fault domains. Changing this forces a new Windows Virtual Machine to be created.\n",
          "type": "integer"
        },
        "priority": {
          "description": "Specifies the priority of this Virtual Machine. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privateIpAddress": {
          "description": "The Primary Private IP Address assigned to this Virtual Machine.\n",
          "type": "string"
        },
        "privateIpAddresses": {
          "description": "A list of Private IP Addresses assigned to this Virtual Machine.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "provisionVmAgent": {
          "description": "Should the Azure VM Agent be provisioned on this Virtual Machine? Defaults to `true`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group which the Virtual Machine should be assigned to.\n",
          "type": "string"
        },
        "publicIpAddress": {
          "description": "The Primary Public IP Address assigned to this Virtual Machine.\n",
          "type": "string"
        },
        "publicIpAddresses": {
          "description": "A list of the Public IP Addresses assigned to this Virtual Machine.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Windows Virtual Machine should be exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secrets": {
          "description": "One or more `secret` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineSecret:WindowsVirtualMachineSecret"
          },
          "type": "array"
        },
        "size": {
          "description": "The SKU which should be used for this Virtual Machine, such as `Standard_F2`.\n",
          "type": "string"
        },
        "sourceImageId": {
          "description": "The ID of the Image which this Virtual Machine should be created from. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceImageReference": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineSourceImageReference:WindowsVirtualMachineSourceImageReference",
          "description": "A `source_image_reference` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to this Virtual Machine.\n",
          "type": "object"
        },
        "timezone": {
          "description": "Specifies the Time Zone which should be used by the Virtual Machine, [the possible values are defined here](https://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/).\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "A 128-bit identifier which uniquely identifies this Virtual Machine.\n",
          "type": "string"
        },
        "virtualMachineScaleSetId": {
          "description": "Specifies the Orchestrated Virtual Machine Scale Set that this Virtual Machine should be created within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "winrmListeners": {
          "description": "One or more `winrm_listener` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineWinrmListener:WindowsVirtualMachineWinrmListener"
          },
          "type": "array"
        },
        "zone": {
          "description": "The Zone in which this Virtual Machine should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "adminPassword",
        "adminUsername",
        "computerName",
        "location",
        "name",
        "networkInterfaceIds",
        "osDisk",
        "privateIpAddress",
        "privateIpAddresses",
        "publicIpAddress",
        "publicIpAddresses",
        "resourceGroupName",
        "size",
        "virtualMachineId",
        "zone"
      ],
      "requiredInputs": [
        "adminPassword",
        "adminUsername",
        "networkInterfaceIds",
        "osDisk",
        "resourceGroupName",
        "size"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WindowsVirtualMachine resources.\n",
        "properties": {
          "additionalCapabilities": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineAdditionalCapabilities:WindowsVirtualMachineAdditionalCapabilities",
            "description": "A `additional_capabilities` block as defined below.\n"
          },
          "additionalUnattendContents": {
            "description": "One or more `additional_unattend_content` blocks as defined below. Changing this forces a new resource to be created.\n",
            "items": {
              "$ref": "#/types/azure:compute/WindowsVirtualMachineAdditionalUnattendContent:WindowsVirtualMachineAdditionalUnattendContent"
            },
            "type": "array"
          },
          "adminPassword": {
            "description": "The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "adminUsername": {
            "description": "The username of the local administrator used for the Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "allowExtensionOperations": {
            "description": "Should Extension Operations be allowed on this Virtual Machine?\n",
            "type": "boolean"
          },
          "availabilitySetId": {
            "description": "Specifies the ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "bootDiagnostics": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineBootDiagnostics:WindowsVirtualMachineBootDiagnostics",
            "description": "A `boot_diagnostics` block as defined below.\n"
          },
          "computerName": {
            "description": "Specifies the Hostname which should be used for this Virtual Machine. If unspecified this defaults to the value for the `name` field. If the value of the `name` field is not a valid `computer_name`, then you must specify `computer_name`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "customData": {
            "description": "The Base64-Encoded Custom Data which should be used for this Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "dedicatedHostId": {
            "description": "The ID of a Dedicated Host where this machine should be run on.\n",
            "type": "string"
          },
          "enableAutomaticUpdates": {
            "description": "Specifies if Automatic Updates are Enabled for the Windows Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "encryptionAtHostEnabled": {
            "description": "Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?\n",
            "type": "boolean"
          },
          "evictionPolicy": {
            "description": "Specifies what should happen when the Virtual Machine is evicted for price reasons when using a Spot instance. At this time the only supported value is `Deallocate`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "extensionsTimeBudget": {
            "description": "Specifies the duration allocated for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. Defaults to 90 minutes (`PT1H30M`).\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineIdentity:WindowsVirtualMachineIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "licenseType": {
            "description": "Specifies the type of on-premise license (also known as [Azure Hybrid Use Benefit](https://docs.microsoft.com/en-us/windows-server/get-started/azure-hybrid-benefit)) which should be used for this Virtual Machine. Possible values are `None`, `Windows_Client` and `Windows_Server`.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the Windows Virtual Machine should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maxBidPrice": {
            "description": "The maximum price you're willing to pay for this Virtual Machine, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machine will be evicted using the `eviction_policy`. Defaults to `-1`, which means that the Virtual Machine should not be evicted for price reasons.\n",
            "type": "number"
          },
          "name": {
            "description": "The name of the Windows Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkInterfaceIds": {
            "description": ". A list of Network Interface ID's which should be attached to this Virtual Machine. The first Network Interface ID in this list will be the Primary Network Interface on the Virtual Machine.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "osDisk": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineOsDisk:WindowsVirtualMachineOsDisk",
            "description": "A `os_disk` block as defined below.\n"
          },
          "patchMode": {
            "description": "Specifies the mode of in-guest patching to this Windows Virtual Machine. Possible values are `Manual`, `AutomaticByOS` and `AutomaticByPlatform`. Defaults to `AutomaticByOS`.\n",
            "type": "string"
          },
          "plan": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachinePlan:WindowsVirtualMachinePlan",
            "description": "A `plan` block as defined below. Changing this forces a new resource to be created.\n"
          },
          "platformFaultDomain": {
            "description": "Specifies the Platform Fault Domain in which this Windows Virtual Machine should be created. Defaults to `-1`, which means this will be automatically assigned to a fault domain that best maintains balance across the available fault domains. Changing this forces a new Windows Virtual Machine to be created.\n",
            "type": "integer"
          },
          "priority": {
            "description": "Specifies the priority of this Virtual Machine. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "privateIpAddress": {
            "description": "The Primary Private IP Address assigned to this Virtual Machine.\n",
            "type": "string"
          },
          "privateIpAddresses": {
            "description": "A list of Private IP Addresses assigned to this Virtual Machine.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "provisionVmAgent": {
            "description": "Should the Azure VM Agent be provisioned on this Virtual Machine? Defaults to `true`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "proximityPlacementGroupId": {
            "description": "The ID of the Proximity Placement Group which the Virtual Machine should be assigned to.\n",
            "type": "string"
          },
          "publicIpAddress": {
            "description": "The Primary Public IP Address assigned to this Virtual Machine.\n",
            "type": "string"
          },
          "publicIpAddresses": {
            "description": "A list of the Public IP Addresses assigned to this Virtual Machine.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Windows Virtual Machine should be exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secrets": {
            "description": "One or more `secret` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/WindowsVirtualMachineSecret:WindowsVirtualMachineSecret"
            },
            "type": "array"
          },
          "size": {
            "description": "The SKU which should be used for this Virtual Machine, such as `Standard_F2`.\n",
            "type": "string"
          },
          "sourceImageId": {
            "description": "The ID of the Image which this Virtual Machine should be created from. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sourceImageReference": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineSourceImageReference:WindowsVirtualMachineSourceImageReference",
            "description": "A `source_image_reference` block as defined below. Changing this forces a new resource to be created.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to this Virtual Machine.\n",
            "type": "object"
          },
          "timezone": {
            "description": "Specifies the Time Zone which should be used by the Virtual Machine, [the possible values are defined here](https://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/).\n",
            "type": "string"
          },
          "virtualMachineId": {
            "description": "A 128-bit identifier which uniquely identifies this Virtual Machine.\n",
            "type": "string"
          },
          "virtualMachineScaleSetId": {
            "description": "Specifies the Orchestrated Virtual Machine Scale Set that this Virtual Machine should be created within. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "winrmListeners": {
            "description": "One or more `winrm_listener` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/WindowsVirtualMachineWinrmListener:WindowsVirtualMachineWinrmListener"
            },
            "type": "array"
          },
          "zone": {
            "description": "The Zone in which this Virtual Machine should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:compute/windowsVirtualMachineScaleSet:WindowsVirtualMachineScaleSet": {
      "description": "Manages a Windows Virtual Machine Scale Set.\n\n## Disclaimers\n\n\u003e **Note** This provider will automatically update \u0026 reimage the nodes in the Scale Set (if Required) during an Update - this behaviour can be configured using the `features` configuration within the Provider configuration block.\n\n\u003e **Note:** This resource does not support Unmanaged Disks. If you need to use Unmanaged Disks you can continue to use the `azure.compute.ScaleSet` resource instead\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis example provisions a basic Windows Virtual Machine Scale Set on an internal network.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    addressSpaces: [\"10.0.0.0/16\"],\n});\nconst internal = new azure.network.Subnet(\"internal\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleWindowsVirtualMachineScaleSet = new azure.compute.WindowsVirtualMachineScaleSet(\"exampleWindowsVirtualMachineScaleSet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: \"Standard_F2\",\n    instances: 1,\n    adminPassword: \"P@55w0rd1234!\",\n    adminUsername: \"adminuser\",\n    sourceImageReference: {\n        publisher: \"MicrosoftWindowsServer\",\n        offer: \"WindowsServer\",\n        sku: \"2016-Datacenter-Server-Core\",\n        version: \"latest\",\n    },\n    osDisk: {\n        storageAccountType: \"Standard_LRS\",\n        caching: \"ReadWrite\",\n    },\n    networkInterfaces: [{\n        name: \"example\",\n        primary: true,\n        ipConfigurations: [{\n            name: \"internal\",\n            primary: true,\n            subnetId: internal.id,\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    address_spaces=[\"10.0.0.0/16\"])\ninternal = azure.network.Subnet(\"internal\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_windows_virtual_machine_scale_set = azure.compute.WindowsVirtualMachineScaleSet(\"exampleWindowsVirtualMachineScaleSet\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=\"Standard_F2\",\n    instances=1,\n    admin_password=\"P@55w0rd1234!\",\n    admin_username=\"adminuser\",\n    source_image_reference=azure.compute.WindowsVirtualMachineScaleSetSourceImageReferenceArgs(\n        publisher=\"MicrosoftWindowsServer\",\n        offer=\"WindowsServer\",\n        sku=\"2016-Datacenter-Server-Core\",\n        version=\"latest\",\n    ),\n    os_disk=azure.compute.WindowsVirtualMachineScaleSetOsDiskArgs(\n        storage_account_type=\"Standard_LRS\",\n        caching=\"ReadWrite\",\n    ),\n    network_interfaces=[azure.compute.WindowsVirtualMachineScaleSetNetworkInterfaceArgs(\n        name=\"example\",\n        primary=True,\n        ip_configurations=[{\n            \"name\": \"internal\",\n            \"primary\": True,\n            \"subnet_id\": internal.id,\n        }],\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n        });\n        var @internal = new Azure.Network.Subnet(\"internal\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleWindowsVirtualMachineScaleSet = new Azure.Compute.WindowsVirtualMachineScaleSet(\"exampleWindowsVirtualMachineScaleSet\", new Azure.Compute.WindowsVirtualMachineScaleSetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = \"Standard_F2\",\n            Instances = 1,\n            AdminPassword = \"P@55w0rd1234!\",\n            AdminUsername = \"adminuser\",\n            SourceImageReference = new Azure.Compute.Inputs.WindowsVirtualMachineScaleSetSourceImageReferenceArgs\n            {\n                Publisher = \"MicrosoftWindowsServer\",\n                Offer = \"WindowsServer\",\n                Sku = \"2016-Datacenter-Server-Core\",\n                Version = \"latest\",\n            },\n            OsDisk = new Azure.Compute.Inputs.WindowsVirtualMachineScaleSetOsDiskArgs\n            {\n                StorageAccountType = \"Standard_LRS\",\n                Caching = \"ReadWrite\",\n            },\n            NetworkInterfaces = \n            {\n                new Azure.Compute.Inputs.WindowsVirtualMachineScaleSetNetworkInterfaceArgs\n                {\n                    Name = \"example\",\n                    Primary = true,\n                    IpConfigurations = \n                    {\n                        new Azure.Compute.Inputs.WindowsVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs\n                        {\n                            Name = \"internal\",\n                            Primary = true,\n                            SubnetId = @internal.Id,\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinternal, err := network.NewSubnet(ctx, \"internal\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewWindowsVirtualMachineScaleSet(ctx, \"exampleWindowsVirtualMachineScaleSet\", \u0026compute.WindowsVirtualMachineScaleSetArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku:               pulumi.String(\"Standard_F2\"),\n\t\t\tInstances:         pulumi.Int(1),\n\t\t\tAdminPassword:     pulumi.String(\"P@55w0rd1234!\"),\n\t\t\tAdminUsername:     pulumi.String(\"adminuser\"),\n\t\t\tSourceImageReference: \u0026compute.WindowsVirtualMachineScaleSetSourceImageReferenceArgs{\n\t\t\t\tPublisher: pulumi.String(\"MicrosoftWindowsServer\"),\n\t\t\t\tOffer:     pulumi.String(\"WindowsServer\"),\n\t\t\t\tSku:       pulumi.String(\"2016-Datacenter-Server-Core\"),\n\t\t\t\tVersion:   pulumi.String(\"latest\"),\n\t\t\t},\n\t\t\tOsDisk: \u0026compute.WindowsVirtualMachineScaleSetOsDiskArgs{\n\t\t\t\tStorageAccountType: pulumi.String(\"Standard_LRS\"),\n\t\t\t\tCaching:            pulumi.String(\"ReadWrite\"),\n\t\t\t},\n\t\t\tNetworkInterfaces: compute.WindowsVirtualMachineScaleSetNetworkInterfaceArray{\n\t\t\t\t\u0026compute.WindowsVirtualMachineScaleSetNetworkInterfaceArgs{\n\t\t\t\t\tName:    pulumi.String(\"example\"),\n\t\t\t\t\tPrimary: pulumi.Bool(true),\n\t\t\t\t\tIpConfigurations: compute.WindowsVirtualMachineScaleSetNetworkInterfaceIpConfigurationArray{\n\t\t\t\t\t\t\u0026compute.WindowsVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\t\t\tName:     pulumi.String(\"internal\"),\n\t\t\t\t\t\t\tPrimary:  pulumi.Bool(true),\n\t\t\t\t\t\t\tSubnetId: internal.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nWindows Virtual Machine Scale Sets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/windowsVirtualMachineScaleSet:WindowsVirtualMachineScaleSet example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/Microsoft.Compute/virtualMachineScaleSets/scaleset1\n```\n\n ",
      "inputProperties": {
        "additionalCapabilities": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetAdditionalCapabilities:WindowsVirtualMachineScaleSetAdditionalCapabilities",
          "description": "A `additional_capabilities` block as defined below.\n"
        },
        "additionalUnattendContents": {
          "description": "One or more `additional_unattend_content` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetAdditionalUnattendContent:WindowsVirtualMachineScaleSetAdditionalUnattendContent"
          },
          "type": "array"
        },
        "adminPassword": {
          "description": "The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "adminUsername": {
          "description": "The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "automaticInstanceRepair": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetAutomaticInstanceRepair:WindowsVirtualMachineScaleSetAutomaticInstanceRepair",
          "description": "A `automatic_instance_repair` block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid `health_probe_id` or an [Application Health Extension](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-health-extension).\n"
        },
        "automaticOsUpgradePolicy": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetAutomaticOsUpgradePolicy:WindowsVirtualMachineScaleSetAutomaticOsUpgradePolicy",
          "description": "A `automatic_os_upgrade_policy` block as defined below. This can only be specified when `upgrade_mode` is set to `Automatic`.\n"
        },
        "bootDiagnostics": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetBootDiagnostics:WindowsVirtualMachineScaleSetBootDiagnostics",
          "description": "A `boot_diagnostics` block as defined below.\n"
        },
        "computerNamePrefix": {
          "description": "The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the `name` field. If the value of the `name` field is not a valid `computer_name_prefix`, then you must specify `computer_name_prefix`.\n",
          "type": "string"
        },
        "customData": {
          "description": "The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.\n",
          "type": "string"
        },
        "dataDisks": {
          "description": "One or more `data_disk` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetDataDisk:WindowsVirtualMachineScaleSetDataDisk"
          },
          "type": "array"
        },
        "doNotRunExtensionsOnOverprovisionedMachines": {
          "description": "Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to `false`.\n",
          "type": "boolean"
        },
        "enableAutomaticUpdates": {
          "description": "Are automatic updates enabled for this Virtual Machine? Defaults to `true`.\n",
          "type": "boolean"
        },
        "encryptionAtHostEnabled": {
          "description": "Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?\n",
          "type": "boolean"
        },
        "evictionPolicy": {
          "description": "The Policy which should be used Virtual Machines are Evicted from the Scale Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "extensions": {
          "description": "One or more `extension` blocks as defined below\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetExtension:WindowsVirtualMachineScaleSetExtension"
          },
          "type": "array"
        },
        "extensionsTimeBudget": {
          "description": "Specifies the duration allocated for all extensions to start. The time duration should be between `15` minutes and `120` minutes (inclusive) and should be specified in ISO 8601 format. Defaults to `90` minutes (`PT1H30M`).\n",
          "type": "string"
        },
        "healthProbeId": {
          "description": "The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when `upgrade_mode` is set to `Automatic` or `Rolling`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetIdentity:WindowsVirtualMachineScaleSetIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "instances": {
          "description": "The number of Virtual Machines in the Scale Set.\n",
          "type": "integer"
        },
        "licenseType": {
          "description": "Specifies the type of on-premise license (also known as [Azure Hybrid Use Benefit](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing)) which should be used for this Virtual Machine Scale Set. Possible values are `None`, `Windows_Client` and `Windows_Server`.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure location where the Windows Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxBidPrice": {
          "description": "The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the `eviction_policy`. Defaults to `-1`, which means that each Virtual Machine in the Scale Set should not be evicted for price reasons.\n",
          "type": "number"
        },
        "name": {
          "description": "The name of the Windows Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaces": {
          "description": "One or more `network_interface` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetNetworkInterface:WindowsVirtualMachineScaleSetNetworkInterface"
          },
          "type": "array"
        },
        "osDisk": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetOsDisk:WindowsVirtualMachineScaleSetOsDisk",
          "description": "An `os_disk` block as defined below.\n"
        },
        "overprovision": {
          "description": "Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to `true`.\n",
          "type": "boolean"
        },
        "plan": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetPlan:WindowsVirtualMachineScaleSetPlan",
          "description": "A `plan` block as documented below.\n"
        },
        "platformFaultDomainCount": {
          "description": "Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "priority": {
          "description": "The Priority of this Virtual Machine Scale Set. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this value forces a new resource.\n",
          "type": "string"
        },
        "provisionVmAgent": {
          "description": "Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to `true`. Changing this value forces a new resource to be created.\n",
          "type": "boolean"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Windows Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rollingUpgradePolicy": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetRollingUpgradePolicy:WindowsVirtualMachineScaleSetRollingUpgradePolicy",
          "description": "A `rolling_upgrade_policy` block as defined below. This is Required and can only be specified when `upgrade_mode` is set to `Automatic` or `Rolling`.\n"
        },
        "scaleInPolicy": {
          "description": "The scale-in policy rule that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled in. Possible values for the scale-in policy rules are `Default`, `NewestVM` and `OldestVM`, defaults to `Default`. For more information about scale in policy, please [refer to this doc](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-scale-in-policy).\n",
          "type": "string"
        },
        "secrets": {
          "description": "One or more `secret` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetSecret:WindowsVirtualMachineScaleSetSecret"
          },
          "type": "array"
        },
        "singlePlacementGroup": {
          "description": "Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to `true`.\n",
          "type": "boolean"
        },
        "sku": {
          "description": "The Virtual Machine SKU for the Scale Set, such as `Standard_F2`.\n",
          "type": "string"
        },
        "sourceImageId": {
          "description": "The ID of an Image which each Virtual Machine in this Scale Set should be based on.\n",
          "type": "string"
        },
        "sourceImageReference": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetSourceImageReference:WindowsVirtualMachineScaleSetSourceImageReference",
          "description": "A `source_image_reference` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to this Virtual Machine Scale Set.\n",
          "type": "object"
        },
        "terminateNotification": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetTerminateNotification:WindowsVirtualMachineScaleSetTerminateNotification",
          "description": "A `terminate_notification` block as defined below.\n"
        },
        "timezone": {
          "description": "Specifies the time zone of the virtual machine, [the possible values are defined here](https://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/).\n",
          "type": "string"
        },
        "upgradeMode": {
          "description": "Specifies how Upgrades (e.g. changing the Image/SKU) should be performed to Virtual Machine Instances. Possible values are `Automatic`, `Manual` and `Rolling`. Defaults to `Manual`.\n",
          "type": "string"
        },
        "winrmListeners": {
          "description": "One or more `winrm_listener` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetWinrmListener:WindowsVirtualMachineScaleSetWinrmListener"
          },
          "type": "array"
        },
        "zoneBalance": {
          "description": "Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "zones": {
          "description": "A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "additionalCapabilities": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetAdditionalCapabilities:WindowsVirtualMachineScaleSetAdditionalCapabilities",
          "description": "A `additional_capabilities` block as defined below.\n"
        },
        "additionalUnattendContents": {
          "description": "One or more `additional_unattend_content` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetAdditionalUnattendContent:WindowsVirtualMachineScaleSetAdditionalUnattendContent"
          },
          "type": "array"
        },
        "adminPassword": {
          "description": "The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "adminUsername": {
          "description": "The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "automaticInstanceRepair": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetAutomaticInstanceRepair:WindowsVirtualMachineScaleSetAutomaticInstanceRepair",
          "description": "A `automatic_instance_repair` block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid `health_probe_id` or an [Application Health Extension](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-health-extension).\n"
        },
        "automaticOsUpgradePolicy": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetAutomaticOsUpgradePolicy:WindowsVirtualMachineScaleSetAutomaticOsUpgradePolicy",
          "description": "A `automatic_os_upgrade_policy` block as defined below. This can only be specified when `upgrade_mode` is set to `Automatic`.\n"
        },
        "bootDiagnostics": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetBootDiagnostics:WindowsVirtualMachineScaleSetBootDiagnostics",
          "description": "A `boot_diagnostics` block as defined below.\n"
        },
        "computerNamePrefix": {
          "description": "The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the `name` field. If the value of the `name` field is not a valid `computer_name_prefix`, then you must specify `computer_name_prefix`.\n",
          "type": "string"
        },
        "customData": {
          "description": "The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.\n",
          "type": "string"
        },
        "dataDisks": {
          "description": "One or more `data_disk` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetDataDisk:WindowsVirtualMachineScaleSetDataDisk"
          },
          "type": "array"
        },
        "doNotRunExtensionsOnOverprovisionedMachines": {
          "description": "Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to `false`.\n",
          "type": "boolean"
        },
        "enableAutomaticUpdates": {
          "description": "Are automatic updates enabled for this Virtual Machine? Defaults to `true`.\n",
          "type": "boolean"
        },
        "encryptionAtHostEnabled": {
          "description": "Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?\n",
          "type": "boolean"
        },
        "evictionPolicy": {
          "description": "The Policy which should be used Virtual Machines are Evicted from the Scale Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "extensions": {
          "description": "One or more `extension` blocks as defined below\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetExtension:WindowsVirtualMachineScaleSetExtension"
          },
          "type": "array"
        },
        "extensionsTimeBudget": {
          "description": "Specifies the duration allocated for all extensions to start. The time duration should be between `15` minutes and `120` minutes (inclusive) and should be specified in ISO 8601 format. Defaults to `90` minutes (`PT1H30M`).\n",
          "type": "string"
        },
        "healthProbeId": {
          "description": "The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when `upgrade_mode` is set to `Automatic` or `Rolling`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetIdentity:WindowsVirtualMachineScaleSetIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "instances": {
          "description": "The number of Virtual Machines in the Scale Set.\n",
          "type": "integer"
        },
        "licenseType": {
          "description": "Specifies the type of on-premise license (also known as [Azure Hybrid Use Benefit](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing)) which should be used for this Virtual Machine Scale Set. Possible values are `None`, `Windows_Client` and `Windows_Server`.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure location where the Windows Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxBidPrice": {
          "description": "The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the `eviction_policy`. Defaults to `-1`, which means that each Virtual Machine in the Scale Set should not be evicted for price reasons.\n",
          "type": "number"
        },
        "name": {
          "description": "The name of the Windows Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaces": {
          "description": "One or more `network_interface` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetNetworkInterface:WindowsVirtualMachineScaleSetNetworkInterface"
          },
          "type": "array"
        },
        "osDisk": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetOsDisk:WindowsVirtualMachineScaleSetOsDisk",
          "description": "An `os_disk` block as defined below.\n"
        },
        "overprovision": {
          "description": "Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to `true`.\n",
          "type": "boolean"
        },
        "plan": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetPlan:WindowsVirtualMachineScaleSetPlan",
          "description": "A `plan` block as documented below.\n"
        },
        "platformFaultDomainCount": {
          "description": "Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "priority": {
          "description": "The Priority of this Virtual Machine Scale Set. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this value forces a new resource.\n",
          "type": "string"
        },
        "provisionVmAgent": {
          "description": "Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to `true`. Changing this value forces a new resource to be created.\n",
          "type": "boolean"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Windows Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rollingUpgradePolicy": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetRollingUpgradePolicy:WindowsVirtualMachineScaleSetRollingUpgradePolicy",
          "description": "A `rolling_upgrade_policy` block as defined below. This is Required and can only be specified when `upgrade_mode` is set to `Automatic` or `Rolling`.\n"
        },
        "scaleInPolicy": {
          "description": "The scale-in policy rule that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled in. Possible values for the scale-in policy rules are `Default`, `NewestVM` and `OldestVM`, defaults to `Default`. For more information about scale in policy, please [refer to this doc](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-scale-in-policy).\n",
          "type": "string"
        },
        "secrets": {
          "description": "One or more `secret` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetSecret:WindowsVirtualMachineScaleSetSecret"
          },
          "type": "array"
        },
        "singlePlacementGroup": {
          "description": "Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to `true`.\n",
          "type": "boolean"
        },
        "sku": {
          "description": "The Virtual Machine SKU for the Scale Set, such as `Standard_F2`.\n",
          "type": "string"
        },
        "sourceImageId": {
          "description": "The ID of an Image which each Virtual Machine in this Scale Set should be based on.\n",
          "type": "string"
        },
        "sourceImageReference": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetSourceImageReference:WindowsVirtualMachineScaleSetSourceImageReference",
          "description": "A `source_image_reference` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to this Virtual Machine Scale Set.\n",
          "type": "object"
        },
        "terminateNotification": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetTerminateNotification:WindowsVirtualMachineScaleSetTerminateNotification",
          "description": "A `terminate_notification` block as defined below.\n"
        },
        "timezone": {
          "description": "Specifies the time zone of the virtual machine, [the possible values are defined here](https://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/).\n",
          "type": "string"
        },
        "uniqueId": {
          "description": "The Unique ID for this Windows Virtual Machine Scale Set.\n",
          "type": "string"
        },
        "upgradeMode": {
          "description": "Specifies how Upgrades (e.g. changing the Image/SKU) should be performed to Virtual Machine Instances. Possible values are `Automatic`, `Manual` and `Rolling`. Defaults to `Manual`.\n",
          "type": "string"
        },
        "winrmListeners": {
          "description": "One or more `winrm_listener` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetWinrmListener:WindowsVirtualMachineScaleSetWinrmListener"
          },
          "type": "array"
        },
        "zoneBalance": {
          "description": "Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "zones": {
          "description": "A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "adminPassword",
        "adminUsername",
        "automaticInstanceRepair",
        "computerNamePrefix",
        "extensions",
        "instances",
        "location",
        "name",
        "networkInterfaces",
        "osDisk",
        "platformFaultDomainCount",
        "resourceGroupName",
        "sku",
        "terminateNotification",
        "uniqueId"
      ],
      "requiredInputs": [
        "adminPassword",
        "adminUsername",
        "instances",
        "networkInterfaces",
        "osDisk",
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WindowsVirtualMachineScaleSet resources.\n",
        "properties": {
          "additionalCapabilities": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetAdditionalCapabilities:WindowsVirtualMachineScaleSetAdditionalCapabilities",
            "description": "A `additional_capabilities` block as defined below.\n"
          },
          "additionalUnattendContents": {
            "description": "One or more `additional_unattend_content` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetAdditionalUnattendContent:WindowsVirtualMachineScaleSetAdditionalUnattendContent"
            },
            "type": "array"
          },
          "adminPassword": {
            "description": "The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "adminUsername": {
            "description": "The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "automaticInstanceRepair": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetAutomaticInstanceRepair:WindowsVirtualMachineScaleSetAutomaticInstanceRepair",
            "description": "A `automatic_instance_repair` block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid `health_probe_id` or an [Application Health Extension](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-health-extension).\n"
          },
          "automaticOsUpgradePolicy": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetAutomaticOsUpgradePolicy:WindowsVirtualMachineScaleSetAutomaticOsUpgradePolicy",
            "description": "A `automatic_os_upgrade_policy` block as defined below. This can only be specified when `upgrade_mode` is set to `Automatic`.\n"
          },
          "bootDiagnostics": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetBootDiagnostics:WindowsVirtualMachineScaleSetBootDiagnostics",
            "description": "A `boot_diagnostics` block as defined below.\n"
          },
          "computerNamePrefix": {
            "description": "The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the `name` field. If the value of the `name` field is not a valid `computer_name_prefix`, then you must specify `computer_name_prefix`.\n",
            "type": "string"
          },
          "customData": {
            "description": "The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.\n",
            "type": "string"
          },
          "dataDisks": {
            "description": "One or more `data_disk` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetDataDisk:WindowsVirtualMachineScaleSetDataDisk"
            },
            "type": "array"
          },
          "doNotRunExtensionsOnOverprovisionedMachines": {
            "description": "Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to `false`.\n",
            "type": "boolean"
          },
          "enableAutomaticUpdates": {
            "description": "Are automatic updates enabled for this Virtual Machine? Defaults to `true`.\n",
            "type": "boolean"
          },
          "encryptionAtHostEnabled": {
            "description": "Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?\n",
            "type": "boolean"
          },
          "evictionPolicy": {
            "description": "The Policy which should be used Virtual Machines are Evicted from the Scale Set. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "extensions": {
            "description": "One or more `extension` blocks as defined below\n",
            "items": {
              "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetExtension:WindowsVirtualMachineScaleSetExtension"
            },
            "type": "array"
          },
          "extensionsTimeBudget": {
            "description": "Specifies the duration allocated for all extensions to start. The time duration should be between `15` minutes and `120` minutes (inclusive) and should be specified in ISO 8601 format. Defaults to `90` minutes (`PT1H30M`).\n",
            "type": "string"
          },
          "healthProbeId": {
            "description": "The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when `upgrade_mode` is set to `Automatic` or `Rolling`.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetIdentity:WindowsVirtualMachineScaleSetIdentity",
            "description": "A `identity` block as defined below.\n"
          },
          "instances": {
            "description": "The number of Virtual Machines in the Scale Set.\n",
            "type": "integer"
          },
          "licenseType": {
            "description": "Specifies the type of on-premise license (also known as [Azure Hybrid Use Benefit](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing)) which should be used for this Virtual Machine Scale Set. Possible values are `None`, `Windows_Client` and `Windows_Server`.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where the Windows Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maxBidPrice": {
            "description": "The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the `eviction_policy`. Defaults to `-1`, which means that each Virtual Machine in the Scale Set should not be evicted for price reasons.\n",
            "type": "number"
          },
          "name": {
            "description": "The name of the Windows Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkInterfaces": {
            "description": "One or more `network_interface` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetNetworkInterface:WindowsVirtualMachineScaleSetNetworkInterface"
            },
            "type": "array"
          },
          "osDisk": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetOsDisk:WindowsVirtualMachineScaleSetOsDisk",
            "description": "An `os_disk` block as defined below.\n"
          },
          "overprovision": {
            "description": "Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to `true`.\n",
            "type": "boolean"
          },
          "plan": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetPlan:WindowsVirtualMachineScaleSetPlan",
            "description": "A `plan` block as documented below.\n"
          },
          "platformFaultDomainCount": {
            "description": "Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "priority": {
            "description": "The Priority of this Virtual Machine Scale Set. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this value forces a new resource.\n",
            "type": "string"
          },
          "provisionVmAgent": {
            "description": "Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to `true`. Changing this value forces a new resource to be created.\n",
            "type": "boolean"
          },
          "proximityPlacementGroupId": {
            "description": "The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Windows Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "rollingUpgradePolicy": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetRollingUpgradePolicy:WindowsVirtualMachineScaleSetRollingUpgradePolicy",
            "description": "A `rolling_upgrade_policy` block as defined below. This is Required and can only be specified when `upgrade_mode` is set to `Automatic` or `Rolling`.\n"
          },
          "scaleInPolicy": {
            "description": "The scale-in policy rule that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled in. Possible values for the scale-in policy rules are `Default`, `NewestVM` and `OldestVM`, defaults to `Default`. For more information about scale in policy, please [refer to this doc](https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-scale-in-policy).\n",
            "type": "string"
          },
          "secrets": {
            "description": "One or more `secret` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetSecret:WindowsVirtualMachineScaleSetSecret"
            },
            "type": "array"
          },
          "singlePlacementGroup": {
            "description": "Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to `true`.\n",
            "type": "boolean"
          },
          "sku": {
            "description": "The Virtual Machine SKU for the Scale Set, such as `Standard_F2`.\n",
            "type": "string"
          },
          "sourceImageId": {
            "description": "The ID of an Image which each Virtual Machine in this Scale Set should be based on.\n",
            "type": "string"
          },
          "sourceImageReference": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetSourceImageReference:WindowsVirtualMachineScaleSetSourceImageReference",
            "description": "A `source_image_reference` block as defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to this Virtual Machine Scale Set.\n",
            "type": "object"
          },
          "terminateNotification": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetTerminateNotification:WindowsVirtualMachineScaleSetTerminateNotification",
            "description": "A `terminate_notification` block as defined below.\n"
          },
          "timezone": {
            "description": "Specifies the time zone of the virtual machine, [the possible values are defined here](https://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/).\n",
            "type": "string"
          },
          "uniqueId": {
            "description": "The Unique ID for this Windows Virtual Machine Scale Set.\n",
            "type": "string"
          },
          "upgradeMode": {
            "description": "Specifies how Upgrades (e.g. changing the Image/SKU) should be performed to Virtual Machine Instances. Possible values are `Automatic`, `Manual` and `Rolling`. Defaults to `Manual`.\n",
            "type": "string"
          },
          "winrmListeners": {
            "description": "One or more `winrm_listener` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetWinrmListener:WindowsVirtualMachineScaleSetWinrmListener"
            },
            "type": "array"
          },
          "zoneBalance": {
            "description": "Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to `false`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "zones": {
            "description": "A list of Availability Zones in which the Virtual Machines in this Scale Set should be created in. Changing this forces a new resource to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:consumption/budgetResourceGroup:BudgetResourceGroup": {
      "description": "Manages a Resource Group Consumption Budget.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"eastus\"});\nconst exampleActionGroup = new azure.monitoring.ActionGroup(\"exampleActionGroup\", {\n    resourceGroupName: exampleResourceGroup.name,\n    shortName: \"example\",\n});\nconst exampleBudgetResourceGroup = new azure.consumption.BudgetResourceGroup(\"exampleBudgetResourceGroup\", {\n    resourceGroupId: exampleResourceGroup.id,\n    amount: 1000,\n    timeGrain: \"Monthly\",\n    timePeriod: {\n        startDate: \"2022-06-01T00:00:00Z\",\n        endDate: \"2022-07-01T00:00:00Z\",\n    },\n    filter: {\n        dimensions: [{\n            name: \"ResourceId\",\n            values: [exampleActionGroup.id],\n        }],\n        tags: [{\n            name: \"foo\",\n            values: [\n                \"bar\",\n                \"baz\",\n            ],\n        }],\n    },\n    notifications: [\n        {\n            enabled: true,\n            threshold: 90,\n            operator: \"EqualTo\",\n            contactEmails: [\n                \"foo@example.com\",\n                \"bar@example.com\",\n            ],\n            contactGroups: [exampleActionGroup.id],\n            contactRoles: [\"Owner\"],\n        },\n        {\n            enabled: false,\n            threshold: 100,\n            operator: \"GreaterThan\",\n            contactEmails: [\n                \"foo@example.com\",\n                \"bar@example.com\",\n            ],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"eastus\")\nexample_action_group = azure.monitoring.ActionGroup(\"exampleActionGroup\",\n    resource_group_name=example_resource_group.name,\n    short_name=\"example\")\nexample_budget_resource_group = azure.consumption.BudgetResourceGroup(\"exampleBudgetResourceGroup\",\n    resource_group_id=example_resource_group.id,\n    amount=1000,\n    time_grain=\"Monthly\",\n    time_period=azure.consumption.BudgetResourceGroupTimePeriodArgs(\n        start_date=\"2022-06-01T00:00:00Z\",\n        end_date=\"2022-07-01T00:00:00Z\",\n    ),\n    filter=azure.consumption.BudgetResourceGroupFilterArgs(\n        dimensions=[azure.consumption.BudgetResourceGroupFilterDimensionArgs(\n            name=\"ResourceId\",\n            values=[example_action_group.id],\n        )],\n        tags=[azure.consumption.BudgetResourceGroupFilterTagArgs(\n            name=\"foo\",\n            values=[\n                \"bar\",\n                \"baz\",\n            ],\n        )],\n    ),\n    notifications=[\n        azure.consumption.BudgetResourceGroupNotificationArgs(\n            enabled=True,\n            threshold=90,\n            operator=\"EqualTo\",\n            contact_emails=[\n                \"foo@example.com\",\n                \"bar@example.com\",\n            ],\n            contact_groups=[example_action_group.id],\n            contact_roles=[\"Owner\"],\n        ),\n        azure.consumption.BudgetResourceGroupNotificationArgs(\n            enabled=False,\n            threshold=100,\n            operator=\"GreaterThan\",\n            contact_emails=[\n                \"foo@example.com\",\n                \"bar@example.com\",\n            ],\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"eastus\",\n        });\n        var exampleActionGroup = new Azure.Monitoring.ActionGroup(\"exampleActionGroup\", new Azure.Monitoring.ActionGroupArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ShortName = \"example\",\n        });\n        var exampleBudgetResourceGroup = new Azure.Consumption.BudgetResourceGroup(\"exampleBudgetResourceGroup\", new Azure.Consumption.BudgetResourceGroupArgs\n        {\n            ResourceGroupId = exampleResourceGroup.Id,\n            Amount = 1000,\n            TimeGrain = \"Monthly\",\n            TimePeriod = new Azure.Consumption.Inputs.BudgetResourceGroupTimePeriodArgs\n            {\n                StartDate = \"2022-06-01T00:00:00Z\",\n                EndDate = \"2022-07-01T00:00:00Z\",\n            },\n            Filter = new Azure.Consumption.Inputs.BudgetResourceGroupFilterArgs\n            {\n                Dimensions = \n                {\n                    new Azure.Consumption.Inputs.BudgetResourceGroupFilterDimensionArgs\n                    {\n                        Name = \"ResourceId\",\n                        Values = \n                        {\n                            exampleActionGroup.Id,\n                        },\n                    },\n                },\n                Tags = \n                {\n                    new Azure.Consumption.Inputs.BudgetResourceGroupFilterTagArgs\n                    {\n                        Name = \"foo\",\n                        Values = \n                        {\n                            \"bar\",\n                            \"baz\",\n                        },\n                    },\n                },\n            },\n            Notifications = \n            {\n                new Azure.Consumption.Inputs.BudgetResourceGroupNotificationArgs\n                {\n                    Enabled = true,\n                    Threshold = 90,\n                    Operator = \"EqualTo\",\n                    ContactEmails = \n                    {\n                        \"foo@example.com\",\n                        \"bar@example.com\",\n                    },\n                    ContactGroups = \n                    {\n                        exampleActionGroup.Id,\n                    },\n                    ContactRoles = \n                    {\n                        \"Owner\",\n                    },\n                },\n                new Azure.Consumption.Inputs.BudgetResourceGroupNotificationArgs\n                {\n                    Enabled = false,\n                    Threshold = 100,\n                    Operator = \"GreaterThan\",\n                    ContactEmails = \n                    {\n                        \"foo@example.com\",\n                        \"bar@example.com\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/consumption\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleActionGroup, err := monitoring.NewActionGroup(ctx, \"exampleActionGroup\", \u0026monitoring.ActionGroupArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tShortName:         pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = consumption.NewBudgetResourceGroup(ctx, \"exampleBudgetResourceGroup\", \u0026consumption.BudgetResourceGroupArgs{\n\t\t\tResourceGroupId: exampleResourceGroup.ID(),\n\t\t\tAmount:          pulumi.Float64(1000),\n\t\t\tTimeGrain:       pulumi.String(\"Monthly\"),\n\t\t\tTimePeriod: \u0026consumption.BudgetResourceGroupTimePeriodArgs{\n\t\t\t\tStartDate: pulumi.String(\"2022-06-01T00:00:00Z\"),\n\t\t\t\tEndDate:   pulumi.String(\"2022-07-01T00:00:00Z\"),\n\t\t\t},\n\t\t\tFilter: \u0026consumption.BudgetResourceGroupFilterArgs{\n\t\t\t\tDimensions: consumption.BudgetResourceGroupFilterDimensionArray{\n\t\t\t\t\t\u0026consumption.BudgetResourceGroupFilterDimensionArgs{\n\t\t\t\t\t\tName: pulumi.String(\"ResourceId\"),\n\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\texampleActionGroup.ID(),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tTags: consumption.BudgetResourceGroupFilterTagArray{\n\t\t\t\t\t\u0026consumption.BudgetResourceGroupFilterTagArgs{\n\t\t\t\t\t\tName: pulumi.String(\"foo\"),\n\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"bar\"),\n\t\t\t\t\t\t\tpulumi.String(\"baz\"),\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\tNotifications: consumption.BudgetResourceGroupNotificationArray{\n\t\t\t\t\u0026consumption.BudgetResourceGroupNotificationArgs{\n\t\t\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\t\t\tThreshold: pulumi.Int(90),\n\t\t\t\t\tOperator:  pulumi.String(\"EqualTo\"),\n\t\t\t\t\tContactEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"foo@example.com\"),\n\t\t\t\t\t\tpulumi.String(\"bar@example.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tContactGroups: pulumi.StringArray{\n\t\t\t\t\t\texampleActionGroup.ID(),\n\t\t\t\t\t},\n\t\t\t\t\tContactRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Owner\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026consumption.BudgetResourceGroupNotificationArgs{\n\t\t\t\t\tEnabled:   pulumi.Bool(false),\n\t\t\t\t\tThreshold: pulumi.Int(100),\n\t\t\t\t\tOperator:  pulumi.String(\"GreaterThan\"),\n\t\t\t\t\tContactEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"foo@example.com\"),\n\t\t\t\t\t\tpulumi.String(\"bar@example.com\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nResource Group Consumption Budgets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:consumption/budgetResourceGroup:BudgetResourceGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.Consumption/budgets/resourceGroup1\n```\n\n ",
      "inputProperties": {
        "amount": {
          "description": "The total amount of cost to track with the budget.\n",
          "type": "number"
        },
        "filter": {
          "$ref": "#/types/azure:consumption/BudgetResourceGroupFilter:BudgetResourceGroupFilter",
          "description": "A `filter` block as defined below.\n"
        },
        "name": {
          "description": "The name which should be used for this Resource Group Consumption Budget. Changing this forces a new Resource Group Consumption Budget to be created.\n",
          "type": "string"
        },
        "notifications": {
          "description": "One or more `notification` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:consumption/BudgetResourceGroupNotification:BudgetResourceGroupNotification"
          },
          "type": "array"
        },
        "resourceGroupId": {
          "description": "The ID of the Resource Group to create the consumption budget for in the form of /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1. Changing this forces a new Resource Group Consumption Budget to be created.\n",
          "type": "string"
        },
        "timeGrain": {
          "description": "The time covered by a budget. Tracking of the amount will be reset based on the time grain. Must be one of `Monthly`, `Quarterly`, `Annually`, `BillingMonth`, `BillingQuarter`, or `BillingYear`. Defaults to `Monthly`.\n",
          "type": "string"
        },
        "timePeriod": {
          "$ref": "#/types/azure:consumption/BudgetResourceGroupTimePeriod:BudgetResourceGroupTimePeriod",
          "description": "A `time_period` block as defined below.\n"
        }
      },
      "properties": {
        "amount": {
          "description": "The total amount of cost to track with the budget.\n",
          "type": "number"
        },
        "filter": {
          "$ref": "#/types/azure:consumption/BudgetResourceGroupFilter:BudgetResourceGroupFilter",
          "description": "A `filter` block as defined below.\n"
        },
        "name": {
          "description": "The name which should be used for this Resource Group Consumption Budget. Changing this forces a new Resource Group Consumption Budget to be created.\n",
          "type": "string"
        },
        "notifications": {
          "description": "One or more `notification` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:consumption/BudgetResourceGroupNotification:BudgetResourceGroupNotification"
          },
          "type": "array"
        },
        "resourceGroupId": {
          "description": "The ID of the Resource Group to create the consumption budget for in the form of /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1. Changing this forces a new Resource Group Consumption Budget to be created.\n",
          "type": "string"
        },
        "timeGrain": {
          "description": "The time covered by a budget. Tracking of the amount will be reset based on the time grain. Must be one of `Monthly`, `Quarterly`, `Annually`, `BillingMonth`, `BillingQuarter`, or `BillingYear`. Defaults to `Monthly`.\n",
          "type": "string"
        },
        "timePeriod": {
          "$ref": "#/types/azure:consumption/BudgetResourceGroupTimePeriod:BudgetResourceGroupTimePeriod",
          "description": "A `time_period` block as defined below.\n"
        }
      },
      "required": [
        "amount",
        "name",
        "notifications",
        "resourceGroupId",
        "timePeriod"
      ],
      "requiredInputs": [
        "amount",
        "notifications",
        "resourceGroupId",
        "timePeriod"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BudgetResourceGroup resources.\n",
        "properties": {
          "amount": {
            "description": "The total amount of cost to track with the budget.\n",
            "type": "number"
          },
          "filter": {
            "$ref": "#/types/azure:consumption/BudgetResourceGroupFilter:BudgetResourceGroupFilter",
            "description": "A `filter` block as defined below.\n"
          },
          "name": {
            "description": "The name which should be used for this Resource Group Consumption Budget. Changing this forces a new Resource Group Consumption Budget to be created.\n",
            "type": "string"
          },
          "notifications": {
            "description": "One or more `notification` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:consumption/BudgetResourceGroupNotification:BudgetResourceGroupNotification"
            },
            "type": "array"
          },
          "resourceGroupId": {
            "description": "The ID of the Resource Group to create the consumption budget for in the form of /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1. Changing this forces a new Resource Group Consumption Budget to be created.\n",
            "type": "string"
          },
          "timeGrain": {
            "description": "The time covered by a budget. Tracking of the amount will be reset based on the time grain. Must be one of `Monthly`, `Quarterly`, `Annually`, `BillingMonth`, `BillingQuarter`, or `BillingYear`. Defaults to `Monthly`.\n",
            "type": "string"
          },
          "timePeriod": {
            "$ref": "#/types/azure:consumption/BudgetResourceGroupTimePeriod:BudgetResourceGroupTimePeriod",
            "description": "A `time_period` block as defined below.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:consumption/budgetSubscription:BudgetSubscription": {
      "description": "Manages a Subscription Consumption Budget.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getSubscription({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"eastus\"});\nconst exampleActionGroup = new azure.monitoring.ActionGroup(\"exampleActionGroup\", {\n    resourceGroupName: exampleResourceGroup.name,\n    shortName: \"example\",\n});\nconst exampleBudgetSubscription = new azure.consumption.BudgetSubscription(\"exampleBudgetSubscription\", {\n    subscriptionId: current.then(current =\u003e current.subscriptionId),\n    amount: 1000,\n    timeGrain: \"Monthly\",\n    timePeriod: {\n        startDate: \"2022-06-01T00:00:00Z\",\n        endDate: \"2022-07-01T00:00:00Z\",\n    },\n    filter: {\n        dimensions: [{\n            name: \"ResourceGroupName\",\n            values: [exampleResourceGroup.name],\n        }],\n        tags: [{\n            name: \"foo\",\n            values: [\n                \"bar\",\n                \"baz\",\n            ],\n        }],\n    },\n    notifications: [\n        {\n            enabled: true,\n            threshold: 90,\n            operator: \"EqualTo\",\n            contactEmails: [\n                \"foo@example.com\",\n                \"bar@example.com\",\n            ],\n            contactGroups: [exampleActionGroup.id],\n            contactRoles: [\"Owner\"],\n        },\n        {\n            enabled: false,\n            threshold: 100,\n            operator: \"GreaterThan\",\n            contactEmails: [\n                \"foo@example.com\",\n                \"bar@example.com\",\n            ],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_subscription()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"eastus\")\nexample_action_group = azure.monitoring.ActionGroup(\"exampleActionGroup\",\n    resource_group_name=example_resource_group.name,\n    short_name=\"example\")\nexample_budget_subscription = azure.consumption.BudgetSubscription(\"exampleBudgetSubscription\",\n    subscription_id=current.subscription_id,\n    amount=1000,\n    time_grain=\"Monthly\",\n    time_period=azure.consumption.BudgetSubscriptionTimePeriodArgs(\n        start_date=\"2022-06-01T00:00:00Z\",\n        end_date=\"2022-07-01T00:00:00Z\",\n    ),\n    filter=azure.consumption.BudgetSubscriptionFilterArgs(\n        dimensions=[azure.consumption.BudgetSubscriptionFilterDimensionArgs(\n            name=\"ResourceGroupName\",\n            values=[example_resource_group.name],\n        )],\n        tags=[azure.consumption.BudgetSubscriptionFilterTagArgs(\n            name=\"foo\",\n            values=[\n                \"bar\",\n                \"baz\",\n            ],\n        )],\n    ),\n    notifications=[\n        azure.consumption.BudgetSubscriptionNotificationArgs(\n            enabled=True,\n            threshold=90,\n            operator=\"EqualTo\",\n            contact_emails=[\n                \"foo@example.com\",\n                \"bar@example.com\",\n            ],\n            contact_groups=[example_action_group.id],\n            contact_roles=[\"Owner\"],\n        ),\n        azure.consumption.BudgetSubscriptionNotificationArgs(\n            enabled=False,\n            threshold=100,\n            operator=\"GreaterThan\",\n            contact_emails=[\n                \"foo@example.com\",\n                \"bar@example.com\",\n            ],\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"eastus\",\n        });\n        var exampleActionGroup = new Azure.Monitoring.ActionGroup(\"exampleActionGroup\", new Azure.Monitoring.ActionGroupArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ShortName = \"example\",\n        });\n        var exampleBudgetSubscription = new Azure.Consumption.BudgetSubscription(\"exampleBudgetSubscription\", new Azure.Consumption.BudgetSubscriptionArgs\n        {\n            SubscriptionId = current.Apply(current =\u003e current.SubscriptionId),\n            Amount = 1000,\n            TimeGrain = \"Monthly\",\n            TimePeriod = new Azure.Consumption.Inputs.BudgetSubscriptionTimePeriodArgs\n            {\n                StartDate = \"2022-06-01T00:00:00Z\",\n                EndDate = \"2022-07-01T00:00:00Z\",\n            },\n            Filter = new Azure.Consumption.Inputs.BudgetSubscriptionFilterArgs\n            {\n                Dimensions = \n                {\n                    new Azure.Consumption.Inputs.BudgetSubscriptionFilterDimensionArgs\n                    {\n                        Name = \"ResourceGroupName\",\n                        Values = \n                        {\n                            exampleResourceGroup.Name,\n                        },\n                    },\n                },\n                Tags = \n                {\n                    new Azure.Consumption.Inputs.BudgetSubscriptionFilterTagArgs\n                    {\n                        Name = \"foo\",\n                        Values = \n                        {\n                            \"bar\",\n                            \"baz\",\n                        },\n                    },\n                },\n            },\n            Notifications = \n            {\n                new Azure.Consumption.Inputs.BudgetSubscriptionNotificationArgs\n                {\n                    Enabled = true,\n                    Threshold = 90,\n                    Operator = \"EqualTo\",\n                    ContactEmails = \n                    {\n                        \"foo@example.com\",\n                        \"bar@example.com\",\n                    },\n                    ContactGroups = \n                    {\n                        exampleActionGroup.Id,\n                    },\n                    ContactRoles = \n                    {\n                        \"Owner\",\n                    },\n                },\n                new Azure.Consumption.Inputs.BudgetSubscriptionNotificationArgs\n                {\n                    Enabled = false,\n                    Threshold = 100,\n                    Operator = \"GreaterThan\",\n                    ContactEmails = \n                    {\n                        \"foo@example.com\",\n                        \"bar@example.com\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/consumption\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"eastus\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleActionGroup, err := monitoring.NewActionGroup(ctx, \"exampleActionGroup\", \u0026monitoring.ActionGroupArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tShortName:         pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = consumption.NewBudgetSubscription(ctx, \"exampleBudgetSubscription\", \u0026consumption.BudgetSubscriptionArgs{\n\t\t\tSubscriptionId: pulumi.String(current.SubscriptionId),\n\t\t\tAmount:         pulumi.Float64(1000),\n\t\t\tTimeGrain:      pulumi.String(\"Monthly\"),\n\t\t\tTimePeriod: \u0026consumption.BudgetSubscriptionTimePeriodArgs{\n\t\t\t\tStartDate: pulumi.String(\"2022-06-01T00:00:00Z\"),\n\t\t\t\tEndDate:   pulumi.String(\"2022-07-01T00:00:00Z\"),\n\t\t\t},\n\t\t\tFilter: \u0026consumption.BudgetSubscriptionFilterArgs{\n\t\t\t\tDimensions: consumption.BudgetSubscriptionFilterDimensionArray{\n\t\t\t\t\t\u0026consumption.BudgetSubscriptionFilterDimensionArgs{\n\t\t\t\t\t\tName: pulumi.String(\"ResourceGroupName\"),\n\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\texampleResourceGroup.Name,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tTags: consumption.BudgetSubscriptionFilterTagArray{\n\t\t\t\t\t\u0026consumption.BudgetSubscriptionFilterTagArgs{\n\t\t\t\t\t\tName: pulumi.String(\"foo\"),\n\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"bar\"),\n\t\t\t\t\t\t\tpulumi.String(\"baz\"),\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\tNotifications: consumption.BudgetSubscriptionNotificationArray{\n\t\t\t\t\u0026consumption.BudgetSubscriptionNotificationArgs{\n\t\t\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\t\t\tThreshold: pulumi.Int(90),\n\t\t\t\t\tOperator:  pulumi.String(\"EqualTo\"),\n\t\t\t\t\tContactEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"foo@example.com\"),\n\t\t\t\t\t\tpulumi.String(\"bar@example.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tContactGroups: pulumi.StringArray{\n\t\t\t\t\t\texampleActionGroup.ID(),\n\t\t\t\t\t},\n\t\t\t\t\tContactRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Owner\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026consumption.BudgetSubscriptionNotificationArgs{\n\t\t\t\t\tEnabled:   pulumi.Bool(false),\n\t\t\t\t\tThreshold: pulumi.Int(100),\n\t\t\t\t\tOperator:  pulumi.String(\"GreaterThan\"),\n\t\t\t\t\tContactEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"foo@example.com\"),\n\t\t\t\t\t\tpulumi.String(\"bar@example.com\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSubscription Consumption Budgets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:consumption/budgetSubscription:BudgetSubscription example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/budgets/subscription1\n```\n\n ",
      "inputProperties": {
        "amount": {
          "description": "The total amount of cost to track with the budget.\n",
          "type": "number"
        },
        "filter": {
          "$ref": "#/types/azure:consumption/BudgetSubscriptionFilter:BudgetSubscriptionFilter",
          "description": "A `filter` block as defined below.\n"
        },
        "name": {
          "description": "The name which should be used for this Subscription Consumption Budget. Changing this forces a new Subscription Consumption Budget to be created.\n",
          "type": "string"
        },
        "notifications": {
          "description": "One or more `notification` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:consumption/BudgetSubscriptionNotification:BudgetSubscriptionNotification"
          },
          "type": "array"
        },
        "subscriptionId": {
          "description": "The ID of the Consumption Budget. Changing this forces a new Subscription Consumption Budget to be created.\n",
          "type": "string"
        },
        "timeGrain": {
          "description": "The time covered by a budget. Tracking of the amount will be reset based on the time grain. Must be one of `Monthly`, `Quarterly`, `Annually`, `BillingMonth`, `BillingQuarter`, or `BillingYear`. Defaults to `Monthly`.\n",
          "type": "string"
        },
        "timePeriod": {
          "$ref": "#/types/azure:consumption/BudgetSubscriptionTimePeriod:BudgetSubscriptionTimePeriod",
          "description": "A `time_period` block as defined below.\n"
        }
      },
      "properties": {
        "amount": {
          "description": "The total amount of cost to track with the budget.\n",
          "type": "number"
        },
        "filter": {
          "$ref": "#/types/azure:consumption/BudgetSubscriptionFilter:BudgetSubscriptionFilter",
          "description": "A `filter` block as defined below.\n"
        },
        "name": {
          "description": "The name which should be used for this Subscription Consumption Budget. Changing this forces a new Subscription Consumption Budget to be created.\n",
          "type": "string"
        },
        "notifications": {
          "description": "One or more `notification` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:consumption/BudgetSubscriptionNotification:BudgetSubscriptionNotification"
          },
          "type": "array"
        },
        "subscriptionId": {
          "description": "The ID of the Consumption Budget. Changing this forces a new Subscription Consumption Budget to be created.\n",
          "type": "string"
        },
        "timeGrain": {
          "description": "The time covered by a budget. Tracking of the amount will be reset based on the time grain. Must be one of `Monthly`, `Quarterly`, `Annually`, `BillingMonth`, `BillingQuarter`, or `BillingYear`. Defaults to `Monthly`.\n",
          "type": "string"
        },
        "timePeriod": {
          "$ref": "#/types/azure:consumption/BudgetSubscriptionTimePeriod:BudgetSubscriptionTimePeriod",
          "description": "A `time_period` block as defined below.\n"
        }
      },
      "required": [
        "amount",
        "name",
        "notifications",
        "subscriptionId",
        "timePeriod"
      ],
      "requiredInputs": [
        "amount",
        "notifications",
        "subscriptionId",
        "timePeriod"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BudgetSubscription resources.\n",
        "properties": {
          "amount": {
            "description": "The total amount of cost to track with the budget.\n",
            "type": "number"
          },
          "filter": {
            "$ref": "#/types/azure:consumption/BudgetSubscriptionFilter:BudgetSubscriptionFilter",
            "description": "A `filter` block as defined below.\n"
          },
          "name": {
            "description": "The name which should be used for this Subscription Consumption Budget. Changing this forces a new Subscription Consumption Budget to be created.\n",
            "type": "string"
          },
          "notifications": {
            "description": "One or more `notification` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:consumption/BudgetSubscriptionNotification:BudgetSubscriptionNotification"
            },
            "type": "array"
          },
          "subscriptionId": {
            "description": "The ID of the Consumption Budget. Changing this forces a new Subscription Consumption Budget to be created.\n",
            "type": "string"
          },
          "timeGrain": {
            "description": "The time covered by a budget. Tracking of the amount will be reset based on the time grain. Must be one of `Monthly`, `Quarterly`, `Annually`, `BillingMonth`, `BillingQuarter`, or `BillingYear`. Defaults to `Monthly`.\n",
            "type": "string"
          },
          "timePeriod": {
            "$ref": "#/types/azure:consumption/BudgetSubscriptionTimePeriod:BudgetSubscriptionTimePeriod",
            "description": "A `time_period` block as defined below.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:containerservice/group:Group": {
      "description": "Manages as an Azure Container Group instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis example provisions a Basic Container.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleGroup = new azure.containerservice.Group(\"exampleGroup\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipAddressType: \"public\",\n    dnsNameLabel: \"aci-label\",\n    osType: \"Linux\",\n    containers: [\n        {\n            name: \"hello-world\",\n            image: \"microsoft/aci-helloworld:latest\",\n            cpu: \"0.5\",\n            memory: \"1.5\",\n            ports: [{\n                port: 443,\n                protocol: \"TCP\",\n            }],\n        },\n        {\n            name: \"sidecar\",\n            image: \"microsoft/aci-tutorial-sidecar\",\n            cpu: \"0.5\",\n            memory: \"1.5\",\n        },\n    ],\n    tags: {\n        environment: \"testing\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_group = azure.containerservice.Group(\"exampleGroup\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_address_type=\"public\",\n    dns_name_label=\"aci-label\",\n    os_type=\"Linux\",\n    containers=[\n        azure.containerservice.GroupContainerArgs(\n            name=\"hello-world\",\n            image=\"microsoft/aci-helloworld:latest\",\n            cpu=0.5,\n            memory=1.5,\n            ports=[azure.containerservice.GroupContainerPortArgs(\n                port=443,\n                protocol=\"TCP\",\n            )],\n        ),\n        azure.containerservice.GroupContainerArgs(\n            name=\"sidecar\",\n            image=\"microsoft/aci-tutorial-sidecar\",\n            cpu=0.5,\n            memory=1.5,\n        ),\n    ],\n    tags={\n        \"environment\": \"testing\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleGroup = new Azure.ContainerService.Group(\"exampleGroup\", new Azure.ContainerService.GroupArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpAddressType = \"public\",\n            DnsNameLabel = \"aci-label\",\n            OsType = \"Linux\",\n            Containers = \n            {\n                new Azure.ContainerService.Inputs.GroupContainerArgs\n                {\n                    Name = \"hello-world\",\n                    Image = \"microsoft/aci-helloworld:latest\",\n                    Cpu = 0.5,\n                    Memory = 1.5,\n                    Ports = \n                    {\n                        new Azure.ContainerService.Inputs.GroupContainerPortArgs\n                        {\n                            Port = 443,\n                            Protocol = \"TCP\",\n                        },\n                    },\n                },\n                new Azure.ContainerService.Inputs.GroupContainerArgs\n                {\n                    Name = \"sidecar\",\n                    Image = \"microsoft/aci-tutorial-sidecar\",\n                    Cpu = 0.5,\n                    Memory = 1.5,\n                },\n            },\n            Tags = \n            {\n                { \"environment\", \"testing\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containerservice.NewGroup(ctx, \"exampleGroup\", \u0026containerservice.GroupArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpAddressType:     pulumi.String(\"public\"),\n\t\t\tDnsNameLabel:      pulumi.String(\"aci-label\"),\n\t\t\tOsType:            pulumi.String(\"Linux\"),\n\t\t\tContainers: containerservice.GroupContainerArray{\n\t\t\t\t\u0026containerservice.GroupContainerArgs{\n\t\t\t\t\tName:   pulumi.String(\"hello-world\"),\n\t\t\t\t\tImage:  pulumi.String(\"microsoft/aci-helloworld:latest\"),\n\t\t\t\t\tCpu:    pulumi.Float64(0.5),\n\t\t\t\t\tMemory: pulumi.Float64(1.5),\n\t\t\t\t\tPorts: containerservice.GroupContainerPortArray{\n\t\t\t\t\t\t\u0026containerservice.GroupContainerPortArgs{\n\t\t\t\t\t\t\tPort:     pulumi.Int(443),\n\t\t\t\t\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026containerservice.GroupContainerArgs{\n\t\t\t\t\tName:   pulumi.String(\"sidecar\"),\n\t\t\t\t\tImage:  pulumi.String(\"microsoft/aci-tutorial-sidecar\"),\n\t\t\t\t\tCpu:    pulumi.Float64(0.5),\n\t\t\t\t\tMemory: pulumi.Float64(1.5),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"testing\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nContainer Group's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:containerservice/group:Group containerGroup1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ContainerInstance/containerGroups/myContainerGroup1\n```\n\n ",
      "inputProperties": {
        "containers": {
          "description": "The definition of a container that is part of the group as documented in the `container` block below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/GroupContainer:GroupContainer"
          },
          "type": "array"
        },
        "diagnostics": {
          "$ref": "#/types/azure:containerservice/GroupDiagnostics:GroupDiagnostics",
          "description": "A `diagnostics` block as documented below.\n"
        },
        "dnsConfig": {
          "$ref": "#/types/azure:containerservice/GroupDnsConfig:GroupDnsConfig",
          "description": "A `dns_config` block as documented below.\n"
        },
        "dnsNameLabel": {
          "description": "The DNS label/name for the container groups IP. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "exposedPorts": {
          "description": "Zero or more `exposed_port` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/GroupExposedPort:GroupExposedPort"
          },
          "type": "array"
        },
        "identity": {
          "$ref": "#/types/azure:containerservice/GroupIdentity:GroupIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "imageRegistryCredentials": {
          "description": "A `image_registry_credential` block as documented below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/GroupImageRegistryCredential:GroupImageRegistryCredential"
          },
          "type": "array"
        },
        "ipAddressType": {
          "description": "Specifies the ip address type of the container. `Public` or `Private`. Changing this forces a new resource to be created. If set to `Private`, `network_profile_id` also needs to be set.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Container Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkProfileId": {
          "description": "Network profile ID for deploying to virtual network.\n",
          "type": "string"
        },
        "osType": {
          "description": "The OS for the container group. Allowed values are `Linux` and `Windows`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Container Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "restartPolicy": {
          "description": "Restart policy for the container group. Allowed values are `Always`, `Never`, `OnFailure`. Defaults to `Always`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "containers": {
          "description": "The definition of a container that is part of the group as documented in the `container` block below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/GroupContainer:GroupContainer"
          },
          "type": "array"
        },
        "diagnostics": {
          "$ref": "#/types/azure:containerservice/GroupDiagnostics:GroupDiagnostics",
          "description": "A `diagnostics` block as documented below.\n"
        },
        "dnsConfig": {
          "$ref": "#/types/azure:containerservice/GroupDnsConfig:GroupDnsConfig",
          "description": "A `dns_config` block as documented below.\n"
        },
        "dnsNameLabel": {
          "description": "The DNS label/name for the container groups IP. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "exposedPorts": {
          "description": "Zero or more `exposed_port` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/GroupExposedPort:GroupExposedPort"
          },
          "type": "array"
        },
        "fqdn": {
          "description": "The FQDN of the container group derived from `dns_name_label`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:containerservice/GroupIdentity:GroupIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "imageRegistryCredentials": {
          "description": "A `image_registry_credential` block as documented below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/GroupImageRegistryCredential:GroupImageRegistryCredential"
          },
          "type": "array"
        },
        "ipAddress": {
          "description": "The IP address allocated to the container group.\n",
          "type": "string"
        },
        "ipAddressType": {
          "description": "Specifies the ip address type of the container. `Public` or `Private`. Changing this forces a new resource to be created. If set to `Private`, `network_profile_id` also needs to be set.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Container Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkProfileId": {
          "description": "Network profile ID for deploying to virtual network.\n",
          "type": "string"
        },
        "osType": {
          "description": "The OS for the container group. Allowed values are `Linux` and `Windows`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Container Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "restartPolicy": {
          "description": "Restart policy for the container group. Allowed values are `Always`, `Never`, `OnFailure`. Defaults to `Always`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "containers",
        "exposedPorts",
        "fqdn",
        "identity",
        "ipAddress",
        "location",
        "name",
        "osType",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "containers",
        "osType",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Group resources.\n",
        "properties": {
          "containers": {
            "description": "The definition of a container that is part of the group as documented in the `container` block below. Changing this forces a new resource to be created.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/GroupContainer:GroupContainer"
            },
            "type": "array"
          },
          "diagnostics": {
            "$ref": "#/types/azure:containerservice/GroupDiagnostics:GroupDiagnostics",
            "description": "A `diagnostics` block as documented below.\n"
          },
          "dnsConfig": {
            "$ref": "#/types/azure:containerservice/GroupDnsConfig:GroupDnsConfig",
            "description": "A `dns_config` block as documented below.\n"
          },
          "dnsNameLabel": {
            "description": "The DNS label/name for the container groups IP. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "exposedPorts": {
            "description": "Zero or more `exposed_port` blocks as defined below. Changing this forces a new resource to be created.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/GroupExposedPort:GroupExposedPort"
            },
            "type": "array"
          },
          "fqdn": {
            "description": "The FQDN of the container group derived from `dns_name_label`.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:containerservice/GroupIdentity:GroupIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "imageRegistryCredentials": {
            "description": "A `image_registry_credential` block as documented below. Changing this forces a new resource to be created.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/GroupImageRegistryCredential:GroupImageRegistryCredential"
            },
            "type": "array"
          },
          "ipAddress": {
            "description": "The IP address allocated to the container group.\n",
            "type": "string"
          },
          "ipAddressType": {
            "description": "Specifies the ip address type of the container. `Public` or `Private`. Changing this forces a new resource to be created. If set to `Private`, `network_profile_id` also needs to be set.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Container Group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkProfileId": {
            "description": "Network profile ID for deploying to virtual network.\n",
            "type": "string"
          },
          "osType": {
            "description": "The OS for the container group. Allowed values are `Linux` and `Windows`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Container Group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "restartPolicy": {
            "description": "Restart policy for the container group. Allowed values are `Always`, `Never`, `OnFailure`. Defaults to `Always`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:containerservice/kubernetesCluster:KubernetesCluster": {
      "description": "Manages a Managed Kubernetes Cluster (also known as AKS / Azure Kubernetes Service)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis example provisions a basic Managed Kubernetes Cluster.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleKubernetesCluster = new azure.containerservice.KubernetesCluster(\"exampleKubernetesCluster\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    dnsPrefix: \"exampleaks1\",\n    defaultNodePool: {\n        name: \"default\",\n        nodeCount: 1,\n        vmSize: \"Standard_D2_v2\",\n    },\n    identity: {\n        type: \"SystemAssigned\",\n    },\n    tags: {\n        Environment: \"Production\",\n    },\n});\nexport const clientCertificate = exampleKubernetesCluster.kubeConfigs.apply(kubeConfigs =\u003e kubeConfigs[0].clientCertificate);\nexport const kubeConfig = exampleKubernetesCluster.kubeConfigRaw;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_kubernetes_cluster = azure.containerservice.KubernetesCluster(\"exampleKubernetesCluster\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    dns_prefix=\"exampleaks1\",\n    default_node_pool=azure.containerservice.KubernetesClusterDefaultNodePoolArgs(\n        name=\"default\",\n        node_count=1,\n        vm_size=\"Standard_D2_v2\",\n    ),\n    identity=azure.containerservice.KubernetesClusterIdentityArgs(\n        type=\"SystemAssigned\",\n    ),\n    tags={\n        \"Environment\": \"Production\",\n    })\npulumi.export(\"clientCertificate\", example_kubernetes_cluster.kube_configs[0].client_certificate)\npulumi.export(\"kubeConfig\", example_kubernetes_cluster.kube_config_raw)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleKubernetesCluster = new Azure.ContainerService.KubernetesCluster(\"exampleKubernetesCluster\", new Azure.ContainerService.KubernetesClusterArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            DnsPrefix = \"exampleaks1\",\n            DefaultNodePool = new Azure.ContainerService.Inputs.KubernetesClusterDefaultNodePoolArgs\n            {\n                Name = \"default\",\n                NodeCount = 1,\n                VmSize = \"Standard_D2_v2\",\n            },\n            Identity = new Azure.ContainerService.Inputs.KubernetesClusterIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n            Tags = \n            {\n                { \"Environment\", \"Production\" },\n            },\n        });\n        this.ClientCertificate = exampleKubernetesCluster.KubeConfigs.Apply(kubeConfigs =\u003e kubeConfigs[0].ClientCertificate);\n        this.KubeConfig = exampleKubernetesCluster.KubeConfigRaw;\n    }\n\n    [Output(\"clientCertificate\")]\n    public Output\u003cstring\u003e ClientCertificate { get; set; }\n    [Output(\"kubeConfig\")]\n    public Output\u003cstring\u003e KubeConfig { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKubernetesCluster, err := containerservice.NewKubernetesCluster(ctx, \"exampleKubernetesCluster\", \u0026containerservice.KubernetesClusterArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDnsPrefix:         pulumi.String(\"exampleaks1\"),\n\t\t\tDefaultNodePool: \u0026containerservice.KubernetesClusterDefaultNodePoolArgs{\n\t\t\t\tName:      pulumi.String(\"default\"),\n\t\t\t\tNodeCount: pulumi.Int(1),\n\t\t\t\tVmSize:    pulumi.String(\"Standard_D2_v2\"),\n\t\t\t},\n\t\t\tIdentity: \u0026containerservice.KubernetesClusterIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"clientCertificate\", exampleKubernetesCluster.KubeConfigs.ApplyT(func(kubeConfigs []containerservice.KubernetesClusterKubeConfig) (string, error) {\n\t\t\treturn kubeConfigs[0].ClientCertificate, nil\n\t\t}).(pulumi.StringOutput))\n\t\tctx.Export(\"kubeConfig\", exampleKubernetesCluster.KubeConfigRaw)\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nManaged Kubernetes Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:containerservice/kubernetesCluster:KubernetesCluster cluster1 /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.ContainerService/managedClusters/cluster1\n```\n\n ",
      "inputProperties": {
        "addonProfile": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterAddonProfile:KubernetesClusterAddonProfile",
          "description": "A `addon_profile` block as defined below.\n"
        },
        "apiServerAuthorizedIpRanges": {
          "description": "The IP ranges to allow for incoming traffic to the server nodes.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "autoScalerProfile": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterAutoScalerProfile:KubernetesClusterAutoScalerProfile",
          "description": "A `auto_scaler_profile` block as defined below.\n"
        },
        "automaticChannelUpgrade": {
          "description": "The upgrade channel for this Kubernetes Cluster. Possible values are `patch`, `rapid`, `node-image` and `stable`.\n",
          "type": "string"
        },
        "defaultNodePool": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterDefaultNodePool:KubernetesClusterDefaultNodePool",
          "description": "A `default_node_pool` block as defined below.\n"
        },
        "diskEncryptionSetId": {
          "description": "The ID of the Disk Encryption Set which should be used for the Nodes and Volumes. More information [can be found in the documentation](https://docs.microsoft.com/en-us/azure/aks/azure-disk-customer-managed-keys).\n",
          "type": "string"
        },
        "dnsPrefix": {
          "description": "DNS prefix specified when creating the managed cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "dnsPrefixPrivateCluster": {
          "description": "Specifies the DNS prefix to use with private clusters. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "enablePodSecurityPolicy": {
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterIdentity:KubernetesClusterIdentity",
          "description": "An `identity` block as defined below. One of either `identity` or `service_principal` must be specified.\n"
        },
        "kubeletIdentities": {
          "description": "A `kubelet_identity` block as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterKubeletIdentity:KubernetesClusterKubeletIdentity"
          },
          "type": "array"
        },
        "kubernetesVersion": {
          "description": "Version of Kubernetes specified when creating the AKS managed cluster. If not specified, the latest recommended version will be used at provisioning time (but won't auto-upgrade).\n",
          "type": "string"
        },
        "linuxProfile": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterLinuxProfile:KubernetesClusterLinuxProfile",
          "description": "A `linux_profile` block as defined below.\n"
        },
        "localAccountDisabled": {
          "description": "Is local account disabled for AAD integrated kubernetes cluster?\n",
          "type": "boolean"
        },
        "location": {
          "description": "The location where the Managed Kubernetes Cluster should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maintenanceWindow": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterMaintenanceWindow:KubernetesClusterMaintenanceWindow",
          "description": "A `maintenance_window` block as defined below.\n"
        },
        "name": {
          "description": "The name of the Managed Kubernetes Cluster to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkProfile": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterNetworkProfile:KubernetesClusterNetworkProfile",
          "description": "A `network_profile` block as defined below.\n"
        },
        "nodeResourceGroup": {
          "description": "The name of the Resource Group where the Kubernetes Nodes should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privateClusterEnabled": {
          "description": "Should this Kubernetes Cluster have its API server only exposed on internal IP addresses? This provides a Private IP Address for the Kubernetes API on the Virtual Network where the Kubernetes Cluster is located. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "privateClusterPublicFqdnEnabled": {
          "description": "Specifies whether a Public FQDN for this Private Cluster should be added. Defaults to `false`.\n",
          "type": "boolean"
        },
        "privateDnsZoneId": {
          "description": "Either the ID of Private DNS Zone which should be delegated to this Cluster, `System` to have AKS manage this or `None`. In case of `None` you will need to bring your own DNS server and set up resolving, otherwise cluster will have issues after provisioning.\n",
          "type": "string"
        },
        "privateLinkEnabled": {
          "deprecationMessage": "Deprecated in favour of `private_cluster_enabled`",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "Specifies the Resource Group where the Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roleBasedAccessControl": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterRoleBasedAccessControl:KubernetesClusterRoleBasedAccessControl",
          "description": "A `role_based_access_control` block. Changing this forces a new resource to be created.\n"
        },
        "servicePrincipal": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterServicePrincipal:KubernetesClusterServicePrincipal",
          "description": "A `service_principal` block as documented below. One of either `identity` or `service_principal` must be specified.\n"
        },
        "skuTier": {
          "description": "The SKU Tier that should be used for this Kubernetes Cluster. Possible values are `Free` and `Paid` (which includes the Uptime SLA). Defaults to `Free`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "windowsProfile": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterWindowsProfile:KubernetesClusterWindowsProfile",
          "description": "A `windows_profile` block as defined below.\n"
        }
      },
      "properties": {
        "addonProfile": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterAddonProfile:KubernetesClusterAddonProfile",
          "description": "A `addon_profile` block as defined below.\n"
        },
        "apiServerAuthorizedIpRanges": {
          "description": "The IP ranges to allow for incoming traffic to the server nodes.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "autoScalerProfile": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterAutoScalerProfile:KubernetesClusterAutoScalerProfile",
          "description": "A `auto_scaler_profile` block as defined below.\n"
        },
        "automaticChannelUpgrade": {
          "description": "The upgrade channel for this Kubernetes Cluster. Possible values are `patch`, `rapid`, `node-image` and `stable`.\n",
          "type": "string"
        },
        "defaultNodePool": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterDefaultNodePool:KubernetesClusterDefaultNodePool",
          "description": "A `default_node_pool` block as defined below.\n"
        },
        "diskEncryptionSetId": {
          "description": "The ID of the Disk Encryption Set which should be used for the Nodes and Volumes. More information [can be found in the documentation](https://docs.microsoft.com/en-us/azure/aks/azure-disk-customer-managed-keys).\n",
          "type": "string"
        },
        "dnsPrefix": {
          "description": "DNS prefix specified when creating the managed cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "dnsPrefixPrivateCluster": {
          "description": "Specifies the DNS prefix to use with private clusters. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "enablePodSecurityPolicy": {
          "type": "boolean"
        },
        "fqdn": {
          "description": "The FQDN of the Azure Kubernetes Managed Cluster.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterIdentity:KubernetesClusterIdentity",
          "description": "An `identity` block as defined below. One of either `identity` or `service_principal` must be specified.\n"
        },
        "kubeAdminConfigRaw": {
          "description": "Raw Kubernetes config for the admin account to be used by [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) and other compatible tools. This is only available when Role Based Access Control with Azure Active Directory is enabled.\n",
          "type": "string"
        },
        "kubeAdminConfigs": {
          "description": "A `kube_admin_config` block as defined below. This is only available when Role Based Access Control with Azure Active Directory is enabled.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterKubeAdminConfig:KubernetesClusterKubeAdminConfig"
          },
          "type": "array"
        },
        "kubeConfigRaw": {
          "description": "Raw Kubernetes config to be used by [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) and other compatible tools\n",
          "type": "string"
        },
        "kubeConfigs": {
          "description": "A `kube_config` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterKubeConfig:KubernetesClusterKubeConfig"
          },
          "type": "array"
        },
        "kubeletIdentities": {
          "description": "A `kubelet_identity` block as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterKubeletIdentity:KubernetesClusterKubeletIdentity"
          },
          "type": "array"
        },
        "kubernetesVersion": {
          "description": "Version of Kubernetes specified when creating the AKS managed cluster. If not specified, the latest recommended version will be used at provisioning time (but won't auto-upgrade).\n",
          "type": "string"
        },
        "linuxProfile": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterLinuxProfile:KubernetesClusterLinuxProfile",
          "description": "A `linux_profile` block as defined below.\n"
        },
        "localAccountDisabled": {
          "description": "Is local account disabled for AAD integrated kubernetes cluster?\n",
          "type": "boolean"
        },
        "location": {
          "description": "The location where the Managed Kubernetes Cluster should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maintenanceWindow": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterMaintenanceWindow:KubernetesClusterMaintenanceWindow",
          "description": "A `maintenance_window` block as defined below.\n"
        },
        "name": {
          "description": "The name of the Managed Kubernetes Cluster to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkProfile": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterNetworkProfile:KubernetesClusterNetworkProfile",
          "description": "A `network_profile` block as defined below.\n"
        },
        "nodeResourceGroup": {
          "description": "The name of the Resource Group where the Kubernetes Nodes should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privateClusterEnabled": {
          "description": "Should this Kubernetes Cluster have its API server only exposed on internal IP addresses? This provides a Private IP Address for the Kubernetes API on the Virtual Network where the Kubernetes Cluster is located. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "privateClusterPublicFqdnEnabled": {
          "description": "Specifies whether a Public FQDN for this Private Cluster should be added. Defaults to `false`.\n",
          "type": "boolean"
        },
        "privateDnsZoneId": {
          "description": "Either the ID of Private DNS Zone which should be delegated to this Cluster, `System` to have AKS manage this or `None`. In case of `None` you will need to bring your own DNS server and set up resolving, otherwise cluster will have issues after provisioning.\n",
          "type": "string"
        },
        "privateFqdn": {
          "description": "The FQDN for the Kubernetes Cluster when private link has been enabled, which is only resolvable inside the Virtual Network used by the Kubernetes Cluster.\n",
          "type": "string"
        },
        "privateLinkEnabled": {
          "deprecationMessage": "Deprecated in favour of `private_cluster_enabled`",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "Specifies the Resource Group where the Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roleBasedAccessControl": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterRoleBasedAccessControl:KubernetesClusterRoleBasedAccessControl",
          "description": "A `role_based_access_control` block. Changing this forces a new resource to be created.\n"
        },
        "servicePrincipal": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterServicePrincipal:KubernetesClusterServicePrincipal",
          "description": "A `service_principal` block as documented below. One of either `identity` or `service_principal` must be specified.\n"
        },
        "skuTier": {
          "description": "The SKU Tier that should be used for this Kubernetes Cluster. Possible values are `Free` and `Paid` (which includes the Uptime SLA). Defaults to `Free`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "windowsProfile": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterWindowsProfile:KubernetesClusterWindowsProfile",
          "description": "A `windows_profile` block as defined below.\n"
        }
      },
      "required": [
        "addonProfile",
        "autoScalerProfile",
        "defaultNodePool",
        "fqdn",
        "kubeAdminConfigs",
        "kubeAdminConfigRaw",
        "kubeConfigs",
        "kubeConfigRaw",
        "kubeletIdentities",
        "kubernetesVersion",
        "location",
        "name",
        "networkProfile",
        "nodeResourceGroup",
        "privateClusterEnabled",
        "privateDnsZoneId",
        "privateFqdn",
        "privateLinkEnabled",
        "resourceGroupName",
        "roleBasedAccessControl",
        "windowsProfile"
      ],
      "requiredInputs": [
        "defaultNodePool",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering KubernetesCluster resources.\n",
        "properties": {
          "addonProfile": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterAddonProfile:KubernetesClusterAddonProfile",
            "description": "A `addon_profile` block as defined below.\n"
          },
          "apiServerAuthorizedIpRanges": {
            "description": "The IP ranges to allow for incoming traffic to the server nodes.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "autoScalerProfile": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterAutoScalerProfile:KubernetesClusterAutoScalerProfile",
            "description": "A `auto_scaler_profile` block as defined below.\n"
          },
          "automaticChannelUpgrade": {
            "description": "The upgrade channel for this Kubernetes Cluster. Possible values are `patch`, `rapid`, `node-image` and `stable`.\n",
            "type": "string"
          },
          "defaultNodePool": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterDefaultNodePool:KubernetesClusterDefaultNodePool",
            "description": "A `default_node_pool` block as defined below.\n"
          },
          "diskEncryptionSetId": {
            "description": "The ID of the Disk Encryption Set which should be used for the Nodes and Volumes. More information [can be found in the documentation](https://docs.microsoft.com/en-us/azure/aks/azure-disk-customer-managed-keys).\n",
            "type": "string"
          },
          "dnsPrefix": {
            "description": "DNS prefix specified when creating the managed cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "dnsPrefixPrivateCluster": {
            "description": "Specifies the DNS prefix to use with private clusters. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "enablePodSecurityPolicy": {
            "type": "boolean"
          },
          "fqdn": {
            "description": "The FQDN of the Azure Kubernetes Managed Cluster.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterIdentity:KubernetesClusterIdentity",
            "description": "An `identity` block as defined below. One of either `identity` or `service_principal` must be specified.\n"
          },
          "kubeAdminConfigRaw": {
            "description": "Raw Kubernetes config for the admin account to be used by [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) and other compatible tools. This is only available when Role Based Access Control with Azure Active Directory is enabled.\n",
            "type": "string"
          },
          "kubeAdminConfigs": {
            "description": "A `kube_admin_config` block as defined below. This is only available when Role Based Access Control with Azure Active Directory is enabled.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/KubernetesClusterKubeAdminConfig:KubernetesClusterKubeAdminConfig"
            },
            "type": "array"
          },
          "kubeConfigRaw": {
            "description": "Raw Kubernetes config to be used by [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) and other compatible tools\n",
            "type": "string"
          },
          "kubeConfigs": {
            "description": "A `kube_config` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/KubernetesClusterKubeConfig:KubernetesClusterKubeConfig"
            },
            "type": "array"
          },
          "kubeletIdentities": {
            "description": "A `kubelet_identity` block as defined below. Changing this forces a new resource to be created.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/KubernetesClusterKubeletIdentity:KubernetesClusterKubeletIdentity"
            },
            "type": "array"
          },
          "kubernetesVersion": {
            "description": "Version of Kubernetes specified when creating the AKS managed cluster. If not specified, the latest recommended version will be used at provisioning time (but won't auto-upgrade).\n",
            "type": "string"
          },
          "linuxProfile": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterLinuxProfile:KubernetesClusterLinuxProfile",
            "description": "A `linux_profile` block as defined below.\n"
          },
          "localAccountDisabled": {
            "description": "Is local account disabled for AAD integrated kubernetes cluster?\n",
            "type": "boolean"
          },
          "location": {
            "description": "The location where the Managed Kubernetes Cluster should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maintenanceWindow": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterMaintenanceWindow:KubernetesClusterMaintenanceWindow",
            "description": "A `maintenance_window` block as defined below.\n"
          },
          "name": {
            "description": "The name of the Managed Kubernetes Cluster to create. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkProfile": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterNetworkProfile:KubernetesClusterNetworkProfile",
            "description": "A `network_profile` block as defined below.\n"
          },
          "nodeResourceGroup": {
            "description": "The name of the Resource Group where the Kubernetes Nodes should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "privateClusterEnabled": {
            "description": "Should this Kubernetes Cluster have its API server only exposed on internal IP addresses? This provides a Private IP Address for the Kubernetes API on the Virtual Network where the Kubernetes Cluster is located. Defaults to `false`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "privateClusterPublicFqdnEnabled": {
            "description": "Specifies whether a Public FQDN for this Private Cluster should be added. Defaults to `false`.\n",
            "type": "boolean"
          },
          "privateDnsZoneId": {
            "description": "Either the ID of Private DNS Zone which should be delegated to this Cluster, `System` to have AKS manage this or `None`. In case of `None` you will need to bring your own DNS server and set up resolving, otherwise cluster will have issues after provisioning.\n",
            "type": "string"
          },
          "privateFqdn": {
            "description": "The FQDN for the Kubernetes Cluster when private link has been enabled, which is only resolvable inside the Virtual Network used by the Kubernetes Cluster.\n",
            "type": "string"
          },
          "privateLinkEnabled": {
            "deprecationMessage": "Deprecated in favour of `private_cluster_enabled`",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "Specifies the Resource Group where the Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "roleBasedAccessControl": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterRoleBasedAccessControl:KubernetesClusterRoleBasedAccessControl",
            "description": "A `role_based_access_control` block. Changing this forces a new resource to be created.\n"
          },
          "servicePrincipal": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterServicePrincipal:KubernetesClusterServicePrincipal",
            "description": "A `service_principal` block as documented below. One of either `identity` or `service_principal` must be specified.\n"
          },
          "skuTier": {
            "description": "The SKU Tier that should be used for this Kubernetes Cluster. Possible values are `Free` and `Paid` (which includes the Uptime SLA). Defaults to `Free`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "windowsProfile": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterWindowsProfile:KubernetesClusterWindowsProfile",
            "description": "A `windows_profile` block as defined below.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:containerservice/kubernetesClusterNodePool:KubernetesClusterNodePool": {
      "description": "\n\n\n## Import\n\nKubernetes Cluster Node Pools can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:containerservice/kubernetesClusterNodePool:KubernetesClusterNodePool pool1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ContainerService/managedClusters/cluster1/agentPools/pool1\n```\n\n ",
      "inputProperties": {
        "availabilityZones": {
          "description": "A list of Availability Zones where the Nodes in this Node Pool should be created in. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "enableAutoScaling": {
          "description": "Whether to enable [auto-scaler](https://docs.microsoft.com/en-us/azure/aks/cluster-autoscaler). Defaults to `false`.\n",
          "type": "boolean"
        },
        "enableHostEncryption": {
          "description": "Should the nodes in this Node Pool have host encryption enabled? Defaults to `false`.\n",
          "type": "boolean"
        },
        "enableNodePublicIp": {
          "description": "Should each node have a Public IP Address? Defaults to `false`.  Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "evictionPolicy": {
          "description": "The Eviction Policy which should be used for Virtual Machines within the Virtual Machine Scale Set powering this Node Pool. Possible values are `Deallocate` and `Delete`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "fipsEnabled": {
          "description": "Should the nodes in this Node Pool have Federal Information Processing Standard enabled? Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "kubeletConfig": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterNodePoolKubeletConfig:KubernetesClusterNodePoolKubeletConfig",
          "description": "A `kubelet_config` block as defined below.\n"
        },
        "kubeletDiskType": {
          "description": "The type of disk used by kubelet. Possible Values are `OS`.\n",
          "type": "string"
        },
        "kubernetesClusterId": {
          "description": "The ID of the Kubernetes Cluster where this Node Pool should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "linuxOsConfig": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterNodePoolLinuxOsConfig:KubernetesClusterNodePoolLinuxOsConfig",
          "description": "A `linux_os_config` block as defined below.\n"
        },
        "maxCount": {
          "description": "The maximum number of nodes which should exist within this Node Pool. Valid values are between `0` and `1000` and must be greater than or equal to `min_count`.\n",
          "type": "integer"
        },
        "maxPods": {
          "description": "The maximum number of pods that can run on each agent. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "minCount": {
          "description": "The minimum number of nodes which should exist within this Node Pool. Valid values are between `0` and `1000` and must be less than or equal to `max_count`.\n",
          "type": "integer"
        },
        "mode": {
          "description": "Should this Node Pool be used for System or User resources? Possible values are `System` and `User`. Defaults to `User`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Node Pool which should be created within the Kubernetes Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "nodeCount": {
          "description": "The initial number of nodes which should exist within this Node Pool. Valid values are between `0` and `1000` and must be a value in the range `min_count` - `max_count`.\n",
          "type": "integer"
        },
        "nodeLabels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Kubernetes labels which should be applied to nodes in this Node Pool. Changing this forces a new resource to be created.\n",
          "type": "object"
        },
        "nodePublicIpPrefixId": {
          "description": "Resource ID for the Public IP Addresses Prefix for the nodes in this Node Pool. `enable_node_public_ip` should be `true`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "nodeTaints": {
          "description": "A list of Kubernetes taints which should be applied to nodes in the agent pool (e.g `key=value:NoSchedule`). Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "orchestratorVersion": {
          "description": "Version of Kubernetes used for the Agents. If not specified, the latest recommended version will be used at provisioning time (but won't auto-upgrade)\n",
          "type": "string"
        },
        "osDiskSizeGb": {
          "description": "The Agent Operating System disk size in GB. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "osDiskType": {
          "description": "The type of disk which should be used for the Operating System. Possible values are `Ephemeral` and `Managed`. Defaults to `Managed`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "osSku": {
          "description": "OsSKU to be used to specify Linux OSType. Not applicable to Windows OSType. Possible values include: `Ubuntu`, `CBLMariner`. Defaults to `Ubuntu`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "osType": {
          "description": "The Operating System which should be used for this Node Pool. Changing this forces a new resource to be created. Possible values are `Linux` and `Windows`. Defaults to `Linux`.\n",
          "type": "string"
        },
        "podSubnetId": {
          "description": "The ID of the Subnet where the pods in the default Node Pool should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "The Priority for Virtual Machines within the Virtual Machine Scale Set that powers this Node Pool. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group where the Virtual Machine Scale Set that powers this Node Pool will be placed. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "spotMaxPrice": {
          "description": "The maximum price you're willing to pay in USD per Virtual Machine. Valid values are `-1` (the current on-demand price for a Virtual Machine) or a positive value with up to five decimal places. Changing this forces a new resource to be created.\n",
          "type": "number"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ultraSsdEnabled": {
          "description": "Used to specify whether the UltraSSD is enabled in the Node Pool. Defaults to `false`. See [the documentation](https://docs.microsoft.com/en-us/azure/aks/use-ultra-disks) for more information.\n",
          "type": "boolean"
        },
        "upgradeSettings": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterNodePoolUpgradeSettings:KubernetesClusterNodePoolUpgradeSettings",
          "description": "A `upgrade_settings` block as documented below.\n"
        },
        "vmSize": {
          "description": "The SKU which should be used for the Virtual Machines used in this Node Pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "vnetSubnetId": {
          "description": "The ID of the Subnet where this Node Pool should exist.\n",
          "type": "string"
        }
      },
      "properties": {
        "availabilityZones": {
          "description": "A list of Availability Zones where the Nodes in this Node Pool should be created in. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "enableAutoScaling": {
          "description": "Whether to enable [auto-scaler](https://docs.microsoft.com/en-us/azure/aks/cluster-autoscaler). Defaults to `false`.\n",
          "type": "boolean"
        },
        "enableHostEncryption": {
          "description": "Should the nodes in this Node Pool have host encryption enabled? Defaults to `false`.\n",
          "type": "boolean"
        },
        "enableNodePublicIp": {
          "description": "Should each node have a Public IP Address? Defaults to `false`.  Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "evictionPolicy": {
          "description": "The Eviction Policy which should be used for Virtual Machines within the Virtual Machine Scale Set powering this Node Pool. Possible values are `Deallocate` and `Delete`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "fipsEnabled": {
          "description": "Should the nodes in this Node Pool have Federal Information Processing Standard enabled? Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "kubeletConfig": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterNodePoolKubeletConfig:KubernetesClusterNodePoolKubeletConfig",
          "description": "A `kubelet_config` block as defined below.\n"
        },
        "kubeletDiskType": {
          "description": "The type of disk used by kubelet. Possible Values are `OS`.\n",
          "type": "string"
        },
        "kubernetesClusterId": {
          "description": "The ID of the Kubernetes Cluster where this Node Pool should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "linuxOsConfig": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterNodePoolLinuxOsConfig:KubernetesClusterNodePoolLinuxOsConfig",
          "description": "A `linux_os_config` block as defined below.\n"
        },
        "maxCount": {
          "description": "The maximum number of nodes which should exist within this Node Pool. Valid values are between `0` and `1000` and must be greater than or equal to `min_count`.\n",
          "type": "integer"
        },
        "maxPods": {
          "description": "The maximum number of pods that can run on each agent. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "minCount": {
          "description": "The minimum number of nodes which should exist within this Node Pool. Valid values are between `0` and `1000` and must be less than or equal to `max_count`.\n",
          "type": "integer"
        },
        "mode": {
          "description": "Should this Node Pool be used for System or User resources? Possible values are `System` and `User`. Defaults to `User`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Node Pool which should be created within the Kubernetes Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "nodeCount": {
          "description": "The initial number of nodes which should exist within this Node Pool. Valid values are between `0` and `1000` and must be a value in the range `min_count` - `max_count`.\n",
          "type": "integer"
        },
        "nodeLabels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Kubernetes labels which should be applied to nodes in this Node Pool. Changing this forces a new resource to be created.\n",
          "type": "object"
        },
        "nodePublicIpPrefixId": {
          "description": "Resource ID for the Public IP Addresses Prefix for the nodes in this Node Pool. `enable_node_public_ip` should be `true`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "nodeTaints": {
          "description": "A list of Kubernetes taints which should be applied to nodes in the agent pool (e.g `key=value:NoSchedule`). Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "orchestratorVersion": {
          "description": "Version of Kubernetes used for the Agents. If not specified, the latest recommended version will be used at provisioning time (but won't auto-upgrade)\n",
          "type": "string"
        },
        "osDiskSizeGb": {
          "description": "The Agent Operating System disk size in GB. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "osDiskType": {
          "description": "The type of disk which should be used for the Operating System. Possible values are `Ephemeral` and `Managed`. Defaults to `Managed`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "osSku": {
          "description": "OsSKU to be used to specify Linux OSType. Not applicable to Windows OSType. Possible values include: `Ubuntu`, `CBLMariner`. Defaults to `Ubuntu`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "osType": {
          "description": "The Operating System which should be used for this Node Pool. Changing this forces a new resource to be created. Possible values are `Linux` and `Windows`. Defaults to `Linux`.\n",
          "type": "string"
        },
        "podSubnetId": {
          "description": "The ID of the Subnet where the pods in the default Node Pool should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "The Priority for Virtual Machines within the Virtual Machine Scale Set that powers this Node Pool. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "proximityPlacementGroupId": {
          "description": "The ID of the Proximity Placement Group where the Virtual Machine Scale Set that powers this Node Pool will be placed. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "spotMaxPrice": {
          "description": "The maximum price you're willing to pay in USD per Virtual Machine. Valid values are `-1` (the current on-demand price for a Virtual Machine) or a positive value with up to five decimal places. Changing this forces a new resource to be created.\n",
          "type": "number"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ultraSsdEnabled": {
          "description": "Used to specify whether the UltraSSD is enabled in the Node Pool. Defaults to `false`. See [the documentation](https://docs.microsoft.com/en-us/azure/aks/use-ultra-disks) for more information.\n",
          "type": "boolean"
        },
        "upgradeSettings": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterNodePoolUpgradeSettings:KubernetesClusterNodePoolUpgradeSettings",
          "description": "A `upgrade_settings` block as documented below.\n"
        },
        "vmSize": {
          "description": "The SKU which should be used for the Virtual Machines used in this Node Pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "vnetSubnetId": {
          "description": "The ID of the Subnet where this Node Pool should exist.\n",
          "type": "string"
        }
      },
      "required": [
        "kubeletDiskType",
        "kubernetesClusterId",
        "maxPods",
        "name",
        "nodeCount",
        "nodeLabels",
        "orchestratorVersion",
        "osDiskSizeGb",
        "vmSize"
      ],
      "requiredInputs": [
        "kubernetesClusterId",
        "vmSize"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering KubernetesClusterNodePool resources.\n",
        "properties": {
          "availabilityZones": {
            "description": "A list of Availability Zones where the Nodes in this Node Pool should be created in. Changing this forces a new resource to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "enableAutoScaling": {
            "description": "Whether to enable [auto-scaler](https://docs.microsoft.com/en-us/azure/aks/cluster-autoscaler). Defaults to `false`.\n",
            "type": "boolean"
          },
          "enableHostEncryption": {
            "description": "Should the nodes in this Node Pool have host encryption enabled? Defaults to `false`.\n",
            "type": "boolean"
          },
          "enableNodePublicIp": {
            "description": "Should each node have a Public IP Address? Defaults to `false`.  Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "evictionPolicy": {
            "description": "The Eviction Policy which should be used for Virtual Machines within the Virtual Machine Scale Set powering this Node Pool. Possible values are `Deallocate` and `Delete`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "fipsEnabled": {
            "description": "Should the nodes in this Node Pool have Federal Information Processing Standard enabled? Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "kubeletConfig": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterNodePoolKubeletConfig:KubernetesClusterNodePoolKubeletConfig",
            "description": "A `kubelet_config` block as defined below.\n"
          },
          "kubeletDiskType": {
            "description": "The type of disk used by kubelet. Possible Values are `OS`.\n",
            "type": "string"
          },
          "kubernetesClusterId": {
            "description": "The ID of the Kubernetes Cluster where this Node Pool should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "linuxOsConfig": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterNodePoolLinuxOsConfig:KubernetesClusterNodePoolLinuxOsConfig",
            "description": "A `linux_os_config` block as defined below.\n"
          },
          "maxCount": {
            "description": "The maximum number of nodes which should exist within this Node Pool. Valid values are between `0` and `1000` and must be greater than or equal to `min_count`.\n",
            "type": "integer"
          },
          "maxPods": {
            "description": "The maximum number of pods that can run on each agent. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "minCount": {
            "description": "The minimum number of nodes which should exist within this Node Pool. Valid values are between `0` and `1000` and must be less than or equal to `max_count`.\n",
            "type": "integer"
          },
          "mode": {
            "description": "Should this Node Pool be used for System or User resources? Possible values are `System` and `User`. Defaults to `User`.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Node Pool which should be created within the Kubernetes Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "nodeCount": {
            "description": "The initial number of nodes which should exist within this Node Pool. Valid values are between `0` and `1000` and must be a value in the range `min_count` - `max_count`.\n",
            "type": "integer"
          },
          "nodeLabels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of Kubernetes labels which should be applied to nodes in this Node Pool. Changing this forces a new resource to be created.\n",
            "type": "object"
          },
          "nodePublicIpPrefixId": {
            "description": "Resource ID for the Public IP Addresses Prefix for the nodes in this Node Pool. `enable_node_public_ip` should be `true`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "nodeTaints": {
            "description": "A list of Kubernetes taints which should be applied to nodes in the agent pool (e.g `key=value:NoSchedule`). Changing this forces a new resource to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "orchestratorVersion": {
            "description": "Version of Kubernetes used for the Agents. If not specified, the latest recommended version will be used at provisioning time (but won't auto-upgrade)\n",
            "type": "string"
          },
          "osDiskSizeGb": {
            "description": "The Agent Operating System disk size in GB. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "osDiskType": {
            "description": "The type of disk which should be used for the Operating System. Possible values are `Ephemeral` and `Managed`. Defaults to `Managed`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "osSku": {
            "description": "OsSKU to be used to specify Linux OSType. Not applicable to Windows OSType. Possible values include: `Ubuntu`, `CBLMariner`. Defaults to `Ubuntu`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "osType": {
            "description": "The Operating System which should be used for this Node Pool. Changing this forces a new resource to be created. Possible values are `Linux` and `Windows`. Defaults to `Linux`.\n",
            "type": "string"
          },
          "podSubnetId": {
            "description": "The ID of the Subnet where the pods in the default Node Pool should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "priority": {
            "description": "The Priority for Virtual Machines within the Virtual Machine Scale Set that powers this Node Pool. Possible values are `Regular` and `Spot`. Defaults to `Regular`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "proximityPlacementGroupId": {
            "description": "The ID of the Proximity Placement Group where the Virtual Machine Scale Set that powers this Node Pool will be placed. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "spotMaxPrice": {
            "description": "The maximum price you're willing to pay in USD per Virtual Machine. Valid values are `-1` (the current on-demand price for a Virtual Machine) or a positive value with up to five decimal places. Changing this forces a new resource to be created.\n",
            "type": "number"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "ultraSsdEnabled": {
            "description": "Used to specify whether the UltraSSD is enabled in the Node Pool. Defaults to `false`. See [the documentation](https://docs.microsoft.com/en-us/azure/aks/use-ultra-disks) for more information.\n",
            "type": "boolean"
          },
          "upgradeSettings": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterNodePoolUpgradeSettings:KubernetesClusterNodePoolUpgradeSettings",
            "description": "A `upgrade_settings` block as documented below.\n"
          },
          "vmSize": {
            "description": "The SKU which should be used for the Virtual Machines used in this Node Pool. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "vnetSubnetId": {
            "description": "The ID of the Subnet where this Node Pool should exist.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:containerservice/registry:Registry": {
      "description": "Manages an Azure Container Registry.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst acr = new azure.containerservice.Registry(\"acr\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    sku: \"Premium\",\n    adminEnabled: false,\n    georeplications: [\n        {\n            location: \"East US\",\n            zoneRedundancyEnabled: true,\n            tags: {},\n        },\n        {\n            location: \"westeurope\",\n            zoneRedundancyEnabled: true,\n            tags: {},\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nacr = azure.containerservice.Registry(\"acr\",\n    resource_group_name=rg.name,\n    location=rg.location,\n    sku=\"Premium\",\n    admin_enabled=False,\n    georeplications=[\n        azure.containerservice.RegistryGeoreplicationArgs(\n            location=\"East US\",\n            zone_redundancy_enabled=True,\n            tags={},\n        ),\n        azure.containerservice.RegistryGeoreplicationArgs(\n            location=\"westeurope\",\n            zone_redundancy_enabled=True,\n            tags={},\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var acr = new Azure.ContainerService.Registry(\"acr\", new Azure.ContainerService.RegistryArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n            Sku = \"Premium\",\n            AdminEnabled = false,\n            Georeplications = \n            {\n                new Azure.ContainerService.Inputs.RegistryGeoreplicationArgs\n                {\n                    Location = \"East US\",\n                    ZoneRedundancyEnabled = true,\n                    Tags = ,\n                },\n                new Azure.ContainerService.Inputs.RegistryGeoreplicationArgs\n                {\n                    Location = \"westeurope\",\n                    ZoneRedundancyEnabled = true,\n                    Tags = ,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containerservice.NewRegistry(ctx, \"acr\", \u0026containerservice.RegistryArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tSku:               pulumi.String(\"Premium\"),\n\t\t\tAdminEnabled:      pulumi.Bool(false),\n\t\t\tGeoreplications: containerservice.RegistryGeoreplicationArray{\n\t\t\t\t\u0026containerservice.RegistryGeoreplicationArgs{\n\t\t\t\t\tLocation:              pulumi.String(\"East US\"),\n\t\t\t\t\tZoneRedundancyEnabled: pulumi.Bool(true),\n\t\t\t\t\tTags:                  nil,\n\t\t\t\t},\n\t\t\t\t\u0026containerservice.RegistryGeoreplicationArgs{\n\t\t\t\t\tLocation:              pulumi.String(\"westeurope\"),\n\t\t\t\t\tZoneRedundancyEnabled: pulumi.Bool(true),\n\t\t\t\t\tTags:                  nil,\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\n{{% /example %}}\n{{% example %}}\n### Encryption)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst exampleUserAssignedIdentity = new azure.authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\", {\n    resourceGroupName: azurerm_resource_group.example.name,\n    location: azurerm_resource_group.example.location,\n});\nconst exampleKey = azure.keyvault.getKey({\n    name: \"super-secret\",\n    keyVaultId: data.azurerm_key_vault.existing.id,\n});\nconst acr = new azure.containerservice.Registry(\"acr\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    sku: \"Premium\",\n    identity: {\n        type: \"UserAssigned\",\n        identityIds: [exampleUserAssignedIdentity.id],\n    },\n    encryption: {\n        enabled: true,\n        keyVaultKeyId: exampleKey.then(exampleKey =\u003e exampleKey.id),\n        identityClientId: exampleUserAssignedIdentity.clientId,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nexample_user_assigned_identity = azure.authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"],\n    location=azurerm_resource_group[\"example\"][\"location\"])\nexample_key = azure.keyvault.get_key(name=\"super-secret\",\n    key_vault_id=data[\"azurerm_key_vault\"][\"existing\"][\"id\"])\nacr = azure.containerservice.Registry(\"acr\",\n    resource_group_name=rg.name,\n    location=rg.location,\n    sku=\"Premium\",\n    identity=azure.containerservice.RegistryIdentityArgs(\n        type=\"UserAssigned\",\n        identity_ids=[example_user_assigned_identity.id],\n    ),\n    encryption=azure.containerservice.RegistryEncryptionArgs(\n        enabled=True,\n        key_vault_key_id=example_key.id,\n        identity_client_id=example_user_assigned_identity.client_id,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleUserAssignedIdentity = new Azure.Authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\", new Azure.Authorization.UserAssignedIdentityArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n            Location = azurerm_resource_group.Example.Location,\n        });\n        var exampleKey = Output.Create(Azure.KeyVault.GetKey.InvokeAsync(new Azure.KeyVault.GetKeyArgs\n        {\n            Name = \"super-secret\",\n            KeyVaultId = data.Azurerm_key_vault.Existing.Id,\n        }));\n        var acr = new Azure.ContainerService.Registry(\"acr\", new Azure.ContainerService.RegistryArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n            Sku = \"Premium\",\n            Identity = new Azure.ContainerService.Inputs.RegistryIdentityArgs\n            {\n                Type = \"UserAssigned\",\n                IdentityIds = \n                {\n                    exampleUserAssignedIdentity.Id,\n                },\n            },\n            Encryption = new Azure.ContainerService.Inputs.RegistryEncryptionArgs\n            {\n                Enabled = true,\n                KeyVaultKeyId = exampleKey.Apply(exampleKey =\u003e exampleKey.Id),\n                IdentityClientId = exampleUserAssignedIdentity.ClientId,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUserAssignedIdentity, err := authorization.NewUserAssignedIdentity(ctx, \"exampleUserAssignedIdentity\", \u0026authorization.UserAssignedIdentityArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_resource_group.Example.Name),\n\t\t\tLocation:          pulumi.Any(azurerm_resource_group.Example.Location),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKey, err := keyvault.LookupKey(ctx, \u0026keyvault.LookupKeyArgs{\n\t\t\tName:       \"super-secret\",\n\t\t\tKeyVaultId: data.Azurerm_key_vault.Existing.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containerservice.NewRegistry(ctx, \"acr\", \u0026containerservice.RegistryArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tSku:               pulumi.String(\"Premium\"),\n\t\t\tIdentity: \u0026containerservice.RegistryIdentityArgs{\n\t\t\t\tType: pulumi.String(\"UserAssigned\"),\n\t\t\t\tIdentityIds: pulumi.StringArray{\n\t\t\t\t\texampleUserAssignedIdentity.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEncryption: \u0026containerservice.RegistryEncryptionArgs{\n\t\t\t\tEnabled:          pulumi.Bool(true),\n\t\t\t\tKeyVaultKeyId:    pulumi.String(exampleKey.Id),\n\t\t\t\tIdentityClientId: exampleUserAssignedIdentity.ClientId,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nContainer Registries can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:containerservice/registry:Registry example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/mygroup1/providers/Microsoft.ContainerRegistry/registries/myregistry1\n```\n\n ",
      "inputProperties": {
        "adminEnabled": {
          "description": "Specifies whether the admin user is enabled. Defaults to `false`.\n",
          "type": "boolean"
        },
        "encryption": {
          "$ref": "#/types/azure:containerservice/RegistryEncryption:RegistryEncryption",
          "description": "An `encryption` block as documented below.\n"
        },
        "georeplicationLocations": {
          "deprecationMessage": "Deprecated in favour of `georeplications`",
          "description": "A list of Azure locations where the container registry should be geo-replicated.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "georeplications": {
          "description": "A `georeplications` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/RegistryGeoreplication:RegistryGeoreplication"
          },
          "type": "array"
        },
        "identity": {
          "$ref": "#/types/azure:containerservice/RegistryIdentity:RegistryIdentity",
          "description": "An `identity` block as documented below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Container Registry. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkRuleSet": {
          "$ref": "#/types/azure:containerservice/RegistryNetworkRuleSet:RegistryNetworkRuleSet",
          "description": "A `network_rule_set` block as documented below.\n"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether public network access is allowed for the container registry. Defaults to `true`.\n",
          "type": "boolean"
        },
        "quarantinePolicyEnabled": {
          "description": "Boolean value that indicates whether quarantine policy is enabled. Defaults to `false`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Container Registry. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retentionPolicy": {
          "$ref": "#/types/azure:containerservice/RegistryRetentionPolicy:RegistryRetentionPolicy",
          "description": "A `retention_policy` block as documented below.\n"
        },
        "sku": {
          "description": "The SKU name of the container registry. Possible values are  `Basic`, `Standard` and `Premium`. `Classic` (which was previously `Basic`) is supported only for existing resources.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of a Storage Account which must be located in the same Azure Region as the Container Registry.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "trustPolicy": {
          "$ref": "#/types/azure:containerservice/RegistryTrustPolicy:RegistryTrustPolicy",
          "description": "A `trust_policy` block as documented below.\n"
        },
        "zoneRedundancyEnabled": {
          "description": "Whether zone redundancy is enabled for this Container Registry? Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "adminEnabled": {
          "description": "Specifies whether the admin user is enabled. Defaults to `false`.\n",
          "type": "boolean"
        },
        "adminPassword": {
          "description": "The Password associated with the Container Registry Admin account - if the admin account is enabled.\n",
          "type": "string"
        },
        "adminUsername": {
          "description": "The Username associated with the Container Registry Admin account - if the admin account is enabled.\n",
          "type": "string"
        },
        "encryption": {
          "$ref": "#/types/azure:containerservice/RegistryEncryption:RegistryEncryption",
          "description": "An `encryption` block as documented below.\n"
        },
        "georeplicationLocations": {
          "deprecationMessage": "Deprecated in favour of `georeplications`",
          "description": "A list of Azure locations where the container registry should be geo-replicated.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "georeplications": {
          "description": "A `georeplications` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/RegistryGeoreplication:RegistryGeoreplication"
          },
          "type": "array"
        },
        "identity": {
          "$ref": "#/types/azure:containerservice/RegistryIdentity:RegistryIdentity",
          "description": "An `identity` block as documented below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "loginServer": {
          "description": "The URL that can be used to log into the container registry.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Container Registry. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkRuleSet": {
          "$ref": "#/types/azure:containerservice/RegistryNetworkRuleSet:RegistryNetworkRuleSet",
          "description": "A `network_rule_set` block as documented below.\n"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether public network access is allowed for the container registry. Defaults to `true`.\n",
          "type": "boolean"
        },
        "quarantinePolicyEnabled": {
          "description": "Boolean value that indicates whether quarantine policy is enabled. Defaults to `false`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Container Registry. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retentionPolicy": {
          "$ref": "#/types/azure:containerservice/RegistryRetentionPolicy:RegistryRetentionPolicy",
          "description": "A `retention_policy` block as documented below.\n"
        },
        "sku": {
          "description": "The SKU name of the container registry. Possible values are  `Basic`, `Standard` and `Premium`. `Classic` (which was previously `Basic`) is supported only for existing resources.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of a Storage Account which must be located in the same Azure Region as the Container Registry.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "trustPolicy": {
          "$ref": "#/types/azure:containerservice/RegistryTrustPolicy:RegistryTrustPolicy",
          "description": "A `trust_policy` block as documented below.\n"
        },
        "zoneRedundancyEnabled": {
          "description": "Whether zone redundancy is enabled for this Container Registry? Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "adminPassword",
        "adminUsername",
        "encryption",
        "georeplicationLocations",
        "georeplications",
        "identity",
        "location",
        "loginServer",
        "name",
        "networkRuleSet",
        "resourceGroupName",
        "retentionPolicy",
        "trustPolicy"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Registry resources.\n",
        "properties": {
          "adminEnabled": {
            "description": "Specifies whether the admin user is enabled. Defaults to `false`.\n",
            "type": "boolean"
          },
          "adminPassword": {
            "description": "The Password associated with the Container Registry Admin account - if the admin account is enabled.\n",
            "type": "string"
          },
          "adminUsername": {
            "description": "The Username associated with the Container Registry Admin account - if the admin account is enabled.\n",
            "type": "string"
          },
          "encryption": {
            "$ref": "#/types/azure:containerservice/RegistryEncryption:RegistryEncryption",
            "description": "An `encryption` block as documented below.\n"
          },
          "georeplicationLocations": {
            "deprecationMessage": "Deprecated in favour of `georeplications`",
            "description": "A list of Azure locations where the container registry should be geo-replicated.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "georeplications": {
            "description": "A `georeplications` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:containerservice/RegistryGeoreplication:RegistryGeoreplication"
            },
            "type": "array"
          },
          "identity": {
            "$ref": "#/types/azure:containerservice/RegistryIdentity:RegistryIdentity",
            "description": "An `identity` block as documented below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "loginServer": {
            "description": "The URL that can be used to log into the container registry.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Container Registry. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkRuleSet": {
            "$ref": "#/types/azure:containerservice/RegistryNetworkRuleSet:RegistryNetworkRuleSet",
            "description": "A `network_rule_set` block as documented below.\n"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether public network access is allowed for the container registry. Defaults to `true`.\n",
            "type": "boolean"
          },
          "quarantinePolicyEnabled": {
            "description": "Boolean value that indicates whether quarantine policy is enabled. Defaults to `false`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Container Registry. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "retentionPolicy": {
            "$ref": "#/types/azure:containerservice/RegistryRetentionPolicy:RegistryRetentionPolicy",
            "description": "A `retention_policy` block as documented below.\n"
          },
          "sku": {
            "description": "The SKU name of the container registry. Possible values are  `Basic`, `Standard` and `Premium`. `Classic` (which was previously `Basic`) is supported only for existing resources.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of a Storage Account which must be located in the same Azure Region as the Container Registry.  Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "trustPolicy": {
            "$ref": "#/types/azure:containerservice/RegistryTrustPolicy:RegistryTrustPolicy",
            "description": "A `trust_policy` block as documented below.\n"
          },
          "zoneRedundancyEnabled": {
            "description": "Whether zone redundancy is enabled for this Container Registry? Changing this forces a new resource to be created. Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:containerservice/registryScopeMap:RegistryScopeMap": {
      "description": "Manages an Azure Container Registry scope map.  Scope Maps are a preview feature only available in Premium SKU Container registries.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleRegistry = new azure.containerservice.Registry(\"exampleRegistry\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: \"Premium\",\n    adminEnabled: false,\n    georeplicationLocations: [\n        \"East US\",\n        \"West Europe\",\n    ],\n});\nconst exampleRegistryScopeMap = new azure.containerservice.RegistryScopeMap(\"exampleRegistryScopeMap\", {\n    containerRegistryName: azurerm_container_registry.acr.name,\n    resourceGroupName: azurerm_resource_group.rg.name,\n    actions: [\n        \"repositories/repo1/content/read\",\n        \"repositories/repo1/content/write\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_registry = azure.containerservice.Registry(\"exampleRegistry\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=\"Premium\",\n    admin_enabled=False,\n    georeplication_locations=[\n        \"East US\",\n        \"West Europe\",\n    ])\nexample_registry_scope_map = azure.containerservice.RegistryScopeMap(\"exampleRegistryScopeMap\",\n    container_registry_name=azurerm_container_registry[\"acr\"][\"name\"],\n    resource_group_name=azurerm_resource_group[\"rg\"][\"name\"],\n    actions=[\n        \"repositories/repo1/content/read\",\n        \"repositories/repo1/content/write\",\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleRegistry = new Azure.ContainerService.Registry(\"exampleRegistry\", new Azure.ContainerService.RegistryArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = \"Premium\",\n            AdminEnabled = false,\n            GeoreplicationLocations = \n            {\n                \"East US\",\n                \"West Europe\",\n            },\n        });\n        var exampleRegistryScopeMap = new Azure.ContainerService.RegistryScopeMap(\"exampleRegistryScopeMap\", new Azure.ContainerService.RegistryScopeMapArgs\n        {\n            ContainerRegistryName = azurerm_container_registry.Acr.Name,\n            ResourceGroupName = azurerm_resource_group.Rg.Name,\n            Actions = \n            {\n                \"repositories/repo1/content/read\",\n                \"repositories/repo1/content/write\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containerservice.NewRegistry(ctx, \"exampleRegistry\", \u0026containerservice.RegistryArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku:               pulumi.String(\"Premium\"),\n\t\t\tAdminEnabled:      pulumi.Bool(false),\n\t\t\tGeoreplicationLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"East US\"),\n\t\t\t\tpulumi.String(\"West Europe\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containerservice.NewRegistryScopeMap(ctx, \"exampleRegistryScopeMap\", \u0026containerservice.RegistryScopeMapArgs{\n\t\t\tContainerRegistryName: pulumi.Any(azurerm_container_registry.Acr.Name),\n\t\t\tResourceGroupName:     pulumi.Any(azurerm_resource_group.Rg.Name),\n\t\t\tActions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"repositories/repo1/content/read\"),\n\t\t\t\tpulumi.String(\"repositories/repo1/content/write\"),\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\n\n## Import\n\nContainer Registries can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:containerservice/registryScopeMap:RegistryScopeMap example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/mygroup1/providers/Microsoft.ContainerRegistry/registries/myregistry1/scopeMaps/scopemap1\n```\n\n ",
      "inputProperties": {
        "actions": {
          "description": "A list of actions to attach to the scope map (e.g. `repo/content/read`, `repo2/content/delete`).\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "containerRegistryName": {
          "description": "The name of the Container Registry. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the scope map. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Container Registry token. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "actions": {
          "description": "A list of actions to attach to the scope map (e.g. `repo/content/read`, `repo2/content/delete`).\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "containerRegistryName": {
          "description": "The name of the Container Registry. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the scope map. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Container Registry token. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "actions",
        "containerRegistryName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "actions",
        "containerRegistryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RegistryScopeMap resources.\n",
        "properties": {
          "actions": {
            "description": "A list of actions to attach to the scope map (e.g. `repo/content/read`, `repo2/content/delete`).\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "containerRegistryName": {
            "description": "The name of the Container Registry. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the scope map. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Container Registry token. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:containerservice/registryToken:RegistryToken": {
      "description": "Manages an Azure Container Registry token. Tokens are a preview feature only available in Premium SKU Container registries.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleRegistry = new azure.containerservice.Registry(\"exampleRegistry\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: \"Premium\",\n    adminEnabled: false,\n    georeplicationLocations: [\n        \"East US\",\n        \"West Europe\",\n    ],\n});\nconst exampleRegistryScopeMap = new azure.containerservice.RegistryScopeMap(\"exampleRegistryScopeMap\", {\n    containerRegistryName: azurerm_container_registry.acr.name,\n    resourceGroupName: azurerm_resource_group.rg.name,\n    actions: [\n        \"repositories/repo1/content/read\",\n        \"repositories/repo1/content/write\",\n    ],\n});\nconst exampleRegistryToken = new azure.containerservice.RegistryToken(\"exampleRegistryToken\", {\n    containerRegistryName: azurerm_container_registry.acr.name,\n    resourceGroupName: azurerm_resource_group.rg.name,\n    scopeMapId: azurerm_container_registry_scope_map.map.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_registry = azure.containerservice.Registry(\"exampleRegistry\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=\"Premium\",\n    admin_enabled=False,\n    georeplication_locations=[\n        \"East US\",\n        \"West Europe\",\n    ])\nexample_registry_scope_map = azure.containerservice.RegistryScopeMap(\"exampleRegistryScopeMap\",\n    container_registry_name=azurerm_container_registry[\"acr\"][\"name\"],\n    resource_group_name=azurerm_resource_group[\"rg\"][\"name\"],\n    actions=[\n        \"repositories/repo1/content/read\",\n        \"repositories/repo1/content/write\",\n    ])\nexample_registry_token = azure.containerservice.RegistryToken(\"exampleRegistryToken\",\n    container_registry_name=azurerm_container_registry[\"acr\"][\"name\"],\n    resource_group_name=azurerm_resource_group[\"rg\"][\"name\"],\n    scope_map_id=azurerm_container_registry_scope_map[\"map\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleRegistry = new Azure.ContainerService.Registry(\"exampleRegistry\", new Azure.ContainerService.RegistryArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = \"Premium\",\n            AdminEnabled = false,\n            GeoreplicationLocations = \n            {\n                \"East US\",\n                \"West Europe\",\n            },\n        });\n        var exampleRegistryScopeMap = new Azure.ContainerService.RegistryScopeMap(\"exampleRegistryScopeMap\", new Azure.ContainerService.RegistryScopeMapArgs\n        {\n            ContainerRegistryName = azurerm_container_registry.Acr.Name,\n            ResourceGroupName = azurerm_resource_group.Rg.Name,\n            Actions = \n            {\n                \"repositories/repo1/content/read\",\n                \"repositories/repo1/content/write\",\n            },\n        });\n        var exampleRegistryToken = new Azure.ContainerService.RegistryToken(\"exampleRegistryToken\", new Azure.ContainerService.RegistryTokenArgs\n        {\n            ContainerRegistryName = azurerm_container_registry.Acr.Name,\n            ResourceGroupName = azurerm_resource_group.Rg.Name,\n            ScopeMapId = azurerm_container_registry_scope_map.Map.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containerservice.NewRegistry(ctx, \"exampleRegistry\", \u0026containerservice.RegistryArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku:               pulumi.String(\"Premium\"),\n\t\t\tAdminEnabled:      pulumi.Bool(false),\n\t\t\tGeoreplicationLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"East US\"),\n\t\t\t\tpulumi.String(\"West Europe\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containerservice.NewRegistryScopeMap(ctx, \"exampleRegistryScopeMap\", \u0026containerservice.RegistryScopeMapArgs{\n\t\t\tContainerRegistryName: pulumi.Any(azurerm_container_registry.Acr.Name),\n\t\t\tResourceGroupName:     pulumi.Any(azurerm_resource_group.Rg.Name),\n\t\t\tActions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"repositories/repo1/content/read\"),\n\t\t\t\tpulumi.String(\"repositories/repo1/content/write\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containerservice.NewRegistryToken(ctx, \"exampleRegistryToken\", \u0026containerservice.RegistryTokenArgs{\n\t\t\tContainerRegistryName: pulumi.Any(azurerm_container_registry.Acr.Name),\n\t\t\tResourceGroupName:     pulumi.Any(azurerm_resource_group.Rg.Name),\n\t\t\tScopeMapId:            pulumi.Any(azurerm_container_registry_scope_map.Map.Id),\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\n\n## Import\n\nContainer Registries can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:containerservice/registryToken:RegistryToken example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/mygroup1/providers/Microsoft.ContainerRegistry/registries/myregistry1/tokens/token1\n```\n\n ",
      "inputProperties": {
        "containerRegistryName": {
          "description": "The name of the Container Registry. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Should the Container Registry token be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the token. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Container Registry token. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scopeMapId": {
          "description": "The ID of the Container Registry Scope Map associated with the token.\n",
          "type": "string"
        }
      },
      "properties": {
        "containerRegistryName": {
          "description": "The name of the Container Registry. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Should the Container Registry token be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the token. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Container Registry token. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scopeMapId": {
          "description": "The ID of the Container Registry Scope Map associated with the token.\n",
          "type": "string"
        }
      },
      "required": [
        "containerRegistryName",
        "name",
        "resourceGroupName",
        "scopeMapId"
      ],
      "requiredInputs": [
        "containerRegistryName",
        "resourceGroupName",
        "scopeMapId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RegistryToken resources.\n",
        "properties": {
          "containerRegistryName": {
            "description": "The name of the Container Registry. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Should the Container Registry token be enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the token. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Container Registry token. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scopeMapId": {
            "description": "The ID of the Container Registry Scope Map associated with the token.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:containerservice/registryWebhook:RegistryWebhook": {
      "aliases": [
        {
          "type": "azure:containerservice/registryWebook:RegistryWebook"
        }
      ],
      "description": "Manages an Azure Container Registry Webhook.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst acr = new azure.containerservice.Registry(\"acr\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    sku: \"Standard\",\n    adminEnabled: false,\n});\nconst webhook = new azure.containerservice.RegistryWebhook(\"webhook\", {\n    resourceGroupName: rg.name,\n    registryName: acr.name,\n    location: rg.location,\n    serviceUri: \"https://mywebhookreceiver.example/mytag\",\n    status: \"enabled\",\n    scope: \"mytag:*\",\n    actions: [\"push\"],\n    customHeaders: {\n        \"Content-Type\": \"application/json\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nacr = azure.containerservice.Registry(\"acr\",\n    resource_group_name=rg.name,\n    location=rg.location,\n    sku=\"Standard\",\n    admin_enabled=False)\nwebhook = azure.containerservice.RegistryWebhook(\"webhook\",\n    resource_group_name=rg.name,\n    registry_name=acr.name,\n    location=rg.location,\n    service_uri=\"https://mywebhookreceiver.example/mytag\",\n    status=\"enabled\",\n    scope=\"mytag:*\",\n    actions=[\"push\"],\n    custom_headers={\n        \"Content-Type\": \"application/json\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var acr = new Azure.ContainerService.Registry(\"acr\", new Azure.ContainerService.RegistryArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n            Sku = \"Standard\",\n            AdminEnabled = false,\n        });\n        var webhook = new Azure.ContainerService.RegistryWebhook(\"webhook\", new Azure.ContainerService.RegistryWebhookArgs\n        {\n            ResourceGroupName = rg.Name,\n            RegistryName = acr.Name,\n            Location = rg.Location,\n            ServiceUri = \"https://mywebhookreceiver.example/mytag\",\n            Status = \"enabled\",\n            Scope = \"mytag:*\",\n            Actions = \n            {\n                \"push\",\n            },\n            CustomHeaders = \n            {\n                { \"Content-Type\", \"application/json\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tacr, err := containerservice.NewRegistry(ctx, \"acr\", \u0026containerservice.RegistryArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tAdminEnabled:      pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containerservice.NewRegistryWebhook(ctx, \"webhook\", \u0026containerservice.RegistryWebhookArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tRegistryName:      acr.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tServiceUri:        pulumi.String(\"https://mywebhookreceiver.example/mytag\"),\n\t\t\tStatus:            pulumi.String(\"enabled\"),\n\t\t\tScope:             pulumi.String(\"mytag:*\"),\n\t\t\tActions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"push\"),\n\t\t\t},\n\t\t\tCustomHeaders: pulumi.StringMap{\n\t\t\t\t\"Content-Type\": pulumi.String(\"application/json\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nContainer Registry Webhooks can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:containerservice/registryWebhook:RegistryWebhook example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/mygroup1/providers/Microsoft.ContainerRegistry/registries/myregistry1/webhooks/mywebhook1\n```\n\n ",
      "inputProperties": {
        "actions": {
          "description": "A list of actions that trigger the Webhook to post notifications. At least one action needs to be specified. Valid values are: `push`, `delete`, `quarantine`, `chart_push`, `chart_delete`\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "customHeaders": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Custom headers that will be added to the webhook notifications request.\n",
          "type": "object"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Container Registry Webhook. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "registryName": {
          "description": "The Name of Container registry this Webhook belongs to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Container Registry Webhook. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "Specifies the scope of repositories that can trigger an event. For example, `foo:*` means events for all tags under repository `foo`. `foo:bar` means events for 'foo:bar' only. `foo` is equivalent to `foo:latest`. Empty means all events.\n",
          "type": "string"
        },
        "serviceUri": {
          "description": "Specifies the service URI for the Webhook to post notifications.\n",
          "type": "string"
        },
        "status": {
          "description": "Specifies if this Webhook triggers notifications or not. Valid values: `enabled` and `disabled`. Default is `enabled`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "properties": {
        "actions": {
          "description": "A list of actions that trigger the Webhook to post notifications. At least one action needs to be specified. Valid values are: `push`, `delete`, `quarantine`, `chart_push`, `chart_delete`\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "customHeaders": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Custom headers that will be added to the webhook notifications request.\n",
          "type": "object"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Container Registry Webhook. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "registryName": {
          "description": "The Name of Container registry this Webhook belongs to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Container Registry Webhook. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "Specifies the scope of repositories that can trigger an event. For example, `foo:*` means events for all tags under repository `foo`. `foo:bar` means events for 'foo:bar' only. `foo` is equivalent to `foo:latest`. Empty means all events.\n",
          "type": "string"
        },
        "serviceUri": {
          "description": "Specifies the service URI for the Webhook to post notifications.\n",
          "type": "string"
        },
        "status": {
          "description": "Specifies if this Webhook triggers notifications or not. Valid values: `enabled` and `disabled`. Default is `enabled`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "required": [
        "actions",
        "location",
        "name",
        "registryName",
        "resourceGroupName",
        "serviceUri"
      ],
      "requiredInputs": [
        "actions",
        "registryName",
        "resourceGroupName",
        "serviceUri"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RegistryWebhook resources.\n",
        "properties": {
          "actions": {
            "description": "A list of actions that trigger the Webhook to post notifications. At least one action needs to be specified. Valid values are: `push`, `delete`, `quarantine`, `chart_push`, `chart_delete`\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "customHeaders": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom headers that will be added to the webhook notifications request.\n",
            "type": "object"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Container Registry Webhook. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "registryName": {
            "description": "The Name of Container registry this Webhook belongs to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Container Registry Webhook. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scope": {
            "description": "Specifies the scope of repositories that can trigger an event. For example, `foo:*` means events for all tags under repository `foo`. `foo:bar` means events for 'foo:bar' only. `foo` is equivalent to `foo:latest`. Empty means all events.\n",
            "type": "string"
          },
          "serviceUri": {
            "description": "Specifies the service URI for the Webhook to post notifications.\n",
            "type": "string"
          },
          "status": {
            "description": "Specifies if this Webhook triggers notifications or not. Valid values: `enabled` and `disabled`. Default is `enabled`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:containerservice/registryWebook:RegistryWebook": {
      "deprecationMessage": "azure.containerservice.RegistryWebook has been deprecated in favor of azure.containerservice.RegistryWebhook",
      "description": "Manages an Azure Container Registry Webhook.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst acr = new azure.containerservice.Registry(\"acr\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    sku: \"Standard\",\n    adminEnabled: false,\n});\nconst webhook = new azure.containerservice.RegistryWebhook(\"webhook\", {\n    resourceGroupName: rg.name,\n    registryName: acr.name,\n    location: rg.location,\n    serviceUri: \"https://mywebhookreceiver.example/mytag\",\n    status: \"enabled\",\n    scope: \"mytag:*\",\n    actions: [\"push\"],\n    customHeaders: {\n        \"Content-Type\": \"application/json\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nacr = azure.containerservice.Registry(\"acr\",\n    resource_group_name=rg.name,\n    location=rg.location,\n    sku=\"Standard\",\n    admin_enabled=False)\nwebhook = azure.containerservice.RegistryWebhook(\"webhook\",\n    resource_group_name=rg.name,\n    registry_name=acr.name,\n    location=rg.location,\n    service_uri=\"https://mywebhookreceiver.example/mytag\",\n    status=\"enabled\",\n    scope=\"mytag:*\",\n    actions=[\"push\"],\n    custom_headers={\n        \"Content-Type\": \"application/json\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var acr = new Azure.ContainerService.Registry(\"acr\", new Azure.ContainerService.RegistryArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n            Sku = \"Standard\",\n            AdminEnabled = false,\n        });\n        var webhook = new Azure.ContainerService.RegistryWebhook(\"webhook\", new Azure.ContainerService.RegistryWebhookArgs\n        {\n            ResourceGroupName = rg.Name,\n            RegistryName = acr.Name,\n            Location = rg.Location,\n            ServiceUri = \"https://mywebhookreceiver.example/mytag\",\n            Status = \"enabled\",\n            Scope = \"mytag:*\",\n            Actions = \n            {\n                \"push\",\n            },\n            CustomHeaders = \n            {\n                { \"Content-Type\", \"application/json\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tacr, err := containerservice.NewRegistry(ctx, \"acr\", \u0026containerservice.RegistryArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tAdminEnabled:      pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containerservice.NewRegistryWebhook(ctx, \"webhook\", \u0026containerservice.RegistryWebhookArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tRegistryName:      acr.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tServiceUri:        pulumi.String(\"https://mywebhookreceiver.example/mytag\"),\n\t\t\tStatus:            pulumi.String(\"enabled\"),\n\t\t\tScope:             pulumi.String(\"mytag:*\"),\n\t\t\tActions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"push\"),\n\t\t\t},\n\t\t\tCustomHeaders: pulumi.StringMap{\n\t\t\t\t\"Content-Type\": pulumi.String(\"application/json\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nContainer Registry Webhooks can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:containerservice/registryWebook:RegistryWebook example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/mygroup1/providers/Microsoft.ContainerRegistry/registries/myregistry1/webhooks/mywebhook1\n```\n\n ",
      "inputProperties": {
        "actions": {
          "description": "A list of actions that trigger the Webhook to post notifications. At least one action needs to be specified. Valid values are: `push`, `delete`, `quarantine`, `chart_push`, `chart_delete`\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "customHeaders": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Custom headers that will be added to the webhook notifications request.\n",
          "type": "object"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Container Registry Webhook. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "registryName": {
          "description": "The Name of Container registry this Webhook belongs to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Container Registry Webhook. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "Specifies the scope of repositories that can trigger an event. For example, `foo:*` means events for all tags under repository `foo`. `foo:bar` means events for 'foo:bar' only. `foo` is equivalent to `foo:latest`. Empty means all events.\n",
          "type": "string"
        },
        "serviceUri": {
          "description": "Specifies the service URI for the Webhook to post notifications.\n",
          "type": "string"
        },
        "status": {
          "description": "Specifies if this Webhook triggers notifications or not. Valid values: `enabled` and `disabled`. Default is `enabled`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "properties": {
        "actions": {
          "description": "A list of actions that trigger the Webhook to post notifications. At least one action needs to be specified. Valid values are: `push`, `delete`, `quarantine`, `chart_push`, `chart_delete`\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "customHeaders": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Custom headers that will be added to the webhook notifications request.\n",
          "type": "object"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Container Registry Webhook. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "registryName": {
          "description": "The Name of Container registry this Webhook belongs to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Container Registry Webhook. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "Specifies the scope of repositories that can trigger an event. For example, `foo:*` means events for all tags under repository `foo`. `foo:bar` means events for 'foo:bar' only. `foo` is equivalent to `foo:latest`. Empty means all events.\n",
          "type": "string"
        },
        "serviceUri": {
          "description": "Specifies the service URI for the Webhook to post notifications.\n",
          "type": "string"
        },
        "status": {
          "description": "Specifies if this Webhook triggers notifications or not. Valid values: `enabled` and `disabled`. Default is `enabled`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "required": [
        "actions",
        "location",
        "name",
        "registryName",
        "resourceGroupName",
        "serviceUri"
      ],
      "requiredInputs": [
        "actions",
        "registryName",
        "resourceGroupName",
        "serviceUri"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RegistryWebook resources.\n",
        "properties": {
          "actions": {
            "description": "A list of actions that trigger the Webhook to post notifications. At least one action needs to be specified. Valid values are: `push`, `delete`, `quarantine`, `chart_push`, `chart_delete`\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "customHeaders": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom headers that will be added to the webhook notifications request.\n",
            "type": "object"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Container Registry Webhook. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "registryName": {
            "description": "The Name of Container registry this Webhook belongs to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Container Registry Webhook. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scope": {
            "description": "Specifies the scope of repositories that can trigger an event. For example, `foo:*` means events for all tags under repository `foo`. `foo:bar` means events for 'foo:bar' only. `foo` is equivalent to `foo:latest`. Empty means all events.\n",
            "type": "string"
          },
          "serviceUri": {
            "description": "Specifies the service URI for the Webhook to post notifications.\n",
            "type": "string"
          },
          "status": {
            "description": "Specifies if this Webhook triggers notifications or not. Valid values: `enabled` and `disabled`. Default is `enabled`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:core/customProvider:CustomProvider": {
      "description": "Manages an Azure Custom Provider.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleCustomProvider = new azure.core.CustomProvider(\"exampleCustomProvider\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    resourceTypes: [{\n        name: \"dEf1\",\n        endpoint: \"https://testendpoint.com/\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_custom_provider = azure.core.CustomProvider(\"exampleCustomProvider\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    resource_types=[azure.core.CustomProviderResourceTypeArgs(\n        name=\"dEf1\",\n        endpoint=\"https://testendpoint.com/\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleCustomProvider = new Azure.Core.CustomProvider(\"exampleCustomProvider\", new Azure.Core.CustomProviderArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ResourceTypes = \n            {\n                new Azure.Core.Inputs.CustomProviderResourceTypeArgs\n                {\n                    Name = \"dEf1\",\n                    Endpoint = \"https://testendpoint.com/\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = core.NewCustomProvider(ctx, \"exampleCustomProvider\", \u0026core.CustomProviderArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tResourceTypes: core.CustomProviderResourceTypeArray{\n\t\t\t\t\u0026core.CustomProviderResourceTypeArgs{\n\t\t\t\t\tName:     pulumi.String(\"dEf1\"),\n\t\t\t\t\tEndpoint: pulumi.String(\"https://testendpoint.com/\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCustom Provider can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:core/customProvider:CustomProvider example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.CustomProviders/resourceProviders/example\n```\n\n ",
      "inputProperties": {
        "actions": {
          "description": "Any number of `action` block as defined below. One of `resource_type` or `action` must be specified.\n",
          "items": {
            "$ref": "#/types/azure:core/CustomProviderAction:CustomProviderAction"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Custom Provider. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Custom Provider.\n",
          "type": "string"
        },
        "resourceTypes": {
          "description": "Any number of `resource_type` block as defined below. One of `resource_type` or `action` must be specified.\n",
          "items": {
            "$ref": "#/types/azure:core/CustomProviderResourceType:CustomProviderResourceType"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "validations": {
          "description": "Any number of `validation` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:core/CustomProviderValidation:CustomProviderValidation"
          },
          "type": "array"
        }
      },
      "properties": {
        "actions": {
          "description": "Any number of `action` block as defined below. One of `resource_type` or `action` must be specified.\n",
          "items": {
            "$ref": "#/types/azure:core/CustomProviderAction:CustomProviderAction"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Custom Provider. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Custom Provider.\n",
          "type": "string"
        },
        "resourceTypes": {
          "description": "Any number of `resource_type` block as defined below. One of `resource_type` or `action` must be specified.\n",
          "items": {
            "$ref": "#/types/azure:core/CustomProviderResourceType:CustomProviderResourceType"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "validations": {
          "description": "Any number of `validation` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:core/CustomProviderValidation:CustomProviderValidation"
          },
          "type": "array"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CustomProvider resources.\n",
        "properties": {
          "actions": {
            "description": "Any number of `action` block as defined below. One of `resource_type` or `action` must be specified.\n",
            "items": {
              "$ref": "#/types/azure:core/CustomProviderAction:CustomProviderAction"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Custom Provider. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Custom Provider.\n",
            "type": "string"
          },
          "resourceTypes": {
            "description": "Any number of `resource_type` block as defined below. One of `resource_type` or `action` must be specified.\n",
            "items": {
              "$ref": "#/types/azure:core/CustomProviderResourceType:CustomProviderResourceType"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "validations": {
            "description": "Any number of `validation` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:core/CustomProviderValidation:CustomProviderValidation"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:core/portalTenantConfiguration:PortalTenantConfiguration": {
      "description": "Manages Portal Tenant Configuration.\n\n\u003e **Note:** User has to be `Contributor` or `Owner` at scope `/` for managing this resource.\n\n\u003e **Note:** The Service Principal with Tenant Admin can be created by `az ad sp create-for-rbac --name \"\u003csp name\u003e\" --role=\"Contributor\" --scopes=\"/\"`.\n\n\u003e **Note:** The Service Principal can be granted Tenant Admin permission by `az role assignment create --assignee \"\u003capp id\u003e\" --role \"Contributor\" --scope \"/\"`.\n\n\u003e **Note:** While assigning the role to the existing/new Service Principal at the Tenant Scope, the user assigning role must already have the `Owner` role assigned at the Tenant Scope.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.PortalTenantConfiguration(\"example\", {\n    privateMarkdownStorageEnforced: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.PortalTenantConfiguration(\"example\", private_markdown_storage_enforced=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.PortalTenantConfiguration(\"example\", new Azure.Core.PortalTenantConfigurationArgs\n        {\n            PrivateMarkdownStorageEnforced = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\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 := core.NewPortalTenantConfiguration(ctx, \"example\", \u0026core.PortalTenantConfigurationArgs{\n\t\t\tPrivateMarkdownStorageEnforced: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPortal Tenant Configurations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:core/portalTenantConfiguration:PortalTenantConfiguration example /providers/Microsoft.Portal/tenantConfigurations/default\n```\n\n ",
      "inputProperties": {
        "privateMarkdownStorageEnforced": {
          "description": "Is the private tile markdown storage which used to display custom dynamic and static content enabled?\n",
          "type": "boolean"
        }
      },
      "properties": {
        "privateMarkdownStorageEnforced": {
          "description": "Is the private tile markdown storage which used to display custom dynamic and static content enabled?\n",
          "type": "boolean"
        }
      },
      "required": [
        "privateMarkdownStorageEnforced"
      ],
      "requiredInputs": [
        "privateMarkdownStorageEnforced"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering PortalTenantConfiguration resources.\n",
        "properties": {
          "privateMarkdownStorageEnforced": {
            "description": "Is the private tile markdown storage which used to display custom dynamic and static content enabled?\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:core/resourceGroup:ResourceGroup": {
      "description": "\n\n\n## Import\n\nResource Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:core/resourceGroup:ResourceGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The Azure Region where the Resource Group should exist. Changing this forces a new Resource Group to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The Name which should be used for this Resource Group. Changing this forces a new Resource Group to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Resource Group.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "The Azure Region where the Resource Group should exist. Changing this forces a new Resource Group to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The Name which should be used for this Resource Group. Changing this forces a new Resource Group to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Resource Group.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ResourceGroup resources.\n",
        "properties": {
          "location": {
            "description": "The Azure Region where the Resource Group should exist. Changing this forces a new Resource Group to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The Name which should be used for this Resource Group. Changing this forces a new Resource Group to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Resource Group.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:core/resourceGroupPolicyAssignment:ResourceGroupPolicyAssignment": {
      "description": "Manages a Resource Group Policy Assignment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleDefinition = new azure.policy.Definition(\"exampleDefinition\", {\n    policyType: \"Custom\",\n    mode: \"All\",\n    policyRule: `\t{\n    \"if\": {\n      \"not\": {\n        \"field\": \"location\",\n        \"equals\": \"westeurope\"\n      }\n    },\n    \"then\": {\n      \"effect\": \"Deny\"\n    }\n  }\n`,\n});\nconst exampleResourceGroupPolicyAssignment = new azure.core.ResourceGroupPolicyAssignment(\"exampleResourceGroupPolicyAssignment\", {\n    resourceGroupId: exampleResourceGroup.id,\n    policyDefinitionId: exampleDefinition.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_definition = azure.policy.Definition(\"exampleDefinition\",\n    policy_type=\"Custom\",\n    mode=\"All\",\n    policy_rule=\"\"\"\t{\n    \"if\": {\n      \"not\": {\n        \"field\": \"location\",\n        \"equals\": \"westeurope\"\n      }\n    },\n    \"then\": {\n      \"effect\": \"Deny\"\n    }\n  }\n\"\"\")\nexample_resource_group_policy_assignment = azure.core.ResourceGroupPolicyAssignment(\"exampleResourceGroupPolicyAssignment\",\n    resource_group_id=example_resource_group.id,\n    policy_definition_id=example_definition.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleDefinition = new Azure.Policy.Definition(\"exampleDefinition\", new Azure.Policy.DefinitionArgs\n        {\n            PolicyType = \"Custom\",\n            Mode = \"All\",\n            PolicyRule = @\"\t{\n    \"\"if\"\": {\n      \"\"not\"\": {\n        \"\"field\"\": \"\"location\"\",\n        \"\"equals\"\": \"\"westeurope\"\"\n      }\n    },\n    \"\"then\"\": {\n      \"\"effect\"\": \"\"Deny\"\"\n    }\n  }\n\",\n        });\n        var exampleResourceGroupPolicyAssignment = new Azure.Core.ResourceGroupPolicyAssignment(\"exampleResourceGroupPolicyAssignment\", new Azure.Core.ResourceGroupPolicyAssignmentArgs\n        {\n            ResourceGroupId = exampleResourceGroup.Id,\n            PolicyDefinitionId = exampleDefinition.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/policy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDefinition, err := policy.NewDefinition(ctx, \"exampleDefinition\", \u0026policy.DefinitionArgs{\n\t\t\tPolicyType: pulumi.String(\"Custom\"),\n\t\t\tMode:       pulumi.String(\"All\"),\n\t\t\tPolicyRule: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v\", \"\t{\\n\", \"    \\\"if\\\": {\\n\", \"      \\\"not\\\": {\\n\", \"        \\\"field\\\": \\\"location\\\",\\n\", \"        \\\"equals\\\": \\\"westeurope\\\"\\n\", \"      }\\n\", \"    },\\n\", \"    \\\"then\\\": {\\n\", \"      \\\"effect\\\": \\\"Deny\\\"\\n\", \"    }\\n\", \"  }\\n\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = core.NewResourceGroupPolicyAssignment(ctx, \"exampleResourceGroupPolicyAssignment\", \u0026core.ResourceGroupPolicyAssignmentArgs{\n\t\t\tResourceGroupId:    exampleResourceGroup.ID(),\n\t\t\tPolicyDefinitionId: exampleDefinition.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nResource Group Policy Assignments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:core/resourceGroupPolicyAssignment:ResourceGroupPolicyAssignment example /subscriptions/00000000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Authorization/policyAssignments/assignment1\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "A description which should be used for this Policy Assignment.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The Display Name for this Policy Assignment.\n",
          "type": "string"
        },
        "enforce": {
          "description": "Specifies if this Policy should be enforced or not?\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:core/ResourceGroupPolicyAssignmentIdentity:ResourceGroupPolicyAssignmentIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Policy Assignment should exist. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "A JSON mapping of any Metadata for this Policy.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Policy Assignment. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "notScopes": {
          "description": "Specifies a list of Resource Scopes (for example a Subscription, or a Resource Group) within this Management Group which are excluded from this Policy.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "parameters": {
          "description": "A JSON mapping of any Parameters for this Policy. Changing this forces a new Management Group Policy Assignment to be created.\n",
          "type": "string"
        },
        "policyDefinitionId": {
          "description": "The ID of the Policy Definition or Policy Definition Set. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "resourceGroupId": {
          "description": "The ID of the Resource Group where this Policy Assignment should be created. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "description": {
          "description": "A description which should be used for this Policy Assignment.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The Display Name for this Policy Assignment.\n",
          "type": "string"
        },
        "enforce": {
          "description": "Specifies if this Policy should be enforced or not?\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:core/ResourceGroupPolicyAssignmentIdentity:ResourceGroupPolicyAssignmentIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Policy Assignment should exist. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "A JSON mapping of any Metadata for this Policy.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Policy Assignment. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "notScopes": {
          "description": "Specifies a list of Resource Scopes (for example a Subscription, or a Resource Group) within this Management Group which are excluded from this Policy.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "parameters": {
          "description": "A JSON mapping of any Parameters for this Policy. Changing this forces a new Management Group Policy Assignment to be created.\n",
          "type": "string"
        },
        "policyDefinitionId": {
          "description": "The ID of the Policy Definition or Policy Definition Set. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "resourceGroupId": {
          "description": "The ID of the Resource Group where this Policy Assignment should be created. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "metadata",
        "name",
        "policyDefinitionId",
        "resourceGroupId"
      ],
      "requiredInputs": [
        "policyDefinitionId",
        "resourceGroupId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ResourceGroupPolicyAssignment resources.\n",
        "properties": {
          "description": {
            "description": "A description which should be used for this Policy Assignment.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The Display Name for this Policy Assignment.\n",
            "type": "string"
          },
          "enforce": {
            "description": "Specifies if this Policy should be enforced or not?\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:core/ResourceGroupPolicyAssignmentIdentity:ResourceGroupPolicyAssignmentIdentity",
            "description": "A `identity` block as defined below.\n"
          },
          "location": {
            "description": "The Azure Region where the Policy Assignment should exist. Changing this forces a new Policy Assignment to be created.\n",
            "type": "string"
          },
          "metadata": {
            "description": "A JSON mapping of any Metadata for this Policy.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Policy Assignment. Changing this forces a new Policy Assignment to be created.\n",
            "type": "string"
          },
          "notScopes": {
            "description": "Specifies a list of Resource Scopes (for example a Subscription, or a Resource Group) within this Management Group which are excluded from this Policy.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "parameters": {
            "description": "A JSON mapping of any Parameters for this Policy. Changing this forces a new Management Group Policy Assignment to be created.\n",
            "type": "string"
          },
          "policyDefinitionId": {
            "description": "The ID of the Policy Definition or Policy Definition Set. Changing this forces a new Policy Assignment to be created.\n",
            "type": "string"
          },
          "resourceGroupId": {
            "description": "The ID of the Resource Group where this Policy Assignment should be created. Changing this forces a new Policy Assignment to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:core/resourceGroupTemplateDeployment:ResourceGroupTemplateDeployment": {
      "description": "Manages a Resource Group Template Deployment.\n\n\u003e **Note:** This resource will automatically attempt to delete resources deployed by the ARM Template when it is deleted. You can opt-out of this by setting the `delete_nested_items_during_deletion` field within the `template_deployment` block of the `features` block to `false`.\n\n\n## Import\n\nResource Group Template Deployments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:core/resourceGroupTemplateDeployment:ResourceGroupTemplateDeployment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Resources/deployments/template1\n```\n\n ",
      "inputProperties": {
        "debugLevel": {
          "description": "The Debug Level which should be used for this Resource Group Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`.\n",
          "type": "string"
        },
        "deploymentMode": {
          "description": "The Deployment Mode for this Resource Group Template Deployment. Possible values are `Complete` (where resources in the Resource Group not specified in the ARM Template will be destroyed) and `Incremental` (where resources are additive only).\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Resource Group Template Deployment. Changing this forces a new Resource Group Template Deployment to be created.\n",
          "type": "string"
        },
        "parametersContent": {
          "description": "The contents of the ARM Template parameters file - containing a JSON list of parameters.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Resource Group Template Deployment should exist. Changing this forces a new Resource Group Template Deployment to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Resource Group Template Deployment.\n",
          "type": "object"
        },
        "templateContent": {
          "description": "The contents of the ARM Template which should be deployed into this Resource Group. Cannot be specified with `template_spec_version_id`.\n",
          "type": "string"
        },
        "templateSpecVersionId": {
          "description": "The ID of the Template Spec Version to deploy. Cannot be specified with `template_content`.\n",
          "type": "string"
        }
      },
      "properties": {
        "debugLevel": {
          "description": "The Debug Level which should be used for this Resource Group Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`.\n",
          "type": "string"
        },
        "deploymentMode": {
          "description": "The Deployment Mode for this Resource Group Template Deployment. Possible values are `Complete` (where resources in the Resource Group not specified in the ARM Template will be destroyed) and `Incremental` (where resources are additive only).\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Resource Group Template Deployment. Changing this forces a new Resource Group Template Deployment to be created.\n",
          "type": "string"
        },
        "outputContent": {
          "description": "The JSON Content of the Outputs of the ARM Template Deployment.\n",
          "type": "string"
        },
        "parametersContent": {
          "description": "The contents of the ARM Template parameters file - containing a JSON list of parameters.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Resource Group Template Deployment should exist. Changing this forces a new Resource Group Template Deployment to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Resource Group Template Deployment.\n",
          "type": "object"
        },
        "templateContent": {
          "description": "The contents of the ARM Template which should be deployed into this Resource Group. Cannot be specified with `template_spec_version_id`.\n",
          "type": "string"
        },
        "templateSpecVersionId": {
          "description": "The ID of the Template Spec Version to deploy. Cannot be specified with `template_content`.\n",
          "type": "string"
        }
      },
      "required": [
        "deploymentMode",
        "name",
        "outputContent",
        "parametersContent",
        "resourceGroupName",
        "templateContent"
      ],
      "requiredInputs": [
        "deploymentMode",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ResourceGroupTemplateDeployment resources.\n",
        "properties": {
          "debugLevel": {
            "description": "The Debug Level which should be used for this Resource Group Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`.\n",
            "type": "string"
          },
          "deploymentMode": {
            "description": "The Deployment Mode for this Resource Group Template Deployment. Possible values are `Complete` (where resources in the Resource Group not specified in the ARM Template will be destroyed) and `Incremental` (where resources are additive only).\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Resource Group Template Deployment. Changing this forces a new Resource Group Template Deployment to be created.\n",
            "type": "string"
          },
          "outputContent": {
            "description": "The JSON Content of the Outputs of the ARM Template Deployment.\n",
            "type": "string"
          },
          "parametersContent": {
            "description": "The contents of the ARM Template parameters file - containing a JSON list of parameters.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Resource Group Template Deployment should exist. Changing this forces a new Resource Group Template Deployment to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Resource Group Template Deployment.\n",
            "type": "object"
          },
          "templateContent": {
            "description": "The contents of the ARM Template which should be deployed into this Resource Group. Cannot be specified with `template_spec_version_id`.\n",
            "type": "string"
          },
          "templateSpecVersionId": {
            "description": "The ID of the Template Spec Version to deploy. Cannot be specified with `template_content`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:core/resourcePolicyAssignment:ResourcePolicyAssignment": {
      "description": "Manages a Policy Assignment to a Resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleVirtualNetwork = azure.network.getVirtualNetwork({\n    name: \"production\",\n    resourceGroupName: \"networking\",\n});\nconst exampleDefinition = new azure.policy.Definition(\"exampleDefinition\", {\n    policyType: \"Custom\",\n    mode: \"All\",\n    policyRule: `\t{\n    \"if\": {\n      \"not\": {\n        \"field\": \"location\",\n        \"equals\": \"westeurope\"\n      }\n    },\n    \"then\": {\n      \"effect\": \"Deny\"\n    }\n  }\n`,\n});\nconst exampleResourcePolicyAssignment = new azure.core.ResourcePolicyAssignment(\"exampleResourcePolicyAssignment\", {\n    resourceId: exampleVirtualNetwork.then(exampleVirtualNetwork =\u003e exampleVirtualNetwork.id),\n    policyDefinitionId: exampleDefinition.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_virtual_network = azure.network.get_virtual_network(name=\"production\",\n    resource_group_name=\"networking\")\nexample_definition = azure.policy.Definition(\"exampleDefinition\",\n    policy_type=\"Custom\",\n    mode=\"All\",\n    policy_rule=\"\"\"\t{\n    \"if\": {\n      \"not\": {\n        \"field\": \"location\",\n        \"equals\": \"westeurope\"\n      }\n    },\n    \"then\": {\n      \"effect\": \"Deny\"\n    }\n  }\n\"\"\")\nexample_resource_policy_assignment = azure.core.ResourcePolicyAssignment(\"exampleResourcePolicyAssignment\",\n    resource_id=example_virtual_network.id,\n    policy_definition_id=example_definition.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleVirtualNetwork = Output.Create(Azure.Network.GetVirtualNetwork.InvokeAsync(new Azure.Network.GetVirtualNetworkArgs\n        {\n            Name = \"production\",\n            ResourceGroupName = \"networking\",\n        }));\n        var exampleDefinition = new Azure.Policy.Definition(\"exampleDefinition\", new Azure.Policy.DefinitionArgs\n        {\n            PolicyType = \"Custom\",\n            Mode = \"All\",\n            PolicyRule = @\"\t{\n    \"\"if\"\": {\n      \"\"not\"\": {\n        \"\"field\"\": \"\"location\"\",\n        \"\"equals\"\": \"\"westeurope\"\"\n      }\n    },\n    \"\"then\"\": {\n      \"\"effect\"\": \"\"Deny\"\"\n    }\n  }\n\",\n        });\n        var exampleResourcePolicyAssignment = new Azure.Core.ResourcePolicyAssignment(\"exampleResourcePolicyAssignment\", new Azure.Core.ResourcePolicyAssignmentArgs\n        {\n            ResourceId = exampleVirtualNetwork.Apply(exampleVirtualNetwork =\u003e exampleVirtualNetwork.Id),\n            PolicyDefinitionId = exampleDefinition.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/policy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVirtualNetwork, err := network.LookupVirtualNetwork(ctx, \u0026network.LookupVirtualNetworkArgs{\n\t\t\tName:              \"production\",\n\t\t\tResourceGroupName: \"networking\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDefinition, err := policy.NewDefinition(ctx, \"exampleDefinition\", \u0026policy.DefinitionArgs{\n\t\t\tPolicyType: pulumi.String(\"Custom\"),\n\t\t\tMode:       pulumi.String(\"All\"),\n\t\t\tPolicyRule: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v\", \"\t{\\n\", \"    \\\"if\\\": {\\n\", \"      \\\"not\\\": {\\n\", \"        \\\"field\\\": \\\"location\\\",\\n\", \"        \\\"equals\\\": \\\"westeurope\\\"\\n\", \"      }\\n\", \"    },\\n\", \"    \\\"then\\\": {\\n\", \"      \\\"effect\\\": \\\"Deny\\\"\\n\", \"    }\\n\", \"  }\\n\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = core.NewResourcePolicyAssignment(ctx, \"exampleResourcePolicyAssignment\", \u0026core.ResourcePolicyAssignmentArgs{\n\t\t\tResourceId:         pulumi.String(exampleVirtualNetwork.Id),\n\t\t\tPolicyDefinitionId: exampleDefinition.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nResource Policy Assignments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:core/resourcePolicyAssignment:ResourcePolicyAssignment example \"{resource}/providers/Microsoft.Authorization/policyAssignments/assignment1\"\n```\n\n where `{resource}` is a Resource ID in the form `/subscriptions/00000000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/virtualNetworks/network1`. ",
      "inputProperties": {
        "description": {
          "description": "A description which should be used for this Policy Assignment.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The Display Name for this Policy Assignment.\n",
          "type": "string"
        },
        "enforce": {
          "description": "Specifies if this Policy should be enforced or not?\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:core/ResourcePolicyAssignmentIdentity:ResourcePolicyAssignmentIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Policy Assignment should exist. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "A JSON mapping of any Metadata for this Policy.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Policy Assignment. Changing this forces a new Resource Policy Assignment to be created.\n",
          "type": "string"
        },
        "notScopes": {
          "description": "Specifies a list of Resource Scopes (for example a Subscription, or a Resource Group) within this Management Group which are excluded from this Policy.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "parameters": {
          "description": "A JSON mapping of any Parameters for this Policy. Changing this forces a new Management Group Policy Assignment to be created.\n",
          "type": "string"
        },
        "policyDefinitionId": {
          "description": "The ID of the Policy Definition or Policy Definition Set. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "resourceId": {
          "description": "The ID of the Resource (or Resource Scope) where this should be applied. Changing this forces a new Resource Policy Assignment to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "description": {
          "description": "A description which should be used for this Policy Assignment.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The Display Name for this Policy Assignment.\n",
          "type": "string"
        },
        "enforce": {
          "description": "Specifies if this Policy should be enforced or not?\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:core/ResourcePolicyAssignmentIdentity:ResourcePolicyAssignmentIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Policy Assignment should exist. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "A JSON mapping of any Metadata for this Policy.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Policy Assignment. Changing this forces a new Resource Policy Assignment to be created.\n",
          "type": "string"
        },
        "notScopes": {
          "description": "Specifies a list of Resource Scopes (for example a Subscription, or a Resource Group) within this Management Group which are excluded from this Policy.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "parameters": {
          "description": "A JSON mapping of any Parameters for this Policy. Changing this forces a new Management Group Policy Assignment to be created.\n",
          "type": "string"
        },
        "policyDefinitionId": {
          "description": "The ID of the Policy Definition or Policy Definition Set. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "resourceId": {
          "description": "The ID of the Resource (or Resource Scope) where this should be applied. Changing this forces a new Resource Policy Assignment to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "metadata",
        "name",
        "policyDefinitionId",
        "resourceId"
      ],
      "requiredInputs": [
        "policyDefinitionId",
        "resourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ResourcePolicyAssignment resources.\n",
        "properties": {
          "description": {
            "description": "A description which should be used for this Policy Assignment.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The Display Name for this Policy Assignment.\n",
            "type": "string"
          },
          "enforce": {
            "description": "Specifies if this Policy should be enforced or not?\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:core/ResourcePolicyAssignmentIdentity:ResourcePolicyAssignmentIdentity",
            "description": "A `identity` block as defined below.\n"
          },
          "location": {
            "description": "The Azure Region where the Policy Assignment should exist. Changing this forces a new Policy Assignment to be created.\n",
            "type": "string"
          },
          "metadata": {
            "description": "A JSON mapping of any Metadata for this Policy.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Policy Assignment. Changing this forces a new Resource Policy Assignment to be created.\n",
            "type": "string"
          },
          "notScopes": {
            "description": "Specifies a list of Resource Scopes (for example a Subscription, or a Resource Group) within this Management Group which are excluded from this Policy.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "parameters": {
            "description": "A JSON mapping of any Parameters for this Policy. Changing this forces a new Management Group Policy Assignment to be created.\n",
            "type": "string"
          },
          "policyDefinitionId": {
            "description": "The ID of the Policy Definition or Policy Definition Set. Changing this forces a new Policy Assignment to be created.\n",
            "type": "string"
          },
          "resourceId": {
            "description": "The ID of the Resource (or Resource Scope) where this should be applied. Changing this forces a new Resource Policy Assignment to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:core/resourceProviderRegistration:ResourceProviderRegistration": {
      "description": "Manages the registration of a Resource Provider - which allows access to the API's supported by this Resource Provider.\n\n\u003e The Azure Provider will automatically register all of the Resource Providers which it supports on launch (unless opted-out using the `skip_provider_registration` field within the provider block).\n\n!\u003e **Note:** The errors returned from the Azure API when a Resource Provider is unregistered are unclear (example `API version '2019-01-01' was not found for 'Microsoft.Foo'`) - please ensure that all of the necessary Resource Providers you're using are registered - if in doubt **we strongly recommend letting the provider register these for you**.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceProviderRegistration(\"example\", {});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceProviderRegistration(\"example\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceProviderRegistration(\"example\", new Azure.Core.ResourceProviderRegistrationArgs\n        {\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\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 := core.NewResourceProviderRegistration(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nResource Provider Registrations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:core/resourceProviderRegistration:ResourceProviderRegistration example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.PolicyInsights\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The namespace of the Resource Provider which should be registered. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "The namespace of the Resource Provider which should be registered. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ResourceProviderRegistration resources.\n",
        "properties": {
          "name": {
            "description": "The namespace of the Resource Provider which should be registered. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:core/subscription:Subscription": {
      "description": "Manages an Alias for a Subscription - which adds an Alias to an existing Subscription, allowing it to be managed in the provider - or create a new Subscription with a new Alias.\n\n\u003e **NOTE:** Destroying a Subscription controlled by this resource will place the Subscription into a cancelled state. It is possible to re-activate a subscription within 90-days of cancellation, after which time the Subscription is irrevocably deleted, and the Subscription ID cannot be re-used. For further information see [here](https://docs.microsoft.com/en-us/azure/cost-management-billing/manage/cancel-azure-subscription#what-happens-after-subscription-cancellation). Users can optionally delete a Subscription once 72 hours have passed, however, this functionality is not suitable for this provider. A `Deleted` subscription cannot be reactivated.\n\n\u003e **NOTE:** It is not possible to destroy (cancel) a subscription if it contains resources. If resources are present that are not managed by the provider then these will need to be removed before the Subscription can be destroyed.\n\n\u003e **NOTE:** Azure supports Multiple Aliases per Subscription, however, to reliably manage this resource in this provider only a single Alias is supported.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Creating A New Alias And Subscription For An Enrollment Account\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleEnrollmentAccountScope = azure.billing.getEnrollmentAccountScope({\n    billingAccountName: \"1234567890\",\n    enrollmentAccountName: \"0123456\",\n});\nconst exampleSubscription = new azure.core.Subscription(\"exampleSubscription\", {\n    subscriptionName: \"My Example EA Subscription\",\n    billingScopeId: exampleEnrollmentAccountScope.then(exampleEnrollmentAccountScope =\u003e exampleEnrollmentAccountScope.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_enrollment_account_scope = azure.billing.get_enrollment_account_scope(billing_account_name=\"1234567890\",\n    enrollment_account_name=\"0123456\")\nexample_subscription = azure.core.Subscription(\"exampleSubscription\",\n    subscription_name=\"My Example EA Subscription\",\n    billing_scope_id=example_enrollment_account_scope.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleEnrollmentAccountScope = Output.Create(Azure.Billing.GetEnrollmentAccountScope.InvokeAsync(new Azure.Billing.GetEnrollmentAccountScopeArgs\n        {\n            BillingAccountName = \"1234567890\",\n            EnrollmentAccountName = \"0123456\",\n        }));\n        var exampleSubscription = new Azure.Core.Subscription(\"exampleSubscription\", new Azure.Core.SubscriptionArgs\n        {\n            SubscriptionName = \"My Example EA Subscription\",\n            BillingScopeId = exampleEnrollmentAccountScope.Apply(exampleEnrollmentAccountScope =\u003e exampleEnrollmentAccountScope.Id),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/billing\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleEnrollmentAccountScope, err := billing.GetEnrollmentAccountScope(ctx, \u0026billing.GetEnrollmentAccountScopeArgs{\n\t\t\tBillingAccountName:    \"1234567890\",\n\t\t\tEnrollmentAccountName: \"0123456\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = core.NewSubscription(ctx, \"exampleSubscription\", \u0026core.SubscriptionArgs{\n\t\t\tSubscriptionName: pulumi.String(\"My Example EA Subscription\"),\n\t\t\tBillingScopeId:   pulumi.String(exampleEnrollmentAccountScope.Id),\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{{% /example %}}\n{{% example %}}\n### Creating A New Alias And Subscription For A Microsoft Customer Account\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleMcaAccountScope = azure.billing.getMcaAccountScope({\n    billingAccountName: \"e879cf0f-2b4d-5431-109a-f72fc9868693:024cabf4-7321-4cf9-be59-df0c77ca51de_2019-05-31\",\n    billingProfileName: \"PE2Q-NOIT-BG7-TGB\",\n    invoiceSectionName: \"MTT4-OBS7-PJA-TGB\",\n});\nconst exampleSubscription = new azure.core.Subscription(\"exampleSubscription\", {\n    subscriptionName: \"My Example MCA Subscription\",\n    billingScopeId: exampleMcaAccountScope.then(exampleMcaAccountScope =\u003e exampleMcaAccountScope.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_mca_account_scope = azure.billing.get_mca_account_scope(billing_account_name=\"e879cf0f-2b4d-5431-109a-f72fc9868693:024cabf4-7321-4cf9-be59-df0c77ca51de_2019-05-31\",\n    billing_profile_name=\"PE2Q-NOIT-BG7-TGB\",\n    invoice_section_name=\"MTT4-OBS7-PJA-TGB\")\nexample_subscription = azure.core.Subscription(\"exampleSubscription\",\n    subscription_name=\"My Example MCA Subscription\",\n    billing_scope_id=example_mca_account_scope.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleMcaAccountScope = Output.Create(Azure.Billing.GetMcaAccountScope.InvokeAsync(new Azure.Billing.GetMcaAccountScopeArgs\n        {\n            BillingAccountName = \"e879cf0f-2b4d-5431-109a-f72fc9868693:024cabf4-7321-4cf9-be59-df0c77ca51de_2019-05-31\",\n            BillingProfileName = \"PE2Q-NOIT-BG7-TGB\",\n            InvoiceSectionName = \"MTT4-OBS7-PJA-TGB\",\n        }));\n        var exampleSubscription = new Azure.Core.Subscription(\"exampleSubscription\", new Azure.Core.SubscriptionArgs\n        {\n            SubscriptionName = \"My Example MCA Subscription\",\n            BillingScopeId = exampleMcaAccountScope.Apply(exampleMcaAccountScope =\u003e exampleMcaAccountScope.Id),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/billing\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleMcaAccountScope, err := billing.GetMcaAccountScope(ctx, \u0026billing.GetMcaAccountScopeArgs{\n\t\t\tBillingAccountName: \"e879cf0f-2b4d-5431-109a-f72fc9868693:024cabf4-7321-4cf9-be59-df0c77ca51de_2019-05-31\",\n\t\t\tBillingProfileName: \"PE2Q-NOIT-BG7-TGB\",\n\t\t\tInvoiceSectionName: \"MTT4-OBS7-PJA-TGB\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = core.NewSubscription(ctx, \"exampleSubscription\", \u0026core.SubscriptionArgs{\n\t\t\tSubscriptionName: pulumi.String(\"My Example MCA Subscription\"),\n\t\t\tBillingScopeId:   pulumi.String(exampleMcaAccountScope.Id),\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{{% /example %}}\n{{% example %}}\n### Adding An Alias To An Existing Subscription\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.Subscription(\"example\", {\n    alias: \"examplesub\",\n    subscriptionId: \"12345678-12234-5678-9012-123456789012\",\n    subscriptionName: \"My Example Subscription\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.Subscription(\"example\",\n    alias=\"examplesub\",\n    subscription_id=\"12345678-12234-5678-9012-123456789012\",\n    subscription_name=\"My Example Subscription\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.Subscription(\"example\", new Azure.Core.SubscriptionArgs\n        {\n            Alias = \"examplesub\",\n            SubscriptionId = \"12345678-12234-5678-9012-123456789012\",\n            SubscriptionName = \"My Example Subscription\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\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 := core.NewSubscription(ctx, \"example\", \u0026core.SubscriptionArgs{\n\t\t\tAlias:            pulumi.String(\"examplesub\"),\n\t\t\tSubscriptionId:   pulumi.String(\"12345678-12234-5678-9012-123456789012\"),\n\t\t\tSubscriptionName: pulumi.String(\"My Example Subscription\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSubscriptions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:core/subscription:Subscription example \"/providers/Microsoft.Subscription/aliases/subscription1\"\n```\n\n In this scenario, the `subscription_id` property can be completed and this provider will assume control of the existing subscription by creating an Alias. See the `adding an Alias to an existing Subscription` above. This provider requires an alias to correctly manage Subscription resources due to Azure Subscription API design. ",
      "inputProperties": {
        "alias": {
          "description": "The Alias name for the subscription. This provider will generate a new GUID if this is not supplied. Changing this forces a new Subscription to be created.\n",
          "type": "string"
        },
        "billingScopeId": {
          "description": "The Azure Billing Scope ID. Can be either a Microsoft Customer Account Billing Scope ID or an Enrollment Billing Scope ID.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "The ID of the Subscription. Changing this forces a new Subscription to be created.\n",
          "type": "string"
        },
        "subscriptionName": {
          "description": "The Name of the Subscription. This is the Display Name in the portal.\n",
          "type": "string"
        },
        "workload": {
          "description": "The workload type of the Subscription.  Possible values are `Production` (default) and `DevTest`. Changing this forces a new Subscription to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "alias": {
          "description": "The Alias name for the subscription. This provider will generate a new GUID if this is not supplied. Changing this forces a new Subscription to be created.\n",
          "type": "string"
        },
        "billingScopeId": {
          "description": "The Azure Billing Scope ID. Can be either a Microsoft Customer Account Billing Scope ID or an Enrollment Billing Scope ID.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "The ID of the Subscription. Changing this forces a new Subscription to be created.\n",
          "type": "string"
        },
        "subscriptionName": {
          "description": "The Name of the Subscription. This is the Display Name in the portal.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "tenantId": {
          "description": "The ID of the Tenant to which the subscription belongs.\n",
          "type": "string"
        },
        "workload": {
          "description": "The workload type of the Subscription.  Possible values are `Production` (default) and `DevTest`. Changing this forces a new Subscription to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "alias",
        "subscriptionId",
        "subscriptionName",
        "tags",
        "tenantId"
      ],
      "requiredInputs": [
        "subscriptionName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Subscription resources.\n",
        "properties": {
          "alias": {
            "description": "The Alias name for the subscription. This provider will generate a new GUID if this is not supplied. Changing this forces a new Subscription to be created.\n",
            "type": "string"
          },
          "billingScopeId": {
            "description": "The Azure Billing Scope ID. Can be either a Microsoft Customer Account Billing Scope ID or an Enrollment Billing Scope ID.\n",
            "type": "string"
          },
          "subscriptionId": {
            "description": "The ID of the Subscription. Changing this forces a new Subscription to be created.\n",
            "type": "string"
          },
          "subscriptionName": {
            "description": "The Name of the Subscription. This is the Display Name in the portal.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "tenantId": {
            "description": "The ID of the Tenant to which the subscription belongs.\n",
            "type": "string"
          },
          "workload": {
            "description": "The workload type of the Subscription.  Possible values are `Production` (default) and `DevTest`. Changing this forces a new Subscription to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:core/subscriptionPolicyAssignment:SubscriptionPolicyAssignment": {
      "description": "Manages a Subscription Policy Assignment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getSubscription({});\nconst exampleDefinition = new azure.policy.Definition(\"exampleDefinition\", {\n    policyType: \"Custom\",\n    mode: \"All\",\n    policyRule: `\t{\n    \"if\": {\n      \"not\": {\n        \"field\": \"location\",\n        \"equals\": \"westeurope\"\n      }\n    },\n    \"then\": {\n      \"effect\": \"Deny\"\n    }\n  }\n`,\n});\nconst exampleSubscriptionPolicyAssignment = new azure.core.SubscriptionPolicyAssignment(\"exampleSubscriptionPolicyAssignment\", {\n    policyDefinitionId: exampleDefinition.id,\n    subscriptionId: azurerm_subscription.current.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_subscription()\nexample_definition = azure.policy.Definition(\"exampleDefinition\",\n    policy_type=\"Custom\",\n    mode=\"All\",\n    policy_rule=\"\"\"\t{\n    \"if\": {\n      \"not\": {\n        \"field\": \"location\",\n        \"equals\": \"westeurope\"\n      }\n    },\n    \"then\": {\n      \"effect\": \"Deny\"\n    }\n  }\n\"\"\")\nexample_subscription_policy_assignment = azure.core.SubscriptionPolicyAssignment(\"exampleSubscriptionPolicyAssignment\",\n    policy_definition_id=example_definition.id,\n    subscription_id=azurerm_subscription[\"current\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var exampleDefinition = new Azure.Policy.Definition(\"exampleDefinition\", new Azure.Policy.DefinitionArgs\n        {\n            PolicyType = \"Custom\",\n            Mode = \"All\",\n            PolicyRule = @\"\t{\n    \"\"if\"\": {\n      \"\"not\"\": {\n        \"\"field\"\": \"\"location\"\",\n        \"\"equals\"\": \"\"westeurope\"\"\n      }\n    },\n    \"\"then\"\": {\n      \"\"effect\"\": \"\"Deny\"\"\n    }\n  }\n\",\n        });\n        var exampleSubscriptionPolicyAssignment = new Azure.Core.SubscriptionPolicyAssignment(\"exampleSubscriptionPolicyAssignment\", new Azure.Core.SubscriptionPolicyAssignmentArgs\n        {\n            PolicyDefinitionId = exampleDefinition.Id,\n            SubscriptionId = azurerm_subscription.Current.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/policy\"\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 := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDefinition, err := policy.NewDefinition(ctx, \"exampleDefinition\", \u0026policy.DefinitionArgs{\n\t\t\tPolicyType: pulumi.String(\"Custom\"),\n\t\t\tMode:       pulumi.String(\"All\"),\n\t\t\tPolicyRule: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v\", \"\t{\\n\", \"    \\\"if\\\": {\\n\", \"      \\\"not\\\": {\\n\", \"        \\\"field\\\": \\\"location\\\",\\n\", \"        \\\"equals\\\": \\\"westeurope\\\"\\n\", \"      }\\n\", \"    },\\n\", \"    \\\"then\\\": {\\n\", \"      \\\"effect\\\": \\\"Deny\\\"\\n\", \"    }\\n\", \"  }\\n\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = core.NewSubscriptionPolicyAssignment(ctx, \"exampleSubscriptionPolicyAssignment\", \u0026core.SubscriptionPolicyAssignmentArgs{\n\t\t\tPolicyDefinitionId: exampleDefinition.ID(),\n\t\t\tSubscriptionId:     pulumi.Any(azurerm_subscription.Current.Id),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSubscription Policy Assignments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:core/subscriptionPolicyAssignment:SubscriptionPolicyAssignment example /subscriptions/00000000-0000-0000-000000000000/providers/Microsoft.Authorization/policyAssignments/assignment1\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "A description which should be used for this Policy Assignment.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The Display Name for this Policy Assignment.\n",
          "type": "string"
        },
        "enforce": {
          "description": "Specifies if this Policy should be enforced or not?\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:core/SubscriptionPolicyAssignmentIdentity:SubscriptionPolicyAssignmentIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Policy Assignment should exist. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "A JSON mapping of any Metadata for this Policy.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Policy Assignment. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "notScopes": {
          "description": "Specifies a list of Resource Scopes (for example a Subscription, or a Resource Group) within this Management Group which are excluded from this Policy.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "parameters": {
          "description": "A JSON mapping of any Parameters for this Policy. Changing this forces a new Management Group Policy Assignment to be created.\n",
          "type": "string"
        },
        "policyDefinitionId": {
          "description": "The ID of the Policy Definition or Policy Definition Set. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "The ID of the Subscription where this Policy Assignment should be created. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "description": {
          "description": "A description which should be used for this Policy Assignment.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The Display Name for this Policy Assignment.\n",
          "type": "string"
        },
        "enforce": {
          "description": "Specifies if this Policy should be enforced or not?\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:core/SubscriptionPolicyAssignmentIdentity:SubscriptionPolicyAssignmentIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Policy Assignment should exist. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "A JSON mapping of any Metadata for this Policy.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Policy Assignment. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "notScopes": {
          "description": "Specifies a list of Resource Scopes (for example a Subscription, or a Resource Group) within this Management Group which are excluded from this Policy.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "parameters": {
          "description": "A JSON mapping of any Parameters for this Policy. Changing this forces a new Management Group Policy Assignment to be created.\n",
          "type": "string"
        },
        "policyDefinitionId": {
          "description": "The ID of the Policy Definition or Policy Definition Set. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "The ID of the Subscription where this Policy Assignment should be created. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "metadata",
        "name",
        "policyDefinitionId",
        "subscriptionId"
      ],
      "requiredInputs": [
        "policyDefinitionId",
        "subscriptionId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SubscriptionPolicyAssignment resources.\n",
        "properties": {
          "description": {
            "description": "A description which should be used for this Policy Assignment.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The Display Name for this Policy Assignment.\n",
            "type": "string"
          },
          "enforce": {
            "description": "Specifies if this Policy should be enforced or not?\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:core/SubscriptionPolicyAssignmentIdentity:SubscriptionPolicyAssignmentIdentity",
            "description": "A `identity` block as defined below.\n"
          },
          "location": {
            "description": "The Azure Region where the Policy Assignment should exist. Changing this forces a new Policy Assignment to be created.\n",
            "type": "string"
          },
          "metadata": {
            "description": "A JSON mapping of any Metadata for this Policy.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Policy Assignment. Changing this forces a new Policy Assignment to be created.\n",
            "type": "string"
          },
          "notScopes": {
            "description": "Specifies a list of Resource Scopes (for example a Subscription, or a Resource Group) within this Management Group which are excluded from this Policy.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "parameters": {
            "description": "A JSON mapping of any Parameters for this Policy. Changing this forces a new Management Group Policy Assignment to be created.\n",
            "type": "string"
          },
          "policyDefinitionId": {
            "description": "The ID of the Policy Definition or Policy Definition Set. Changing this forces a new Policy Assignment to be created.\n",
            "type": "string"
          },
          "subscriptionId": {
            "description": "The ID of the Subscription where this Policy Assignment should be created. Changing this forces a new Policy Assignment to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:core/subscriptionTemplateDeployment:SubscriptionTemplateDeployment": {
      "description": "Manages a Subscription Template Deployment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.SubscriptionTemplateDeployment(\"example\", {\n    location: \"West Europe\",\n    templateContent: ` {\n   \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n   \"contentVersion\": \"1.0.0.0\",\n   \"parameters\": {},\n   \"variables\": {},\n   \"resources\": [\n     {\n       \"type\": \"Microsoft.Resources/resourceGroups\",\n       \"apiVersion\": \"2018-05-01\",\n       \"location\": \"West Europe\",\n       \"name\": \"some-resource-group\",\n       \"properties\": {}\n     }\n   ]\n }\n `,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.SubscriptionTemplateDeployment(\"example\",\n    location=\"West Europe\",\n    template_content=\"\"\" {\n   \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n   \"contentVersion\": \"1.0.0.0\",\n   \"parameters\": {},\n   \"variables\": {},\n   \"resources\": [\n     {\n       \"type\": \"Microsoft.Resources/resourceGroups\",\n       \"apiVersion\": \"2018-05-01\",\n       \"location\": \"West Europe\",\n       \"name\": \"some-resource-group\",\n       \"properties\": {}\n     }\n   ]\n }\n \n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.SubscriptionTemplateDeployment(\"example\", new Azure.Core.SubscriptionTemplateDeploymentArgs\n        {\n            Location = \"West Europe\",\n            TemplateContent = @\" {\n   \"\"$schema\"\": \"\"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\"\",\n   \"\"contentVersion\"\": \"\"1.0.0.0\"\",\n   \"\"parameters\"\": {},\n   \"\"variables\"\": {},\n   \"\"resources\"\": [\n     {\n       \"\"type\"\": \"\"Microsoft.Resources/resourceGroups\"\",\n       \"\"apiVersion\"\": \"\"2018-05-01\"\",\n       \"\"location\"\": \"\"West Europe\"\",\n       \"\"name\"\": \"\"some-resource-group\"\",\n       \"\"properties\"\": {}\n     }\n   ]\n }\n \n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\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 := core.NewSubscriptionTemplateDeployment(ctx, \"example\", \u0026core.SubscriptionTemplateDeploymentArgs{\n\t\t\tLocation:        pulumi.String(\"West Europe\"),\n\t\t\tTemplateContent: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \" {\\n\", \"   \\\"\", \"$\", \"schema\\\": \\\"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\\\",\\n\", \"   \\\"contentVersion\\\": \\\"1.0.0.0\\\",\\n\", \"   \\\"parameters\\\": {},\\n\", \"   \\\"variables\\\": {},\\n\", \"   \\\"resources\\\": [\\n\", \"     {\\n\", \"       \\\"type\\\": \\\"Microsoft.Resources/resourceGroups\\\",\\n\", \"       \\\"apiVersion\\\": \\\"2018-05-01\\\",\\n\", \"       \\\"location\\\": \\\"West Europe\\\",\\n\", \"       \\\"name\\\": \\\"some-resource-group\\\",\\n\", \"       \\\"properties\\\": {}\\n\", \"     }\\n\", \"   ]\\n\", \" }\\n\", \" \\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSubscription Template Deployments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:core/subscriptionTemplateDeployment:SubscriptionTemplateDeployment example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Resources/deployments/template1\n```\n\n ",
      "inputProperties": {
        "debugLevel": {
          "description": "The Debug Level which should be used for this Subscription Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Subscription Template Deployment should exist. Changing this forces a new Subscription Template Deployment to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Subscription Template Deployment. Changing this forces a new Subscription Template Deployment to be created.\n",
          "type": "string"
        },
        "parametersContent": {
          "description": "The contents of the ARM Template parameters file - containing a JSON list of parameters.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Subscription Template Deployment.\n",
          "type": "object"
        },
        "templateContent": {
          "description": "The contents of the ARM Template which should be deployed into this Subscription.\n",
          "type": "string"
        },
        "templateSpecVersionId": {
          "description": "The ID of the Template Spec Version to deploy into the Subscription. Cannot be specified with `template_content`.\n",
          "type": "string"
        }
      },
      "properties": {
        "debugLevel": {
          "description": "The Debug Level which should be used for this Subscription Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Subscription Template Deployment should exist. Changing this forces a new Subscription Template Deployment to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Subscription Template Deployment. Changing this forces a new Subscription Template Deployment to be created.\n",
          "type": "string"
        },
        "outputContent": {
          "description": "The JSON Content of the Outputs of the ARM Template Deployment.\n",
          "type": "string"
        },
        "parametersContent": {
          "description": "The contents of the ARM Template parameters file - containing a JSON list of parameters.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Subscription Template Deployment.\n",
          "type": "object"
        },
        "templateContent": {
          "description": "The contents of the ARM Template which should be deployed into this Subscription.\n",
          "type": "string"
        },
        "templateSpecVersionId": {
          "description": "The ID of the Template Spec Version to deploy into the Subscription. Cannot be specified with `template_content`.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "outputContent",
        "parametersContent",
        "templateContent"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SubscriptionTemplateDeployment resources.\n",
        "properties": {
          "debugLevel": {
            "description": "The Debug Level which should be used for this Subscription Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Subscription Template Deployment should exist. Changing this forces a new Subscription Template Deployment to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Subscription Template Deployment. Changing this forces a new Subscription Template Deployment to be created.\n",
            "type": "string"
          },
          "outputContent": {
            "description": "The JSON Content of the Outputs of the ARM Template Deployment.\n",
            "type": "string"
          },
          "parametersContent": {
            "description": "The contents of the ARM Template parameters file - containing a JSON list of parameters.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Subscription Template Deployment.\n",
            "type": "object"
          },
          "templateContent": {
            "description": "The contents of the ARM Template which should be deployed into this Subscription.\n",
            "type": "string"
          },
          "templateSpecVersionId": {
            "description": "The ID of the Template Spec Version to deploy into the Subscription. Cannot be specified with `template_content`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:core/templateDeployment:TemplateDeployment": {
      "description": "Manages a template deployment of resources\n\n\u003e **Note on ARM Template Deployments:** Due to the way the underlying Azure API is designed, this provider can only manage the deployment of the ARM Template - and not any resources which are created by it.\nThis means that when deleting the `azure.core.TemplateDeployment` resource, this provider will only remove the reference to the deployment, whilst leaving any resources created by that ARM Template Deployment.\nOne workaround for this is to use a unique Resource Group for each ARM Template Deployment, which means deleting the Resource Group would contain any resources created within it - however this isn't ideal. [More information](https://docs.microsoft.com/en-us/rest/api/resources/deployments#Deployments_Delete).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n\u003e **Note:** This example uses Storage Accounts and Public IP's which are natively supported by this provider - we'd highly recommend using the Native Resources where possible instead rather than an ARM Template, for the reasons outlined above.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleTemplateDeployment = new azure.core.TemplateDeployment(\"exampleTemplateDeployment\", {\n    resourceGroupName: exampleResourceGroup.name,\n    templateBody: `{\n  \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n  \"contentVersion\": \"1.0.0.0\",\n  \"parameters\": {\n    \"storageAccountType\": {\n      \"type\": \"string\",\n      \"defaultValue\": \"Standard_LRS\",\n      \"allowedValues\": [\n        \"Standard_LRS\",\n        \"Standard_GRS\",\n        \"Standard_ZRS\"\n      ],\n      \"metadata\": {\n        \"description\": \"Storage Account type\"\n      }\n    }\n  },\n  \"variables\": {\n    \"location\": \"[resourceGroup().location]\",\n    \"storageAccountName\": \"[concat(uniquestring(resourceGroup().id), 'storage')]\",\n    \"publicIPAddressName\": \"[concat('myPublicIp', uniquestring(resourceGroup().id))]\",\n    \"publicIPAddressType\": \"Dynamic\",\n    \"apiVersion\": \"2015-06-15\",\n    \"dnsLabelPrefix\": \"example-acctest\"\n  },\n  \"resources\": [\n    {\n      \"type\": \"Microsoft.Storage/storageAccounts\",\n      \"name\": \"[variables('storageAccountName')]\",\n      \"apiVersion\": \"[variables('apiVersion')]\",\n      \"location\": \"[variables('location')]\",\n      \"properties\": {\n        \"accountType\": \"[parameters('storageAccountType')]\"\n      }\n    },\n    {\n      \"type\": \"Microsoft.Network/publicIPAddresses\",\n      \"apiVersion\": \"[variables('apiVersion')]\",\n      \"name\": \"[variables('publicIPAddressName')]\",\n      \"location\": \"[variables('location')]\",\n      \"properties\": {\n        \"publicIPAllocationMethod\": \"[variables('publicIPAddressType')]\",\n        \"dnsSettings\": {\n          \"domainNameLabel\": \"[variables('dnsLabelPrefix')]\"\n        }\n      }\n    }\n  ],\n  \"outputs\": {\n    \"storageAccountName\": {\n      \"type\": \"string\",\n      \"value\": \"[variables('storageAccountName')]\"\n    }\n  }\n}\n`,\n    parameters: {\n        storageAccountType: \"Standard_GRS\",\n    },\n    deploymentMode: \"Incremental\",\n});\nexport const storageAccountName = exampleTemplateDeployment.outputs.storageAccountName;\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_template_deployment = azure.core.TemplateDeployment(\"exampleTemplateDeployment\",\n    resource_group_name=example_resource_group.name,\n    template_body=\"\"\"{\n  \"$schema\": \"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\",\n  \"contentVersion\": \"1.0.0.0\",\n  \"parameters\": {\n    \"storageAccountType\": {\n      \"type\": \"string\",\n      \"defaultValue\": \"Standard_LRS\",\n      \"allowedValues\": [\n        \"Standard_LRS\",\n        \"Standard_GRS\",\n        \"Standard_ZRS\"\n      ],\n      \"metadata\": {\n        \"description\": \"Storage Account type\"\n      }\n    }\n  },\n  \"variables\": {\n    \"location\": \"[resourceGroup().location]\",\n    \"storageAccountName\": \"[concat(uniquestring(resourceGroup().id), 'storage')]\",\n    \"publicIPAddressName\": \"[concat('myPublicIp', uniquestring(resourceGroup().id))]\",\n    \"publicIPAddressType\": \"Dynamic\",\n    \"apiVersion\": \"2015-06-15\",\n    \"dnsLabelPrefix\": \"example-acctest\"\n  },\n  \"resources\": [\n    {\n      \"type\": \"Microsoft.Storage/storageAccounts\",\n      \"name\": \"[variables('storageAccountName')]\",\n      \"apiVersion\": \"[variables('apiVersion')]\",\n      \"location\": \"[variables('location')]\",\n      \"properties\": {\n        \"accountType\": \"[parameters('storageAccountType')]\"\n      }\n    },\n    {\n      \"type\": \"Microsoft.Network/publicIPAddresses\",\n      \"apiVersion\": \"[variables('apiVersion')]\",\n      \"name\": \"[variables('publicIPAddressName')]\",\n      \"location\": \"[variables('location')]\",\n      \"properties\": {\n        \"publicIPAllocationMethod\": \"[variables('publicIPAddressType')]\",\n        \"dnsSettings\": {\n          \"domainNameLabel\": \"[variables('dnsLabelPrefix')]\"\n        }\n      }\n    }\n  ],\n  \"outputs\": {\n    \"storageAccountName\": {\n      \"type\": \"string\",\n      \"value\": \"[variables('storageAccountName')]\"\n    }\n  }\n}\n\"\"\",\n    parameters={\n        \"storageAccountType\": \"Standard_GRS\",\n    },\n    deployment_mode=\"Incremental\")\npulumi.export(\"storageAccountName\", example_template_deployment.outputs[\"storageAccountName\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleTemplateDeployment = new Azure.Core.TemplateDeployment(\"exampleTemplateDeployment\", new Azure.Core.TemplateDeploymentArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            TemplateBody = @\"{\n  \"\"$schema\"\": \"\"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\"\",\n  \"\"contentVersion\"\": \"\"1.0.0.0\"\",\n  \"\"parameters\"\": {\n    \"\"storageAccountType\"\": {\n      \"\"type\"\": \"\"string\"\",\n      \"\"defaultValue\"\": \"\"Standard_LRS\"\",\n      \"\"allowedValues\"\": [\n        \"\"Standard_LRS\"\",\n        \"\"Standard_GRS\"\",\n        \"\"Standard_ZRS\"\"\n      ],\n      \"\"metadata\"\": {\n        \"\"description\"\": \"\"Storage Account type\"\"\n      }\n    }\n  },\n  \"\"variables\"\": {\n    \"\"location\"\": \"\"[resourceGroup().location]\"\",\n    \"\"storageAccountName\"\": \"\"[concat(uniquestring(resourceGroup().id), 'storage')]\"\",\n    \"\"publicIPAddressName\"\": \"\"[concat('myPublicIp', uniquestring(resourceGroup().id))]\"\",\n    \"\"publicIPAddressType\"\": \"\"Dynamic\"\",\n    \"\"apiVersion\"\": \"\"2015-06-15\"\",\n    \"\"dnsLabelPrefix\"\": \"\"example-acctest\"\"\n  },\n  \"\"resources\"\": [\n    {\n      \"\"type\"\": \"\"Microsoft.Storage/storageAccounts\"\",\n      \"\"name\"\": \"\"[variables('storageAccountName')]\"\",\n      \"\"apiVersion\"\": \"\"[variables('apiVersion')]\"\",\n      \"\"location\"\": \"\"[variables('location')]\"\",\n      \"\"properties\"\": {\n        \"\"accountType\"\": \"\"[parameters('storageAccountType')]\"\"\n      }\n    },\n    {\n      \"\"type\"\": \"\"Microsoft.Network/publicIPAddresses\"\",\n      \"\"apiVersion\"\": \"\"[variables('apiVersion')]\"\",\n      \"\"name\"\": \"\"[variables('publicIPAddressName')]\"\",\n      \"\"location\"\": \"\"[variables('location')]\"\",\n      \"\"properties\"\": {\n        \"\"publicIPAllocationMethod\"\": \"\"[variables('publicIPAddressType')]\"\",\n        \"\"dnsSettings\"\": {\n          \"\"domainNameLabel\"\": \"\"[variables('dnsLabelPrefix')]\"\"\n        }\n      }\n    }\n  ],\n  \"\"outputs\"\": {\n    \"\"storageAccountName\"\": {\n      \"\"type\"\": \"\"string\"\",\n      \"\"value\"\": \"\"[variables('storageAccountName')]\"\"\n    }\n  }\n}\n\",\n            Parameters = \n            {\n                { \"storageAccountType\", \"Standard_GRS\" },\n            },\n            DeploymentMode = \"Incremental\",\n        });\n        this.StorageAccountName = exampleTemplateDeployment.Outputs.Apply(outputs =\u003e outputs.StorageAccountName);\n    }\n\n    [Output(\"storageAccountName\")]\n    public Output\u003cstring\u003e StorageAccountName { get; set; }\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTemplateDeployment, err := core.NewTemplateDeployment(ctx, \"exampleTemplateDeployment\", \u0026core.TemplateDeploymentArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTemplateBody:      pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \"  \\\"\", \"$\", \"schema\\\": \\\"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\\\",\\n\", \"  \\\"contentVersion\\\": \\\"1.0.0.0\\\",\\n\", \"  \\\"parameters\\\": {\\n\", \"    \\\"storageAccountType\\\": {\\n\", \"      \\\"type\\\": \\\"string\\\",\\n\", \"      \\\"defaultValue\\\": \\\"Standard_LRS\\\",\\n\", \"      \\\"allowedValues\\\": [\\n\", \"        \\\"Standard_LRS\\\",\\n\", \"        \\\"Standard_GRS\\\",\\n\", \"        \\\"Standard_ZRS\\\"\\n\", \"      ],\\n\", \"      \\\"metadata\\\": {\\n\", \"        \\\"description\\\": \\\"Storage Account type\\\"\\n\", \"      }\\n\", \"    }\\n\", \"  },\\n\", \"  \\\"variables\\\": {\\n\", \"    \\\"location\\\": \\\"[resourceGroup().location]\\\",\\n\", \"    \\\"storageAccountName\\\": \\\"[concat(uniquestring(resourceGroup().id), 'storage')]\\\",\\n\", \"    \\\"publicIPAddressName\\\": \\\"[concat('myPublicIp', uniquestring(resourceGroup().id))]\\\",\\n\", \"    \\\"publicIPAddressType\\\": \\\"Dynamic\\\",\\n\", \"    \\\"apiVersion\\\": \\\"2015-06-15\\\",\\n\", \"    \\\"dnsLabelPrefix\\\": \\\"example-acctest\\\"\\n\", \"  },\\n\", \"  \\\"resources\\\": [\\n\", \"    {\\n\", \"      \\\"type\\\": \\\"Microsoft.Storage/storageAccounts\\\",\\n\", \"      \\\"name\\\": \\\"[variables('storageAccountName')]\\\",\\n\", \"      \\\"apiVersion\\\": \\\"[variables('apiVersion')]\\\",\\n\", \"      \\\"location\\\": \\\"[variables('location')]\\\",\\n\", \"      \\\"properties\\\": {\\n\", \"        \\\"accountType\\\": \\\"[parameters('storageAccountType')]\\\"\\n\", \"      }\\n\", \"    },\\n\", \"    {\\n\", \"      \\\"type\\\": \\\"Microsoft.Network/publicIPAddresses\\\",\\n\", \"      \\\"apiVersion\\\": \\\"[variables('apiVersion')]\\\",\\n\", \"      \\\"name\\\": \\\"[variables('publicIPAddressName')]\\\",\\n\", \"      \\\"location\\\": \\\"[variables('location')]\\\",\\n\", \"      \\\"properties\\\": {\\n\", \"        \\\"publicIPAllocationMethod\\\": \\\"[variables('publicIPAddressType')]\\\",\\n\", \"        \\\"dnsSettings\\\": {\\n\", \"          \\\"domainNameLabel\\\": \\\"[variables('dnsLabelPrefix')]\\\"\\n\", \"        }\\n\", \"      }\\n\", \"    }\\n\", \"  ],\\n\", \"  \\\"outputs\\\": {\\n\", \"    \\\"storageAccountName\\\": {\\n\", \"      \\\"type\\\": \\\"string\\\",\\n\", \"      \\\"value\\\": \\\"[variables('storageAccountName')]\\\"\\n\", \"    }\\n\", \"  }\\n\", \"}\\n\")),\n\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\"storageAccountType\": pulumi.String(\"Standard_GRS\"),\n\t\t\t},\n\t\t\tDeploymentMode: pulumi.String(\"Incremental\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"storageAccountName\", exampleTemplateDeployment.Outputs.ApplyT(func(outputs map[string]string) (string, error) {\n\t\t\treturn outputs.StorageAccountName, nil\n\t\t}).(pulumi.StringOutput))\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n## Note\n\nThis provider does not know about the individual resources created by Azure using a deployment template and therefore cannot delete these resources during a destroy. Destroying a template deployment removes the associated deployment operations, but will not delete the Azure resources created by the deployment. In order to delete these resources, the containing resource group must also be destroyed. [More information](https://docs.microsoft.com/en-us/rest/api/resources/deployments#Deployments_Delete).\n",
      "inputProperties": {
        "deploymentMode": {
          "description": "Specifies the mode that is used to deploy resources. This value could be either `Incremental` or `Complete`.\nNote that you will almost *always* want this to be set to `Incremental` otherwise the deployment will destroy all infrastructure not\nspecified within the template, and this provider will not be aware of this.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the template deployment. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the name and value pairs that define the deployment parameters for the template.\n",
          "type": "object"
        },
        "parametersBody": {
          "description": "Specifies a valid Azure JSON parameters file that define the deployment parameters. It can contain KeyVault references\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the template deployment.\n",
          "type": "string"
        },
        "templateBody": {
          "description": "Specifies the JSON definition for the template.\n",
          "type": "string"
        }
      },
      "properties": {
        "deploymentMode": {
          "description": "Specifies the mode that is used to deploy resources. This value could be either `Incremental` or `Complete`.\nNote that you will almost *always* want this to be set to `Incremental` otherwise the deployment will destroy all infrastructure not\nspecified within the template, and this provider will not be aware of this.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the template deployment. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "outputs": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of supported scalar output types returned from the deployment (currently, Azure Template Deployment outputs of type String, Int and Bool are supported, and are converted to strings - others will be ignored) and can be accessed using `.outputs[\"name\"]`.\n",
          "type": "object"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies the name and value pairs that define the deployment parameters for the template.\n",
          "type": "object"
        },
        "parametersBody": {
          "description": "Specifies a valid Azure JSON parameters file that define the deployment parameters. It can contain KeyVault references\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the template deployment.\n",
          "type": "string"
        },
        "templateBody": {
          "description": "Specifies the JSON definition for the template.\n",
          "type": "string"
        }
      },
      "required": [
        "deploymentMode",
        "name",
        "outputs",
        "resourceGroupName",
        "templateBody"
      ],
      "requiredInputs": [
        "deploymentMode",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TemplateDeployment resources.\n",
        "properties": {
          "deploymentMode": {
            "description": "Specifies the mode that is used to deploy resources. This value could be either `Incremental` or `Complete`.\nNote that you will almost *always* want this to be set to `Incremental` otherwise the deployment will destroy all infrastructure not\nspecified within the template, and this provider will not be aware of this.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the template deployment. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "outputs": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of supported scalar output types returned from the deployment (currently, Azure Template Deployment outputs of type String, Int and Bool are supported, and are converted to strings - others will be ignored) and can be accessed using `.outputs[\"name\"]`.\n",
            "type": "object"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies the name and value pairs that define the deployment parameters for the template.\n",
            "type": "object"
          },
          "parametersBody": {
            "description": "Specifies a valid Azure JSON parameters file that define the deployment parameters. It can contain KeyVault references\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the template deployment.\n",
            "type": "string"
          },
          "templateBody": {
            "description": "Specifies the JSON definition for the template.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:core/tenantTemplateDeployment:TenantTemplateDeployment": {
      "description": "\n\n\n## Import\n\nTenant Template Deployments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:core/tenantTemplateDeployment:TenantTemplateDeployment example /providers/Microsoft.Resources/deployments/deploy1\n```\n\n ",
      "inputProperties": {
        "debugLevel": {
          "description": "The Debug Level which should be used for this Resource Group Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Template should exist. Changing this forces a new Template to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Template. Changing this forces a new Template to be created.\n",
          "type": "string"
        },
        "parametersContent": {
          "description": "The contents of the ARM Template parameters file - containing a JSON list of parameters.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Template.\n",
          "type": "object"
        },
        "templateContent": {
          "description": "The contents of the ARM Template which should be deployed into this Resource Group. Cannot be specified with `template_spec_version_id`.\n",
          "type": "string"
        },
        "templateSpecVersionId": {
          "description": "The ID of the Template Spec Version to deploy. Cannot be specified with `template_content`.\n",
          "type": "string"
        }
      },
      "properties": {
        "debugLevel": {
          "description": "The Debug Level which should be used for this Resource Group Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Template should exist. Changing this forces a new Template to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Template. Changing this forces a new Template to be created.\n",
          "type": "string"
        },
        "outputContent": {
          "description": "The JSON Content of the Outputs of the ARM Template Deployment.\n",
          "type": "string"
        },
        "parametersContent": {
          "description": "The contents of the ARM Template parameters file - containing a JSON list of parameters.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Template.\n",
          "type": "object"
        },
        "templateContent": {
          "description": "The contents of the ARM Template which should be deployed into this Resource Group. Cannot be specified with `template_spec_version_id`.\n",
          "type": "string"
        },
        "templateSpecVersionId": {
          "description": "The ID of the Template Spec Version to deploy. Cannot be specified with `template_content`.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "outputContent",
        "parametersContent",
        "templateContent"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TenantTemplateDeployment resources.\n",
        "properties": {
          "debugLevel": {
            "description": "The Debug Level which should be used for this Resource Group Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Template should exist. Changing this forces a new Template to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Template. Changing this forces a new Template to be created.\n",
            "type": "string"
          },
          "outputContent": {
            "description": "The JSON Content of the Outputs of the ARM Template Deployment.\n",
            "type": "string"
          },
          "parametersContent": {
            "description": "The contents of the ARM Template parameters file - containing a JSON list of parameters.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Template.\n",
            "type": "object"
          },
          "templateContent": {
            "description": "The contents of the ARM Template which should be deployed into this Resource Group. Cannot be specified with `template_spec_version_id`.\n",
            "type": "string"
          },
          "templateSpecVersionId": {
            "description": "The ID of the Template Spec Version to deploy. Cannot be specified with `template_content`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:cosmosdb/account:Account": {
      "description": "Manages a CosmosDB (formally DocumentDB) Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as random from \"@pulumi/random\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"westus\"});\nconst ri = new random.RandomInteger(\"ri\", {\n    min: 10000,\n    max: 99999,\n});\nconst db = new azure.cosmosdb.Account(\"db\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    offerType: \"Standard\",\n    kind: \"GlobalDocumentDB\",\n    enableAutomaticFailover: true,\n    capabilities: [\n        {\n            name: \"EnableAggregationPipeline\",\n        },\n        {\n            name: \"mongoEnableDocLevelTTL\",\n        },\n        {\n            name: \"MongoDBv3.4\",\n        },\n    ],\n    consistencyPolicy: {\n        consistencyLevel: \"BoundedStaleness\",\n        maxIntervalInSeconds: 10,\n        maxStalenessPrefix: 200,\n    },\n    geoLocations: [\n        {\n            location: _var.failover_location,\n            failoverPriority: 1,\n        },\n        {\n            location: rg.location,\n            failoverPriority: 0,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_random as random\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"westus\")\nri = random.RandomInteger(\"ri\",\n    min=10000,\n    max=99999)\ndb = azure.cosmosdb.Account(\"db\",\n    location=rg.location,\n    resource_group_name=rg.name,\n    offer_type=\"Standard\",\n    kind=\"GlobalDocumentDB\",\n    enable_automatic_failover=True,\n    capabilities=[\n        azure.cosmosdb.AccountCapabilityArgs(\n            name=\"EnableAggregationPipeline\",\n        ),\n        azure.cosmosdb.AccountCapabilityArgs(\n            name=\"mongoEnableDocLevelTTL\",\n        ),\n        azure.cosmosdb.AccountCapabilityArgs(\n            name=\"MongoDBv3.4\",\n        ),\n    ],\n    consistency_policy=azure.cosmosdb.AccountConsistencyPolicyArgs(\n        consistency_level=\"BoundedStaleness\",\n        max_interval_in_seconds=10,\n        max_staleness_prefix=200,\n    ),\n    geo_locations=[\n        azure.cosmosdb.AccountGeoLocationArgs(\n            location=var[\"failover_location\"],\n            failover_priority=1,\n        ),\n        azure.cosmosdb.AccountGeoLocationArgs(\n            location=rg.location,\n            failover_priority=0,\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing Random = Pulumi.Random;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"westus\",\n        });\n        var ri = new Random.RandomInteger(\"ri\", new Random.RandomIntegerArgs\n        {\n            Min = 10000,\n            Max = 99999,\n        });\n        var db = new Azure.CosmosDB.Account(\"db\", new Azure.CosmosDB.AccountArgs\n        {\n            Location = rg.Location,\n            ResourceGroupName = rg.Name,\n            OfferType = \"Standard\",\n            Kind = \"GlobalDocumentDB\",\n            EnableAutomaticFailover = true,\n            Capabilities = \n            {\n                new Azure.CosmosDB.Inputs.AccountCapabilityArgs\n                {\n                    Name = \"EnableAggregationPipeline\",\n                },\n                new Azure.CosmosDB.Inputs.AccountCapabilityArgs\n                {\n                    Name = \"mongoEnableDocLevelTTL\",\n                },\n                new Azure.CosmosDB.Inputs.AccountCapabilityArgs\n                {\n                    Name = \"MongoDBv3.4\",\n                },\n            },\n            ConsistencyPolicy = new Azure.CosmosDB.Inputs.AccountConsistencyPolicyArgs\n            {\n                ConsistencyLevel = \"BoundedStaleness\",\n                MaxIntervalInSeconds = 10,\n                MaxStalenessPrefix = 200,\n            },\n            GeoLocations = \n            {\n                new Azure.CosmosDB.Inputs.AccountGeoLocationArgs\n                {\n                    Location = @var.Failover_location,\n                    FailoverPriority = 1,\n                },\n                new Azure.CosmosDB.Inputs.AccountGeoLocationArgs\n                {\n                    Location = rg.Location,\n                    FailoverPriority = 0,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"westus\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = random.NewRandomInteger(ctx, \"ri\", \u0026random.RandomIntegerArgs{\n\t\t\tMin: pulumi.Int(10000),\n\t\t\tMax: pulumi.Int(99999),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cosmosdb.NewAccount(ctx, \"db\", \u0026cosmosdb.AccountArgs{\n\t\t\tLocation:                rg.Location,\n\t\t\tResourceGroupName:       rg.Name,\n\t\t\tOfferType:               pulumi.String(\"Standard\"),\n\t\t\tKind:                    pulumi.String(\"GlobalDocumentDB\"),\n\t\t\tEnableAutomaticFailover: pulumi.Bool(true),\n\t\t\tCapabilities: cosmosdb.AccountCapabilityArray{\n\t\t\t\t\u0026cosmosdb.AccountCapabilityArgs{\n\t\t\t\t\tName: pulumi.String(\"EnableAggregationPipeline\"),\n\t\t\t\t},\n\t\t\t\t\u0026cosmosdb.AccountCapabilityArgs{\n\t\t\t\t\tName: pulumi.String(\"mongoEnableDocLevelTTL\"),\n\t\t\t\t},\n\t\t\t\t\u0026cosmosdb.AccountCapabilityArgs{\n\t\t\t\t\tName: pulumi.String(\"MongoDBv3.4\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tConsistencyPolicy: \u0026cosmosdb.AccountConsistencyPolicyArgs{\n\t\t\t\tConsistencyLevel:     pulumi.String(\"BoundedStaleness\"),\n\t\t\t\tMaxIntervalInSeconds: pulumi.Int(10),\n\t\t\t\tMaxStalenessPrefix:   pulumi.Int(200),\n\t\t\t},\n\t\t\tGeoLocations: cosmosdb.AccountGeoLocationArray{\n\t\t\t\t\u0026cosmosdb.AccountGeoLocationArgs{\n\t\t\t\t\tLocation:         pulumi.Any(_var.Failover_location),\n\t\t\t\t\tFailoverPriority: pulumi.Int(1),\n\t\t\t\t},\n\t\t\t\t\u0026cosmosdb.AccountGeoLocationArgs{\n\t\t\t\t\tLocation:         rg.Location,\n\t\t\t\t\tFailoverPriority: pulumi.Int(0),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCosmosDB Accounts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cosmosdb/account:Account account1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DocumentDB/databaseAccounts/account1\n```\n\n ",
      "inputProperties": {
        "accessKeyMetadataWritesEnabled": {
          "description": "Is write operations on metadata resources (databases, containers, throughput) via account keys enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "analyticalStorageEnabled": {
          "description": "Enable Analytical Storage option for this Cosmos DB account. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "backup": {
          "$ref": "#/types/azure:cosmosdb/AccountBackup:AccountBackup",
          "description": "A `backup` block as defined below.\n"
        },
        "capabilities": {
          "description": "The capabilities which should be enabled for this Cosmos DB account. Value is a `capabilities` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/AccountCapability:AccountCapability"
          },
          "type": "array"
        },
        "consistencyPolicy": {
          "$ref": "#/types/azure:cosmosdb/AccountConsistencyPolicy:AccountConsistencyPolicy",
          "description": "Specifies a `consistency_policy` resource, used to define the consistency policy for this CosmosDB account.\n"
        },
        "corsRule": {
          "$ref": "#/types/azure:cosmosdb/AccountCorsRule:AccountCorsRule",
          "description": "A `cors_rule` block as defined below.\n"
        },
        "enableAutomaticFailover": {
          "description": "Enable automatic fail over for this Cosmos DB account.\n",
          "type": "boolean"
        },
        "enableFreeTier": {
          "description": "Enable Free Tier pricing option for this Cosmos DB account. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "enableMultipleWriteLocations": {
          "description": "Enable multiple write locations for this Cosmos DB account.\n",
          "type": "boolean"
        },
        "geoLocations": {
          "description": "Specifies a `geo_location` resource, used to define where data should be replicated with the `failover_priority` 0 specifying the primary location. Value is a `geo_location` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/AccountGeoLocation:AccountGeoLocation"
          },
          "type": "array"
        },
        "identity": {
          "$ref": "#/types/azure:cosmosdb/AccountIdentity:AccountIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "ipRangeFilter": {
          "description": "CosmosDB Firewall Support: This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IP's for a given database account. IP addresses/ranges must be comma separated and must not contain any spaces.\n",
          "type": "string"
        },
        "isVirtualNetworkFilterEnabled": {
          "description": "Enables virtual network filtering for this Cosmos DB account.\n",
          "type": "boolean"
        },
        "keyVaultKeyId": {
          "description": "A versionless Key Vault Key ID for CMK encryption. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "kind": {
          "description": "Specifies the Kind of CosmosDB to create - possible values are `GlobalDocumentDB` and `MongoDB`. Defaults to `GlobalDocumentDB`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "localAuthenticationDisabled": {
          "description": "Disable local authentication and ensure only MSI and AAD can be used exclusively for authentication. Defaults to `false`. Can be set only when using the SQL API.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mongoServerVersion": {
          "description": "The Server Version of a MongoDB account. Possible values are `4.0`, `3.6`, and `3.2`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the CosmosDB Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkAclBypassForAzureServices": {
          "description": "If azure services can bypass ACLs. Defaults to `false`.\n",
          "type": "boolean"
        },
        "networkAclBypassIds": {
          "description": "The list of resource Ids for Network Acl Bypass for this Cosmos DB account.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "offerType": {
          "description": "Specifies the Offer Type to use for this CosmosDB Account - currently this can only be set to `Standard`.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this CosmosDB account.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the CosmosDB Account is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "virtualNetworkRules": {
          "description": "Specifies a `virtual_network_rules` resource, used to define which subnets are allowed to access this CosmosDB account.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/AccountVirtualNetworkRule:AccountVirtualNetworkRule"
          },
          "type": "array"
        }
      },
      "properties": {
        "accessKeyMetadataWritesEnabled": {
          "description": "Is write operations on metadata resources (databases, containers, throughput) via account keys enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "analyticalStorageEnabled": {
          "description": "Enable Analytical Storage option for this Cosmos DB account. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "backup": {
          "$ref": "#/types/azure:cosmosdb/AccountBackup:AccountBackup",
          "description": "A `backup` block as defined below.\n"
        },
        "capabilities": {
          "description": "The capabilities which should be enabled for this Cosmos DB account. Value is a `capabilities` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/AccountCapability:AccountCapability"
          },
          "type": "array"
        },
        "connectionStrings": {
          "description": "A list of connection strings available for this CosmosDB account.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "consistencyPolicy": {
          "$ref": "#/types/azure:cosmosdb/AccountConsistencyPolicy:AccountConsistencyPolicy",
          "description": "Specifies a `consistency_policy` resource, used to define the consistency policy for this CosmosDB account.\n"
        },
        "corsRule": {
          "$ref": "#/types/azure:cosmosdb/AccountCorsRule:AccountCorsRule",
          "description": "A `cors_rule` block as defined below.\n"
        },
        "enableAutomaticFailover": {
          "description": "Enable automatic fail over for this Cosmos DB account.\n",
          "type": "boolean"
        },
        "enableFreeTier": {
          "description": "Enable Free Tier pricing option for this Cosmos DB account. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "enableMultipleWriteLocations": {
          "description": "Enable multiple write locations for this Cosmos DB account.\n",
          "type": "boolean"
        },
        "endpoint": {
          "description": "The endpoint used to connect to the CosmosDB account.\n",
          "type": "string"
        },
        "geoLocations": {
          "description": "Specifies a `geo_location` resource, used to define where data should be replicated with the `failover_priority` 0 specifying the primary location. Value is a `geo_location` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/AccountGeoLocation:AccountGeoLocation"
          },
          "type": "array"
        },
        "identity": {
          "$ref": "#/types/azure:cosmosdb/AccountIdentity:AccountIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "ipRangeFilter": {
          "description": "CosmosDB Firewall Support: This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IP's for a given database account. IP addresses/ranges must be comma separated and must not contain any spaces.\n",
          "type": "string"
        },
        "isVirtualNetworkFilterEnabled": {
          "description": "Enables virtual network filtering for this Cosmos DB account.\n",
          "type": "boolean"
        },
        "keyVaultKeyId": {
          "description": "A versionless Key Vault Key ID for CMK encryption. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "kind": {
          "description": "Specifies the Kind of CosmosDB to create - possible values are `GlobalDocumentDB` and `MongoDB`. Defaults to `GlobalDocumentDB`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "localAuthenticationDisabled": {
          "description": "Disable local authentication and ensure only MSI and AAD can be used exclusively for authentication. Defaults to `false`. Can be set only when using the SQL API.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mongoServerVersion": {
          "description": "The Server Version of a MongoDB account. Possible values are `4.0`, `3.6`, and `3.2`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the CosmosDB Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkAclBypassForAzureServices": {
          "description": "If azure services can bypass ACLs. Defaults to `false`.\n",
          "type": "boolean"
        },
        "networkAclBypassIds": {
          "description": "The list of resource Ids for Network Acl Bypass for this Cosmos DB account.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "offerType": {
          "description": "Specifies the Offer Type to use for this CosmosDB Account - currently this can only be set to `Standard`.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The Primary key for the CosmosDB Account.\n",
          "type": "string"
        },
        "primaryMasterKey": {
          "deprecationMessage": "This property has been renamed to `primary_key` and will be removed in v3.0 of the provider in support of HashiCorp's inclusive language policy which can be found here: https://discuss.hashicorp.com/t/inclusive-language-changes",
          "type": "string"
        },
        "primaryReadonlyKey": {
          "description": "The Primary read-only Key for the CosmosDB Account.\n",
          "type": "string"
        },
        "primaryReadonlyMasterKey": {
          "deprecationMessage": "This property has been renamed to `primary_readonly_key` and will be removed in v3.0 of the provider in support of HashiCorp's inclusive language policy which can be found here: https://discuss.hashicorp.com/t/inclusive-language-changes",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this CosmosDB account.\n",
          "type": "boolean"
        },
        "readEndpoints": {
          "description": "A list of read endpoints available for this CosmosDB account.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the CosmosDB Account is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The Secondary key for the CosmosDB Account.\n",
          "type": "string"
        },
        "secondaryMasterKey": {
          "deprecationMessage": "This property has been renamed to `secondary_key` and will be removed in v3.0 of the provider in support of HashiCorp's inclusive language policy which can be found here: https://discuss.hashicorp.com/t/inclusive-language-changes",
          "type": "string"
        },
        "secondaryReadonlyKey": {
          "description": "The Secondary read-only key for the CosmosDB Account.\n",
          "type": "string"
        },
        "secondaryReadonlyMasterKey": {
          "deprecationMessage": "This property has been renamed to `secondary_readonly_key` and will be removed in v3.0 of the provider in support of HashiCorp's inclusive language policy which can be found here: https://discuss.hashicorp.com/t/inclusive-language-changes",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "virtualNetworkRules": {
          "description": "Specifies a `virtual_network_rules` resource, used to define which subnets are allowed to access this CosmosDB account.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/AccountVirtualNetworkRule:AccountVirtualNetworkRule"
          },
          "type": "array"
        },
        "writeEndpoints": {
          "description": "A list of write endpoints available for this CosmosDB account.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "backup",
        "connectionStrings",
        "consistencyPolicy",
        "endpoint",
        "geoLocations",
        "location",
        "mongoServerVersion",
        "name",
        "offerType",
        "primaryKey",
        "primaryMasterKey",
        "primaryReadonlyKey",
        "primaryReadonlyMasterKey",
        "readEndpoints",
        "resourceGroupName",
        "secondaryKey",
        "secondaryMasterKey",
        "secondaryReadonlyKey",
        "secondaryReadonlyMasterKey",
        "writeEndpoints"
      ],
      "requiredInputs": [
        "consistencyPolicy",
        "geoLocations",
        "offerType",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Account resources.\n",
        "properties": {
          "accessKeyMetadataWritesEnabled": {
            "description": "Is write operations on metadata resources (databases, containers, throughput) via account keys enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "analyticalStorageEnabled": {
            "description": "Enable Analytical Storage option for this Cosmos DB account. Defaults to `false`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "backup": {
            "$ref": "#/types/azure:cosmosdb/AccountBackup:AccountBackup",
            "description": "A `backup` block as defined below.\n"
          },
          "capabilities": {
            "description": "The capabilities which should be enabled for this Cosmos DB account. Value is a `capabilities` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:cosmosdb/AccountCapability:AccountCapability"
            },
            "type": "array"
          },
          "connectionStrings": {
            "description": "A list of connection strings available for this CosmosDB account.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "consistencyPolicy": {
            "$ref": "#/types/azure:cosmosdb/AccountConsistencyPolicy:AccountConsistencyPolicy",
            "description": "Specifies a `consistency_policy` resource, used to define the consistency policy for this CosmosDB account.\n"
          },
          "corsRule": {
            "$ref": "#/types/azure:cosmosdb/AccountCorsRule:AccountCorsRule",
            "description": "A `cors_rule` block as defined below.\n"
          },
          "enableAutomaticFailover": {
            "description": "Enable automatic fail over for this Cosmos DB account.\n",
            "type": "boolean"
          },
          "enableFreeTier": {
            "description": "Enable Free Tier pricing option for this Cosmos DB account. Defaults to `false`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "enableMultipleWriteLocations": {
            "description": "Enable multiple write locations for this Cosmos DB account.\n",
            "type": "boolean"
          },
          "endpoint": {
            "description": "The endpoint used to connect to the CosmosDB account.\n",
            "type": "string"
          },
          "geoLocations": {
            "description": "Specifies a `geo_location` resource, used to define where data should be replicated with the `failover_priority` 0 specifying the primary location. Value is a `geo_location` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:cosmosdb/AccountGeoLocation:AccountGeoLocation"
            },
            "type": "array"
          },
          "identity": {
            "$ref": "#/types/azure:cosmosdb/AccountIdentity:AccountIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "ipRangeFilter": {
            "description": "CosmosDB Firewall Support: This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IP's for a given database account. IP addresses/ranges must be comma separated and must not contain any spaces.\n",
            "type": "string"
          },
          "isVirtualNetworkFilterEnabled": {
            "description": "Enables virtual network filtering for this Cosmos DB account.\n",
            "type": "boolean"
          },
          "keyVaultKeyId": {
            "description": "A versionless Key Vault Key ID for CMK encryption. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "kind": {
            "description": "Specifies the Kind of CosmosDB to create - possible values are `GlobalDocumentDB` and `MongoDB`. Defaults to `GlobalDocumentDB`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "localAuthenticationDisabled": {
            "description": "Disable local authentication and ensure only MSI and AAD can be used exclusively for authentication. Defaults to `false`. Can be set only when using the SQL API.\n",
            "type": "boolean"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "mongoServerVersion": {
            "description": "The Server Version of a MongoDB account. Possible values are `4.0`, `3.6`, and `3.2`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the CosmosDB Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkAclBypassForAzureServices": {
            "description": "If azure services can bypass ACLs. Defaults to `false`.\n",
            "type": "boolean"
          },
          "networkAclBypassIds": {
            "description": "The list of resource Ids for Network Acl Bypass for this Cosmos DB account.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "offerType": {
            "description": "Specifies the Offer Type to use for this CosmosDB Account - currently this can only be set to `Standard`.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary key for the CosmosDB Account.\n",
            "type": "string"
          },
          "primaryMasterKey": {
            "deprecationMessage": "This property has been renamed to `primary_key` and will be removed in v3.0 of the provider in support of HashiCorp's inclusive language policy which can be found here: https://discuss.hashicorp.com/t/inclusive-language-changes",
            "type": "string"
          },
          "primaryReadonlyKey": {
            "description": "The Primary read-only Key for the CosmosDB Account.\n",
            "type": "string"
          },
          "primaryReadonlyMasterKey": {
            "deprecationMessage": "This property has been renamed to `primary_readonly_key` and will be removed in v3.0 of the provider in support of HashiCorp's inclusive language policy which can be found here: https://discuss.hashicorp.com/t/inclusive-language-changes",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether or not public network access is allowed for this CosmosDB account.\n",
            "type": "boolean"
          },
          "readEndpoints": {
            "description": "A list of read endpoints available for this CosmosDB account.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the CosmosDB Account is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary key for the CosmosDB Account.\n",
            "type": "string"
          },
          "secondaryMasterKey": {
            "deprecationMessage": "This property has been renamed to `secondary_key` and will be removed in v3.0 of the provider in support of HashiCorp's inclusive language policy which can be found here: https://discuss.hashicorp.com/t/inclusive-language-changes",
            "type": "string"
          },
          "secondaryReadonlyKey": {
            "description": "The Secondary read-only key for the CosmosDB Account.\n",
            "type": "string"
          },
          "secondaryReadonlyMasterKey": {
            "deprecationMessage": "This property has been renamed to `secondary_readonly_key` and will be removed in v3.0 of the provider in support of HashiCorp's inclusive language policy which can be found here: https://discuss.hashicorp.com/t/inclusive-language-changes",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "virtualNetworkRules": {
            "description": "Specifies a `virtual_network_rules` resource, used to define which subnets are allowed to access this CosmosDB account.\n",
            "items": {
              "$ref": "#/types/azure:cosmosdb/AccountVirtualNetworkRule:AccountVirtualNetworkRule"
            },
            "type": "array"
          },
          "writeEndpoints": {
            "description": "A list of write endpoints available for this CosmosDB account.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:cosmosdb/cassandraKeyspace:CassandraKeyspace": {
      "description": "Manages a Cassandra KeySpace within a Cosmos DB Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = azure.core.getResourceGroup({\n    name: \"tflex-cosmosdb-account-rg\",\n});\nconst exampleAccount = new azure.cosmosdb.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.name),\n    location: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.location),\n    offerType: \"Standard\",\n    capabilities: [{\n        name: \"EnableCassandra\",\n    }],\n    consistencyPolicy: {\n        consistencyLevel: \"Strong\",\n    },\n    geoLocations: [{\n        location: \"West US\",\n        failoverPriority: 0,\n    }],\n});\nconst exampleCassandraKeyspace = new azure.cosmosdb.CassandraKeyspace(\"exampleCassandraKeyspace\", {\n    resourceGroupName: exampleAccount.resourceGroupName,\n    accountName: exampleAccount.name,\n    throughput: 400,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.get_resource_group(name=\"tflex-cosmosdb-account-rg\")\nexample_account = azure.cosmosdb.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    offer_type=\"Standard\",\n    capabilities=[azure.cosmosdb.AccountCapabilityArgs(\n        name=\"EnableCassandra\",\n    )],\n    consistency_policy=azure.cosmosdb.AccountConsistencyPolicyArgs(\n        consistency_level=\"Strong\",\n    ),\n    geo_locations=[azure.cosmosdb.AccountGeoLocationArgs(\n        location=\"West US\",\n        failover_priority=0,\n    )])\nexample_cassandra_keyspace = azure.cosmosdb.CassandraKeyspace(\"exampleCassandraKeyspace\",\n    resource_group_name=example_account.resource_group_name,\n    account_name=example_account.name,\n    throughput=400)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = Output.Create(Azure.Core.GetResourceGroup.InvokeAsync(new Azure.Core.GetResourceGroupArgs\n        {\n            Name = \"tflex-cosmosdb-account-rg\",\n        }));\n        var exampleAccount = new Azure.CosmosDB.Account(\"exampleAccount\", new Azure.CosmosDB.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Name),\n            Location = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Location),\n            OfferType = \"Standard\",\n            Capabilities = \n            {\n                new Azure.CosmosDB.Inputs.AccountCapabilityArgs\n                {\n                    Name = \"EnableCassandra\",\n                },\n            },\n            ConsistencyPolicy = new Azure.CosmosDB.Inputs.AccountConsistencyPolicyArgs\n            {\n                ConsistencyLevel = \"Strong\",\n            },\n            GeoLocations = \n            {\n                new Azure.CosmosDB.Inputs.AccountGeoLocationArgs\n                {\n                    Location = \"West US\",\n                    FailoverPriority = 0,\n                },\n            },\n        });\n        var exampleCassandraKeyspace = new Azure.CosmosDB.CassandraKeyspace(\"exampleCassandraKeyspace\", new Azure.CosmosDB.CassandraKeyspaceArgs\n        {\n            ResourceGroupName = exampleAccount.ResourceGroupName,\n            AccountName = exampleAccount.Name,\n            Throughput = 400,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.LookupResourceGroup(ctx, \u0026core.LookupResourceGroupArgs{\n\t\t\tName: \"tflex-cosmosdb-account-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := cosmosdb.NewAccount(ctx, \"exampleAccount\", \u0026cosmosdb.AccountArgs{\n\t\t\tResourceGroupName: pulumi.String(exampleResourceGroup.Name),\n\t\t\tLocation:          pulumi.String(exampleResourceGroup.Location),\n\t\t\tOfferType:         pulumi.String(\"Standard\"),\n\t\t\tCapabilities: cosmosdb.AccountCapabilityArray{\n\t\t\t\t\u0026cosmosdb.AccountCapabilityArgs{\n\t\t\t\t\tName: pulumi.String(\"EnableCassandra\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tConsistencyPolicy: \u0026cosmosdb.AccountConsistencyPolicyArgs{\n\t\t\t\tConsistencyLevel: pulumi.String(\"Strong\"),\n\t\t\t},\n\t\t\tGeoLocations: cosmosdb.AccountGeoLocationArray{\n\t\t\t\t\u0026cosmosdb.AccountGeoLocationArgs{\n\t\t\t\t\tLocation:         pulumi.String(\"West US\"),\n\t\t\t\t\tFailoverPriority: pulumi.Int(0),\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 = cosmosdb.NewCassandraKeyspace(ctx, \"exampleCassandraKeyspace\", \u0026cosmosdb.CassandraKeyspaceArgs{\n\t\t\tResourceGroupName: exampleAccount.ResourceGroupName,\n\t\t\tAccountName:       exampleAccount.Name,\n\t\t\tThroughput:        pulumi.Int(400),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCosmos Cassandra KeySpace can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cosmosdb/cassandraKeyspace:CassandraKeyspace ks1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.DocumentDB/databaseAccounts/account1/cassandraKeyspaces/ks1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "The name of the Cosmos DB Cassandra KeySpace to create the table within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/CassandraKeyspaceAutoscaleSettings:CassandraKeyspaceAutoscaleSettings",
          "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB Cassandra KeySpace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB Cassandra KeySpace is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "throughput": {
          "description": "The throughput of Cassandra KeySpace (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
          "type": "integer"
        }
      },
      "properties": {
        "accountName": {
          "description": "The name of the Cosmos DB Cassandra KeySpace to create the table within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/CassandraKeyspaceAutoscaleSettings:CassandraKeyspaceAutoscaleSettings",
          "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB Cassandra KeySpace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB Cassandra KeySpace is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "throughput": {
          "description": "The throughput of Cassandra KeySpace (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
          "type": "integer"
        }
      },
      "required": [
        "accountName",
        "name",
        "resourceGroupName",
        "throughput"
      ],
      "requiredInputs": [
        "accountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CassandraKeyspace resources.\n",
        "properties": {
          "accountName": {
            "description": "The name of the Cosmos DB Cassandra KeySpace to create the table within. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "autoscaleSettings": {
            "$ref": "#/types/azure:cosmosdb/CassandraKeyspaceAutoscaleSettings:CassandraKeyspaceAutoscaleSettings",
            "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n"
          },
          "name": {
            "description": "Specifies the name of the Cosmos DB Cassandra KeySpace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Cosmos DB Cassandra KeySpace is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "throughput": {
            "description": "The throughput of Cassandra KeySpace (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:cosmosdb/cassandraTable:CassandraTable": {
      "description": "Manages a Cassandra Table within a Cosmos DB Cassandra Keyspace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = azure.core.getResourceGroup({\n    name: \"tflex-cosmosdb-account-rg\",\n});\nconst exampleAccount = new azure.cosmosdb.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.name),\n    location: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.location),\n    offerType: \"Standard\",\n    capabilities: [{\n        name: \"EnableCassandra\",\n    }],\n    consistencyPolicy: {\n        consistencyLevel: \"Strong\",\n    },\n    geoLocations: [{\n        location: \"West US\",\n        failoverPriority: 0,\n    }],\n});\nconst exampleCassandraKeyspace = new azure.cosmosdb.CassandraKeyspace(\"exampleCassandraKeyspace\", {\n    resourceGroupName: exampleAccount.resourceGroupName,\n    accountName: exampleAccount.name,\n    throughput: 400,\n});\nconst exampleCassandraTable = new azure.cosmosdb.CassandraTable(\"exampleCassandraTable\", {\n    cassandraKeyspaceId: exampleCassandraKeyspace.id,\n    schema: {\n        columns: [\n            {\n                name: \"test1\",\n                type: \"ascii\",\n            },\n            {\n                name: \"test2\",\n                type: \"int\",\n            },\n        ],\n        partitionKeys: [{\n            name: \"test1\",\n        }],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.get_resource_group(name=\"tflex-cosmosdb-account-rg\")\nexample_account = azure.cosmosdb.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    offer_type=\"Standard\",\n    capabilities=[azure.cosmosdb.AccountCapabilityArgs(\n        name=\"EnableCassandra\",\n    )],\n    consistency_policy=azure.cosmosdb.AccountConsistencyPolicyArgs(\n        consistency_level=\"Strong\",\n    ),\n    geo_locations=[azure.cosmosdb.AccountGeoLocationArgs(\n        location=\"West US\",\n        failover_priority=0,\n    )])\nexample_cassandra_keyspace = azure.cosmosdb.CassandraKeyspace(\"exampleCassandraKeyspace\",\n    resource_group_name=example_account.resource_group_name,\n    account_name=example_account.name,\n    throughput=400)\nexample_cassandra_table = azure.cosmosdb.CassandraTable(\"exampleCassandraTable\",\n    cassandra_keyspace_id=example_cassandra_keyspace.id,\n    schema=azure.cosmosdb.CassandraTableSchemaArgs(\n        columns=[\n            azure.cosmosdb.CassandraTableSchemaColumnArgs(\n                name=\"test1\",\n                type=\"ascii\",\n            ),\n            azure.cosmosdb.CassandraTableSchemaColumnArgs(\n                name=\"test2\",\n                type=\"int\",\n            ),\n        ],\n        partition_keys=[azure.cosmosdb.CassandraTableSchemaPartitionKeyArgs(\n            name=\"test1\",\n        )],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = Output.Create(Azure.Core.GetResourceGroup.InvokeAsync(new Azure.Core.GetResourceGroupArgs\n        {\n            Name = \"tflex-cosmosdb-account-rg\",\n        }));\n        var exampleAccount = new Azure.CosmosDB.Account(\"exampleAccount\", new Azure.CosmosDB.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Name),\n            Location = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Location),\n            OfferType = \"Standard\",\n            Capabilities = \n            {\n                new Azure.CosmosDB.Inputs.AccountCapabilityArgs\n                {\n                    Name = \"EnableCassandra\",\n                },\n            },\n            ConsistencyPolicy = new Azure.CosmosDB.Inputs.AccountConsistencyPolicyArgs\n            {\n                ConsistencyLevel = \"Strong\",\n            },\n            GeoLocations = \n            {\n                new Azure.CosmosDB.Inputs.AccountGeoLocationArgs\n                {\n                    Location = \"West US\",\n                    FailoverPriority = 0,\n                },\n            },\n        });\n        var exampleCassandraKeyspace = new Azure.CosmosDB.CassandraKeyspace(\"exampleCassandraKeyspace\", new Azure.CosmosDB.CassandraKeyspaceArgs\n        {\n            ResourceGroupName = exampleAccount.ResourceGroupName,\n            AccountName = exampleAccount.Name,\n            Throughput = 400,\n        });\n        var exampleCassandraTable = new Azure.CosmosDB.CassandraTable(\"exampleCassandraTable\", new Azure.CosmosDB.CassandraTableArgs\n        {\n            CassandraKeyspaceId = exampleCassandraKeyspace.Id,\n            Schema = new Azure.CosmosDB.Inputs.CassandraTableSchemaArgs\n            {\n                Columns = \n                {\n                    new Azure.CosmosDB.Inputs.CassandraTableSchemaColumnArgs\n                    {\n                        Name = \"test1\",\n                        Type = \"ascii\",\n                    },\n                    new Azure.CosmosDB.Inputs.CassandraTableSchemaColumnArgs\n                    {\n                        Name = \"test2\",\n                        Type = \"int\",\n                    },\n                },\n                PartitionKeys = \n                {\n                    new Azure.CosmosDB.Inputs.CassandraTableSchemaPartitionKeyArgs\n                    {\n                        Name = \"test1\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.LookupResourceGroup(ctx, \u0026core.LookupResourceGroupArgs{\n\t\t\tName: \"tflex-cosmosdb-account-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := cosmosdb.NewAccount(ctx, \"exampleAccount\", \u0026cosmosdb.AccountArgs{\n\t\t\tResourceGroupName: pulumi.String(exampleResourceGroup.Name),\n\t\t\tLocation:          pulumi.String(exampleResourceGroup.Location),\n\t\t\tOfferType:         pulumi.String(\"Standard\"),\n\t\t\tCapabilities: cosmosdb.AccountCapabilityArray{\n\t\t\t\t\u0026cosmosdb.AccountCapabilityArgs{\n\t\t\t\t\tName: pulumi.String(\"EnableCassandra\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tConsistencyPolicy: \u0026cosmosdb.AccountConsistencyPolicyArgs{\n\t\t\t\tConsistencyLevel: pulumi.String(\"Strong\"),\n\t\t\t},\n\t\t\tGeoLocations: cosmosdb.AccountGeoLocationArray{\n\t\t\t\t\u0026cosmosdb.AccountGeoLocationArgs{\n\t\t\t\t\tLocation:         pulumi.String(\"West US\"),\n\t\t\t\t\tFailoverPriority: pulumi.Int(0),\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\texampleCassandraKeyspace, err := cosmosdb.NewCassandraKeyspace(ctx, \"exampleCassandraKeyspace\", \u0026cosmosdb.CassandraKeyspaceArgs{\n\t\t\tResourceGroupName: exampleAccount.ResourceGroupName,\n\t\t\tAccountName:       exampleAccount.Name,\n\t\t\tThroughput:        pulumi.Int(400),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cosmosdb.NewCassandraTable(ctx, \"exampleCassandraTable\", \u0026cosmosdb.CassandraTableArgs{\n\t\t\tCassandraKeyspaceId: exampleCassandraKeyspace.ID(),\n\t\t\tSchema: \u0026cosmosdb.CassandraTableSchemaArgs{\n\t\t\t\tColumns: cosmosdb.CassandraTableSchemaColumnArray{\n\t\t\t\t\t\u0026cosmosdb.CassandraTableSchemaColumnArgs{\n\t\t\t\t\t\tName: pulumi.String(\"test1\"),\n\t\t\t\t\t\tType: pulumi.String(\"ascii\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026cosmosdb.CassandraTableSchemaColumnArgs{\n\t\t\t\t\t\tName: pulumi.String(\"test2\"),\n\t\t\t\t\t\tType: pulumi.String(\"int\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tPartitionKeys: cosmosdb.CassandraTableSchemaPartitionKeyArray{\n\t\t\t\t\t\u0026cosmosdb.CassandraTableSchemaPartitionKeyArgs{\n\t\t\t\t\t\tName: pulumi.String(\"test1\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCosmos Cassandra Table can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cosmosdb/cassandraTable:CassandraTable ks1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.DocumentDB/databaseAccounts/account1/cassandraKeyspaces/ks1/tables/table1\n```\n\n ",
      "inputProperties": {
        "analyticalStorageTtl": {
          "description": "Time to live of the Analytical Storage. Possible values are at least `-1`. `-1` means the Analytical Storage never expires. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/CassandraTableAutoscaleSettings:CassandraTableAutoscaleSettings"
        },
        "cassandraKeyspaceId": {
          "description": "The ID of the Cosmos DB Cassandra Keyspace to create the table within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "defaultTtl": {
          "description": "Time to live of the Cosmos DB Cassandra table. Possible values are at least `-1`. `-1` means the Cassandra table never expires.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB Cassandra Table. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "schema": {
          "$ref": "#/types/azure:cosmosdb/CassandraTableSchema:CassandraTableSchema",
          "description": "A `schema` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "throughput": {
          "type": "integer"
        }
      },
      "properties": {
        "analyticalStorageTtl": {
          "description": "Time to live of the Analytical Storage. Possible values are at least `-1`. `-1` means the Analytical Storage never expires. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/CassandraTableAutoscaleSettings:CassandraTableAutoscaleSettings"
        },
        "cassandraKeyspaceId": {
          "description": "The ID of the Cosmos DB Cassandra Keyspace to create the table within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "defaultTtl": {
          "description": "Time to live of the Cosmos DB Cassandra table. Possible values are at least `-1`. `-1` means the Cassandra table never expires.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB Cassandra Table. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "schema": {
          "$ref": "#/types/azure:cosmosdb/CassandraTableSchema:CassandraTableSchema",
          "description": "A `schema` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "throughput": {
          "type": "integer"
        }
      },
      "required": [
        "cassandraKeyspaceId",
        "defaultTtl",
        "name",
        "schema",
        "throughput"
      ],
      "requiredInputs": [
        "cassandraKeyspaceId",
        "schema"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CassandraTable resources.\n",
        "properties": {
          "analyticalStorageTtl": {
            "description": "Time to live of the Analytical Storage. Possible values are at least `-1`. `-1` means the Analytical Storage never expires. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "autoscaleSettings": {
            "$ref": "#/types/azure:cosmosdb/CassandraTableAutoscaleSettings:CassandraTableAutoscaleSettings"
          },
          "cassandraKeyspaceId": {
            "description": "The ID of the Cosmos DB Cassandra Keyspace to create the table within. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "defaultTtl": {
            "description": "Time to live of the Cosmos DB Cassandra table. Possible values are at least `-1`. `-1` means the Cassandra table never expires.\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the Cosmos DB Cassandra Table. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "schema": {
            "$ref": "#/types/azure:cosmosdb/CassandraTableSchema:CassandraTableSchema",
            "description": "A `schema` block as defined below. Changing this forces a new resource to be created.\n"
          },
          "throughput": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:cosmosdb/gremlinDatabase:GremlinDatabase": {
      "description": "Manages a Gremlin Database within a Cosmos DB Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleAccount = azure.cosmosdb.getAccount({\n    name: \"tfex-cosmosdb-account\",\n    resourceGroupName: \"tfex-cosmosdb-account-rg\",\n});\nconst exampleGremlinDatabase = new azure.cosmosdb.GremlinDatabase(\"exampleGremlinDatabase\", {\n    resourceGroupName: exampleAccount.then(exampleAccount =\u003e exampleAccount.resourceGroupName),\n    accountName: exampleAccount.then(exampleAccount =\u003e exampleAccount.name),\n    throughput: 400,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_account = azure.cosmosdb.get_account(name=\"tfex-cosmosdb-account\",\n    resource_group_name=\"tfex-cosmosdb-account-rg\")\nexample_gremlin_database = azure.cosmosdb.GremlinDatabase(\"exampleGremlinDatabase\",\n    resource_group_name=example_account.resource_group_name,\n    account_name=example_account.name,\n    throughput=400)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleAccount = Output.Create(Azure.CosmosDB.GetAccount.InvokeAsync(new Azure.CosmosDB.GetAccountArgs\n        {\n            Name = \"tfex-cosmosdb-account\",\n            ResourceGroupName = \"tfex-cosmosdb-account-rg\",\n        }));\n        var exampleGremlinDatabase = new Azure.CosmosDB.GremlinDatabase(\"exampleGremlinDatabase\", new Azure.CosmosDB.GremlinDatabaseArgs\n        {\n            ResourceGroupName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.ResourceGroupName),\n            AccountName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.Name),\n            Throughput = 400,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleAccount, err := cosmosdb.LookupAccount(ctx, \u0026cosmosdb.LookupAccountArgs{\n\t\t\tName:              \"tfex-cosmosdb-account\",\n\t\t\tResourceGroupName: \"tfex-cosmosdb-account-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cosmosdb.NewGremlinDatabase(ctx, \"exampleGremlinDatabase\", \u0026cosmosdb.GremlinDatabaseArgs{\n\t\t\tResourceGroupName: pulumi.String(exampleAccount.ResourceGroupName),\n\t\t\tAccountName:       pulumi.String(exampleAccount.Name),\n\t\t\tThroughput:        pulumi.Int(400),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCosmosDB Gremlin Databases can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cosmosdb/gremlinDatabase:GremlinDatabase db1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.DocumentDB/databaseAccounts/account1/gremlinDatabases/db1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "The name of the CosmosDB Account to create the Gremlin Database within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/GremlinDatabaseAutoscaleSettings:GremlinDatabaseAutoscaleSettings",
          "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB Gremlin Database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB Gremlin Database is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "throughput": {
          "description": "The throughput of the Gremlin database (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
          "type": "integer"
        }
      },
      "properties": {
        "accountName": {
          "description": "The name of the CosmosDB Account to create the Gremlin Database within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/GremlinDatabaseAutoscaleSettings:GremlinDatabaseAutoscaleSettings",
          "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB Gremlin Database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB Gremlin Database is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "throughput": {
          "description": "The throughput of the Gremlin database (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
          "type": "integer"
        }
      },
      "required": [
        "accountName",
        "name",
        "resourceGroupName",
        "throughput"
      ],
      "requiredInputs": [
        "accountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GremlinDatabase resources.\n",
        "properties": {
          "accountName": {
            "description": "The name of the CosmosDB Account to create the Gremlin Database within. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "autoscaleSettings": {
            "$ref": "#/types/azure:cosmosdb/GremlinDatabaseAutoscaleSettings:GremlinDatabaseAutoscaleSettings",
            "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n"
          },
          "name": {
            "description": "Specifies the name of the Cosmos DB Gremlin Database. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Cosmos DB Gremlin Database is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "throughput": {
            "description": "The throughput of the Gremlin database (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:cosmosdb/gremlinGraph:GremlinGraph": {
      "description": "Manages a Gremlin Graph within a Cosmos DB Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleAccount = azure.cosmosdb.getAccount({\n    name: \"tfex-cosmosdb-account\",\n    resourceGroupName: \"tfex-cosmosdb-account-rg\",\n});\nconst exampleGremlinDatabase = new azure.cosmosdb.GremlinDatabase(\"exampleGremlinDatabase\", {\n    resourceGroupName: exampleAccount.then(exampleAccount =\u003e exampleAccount.resourceGroupName),\n    accountName: exampleAccount.then(exampleAccount =\u003e exampleAccount.name),\n});\nconst exampleGremlinGraph = new azure.cosmosdb.GremlinGraph(\"exampleGremlinGraph\", {\n    resourceGroupName: azurerm_cosmosdb_account.example.resource_group_name,\n    accountName: azurerm_cosmosdb_account.example.name,\n    databaseName: exampleGremlinDatabase.name,\n    partitionKeyPath: \"/Example\",\n    throughput: 400,\n    indexPolicies: [{\n        automatic: true,\n        indexingMode: \"Consistent\",\n        includedPaths: [\"/*\"],\n        excludedPaths: [\"/\\\"_etag\\\"/?\"],\n    }],\n    conflictResolutionPolicies: [{\n        mode: \"LastWriterWins\",\n        conflictResolutionPath: \"/_ts\",\n    }],\n    uniqueKeys: [{\n        paths: [\n            \"/definition/id1\",\n            \"/definition/id2\",\n        ],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_account = azure.cosmosdb.get_account(name=\"tfex-cosmosdb-account\",\n    resource_group_name=\"tfex-cosmosdb-account-rg\")\nexample_gremlin_database = azure.cosmosdb.GremlinDatabase(\"exampleGremlinDatabase\",\n    resource_group_name=example_account.resource_group_name,\n    account_name=example_account.name)\nexample_gremlin_graph = azure.cosmosdb.GremlinGraph(\"exampleGremlinGraph\",\n    resource_group_name=azurerm_cosmosdb_account[\"example\"][\"resource_group_name\"],\n    account_name=azurerm_cosmosdb_account[\"example\"][\"name\"],\n    database_name=example_gremlin_database.name,\n    partition_key_path=\"/Example\",\n    throughput=400,\n    index_policies=[azure.cosmosdb.GremlinGraphIndexPolicyArgs(\n        automatic=True,\n        indexing_mode=\"Consistent\",\n        included_paths=[\"/*\"],\n        excluded_paths=[\"/\\\"_etag\\\"/?\"],\n    )],\n    conflict_resolution_policies=[azure.cosmosdb.GremlinGraphConflictResolutionPolicyArgs(\n        mode=\"LastWriterWins\",\n        conflict_resolution_path=\"/_ts\",\n    )],\n    unique_keys=[azure.cosmosdb.GremlinGraphUniqueKeyArgs(\n        paths=[\n            \"/definition/id1\",\n            \"/definition/id2\",\n        ],\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleAccount = Output.Create(Azure.CosmosDB.GetAccount.InvokeAsync(new Azure.CosmosDB.GetAccountArgs\n        {\n            Name = \"tfex-cosmosdb-account\",\n            ResourceGroupName = \"tfex-cosmosdb-account-rg\",\n        }));\n        var exampleGremlinDatabase = new Azure.CosmosDB.GremlinDatabase(\"exampleGremlinDatabase\", new Azure.CosmosDB.GremlinDatabaseArgs\n        {\n            ResourceGroupName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.ResourceGroupName),\n            AccountName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.Name),\n        });\n        var exampleGremlinGraph = new Azure.CosmosDB.GremlinGraph(\"exampleGremlinGraph\", new Azure.CosmosDB.GremlinGraphArgs\n        {\n            ResourceGroupName = azurerm_cosmosdb_account.Example.Resource_group_name,\n            AccountName = azurerm_cosmosdb_account.Example.Name,\n            DatabaseName = exampleGremlinDatabase.Name,\n            PartitionKeyPath = \"/Example\",\n            Throughput = 400,\n            IndexPolicies = \n            {\n                new Azure.CosmosDB.Inputs.GremlinGraphIndexPolicyArgs\n                {\n                    Automatic = true,\n                    IndexingMode = \"Consistent\",\n                    IncludedPaths = \n                    {\n                        \"/*\",\n                    },\n                    ExcludedPaths = \n                    {\n                        \"/\\\"_etag\\\"/?\",\n                    },\n                },\n            },\n            ConflictResolutionPolicies = \n            {\n                new Azure.CosmosDB.Inputs.GremlinGraphConflictResolutionPolicyArgs\n                {\n                    Mode = \"LastWriterWins\",\n                    ConflictResolutionPath = \"/_ts\",\n                },\n            },\n            UniqueKeys = \n            {\n                new Azure.CosmosDB.Inputs.GremlinGraphUniqueKeyArgs\n                {\n                    Paths = \n                    {\n                        \"/definition/id1\",\n                        \"/definition/id2\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleAccount, err := cosmosdb.LookupAccount(ctx, \u0026cosmosdb.LookupAccountArgs{\n\t\t\tName:              \"tfex-cosmosdb-account\",\n\t\t\tResourceGroupName: \"tfex-cosmosdb-account-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGremlinDatabase, err := cosmosdb.NewGremlinDatabase(ctx, \"exampleGremlinDatabase\", \u0026cosmosdb.GremlinDatabaseArgs{\n\t\t\tResourceGroupName: pulumi.String(exampleAccount.ResourceGroupName),\n\t\t\tAccountName:       pulumi.String(exampleAccount.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cosmosdb.NewGremlinGraph(ctx, \"exampleGremlinGraph\", \u0026cosmosdb.GremlinGraphArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_cosmosdb_account.Example.Resource_group_name),\n\t\t\tAccountName:       pulumi.Any(azurerm_cosmosdb_account.Example.Name),\n\t\t\tDatabaseName:      exampleGremlinDatabase.Name,\n\t\t\tPartitionKeyPath:  pulumi.String(\"/Example\"),\n\t\t\tThroughput:        pulumi.Int(400),\n\t\t\tIndexPolicies: cosmosdb.GremlinGraphIndexPolicyArray{\n\t\t\t\t\u0026cosmosdb.GremlinGraphIndexPolicyArgs{\n\t\t\t\t\tAutomatic:    pulumi.Bool(true),\n\t\t\t\t\tIndexingMode: pulumi.String(\"Consistent\"),\n\t\t\t\t\tIncludedPaths: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/*\"),\n\t\t\t\t\t},\n\t\t\t\t\tExcludedPaths: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/\\\"_etag\\\"/?\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tConflictResolutionPolicies: cosmosdb.GremlinGraphConflictResolutionPolicyArray{\n\t\t\t\t\u0026cosmosdb.GremlinGraphConflictResolutionPolicyArgs{\n\t\t\t\t\tMode:                   pulumi.String(\"LastWriterWins\"),\n\t\t\t\t\tConflictResolutionPath: pulumi.String(\"/_ts\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUniqueKeys: cosmosdb.GremlinGraphUniqueKeyArray{\n\t\t\t\t\u0026cosmosdb.GremlinGraphUniqueKeyArgs{\n\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/definition/id1\"),\n\t\t\t\t\t\tpulumi.String(\"/definition/id2\"),\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\n\u003e **NOTE:** The CosmosDB Account needs to have the `EnableGremlin` capability enabled to use this resource - which can be done by adding this to the `capabilities` list within the `azure.cosmosdb.Account` resource.\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCosmos Gremlin Graphs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cosmosdb/gremlinGraph:GremlinGraph example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.DocumentDB/databaseAccounts/account1/gremlinDatabases/db1/graphs/graphs1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "The name of the CosmosDB Account to create the Gremlin Graph within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/GremlinGraphAutoscaleSettings:GremlinGraphAutoscaleSettings"
        },
        "conflictResolutionPolicies": {
          "description": "A `conflict_resolution_policy` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/GremlinGraphConflictResolutionPolicy:GremlinGraphConflictResolutionPolicy"
          },
          "type": "array"
        },
        "databaseName": {
          "description": "The name of the Cosmos DB Graph Database in which the Cosmos DB Gremlin Graph is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "defaultTtl": {
          "description": "The default time to live (TTL) of the Gremlin graph. If the value is missing or set to \"-1\", items don’t expire.\n",
          "type": "integer"
        },
        "indexPolicies": {
          "description": "The configuration of the indexing policy. One or more `index_policy` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/GremlinGraphIndexPolicy:GremlinGraphIndexPolicy"
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB Gremlin Graph. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partitionKeyPath": {
          "description": "Define a partition key. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partitionKeyVersion": {
          "description": "Define a partition key version. Changing this forces a new resource to be created. Possible values are `1 `and `2`. This should be set to `2` in order to use large partition keys.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB Gremlin Graph is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "throughput": {
          "description": "The throughput of the Gremlin graph (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n",
          "type": "integer"
        },
        "uniqueKeys": {
          "description": "One or more `unique_key` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/GremlinGraphUniqueKey:GremlinGraphUniqueKey"
          },
          "type": "array"
        }
      },
      "properties": {
        "accountName": {
          "description": "The name of the CosmosDB Account to create the Gremlin Graph within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/GremlinGraphAutoscaleSettings:GremlinGraphAutoscaleSettings"
        },
        "conflictResolutionPolicies": {
          "description": "A `conflict_resolution_policy` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/GremlinGraphConflictResolutionPolicy:GremlinGraphConflictResolutionPolicy"
          },
          "type": "array"
        },
        "databaseName": {
          "description": "The name of the Cosmos DB Graph Database in which the Cosmos DB Gremlin Graph is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "defaultTtl": {
          "description": "The default time to live (TTL) of the Gremlin graph. If the value is missing or set to \"-1\", items don’t expire.\n",
          "type": "integer"
        },
        "indexPolicies": {
          "description": "The configuration of the indexing policy. One or more `index_policy` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/GremlinGraphIndexPolicy:GremlinGraphIndexPolicy"
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB Gremlin Graph. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partitionKeyPath": {
          "description": "Define a partition key. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partitionKeyVersion": {
          "description": "Define a partition key version. Changing this forces a new resource to be created. Possible values are `1 `and `2`. This should be set to `2` in order to use large partition keys.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB Gremlin Graph is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "throughput": {
          "description": "The throughput of the Gremlin graph (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n",
          "type": "integer"
        },
        "uniqueKeys": {
          "description": "One or more `unique_key` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/GremlinGraphUniqueKey:GremlinGraphUniqueKey"
          },
          "type": "array"
        }
      },
      "required": [
        "accountName",
        "conflictResolutionPolicies",
        "databaseName",
        "defaultTtl",
        "indexPolicies",
        "name",
        "partitionKeyPath",
        "resourceGroupName",
        "throughput"
      ],
      "requiredInputs": [
        "accountName",
        "databaseName",
        "partitionKeyPath",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GremlinGraph resources.\n",
        "properties": {
          "accountName": {
            "description": "The name of the CosmosDB Account to create the Gremlin Graph within. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "autoscaleSettings": {
            "$ref": "#/types/azure:cosmosdb/GremlinGraphAutoscaleSettings:GremlinGraphAutoscaleSettings"
          },
          "conflictResolutionPolicies": {
            "description": "A `conflict_resolution_policy` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:cosmosdb/GremlinGraphConflictResolutionPolicy:GremlinGraphConflictResolutionPolicy"
            },
            "type": "array"
          },
          "databaseName": {
            "description": "The name of the Cosmos DB Graph Database in which the Cosmos DB Gremlin Graph is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "defaultTtl": {
            "description": "The default time to live (TTL) of the Gremlin graph. If the value is missing or set to \"-1\", items don’t expire.\n",
            "type": "integer"
          },
          "indexPolicies": {
            "description": "The configuration of the indexing policy. One or more `index_policy` blocks as defined below. Changing this forces a new resource to be created.\n",
            "items": {
              "$ref": "#/types/azure:cosmosdb/GremlinGraphIndexPolicy:GremlinGraphIndexPolicy"
            },
            "type": "array"
          },
          "name": {
            "description": "Specifies the name of the Cosmos DB Gremlin Graph. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "partitionKeyPath": {
            "description": "Define a partition key. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "partitionKeyVersion": {
            "description": "Define a partition key version. Changing this forces a new resource to be created. Possible values are `1 `and `2`. This should be set to `2` in order to use large partition keys.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Cosmos DB Gremlin Graph is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "throughput": {
            "description": "The throughput of the Gremlin graph (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n",
            "type": "integer"
          },
          "uniqueKeys": {
            "description": "One or more `unique_key` blocks as defined below. Changing this forces a new resource to be created.\n",
            "items": {
              "$ref": "#/types/azure:cosmosdb/GremlinGraphUniqueKey:GremlinGraphUniqueKey"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:cosmosdb/mongoCollection:MongoCollection": {
      "description": "Manages a Mongo Collection within a Cosmos DB Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleAccount = azure.cosmosdb.getAccount({\n    name: \"tfex-cosmosdb-account\",\n    resourceGroupName: \"tfex-cosmosdb-account-rg\",\n});\nconst exampleMongoDatabase = new azure.cosmosdb.MongoDatabase(\"exampleMongoDatabase\", {\n    resourceGroupName: exampleAccount.then(exampleAccount =\u003e exampleAccount.resourceGroupName),\n    accountName: exampleAccount.then(exampleAccount =\u003e exampleAccount.name),\n});\nconst exampleMongoCollection = new azure.cosmosdb.MongoCollection(\"exampleMongoCollection\", {\n    resourceGroupName: exampleAccount.then(exampleAccount =\u003e exampleAccount.resourceGroupName),\n    accountName: exampleAccount.then(exampleAccount =\u003e exampleAccount.name),\n    databaseName: exampleMongoDatabase.name,\n    defaultTtlSeconds: \"777\",\n    shardKey: \"uniqueKey\",\n    throughput: 400,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_account = azure.cosmosdb.get_account(name=\"tfex-cosmosdb-account\",\n    resource_group_name=\"tfex-cosmosdb-account-rg\")\nexample_mongo_database = azure.cosmosdb.MongoDatabase(\"exampleMongoDatabase\",\n    resource_group_name=example_account.resource_group_name,\n    account_name=example_account.name)\nexample_mongo_collection = azure.cosmosdb.MongoCollection(\"exampleMongoCollection\",\n    resource_group_name=example_account.resource_group_name,\n    account_name=example_account.name,\n    database_name=example_mongo_database.name,\n    default_ttl_seconds=777,\n    shard_key=\"uniqueKey\",\n    throughput=400)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleAccount = Output.Create(Azure.CosmosDB.GetAccount.InvokeAsync(new Azure.CosmosDB.GetAccountArgs\n        {\n            Name = \"tfex-cosmosdb-account\",\n            ResourceGroupName = \"tfex-cosmosdb-account-rg\",\n        }));\n        var exampleMongoDatabase = new Azure.CosmosDB.MongoDatabase(\"exampleMongoDatabase\", new Azure.CosmosDB.MongoDatabaseArgs\n        {\n            ResourceGroupName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.ResourceGroupName),\n            AccountName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.Name),\n        });\n        var exampleMongoCollection = new Azure.CosmosDB.MongoCollection(\"exampleMongoCollection\", new Azure.CosmosDB.MongoCollectionArgs\n        {\n            ResourceGroupName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.ResourceGroupName),\n            AccountName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.Name),\n            DatabaseName = exampleMongoDatabase.Name,\n            DefaultTtlSeconds = 777,\n            ShardKey = \"uniqueKey\",\n            Throughput = 400,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleAccount, err := cosmosdb.LookupAccount(ctx, \u0026cosmosdb.LookupAccountArgs{\n\t\t\tName:              \"tfex-cosmosdb-account\",\n\t\t\tResourceGroupName: \"tfex-cosmosdb-account-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleMongoDatabase, err := cosmosdb.NewMongoDatabase(ctx, \"exampleMongoDatabase\", \u0026cosmosdb.MongoDatabaseArgs{\n\t\t\tResourceGroupName: pulumi.String(exampleAccount.ResourceGroupName),\n\t\t\tAccountName:       pulumi.String(exampleAccount.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cosmosdb.NewMongoCollection(ctx, \"exampleMongoCollection\", \u0026cosmosdb.MongoCollectionArgs{\n\t\t\tResourceGroupName: pulumi.String(exampleAccount.ResourceGroupName),\n\t\t\tAccountName:       pulumi.String(exampleAccount.Name),\n\t\t\tDatabaseName:      exampleMongoDatabase.Name,\n\t\t\tDefaultTtlSeconds: pulumi.Int(777),\n\t\t\tShardKey:          pulumi.String(\"uniqueKey\"),\n\t\t\tThroughput:        pulumi.Int(400),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCosmosDB Mongo Collection can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cosmosdb/mongoCollection:MongoCollection collection1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.DocumentDB/databaseAccounts/account1/mongodbDatabases/db1/collections/collection1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "type": "string"
        },
        "analyticalStorageTtl": {
          "description": "The default time to live of Analytical Storage for this Mongo Collection. If present and the value is set to `-1`, it is equal to infinity, and items don’t expire by default. If present and the value is set to some number `n` – items will expire `n` seconds after their last modified time.\n",
          "type": "integer"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/MongoCollectionAutoscaleSettings:MongoCollectionAutoscaleSettings",
          "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual manual destroy-apply. Requires `shard_key` to be set.\n"
        },
        "databaseName": {
          "description": "The name of the Cosmos DB Mongo Database in which the Cosmos DB Mongo Collection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "defaultTtlSeconds": {
          "description": "The default Time To Live in seconds. If the value is `-1` or `0`, items are not automatically expired.\n",
          "type": "integer"
        },
        "indices": {
          "description": "One or more `index` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/MongoCollectionIndex:MongoCollectionIndex"
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB Mongo Collection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB Mongo Collection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "shardKey": {
          "description": "The name of the key to partition on for sharding. There must not be any other unique index keys.\n",
          "type": "string"
        },
        "throughput": {
          "description": "The throughput of the MongoDB collection (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual manual destroy-apply.\n",
          "type": "integer"
        }
      },
      "properties": {
        "accountName": {
          "type": "string"
        },
        "analyticalStorageTtl": {
          "description": "The default time to live of Analytical Storage for this Mongo Collection. If present and the value is set to `-1`, it is equal to infinity, and items don’t expire by default. If present and the value is set to some number `n` – items will expire `n` seconds after their last modified time.\n",
          "type": "integer"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/MongoCollectionAutoscaleSettings:MongoCollectionAutoscaleSettings",
          "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual manual destroy-apply. Requires `shard_key` to be set.\n"
        },
        "databaseName": {
          "description": "The name of the Cosmos DB Mongo Database in which the Cosmos DB Mongo Collection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "defaultTtlSeconds": {
          "description": "The default Time To Live in seconds. If the value is `-1` or `0`, items are not automatically expired.\n",
          "type": "integer"
        },
        "indices": {
          "description": "One or more `index` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/MongoCollectionIndex:MongoCollectionIndex"
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB Mongo Collection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB Mongo Collection is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "shardKey": {
          "description": "The name of the key to partition on for sharding. There must not be any other unique index keys.\n",
          "type": "string"
        },
        "systemIndexes": {
          "description": "One or more `system_indexes` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/MongoCollectionSystemIndex:MongoCollectionSystemIndex"
          },
          "type": "array"
        },
        "throughput": {
          "description": "The throughput of the MongoDB collection (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual manual destroy-apply.\n",
          "type": "integer"
        }
      },
      "required": [
        "accountName",
        "databaseName",
        "name",
        "resourceGroupName",
        "systemIndexes",
        "throughput"
      ],
      "requiredInputs": [
        "accountName",
        "databaseName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MongoCollection resources.\n",
        "properties": {
          "accountName": {
            "type": "string"
          },
          "analyticalStorageTtl": {
            "description": "The default time to live of Analytical Storage for this Mongo Collection. If present and the value is set to `-1`, it is equal to infinity, and items don’t expire by default. If present and the value is set to some number `n` – items will expire `n` seconds after their last modified time.\n",
            "type": "integer"
          },
          "autoscaleSettings": {
            "$ref": "#/types/azure:cosmosdb/MongoCollectionAutoscaleSettings:MongoCollectionAutoscaleSettings",
            "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual manual destroy-apply. Requires `shard_key` to be set.\n"
          },
          "databaseName": {
            "description": "The name of the Cosmos DB Mongo Database in which the Cosmos DB Mongo Collection is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "defaultTtlSeconds": {
            "description": "The default Time To Live in seconds. If the value is `-1` or `0`, items are not automatically expired.\n",
            "type": "integer"
          },
          "indices": {
            "description": "One or more `index` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:cosmosdb/MongoCollectionIndex:MongoCollectionIndex"
            },
            "type": "array"
          },
          "name": {
            "description": "Specifies the name of the Cosmos DB Mongo Collection. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Cosmos DB Mongo Collection is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "shardKey": {
            "description": "The name of the key to partition on for sharding. There must not be any other unique index keys.\n",
            "type": "string"
          },
          "systemIndexes": {
            "description": "One or more `system_indexes` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:cosmosdb/MongoCollectionSystemIndex:MongoCollectionSystemIndex"
            },
            "type": "array"
          },
          "throughput": {
            "description": "The throughput of the MongoDB collection (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual manual destroy-apply.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:cosmosdb/mongoDatabase:MongoDatabase": {
      "description": "Manages a Mongo Database within a Cosmos DB Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleAccount = azure.cosmosdb.getAccount({\n    name: \"tfex-cosmosdb-account\",\n    resourceGroupName: \"tfex-cosmosdb-account-rg\",\n});\nconst exampleMongoDatabase = new azure.cosmosdb.MongoDatabase(\"exampleMongoDatabase\", {\n    resourceGroupName: exampleAccount.then(exampleAccount =\u003e exampleAccount.resourceGroupName),\n    accountName: exampleAccount.then(exampleAccount =\u003e exampleAccount.name),\n    throughput: 400,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_account = azure.cosmosdb.get_account(name=\"tfex-cosmosdb-account\",\n    resource_group_name=\"tfex-cosmosdb-account-rg\")\nexample_mongo_database = azure.cosmosdb.MongoDatabase(\"exampleMongoDatabase\",\n    resource_group_name=example_account.resource_group_name,\n    account_name=example_account.name,\n    throughput=400)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleAccount = Output.Create(Azure.CosmosDB.GetAccount.InvokeAsync(new Azure.CosmosDB.GetAccountArgs\n        {\n            Name = \"tfex-cosmosdb-account\",\n            ResourceGroupName = \"tfex-cosmosdb-account-rg\",\n        }));\n        var exampleMongoDatabase = new Azure.CosmosDB.MongoDatabase(\"exampleMongoDatabase\", new Azure.CosmosDB.MongoDatabaseArgs\n        {\n            ResourceGroupName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.ResourceGroupName),\n            AccountName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.Name),\n            Throughput = 400,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleAccount, err := cosmosdb.LookupAccount(ctx, \u0026cosmosdb.LookupAccountArgs{\n\t\t\tName:              \"tfex-cosmosdb-account\",\n\t\t\tResourceGroupName: \"tfex-cosmosdb-account-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cosmosdb.NewMongoDatabase(ctx, \"exampleMongoDatabase\", \u0026cosmosdb.MongoDatabaseArgs{\n\t\t\tResourceGroupName: pulumi.String(exampleAccount.ResourceGroupName),\n\t\t\tAccountName:       pulumi.String(exampleAccount.Name),\n\t\t\tThroughput:        pulumi.Int(400),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCosmos Mongo Database can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cosmosdb/mongoDatabase:MongoDatabase db1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.DocumentDB/databaseAccounts/account1/mongodbDatabases/db1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "The name of the Cosmos DB Mongo Database to create the table within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/MongoDatabaseAutoscaleSettings:MongoDatabaseAutoscaleSettings",
          "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB Mongo Database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB Mongo Database is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "throughput": {
          "description": "The throughput of the MongoDB collection (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
          "type": "integer"
        }
      },
      "properties": {
        "accountName": {
          "description": "The name of the Cosmos DB Mongo Database to create the table within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/MongoDatabaseAutoscaleSettings:MongoDatabaseAutoscaleSettings",
          "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB Mongo Database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB Mongo Database is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "throughput": {
          "description": "The throughput of the MongoDB collection (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
          "type": "integer"
        }
      },
      "required": [
        "accountName",
        "name",
        "resourceGroupName",
        "throughput"
      ],
      "requiredInputs": [
        "accountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MongoDatabase resources.\n",
        "properties": {
          "accountName": {
            "description": "The name of the Cosmos DB Mongo Database to create the table within. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "autoscaleSettings": {
            "$ref": "#/types/azure:cosmosdb/MongoDatabaseAutoscaleSettings:MongoDatabaseAutoscaleSettings",
            "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n"
          },
          "name": {
            "description": "Specifies the name of the Cosmos DB Mongo Database. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Cosmos DB Mongo Database is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "throughput": {
            "description": "The throughput of the MongoDB collection (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:cosmosdb/notebookWorkspace:NotebookWorkspace": {
      "description": "Manages an SQL Notebook Workspace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.cosmosdb.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    offerType: \"Standard\",\n    kind: \"GlobalDocumentDB\",\n    consistencyPolicy: {\n        consistencyLevel: \"BoundedStaleness\",\n    },\n    geoLocations: [{\n        location: exampleResourceGroup.location,\n        failoverPriority: 0,\n    }],\n});\nconst exampleNotebookWorkspace = new azure.cosmosdb.NotebookWorkspace(\"exampleNotebookWorkspace\", {\n    resourceGroupName: exampleAccount.resourceGroupName,\n    accountName: exampleAccount.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.cosmosdb.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    offer_type=\"Standard\",\n    kind=\"GlobalDocumentDB\",\n    consistency_policy=azure.cosmosdb.AccountConsistencyPolicyArgs(\n        consistency_level=\"BoundedStaleness\",\n    ),\n    geo_locations=[azure.cosmosdb.AccountGeoLocationArgs(\n        location=example_resource_group.location,\n        failover_priority=0,\n    )])\nexample_notebook_workspace = azure.cosmosdb.NotebookWorkspace(\"exampleNotebookWorkspace\",\n    resource_group_name=example_account.resource_group_name,\n    account_name=example_account.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.CosmosDB.Account(\"exampleAccount\", new Azure.CosmosDB.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            OfferType = \"Standard\",\n            Kind = \"GlobalDocumentDB\",\n            ConsistencyPolicy = new Azure.CosmosDB.Inputs.AccountConsistencyPolicyArgs\n            {\n                ConsistencyLevel = \"BoundedStaleness\",\n            },\n            GeoLocations = \n            {\n                new Azure.CosmosDB.Inputs.AccountGeoLocationArgs\n                {\n                    Location = exampleResourceGroup.Location,\n                    FailoverPriority = 0,\n                },\n            },\n        });\n        var exampleNotebookWorkspace = new Azure.CosmosDB.NotebookWorkspace(\"exampleNotebookWorkspace\", new Azure.CosmosDB.NotebookWorkspaceArgs\n        {\n            ResourceGroupName = exampleAccount.ResourceGroupName,\n            AccountName = exampleAccount.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := cosmosdb.NewAccount(ctx, \"exampleAccount\", \u0026cosmosdb.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tOfferType:         pulumi.String(\"Standard\"),\n\t\t\tKind:              pulumi.String(\"GlobalDocumentDB\"),\n\t\t\tConsistencyPolicy: \u0026cosmosdb.AccountConsistencyPolicyArgs{\n\t\t\t\tConsistencyLevel: pulumi.String(\"BoundedStaleness\"),\n\t\t\t},\n\t\t\tGeoLocations: cosmosdb.AccountGeoLocationArray{\n\t\t\t\t\u0026cosmosdb.AccountGeoLocationArgs{\n\t\t\t\t\tLocation:         exampleResourceGroup.Location,\n\t\t\t\t\tFailoverPriority: pulumi.Int(0),\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 = cosmosdb.NewNotebookWorkspace(ctx, \"exampleNotebookWorkspace\", \u0026cosmosdb.NotebookWorkspaceArgs{\n\t\t\tResourceGroupName: exampleAccount.ResourceGroupName,\n\t\t\tAccountName:       exampleAccount.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n=SQL Notebook Workspaces can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cosmosdb/notebookWorkspace:NotebookWorkspace example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DocumentDB/databaseAccounts/account1/notebookWorkspaces/notebookWorkspace1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "The name of the Cosmos DB Account to create the SQL Notebook Workspace within. Changing this forces a new SQL Notebook Workspace to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this SQL Notebook Workspace. Possible value is `default`. Changing this forces a new SQL Notebook Workspace to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the SQL Notebook Workspace should exist. Changing this forces a new SQL Notebook Workspace to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "accountName": {
          "description": "The name of the Cosmos DB Account to create the SQL Notebook Workspace within. Changing this forces a new SQL Notebook Workspace to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this SQL Notebook Workspace. Possible value is `default`. Changing this forces a new SQL Notebook Workspace to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the SQL Notebook Workspace should exist. Changing this forces a new SQL Notebook Workspace to be created.\n",
          "type": "string"
        },
        "serverEndpoint": {
          "description": "Specifies the endpoint of Notebook server.\n",
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "name",
        "resourceGroupName",
        "serverEndpoint"
      ],
      "requiredInputs": [
        "accountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NotebookWorkspace resources.\n",
        "properties": {
          "accountName": {
            "description": "The name of the Cosmos DB Account to create the SQL Notebook Workspace within. Changing this forces a new SQL Notebook Workspace to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this SQL Notebook Workspace. Possible value is `default`. Changing this forces a new SQL Notebook Workspace to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the SQL Notebook Workspace should exist. Changing this forces a new SQL Notebook Workspace to be created.\n",
            "type": "string"
          },
          "serverEndpoint": {
            "description": "Specifies the endpoint of Notebook server.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:cosmosdb/sqlContainer:SqlContainer": {
      "description": "Manages a SQL Container within a Cosmos DB Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.cosmosdb.SqlContainer(\"example\", {\n    resourceGroupName: azurerm_cosmosdb_account.example.resource_group_name,\n    accountName: azurerm_cosmosdb_account.example.name,\n    databaseName: azurerm_cosmosdb_sql_database.example.name,\n    partitionKeyPath: \"/definition/id\",\n    partitionKeyVersion: 1,\n    throughput: 400,\n    indexingPolicy: {\n        indexingMode: \"Consistent\",\n        includedPaths: [\n            {\n                path: \"/*\",\n            },\n            {\n                path: \"/included/?\",\n            },\n        ],\n        excludedPaths: [{\n            path: \"/excluded/?\",\n        }],\n    },\n    uniqueKeys: [{\n        paths: [\n            \"/definition/idlong\",\n            \"/definition/idshort\",\n        ],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.cosmosdb.SqlContainer(\"example\",\n    resource_group_name=azurerm_cosmosdb_account[\"example\"][\"resource_group_name\"],\n    account_name=azurerm_cosmosdb_account[\"example\"][\"name\"],\n    database_name=azurerm_cosmosdb_sql_database[\"example\"][\"name\"],\n    partition_key_path=\"/definition/id\",\n    partition_key_version=1,\n    throughput=400,\n    indexing_policy=azure.cosmosdb.SqlContainerIndexingPolicyArgs(\n        indexing_mode=\"Consistent\",\n        included_paths=[\n            azure.cosmosdb.SqlContainerIndexingPolicyIncludedPathArgs(\n                path=\"/*\",\n            ),\n            azure.cosmosdb.SqlContainerIndexingPolicyIncludedPathArgs(\n                path=\"/included/?\",\n            ),\n        ],\n        excluded_paths=[azure.cosmosdb.SqlContainerIndexingPolicyExcludedPathArgs(\n            path=\"/excluded/?\",\n        )],\n    ),\n    unique_keys=[azure.cosmosdb.SqlContainerUniqueKeyArgs(\n        paths=[\n            \"/definition/idlong\",\n            \"/definition/idshort\",\n        ],\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.CosmosDB.SqlContainer(\"example\", new Azure.CosmosDB.SqlContainerArgs\n        {\n            ResourceGroupName = azurerm_cosmosdb_account.Example.Resource_group_name,\n            AccountName = azurerm_cosmosdb_account.Example.Name,\n            DatabaseName = azurerm_cosmosdb_sql_database.Example.Name,\n            PartitionKeyPath = \"/definition/id\",\n            PartitionKeyVersion = 1,\n            Throughput = 400,\n            IndexingPolicy = new Azure.CosmosDB.Inputs.SqlContainerIndexingPolicyArgs\n            {\n                IndexingMode = \"Consistent\",\n                IncludedPaths = \n                {\n                    new Azure.CosmosDB.Inputs.SqlContainerIndexingPolicyIncludedPathArgs\n                    {\n                        Path = \"/*\",\n                    },\n                    new Azure.CosmosDB.Inputs.SqlContainerIndexingPolicyIncludedPathArgs\n                    {\n                        Path = \"/included/?\",\n                    },\n                },\n                ExcludedPaths = \n                {\n                    new Azure.CosmosDB.Inputs.SqlContainerIndexingPolicyExcludedPathArgs\n                    {\n                        Path = \"/excluded/?\",\n                    },\n                },\n            },\n            UniqueKeys = \n            {\n                new Azure.CosmosDB.Inputs.SqlContainerUniqueKeyArgs\n                {\n                    Paths = \n                    {\n                        \"/definition/idlong\",\n                        \"/definition/idshort\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\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 := cosmosdb.NewSqlContainer(ctx, \"example\", \u0026cosmosdb.SqlContainerArgs{\n\t\t\tResourceGroupName:   pulumi.Any(azurerm_cosmosdb_account.Example.Resource_group_name),\n\t\t\tAccountName:         pulumi.Any(azurerm_cosmosdb_account.Example.Name),\n\t\t\tDatabaseName:        pulumi.Any(azurerm_cosmosdb_sql_database.Example.Name),\n\t\t\tPartitionKeyPath:    pulumi.String(\"/definition/id\"),\n\t\t\tPartitionKeyVersion: pulumi.Int(1),\n\t\t\tThroughput:          pulumi.Int(400),\n\t\t\tIndexingPolicy: \u0026cosmosdb.SqlContainerIndexingPolicyArgs{\n\t\t\t\tIndexingMode: pulumi.String(\"Consistent\"),\n\t\t\t\tIncludedPaths: cosmosdb.SqlContainerIndexingPolicyIncludedPathArray{\n\t\t\t\t\t\u0026cosmosdb.SqlContainerIndexingPolicyIncludedPathArgs{\n\t\t\t\t\t\tPath: pulumi.String(\"/*\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026cosmosdb.SqlContainerIndexingPolicyIncludedPathArgs{\n\t\t\t\t\t\tPath: pulumi.String(\"/included/?\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tExcludedPaths: cosmosdb.SqlContainerIndexingPolicyExcludedPathArray{\n\t\t\t\t\t\u0026cosmosdb.SqlContainerIndexingPolicyExcludedPathArgs{\n\t\t\t\t\t\tPath: pulumi.String(\"/excluded/?\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tUniqueKeys: cosmosdb.SqlContainerUniqueKeyArray{\n\t\t\t\t\u0026cosmosdb.SqlContainerUniqueKeyArgs{\n\t\t\t\t\tPaths: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/definition/idlong\"),\n\t\t\t\t\t\tpulumi.String(\"/definition/idshort\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCosmos SQL Containers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cosmosdb/sqlContainer:SqlContainer example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DocumentDB/databaseAccounts/account1/sqlDatabases/database1/containers/container1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "The name of the Cosmos DB Account to create the container within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "analyticalStorageTtl": {
          "description": "The default time to live of Analytical Storage for this SQL container. If present and the value is set to `-1`, it is equal to infinity, and items don’t expire by default. If present and the value is set to some number `n` – items will expire `n` seconds after their last modified time.\n",
          "type": "integer"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/SqlContainerAutoscaleSettings:SqlContainerAutoscaleSettings",
          "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply. Requires `partition_key_path` to be set.\n"
        },
        "conflictResolutionPolicy": {
          "$ref": "#/types/azure:cosmosdb/SqlContainerConflictResolutionPolicy:SqlContainerConflictResolutionPolicy",
          "description": "A `conflict_resolution_policy` blocks as defined below.\n"
        },
        "databaseName": {
          "description": "The name of the Cosmos DB SQL Database to create the container within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "defaultTtl": {
          "description": "The default time to live of SQL container. If missing, items are not expired automatically. If present and the value is set to `-1`, it is equal to infinity, and items don’t expire by default. If present and the value is set to some number `n` – items will expire `n` seconds after their last modified time.\n",
          "type": "integer"
        },
        "indexingPolicy": {
          "$ref": "#/types/azure:cosmosdb/SqlContainerIndexingPolicy:SqlContainerIndexingPolicy",
          "description": "An `indexing_policy` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB SQL Container. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partitionKeyPath": {
          "description": "Define a partition key. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partitionKeyVersion": {
          "description": "Define a partition key version. Changing this forces a new resource to be created. Possible values are `1 `and `2`. This should be set to `2` in order to use large partition keys.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB SQL Container is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "throughput": {
          "description": "The throughput of SQL container (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon container creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
          "type": "integer"
        },
        "uniqueKeys": {
          "description": "One or more `unique_key` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/SqlContainerUniqueKey:SqlContainerUniqueKey"
          },
          "type": "array"
        }
      },
      "properties": {
        "accountName": {
          "description": "The name of the Cosmos DB Account to create the container within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "analyticalStorageTtl": {
          "description": "The default time to live of Analytical Storage for this SQL container. If present and the value is set to `-1`, it is equal to infinity, and items don’t expire by default. If present and the value is set to some number `n` – items will expire `n` seconds after their last modified time.\n",
          "type": "integer"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/SqlContainerAutoscaleSettings:SqlContainerAutoscaleSettings",
          "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply. Requires `partition_key_path` to be set.\n"
        },
        "conflictResolutionPolicy": {
          "$ref": "#/types/azure:cosmosdb/SqlContainerConflictResolutionPolicy:SqlContainerConflictResolutionPolicy",
          "description": "A `conflict_resolution_policy` blocks as defined below.\n"
        },
        "databaseName": {
          "description": "The name of the Cosmos DB SQL Database to create the container within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "defaultTtl": {
          "description": "The default time to live of SQL container. If missing, items are not expired automatically. If present and the value is set to `-1`, it is equal to infinity, and items don’t expire by default. If present and the value is set to some number `n` – items will expire `n` seconds after their last modified time.\n",
          "type": "integer"
        },
        "indexingPolicy": {
          "$ref": "#/types/azure:cosmosdb/SqlContainerIndexingPolicy:SqlContainerIndexingPolicy",
          "description": "An `indexing_policy` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB SQL Container. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partitionKeyPath": {
          "description": "Define a partition key. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partitionKeyVersion": {
          "description": "Define a partition key version. Changing this forces a new resource to be created. Possible values are `1 `and `2`. This should be set to `2` in order to use large partition keys.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB SQL Container is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "throughput": {
          "description": "The throughput of SQL container (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon container creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
          "type": "integer"
        },
        "uniqueKeys": {
          "description": "One or more `unique_key` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/SqlContainerUniqueKey:SqlContainerUniqueKey"
          },
          "type": "array"
        }
      },
      "required": [
        "accountName",
        "conflictResolutionPolicy",
        "databaseName",
        "defaultTtl",
        "indexingPolicy",
        "name",
        "partitionKeyPath",
        "resourceGroupName",
        "throughput"
      ],
      "requiredInputs": [
        "accountName",
        "databaseName",
        "partitionKeyPath",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SqlContainer resources.\n",
        "properties": {
          "accountName": {
            "description": "The name of the Cosmos DB Account to create the container within. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "analyticalStorageTtl": {
            "description": "The default time to live of Analytical Storage for this SQL container. If present and the value is set to `-1`, it is equal to infinity, and items don’t expire by default. If present and the value is set to some number `n` – items will expire `n` seconds after their last modified time.\n",
            "type": "integer"
          },
          "autoscaleSettings": {
            "$ref": "#/types/azure:cosmosdb/SqlContainerAutoscaleSettings:SqlContainerAutoscaleSettings",
            "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply. Requires `partition_key_path` to be set.\n"
          },
          "conflictResolutionPolicy": {
            "$ref": "#/types/azure:cosmosdb/SqlContainerConflictResolutionPolicy:SqlContainerConflictResolutionPolicy",
            "description": "A `conflict_resolution_policy` blocks as defined below.\n"
          },
          "databaseName": {
            "description": "The name of the Cosmos DB SQL Database to create the container within. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "defaultTtl": {
            "description": "The default time to live of SQL container. If missing, items are not expired automatically. If present and the value is set to `-1`, it is equal to infinity, and items don’t expire by default. If present and the value is set to some number `n` – items will expire `n` seconds after their last modified time.\n",
            "type": "integer"
          },
          "indexingPolicy": {
            "$ref": "#/types/azure:cosmosdb/SqlContainerIndexingPolicy:SqlContainerIndexingPolicy",
            "description": "An `indexing_policy` block as defined below.\n"
          },
          "name": {
            "description": "Specifies the name of the Cosmos DB SQL Container. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "partitionKeyPath": {
            "description": "Define a partition key. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "partitionKeyVersion": {
            "description": "Define a partition key version. Changing this forces a new resource to be created. Possible values are `1 `and `2`. This should be set to `2` in order to use large partition keys.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Cosmos DB SQL Container is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "throughput": {
            "description": "The throughput of SQL container (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon container creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
            "type": "integer"
          },
          "uniqueKeys": {
            "description": "One or more `unique_key` blocks as defined below. Changing this forces a new resource to be created.\n",
            "items": {
              "$ref": "#/types/azure:cosmosdb/SqlContainerUniqueKey:SqlContainerUniqueKey"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:cosmosdb/sqlDatabase:SqlDatabase": {
      "description": "Manages a SQL Database within a Cosmos DB Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleAccount = azure.cosmosdb.getAccount({\n    name: \"tfex-cosmosdb-account\",\n    resourceGroupName: \"tfex-cosmosdb-account-rg\",\n});\nconst exampleSqlDatabase = new azure.cosmosdb.SqlDatabase(\"exampleSqlDatabase\", {\n    resourceGroupName: exampleAccount.then(exampleAccount =\u003e exampleAccount.resourceGroupName),\n    accountName: exampleAccount.then(exampleAccount =\u003e exampleAccount.name),\n    throughput: 400,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_account = azure.cosmosdb.get_account(name=\"tfex-cosmosdb-account\",\n    resource_group_name=\"tfex-cosmosdb-account-rg\")\nexample_sql_database = azure.cosmosdb.SqlDatabase(\"exampleSqlDatabase\",\n    resource_group_name=example_account.resource_group_name,\n    account_name=example_account.name,\n    throughput=400)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleAccount = Output.Create(Azure.CosmosDB.GetAccount.InvokeAsync(new Azure.CosmosDB.GetAccountArgs\n        {\n            Name = \"tfex-cosmosdb-account\",\n            ResourceGroupName = \"tfex-cosmosdb-account-rg\",\n        }));\n        var exampleSqlDatabase = new Azure.CosmosDB.SqlDatabase(\"exampleSqlDatabase\", new Azure.CosmosDB.SqlDatabaseArgs\n        {\n            ResourceGroupName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.ResourceGroupName),\n            AccountName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.Name),\n            Throughput = 400,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleAccount, err := cosmosdb.LookupAccount(ctx, \u0026cosmosdb.LookupAccountArgs{\n\t\t\tName:              \"tfex-cosmosdb-account\",\n\t\t\tResourceGroupName: \"tfex-cosmosdb-account-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cosmosdb.NewSqlDatabase(ctx, \"exampleSqlDatabase\", \u0026cosmosdb.SqlDatabaseArgs{\n\t\t\tResourceGroupName: pulumi.String(exampleAccount.ResourceGroupName),\n\t\t\tAccountName:       pulumi.String(exampleAccount.Name),\n\t\t\tThroughput:        pulumi.Int(400),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCosmos SQL Database can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cosmosdb/sqlDatabase:SqlDatabase db1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.DocumentDB/databaseAccounts/account1/sqlDatabases/db1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "The name of the Cosmos DB SQL Database to create the table within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/SqlDatabaseAutoscaleSettings:SqlDatabaseAutoscaleSettings",
          "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB SQL Database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB SQL Database is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "throughput": {
          "type": "integer"
        }
      },
      "properties": {
        "accountName": {
          "description": "The name of the Cosmos DB SQL Database to create the table within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/SqlDatabaseAutoscaleSettings:SqlDatabaseAutoscaleSettings",
          "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB SQL Database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB SQL Database is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "throughput": {
          "type": "integer"
        }
      },
      "required": [
        "accountName",
        "name",
        "resourceGroupName",
        "throughput"
      ],
      "requiredInputs": [
        "accountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SqlDatabase resources.\n",
        "properties": {
          "accountName": {
            "description": "The name of the Cosmos DB SQL Database to create the table within. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "autoscaleSettings": {
            "$ref": "#/types/azure:cosmosdb/SqlDatabaseAutoscaleSettings:SqlDatabaseAutoscaleSettings",
            "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n"
          },
          "name": {
            "description": "Specifies the name of the Cosmos DB SQL Database. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Cosmos DB SQL Database is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "throughput": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:cosmosdb/sqlFunction:SqlFunction": {
      "description": "Manages an SQL User Defined Function.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleAccount = azure.cosmosdb.getAccount({\n    name: \"tfex-cosmosdb-account\",\n    resourceGroupName: \"tfex-cosmosdb-account-rg\",\n});\nconst exampleSqlDatabase = new azure.cosmosdb.SqlDatabase(\"exampleSqlDatabase\", {\n    resourceGroupName: exampleAccount.then(exampleAccount =\u003e exampleAccount.resourceGroupName),\n    accountName: exampleAccount.then(exampleAccount =\u003e exampleAccount.name),\n    throughput: 400,\n});\nconst exampleSqlContainer = new azure.cosmosdb.SqlContainer(\"exampleSqlContainer\", {\n    resourceGroupName: azurerm_cosmosdb_account.example.resource_group_name,\n    accountName: azurerm_cosmosdb_account.example.name,\n    databaseName: exampleSqlDatabase.name,\n    partitionKeyPath: \"/id\",\n});\nconst exampleSqlFunction = new azure.cosmosdb.SqlFunction(\"exampleSqlFunction\", {\n    containerId: exampleSqlContainer.id,\n    body: \"function trigger(){}\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_account = azure.cosmosdb.get_account(name=\"tfex-cosmosdb-account\",\n    resource_group_name=\"tfex-cosmosdb-account-rg\")\nexample_sql_database = azure.cosmosdb.SqlDatabase(\"exampleSqlDatabase\",\n    resource_group_name=example_account.resource_group_name,\n    account_name=example_account.name,\n    throughput=400)\nexample_sql_container = azure.cosmosdb.SqlContainer(\"exampleSqlContainer\",\n    resource_group_name=azurerm_cosmosdb_account[\"example\"][\"resource_group_name\"],\n    account_name=azurerm_cosmosdb_account[\"example\"][\"name\"],\n    database_name=example_sql_database.name,\n    partition_key_path=\"/id\")\nexample_sql_function = azure.cosmosdb.SqlFunction(\"exampleSqlFunction\",\n    container_id=example_sql_container.id,\n    body=\"function trigger(){}\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleAccount = Output.Create(Azure.CosmosDB.GetAccount.InvokeAsync(new Azure.CosmosDB.GetAccountArgs\n        {\n            Name = \"tfex-cosmosdb-account\",\n            ResourceGroupName = \"tfex-cosmosdb-account-rg\",\n        }));\n        var exampleSqlDatabase = new Azure.CosmosDB.SqlDatabase(\"exampleSqlDatabase\", new Azure.CosmosDB.SqlDatabaseArgs\n        {\n            ResourceGroupName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.ResourceGroupName),\n            AccountName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.Name),\n            Throughput = 400,\n        });\n        var exampleSqlContainer = new Azure.CosmosDB.SqlContainer(\"exampleSqlContainer\", new Azure.CosmosDB.SqlContainerArgs\n        {\n            ResourceGroupName = azurerm_cosmosdb_account.Example.Resource_group_name,\n            AccountName = azurerm_cosmosdb_account.Example.Name,\n            DatabaseName = exampleSqlDatabase.Name,\n            PartitionKeyPath = \"/id\",\n        });\n        var exampleSqlFunction = new Azure.CosmosDB.SqlFunction(\"exampleSqlFunction\", new Azure.CosmosDB.SqlFunctionArgs\n        {\n            ContainerId = exampleSqlContainer.Id,\n            Body = \"function trigger(){}\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleAccount, err := cosmosdb.LookupAccount(ctx, \u0026cosmosdb.LookupAccountArgs{\n\t\t\tName:              \"tfex-cosmosdb-account\",\n\t\t\tResourceGroupName: \"tfex-cosmosdb-account-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlDatabase, err := cosmosdb.NewSqlDatabase(ctx, \"exampleSqlDatabase\", \u0026cosmosdb.SqlDatabaseArgs{\n\t\t\tResourceGroupName: pulumi.String(exampleAccount.ResourceGroupName),\n\t\t\tAccountName:       pulumi.String(exampleAccount.Name),\n\t\t\tThroughput:        pulumi.Int(400),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlContainer, err := cosmosdb.NewSqlContainer(ctx, \"exampleSqlContainer\", \u0026cosmosdb.SqlContainerArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_cosmosdb_account.Example.Resource_group_name),\n\t\t\tAccountName:       pulumi.Any(azurerm_cosmosdb_account.Example.Name),\n\t\t\tDatabaseName:      exampleSqlDatabase.Name,\n\t\t\tPartitionKeyPath:  pulumi.String(\"/id\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cosmosdb.NewSqlFunction(ctx, \"exampleSqlFunction\", \u0026cosmosdb.SqlFunctionArgs{\n\t\t\tContainerId: exampleSqlContainer.ID(),\n\t\t\tBody:        pulumi.String(\"function trigger(){}\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL User Defined Functions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cosmosdb/sqlFunction:SqlFunction example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DocumentDB/databaseAccounts/account1/sqlDatabases/database1/containers/container1/userDefinedFunctions/userDefinedFunction1\n```\n\n ",
      "inputProperties": {
        "body": {
          "description": "Body of the User Defined Function.\n",
          "type": "string"
        },
        "containerId": {
          "description": "The id of the Cosmos DB SQL Container to create the SQL User Defined Function within. Changing this forces a new SQL User Defined Function to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this SQL User Defined Function. Changing this forces a new SQL User Defined Function to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "body": {
          "description": "Body of the User Defined Function.\n",
          "type": "string"
        },
        "containerId": {
          "description": "The id of the Cosmos DB SQL Container to create the SQL User Defined Function within. Changing this forces a new SQL User Defined Function to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this SQL User Defined Function. Changing this forces a new SQL User Defined Function to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "body",
        "containerId",
        "name"
      ],
      "requiredInputs": [
        "body",
        "containerId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SqlFunction resources.\n",
        "properties": {
          "body": {
            "description": "Body of the User Defined Function.\n",
            "type": "string"
          },
          "containerId": {
            "description": "The id of the Cosmos DB SQL Container to create the SQL User Defined Function within. Changing this forces a new SQL User Defined Function to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this SQL User Defined Function. Changing this forces a new SQL User Defined Function to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:cosmosdb/sqlStoredProcedure:SqlStoredProcedure": {
      "description": "Manages a SQL Stored Procedure within a Cosmos DB Account SQL Database.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleAccount = azure.cosmosdb.getAccount({\n    name: \"tfex-cosmosdb-account\",\n    resourceGroupName: \"tfex-cosmosdb-account-rg\",\n});\nconst exampleSqlDatabase = new azure.cosmosdb.SqlDatabase(\"exampleSqlDatabase\", {\n    resourceGroupName: exampleAccount.then(exampleAccount =\u003e exampleAccount.resourceGroupName),\n    accountName: exampleAccount.then(exampleAccount =\u003e exampleAccount.name),\n    throughput: 400,\n});\nconst exampleSqlContainer = new azure.cosmosdb.SqlContainer(\"exampleSqlContainer\", {\n    resourceGroupName: azurerm_cosmosdb_account.example.resource_group_name,\n    accountName: azurerm_cosmosdb_account.example.name,\n    databaseName: exampleSqlDatabase.name,\n    partitionKeyPath: \"/id\",\n});\nconst exampleSqlStoredProcedure = new azure.cosmosdb.SqlStoredProcedure(\"exampleSqlStoredProcedure\", {\n    resourceGroupName: azurerm_cosmosdb_account.example.resource_group_name,\n    accountName: azurerm_cosmosdb_account.example.name,\n    databaseName: exampleSqlDatabase.name,\n    containerName: exampleSqlContainer.name,\n    body: \"  \tfunction () { var context = getContext(); var response = context.getResponse(); response.setBody('Hello, World'); }\\n\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_account = azure.cosmosdb.get_account(name=\"tfex-cosmosdb-account\",\n    resource_group_name=\"tfex-cosmosdb-account-rg\")\nexample_sql_database = azure.cosmosdb.SqlDatabase(\"exampleSqlDatabase\",\n    resource_group_name=example_account.resource_group_name,\n    account_name=example_account.name,\n    throughput=400)\nexample_sql_container = azure.cosmosdb.SqlContainer(\"exampleSqlContainer\",\n    resource_group_name=azurerm_cosmosdb_account[\"example\"][\"resource_group_name\"],\n    account_name=azurerm_cosmosdb_account[\"example\"][\"name\"],\n    database_name=example_sql_database.name,\n    partition_key_path=\"/id\")\nexample_sql_stored_procedure = azure.cosmosdb.SqlStoredProcedure(\"exampleSqlStoredProcedure\",\n    resource_group_name=azurerm_cosmosdb_account[\"example\"][\"resource_group_name\"],\n    account_name=azurerm_cosmosdb_account[\"example\"][\"name\"],\n    database_name=example_sql_database.name,\n    container_name=example_sql_container.name,\n    body=\"  \tfunction () { var context = getContext(); var response = context.getResponse(); response.setBody('Hello, World'); }\\n\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleAccount = Output.Create(Azure.CosmosDB.GetAccount.InvokeAsync(new Azure.CosmosDB.GetAccountArgs\n        {\n            Name = \"tfex-cosmosdb-account\",\n            ResourceGroupName = \"tfex-cosmosdb-account-rg\",\n        }));\n        var exampleSqlDatabase = new Azure.CosmosDB.SqlDatabase(\"exampleSqlDatabase\", new Azure.CosmosDB.SqlDatabaseArgs\n        {\n            ResourceGroupName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.ResourceGroupName),\n            AccountName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.Name),\n            Throughput = 400,\n        });\n        var exampleSqlContainer = new Azure.CosmosDB.SqlContainer(\"exampleSqlContainer\", new Azure.CosmosDB.SqlContainerArgs\n        {\n            ResourceGroupName = azurerm_cosmosdb_account.Example.Resource_group_name,\n            AccountName = azurerm_cosmosdb_account.Example.Name,\n            DatabaseName = exampleSqlDatabase.Name,\n            PartitionKeyPath = \"/id\",\n        });\n        var exampleSqlStoredProcedure = new Azure.CosmosDB.SqlStoredProcedure(\"exampleSqlStoredProcedure\", new Azure.CosmosDB.SqlStoredProcedureArgs\n        {\n            ResourceGroupName = azurerm_cosmosdb_account.Example.Resource_group_name,\n            AccountName = azurerm_cosmosdb_account.Example.Name,\n            DatabaseName = exampleSqlDatabase.Name,\n            ContainerName = exampleSqlContainer.Name,\n            Body = @\"  \tfunction () { var context = getContext(); var response = context.getResponse(); response.setBody('Hello, World'); }\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleAccount, err := cosmosdb.LookupAccount(ctx, \u0026cosmosdb.LookupAccountArgs{\n\t\t\tName:              \"tfex-cosmosdb-account\",\n\t\t\tResourceGroupName: \"tfex-cosmosdb-account-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlDatabase, err := cosmosdb.NewSqlDatabase(ctx, \"exampleSqlDatabase\", \u0026cosmosdb.SqlDatabaseArgs{\n\t\t\tResourceGroupName: pulumi.String(exampleAccount.ResourceGroupName),\n\t\t\tAccountName:       pulumi.String(exampleAccount.Name),\n\t\t\tThroughput:        pulumi.Int(400),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlContainer, err := cosmosdb.NewSqlContainer(ctx, \"exampleSqlContainer\", \u0026cosmosdb.SqlContainerArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_cosmosdb_account.Example.Resource_group_name),\n\t\t\tAccountName:       pulumi.Any(azurerm_cosmosdb_account.Example.Name),\n\t\t\tDatabaseName:      exampleSqlDatabase.Name,\n\t\t\tPartitionKeyPath:  pulumi.String(\"/id\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cosmosdb.NewSqlStoredProcedure(ctx, \"exampleSqlStoredProcedure\", \u0026cosmosdb.SqlStoredProcedureArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_cosmosdb_account.Example.Resource_group_name),\n\t\t\tAccountName:       pulumi.Any(azurerm_cosmosdb_account.Example.Name),\n\t\t\tDatabaseName:      exampleSqlDatabase.Name,\n\t\t\tContainerName:     exampleSqlContainer.Name,\n\t\t\tBody: pulumi.String(\"  \tfunction () { var context = getContext(); var response = context.getResponse(); response.setBody('Hello, World'); }\\n\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCosmosDB SQL Stored Procedures can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cosmosdb/sqlStoredProcedure:SqlStoredProcedure db1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.DocumentDB/databaseAccounts/account1/sqlDatabases/db1/containers/c1/storedProcedures/sp1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "The name of the Cosmos DB Account to create the stored procedure within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "body": {
          "description": "The body of the stored procedure.\n",
          "type": "string"
        },
        "containerName": {
          "description": "The name of the Cosmos DB SQL Container to create the stored procedure within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "databaseName": {
          "description": "The name of the Cosmos DB SQL Database to create the stored procedure within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB SQL Stored Procedure. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB SQL Database is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "accountName": {
          "description": "The name of the Cosmos DB Account to create the stored procedure within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "body": {
          "description": "The body of the stored procedure.\n",
          "type": "string"
        },
        "containerName": {
          "description": "The name of the Cosmos DB SQL Container to create the stored procedure within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "databaseName": {
          "description": "The name of the Cosmos DB SQL Database to create the stored procedure within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB SQL Stored Procedure. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB SQL Database is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "body",
        "containerName",
        "databaseName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "accountName",
        "body",
        "containerName",
        "databaseName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SqlStoredProcedure resources.\n",
        "properties": {
          "accountName": {
            "description": "The name of the Cosmos DB Account to create the stored procedure within. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "body": {
            "description": "The body of the stored procedure.\n",
            "type": "string"
          },
          "containerName": {
            "description": "The name of the Cosmos DB SQL Container to create the stored procedure within. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "databaseName": {
            "description": "The name of the Cosmos DB SQL Database to create the stored procedure within. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Cosmos DB SQL Stored Procedure. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Cosmos DB SQL Database is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:cosmosdb/sqlTrigger:SqlTrigger": {
      "description": "Manages an SQL Trigger.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleAccount = azure.cosmosdb.getAccount({\n    name: \"tfex-cosmosdb-account\",\n    resourceGroupName: \"tfex-cosmosdb-account-rg\",\n});\nconst exampleSqlDatabase = new azure.cosmosdb.SqlDatabase(\"exampleSqlDatabase\", {\n    resourceGroupName: exampleAccount.then(exampleAccount =\u003e exampleAccount.resourceGroupName),\n    accountName: exampleAccount.then(exampleAccount =\u003e exampleAccount.name),\n    throughput: 400,\n});\nconst exampleSqlContainer = new azure.cosmosdb.SqlContainer(\"exampleSqlContainer\", {\n    resourceGroupName: azurerm_cosmosdb_account.example.resource_group_name,\n    accountName: azurerm_cosmosdb_account.example.name,\n    databaseName: exampleSqlDatabase.name,\n    partitionKeyPath: \"/id\",\n});\nconst exampleSqlTrigger = new azure.cosmosdb.SqlTrigger(\"exampleSqlTrigger\", {\n    containerId: exampleSqlContainer.id,\n    body: \"function trigger(){}\",\n    operation: \"Delete\",\n    type: \"Post\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_account = azure.cosmosdb.get_account(name=\"tfex-cosmosdb-account\",\n    resource_group_name=\"tfex-cosmosdb-account-rg\")\nexample_sql_database = azure.cosmosdb.SqlDatabase(\"exampleSqlDatabase\",\n    resource_group_name=example_account.resource_group_name,\n    account_name=example_account.name,\n    throughput=400)\nexample_sql_container = azure.cosmosdb.SqlContainer(\"exampleSqlContainer\",\n    resource_group_name=azurerm_cosmosdb_account[\"example\"][\"resource_group_name\"],\n    account_name=azurerm_cosmosdb_account[\"example\"][\"name\"],\n    database_name=example_sql_database.name,\n    partition_key_path=\"/id\")\nexample_sql_trigger = azure.cosmosdb.SqlTrigger(\"exampleSqlTrigger\",\n    container_id=example_sql_container.id,\n    body=\"function trigger(){}\",\n    operation=\"Delete\",\n    type=\"Post\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleAccount = Output.Create(Azure.CosmosDB.GetAccount.InvokeAsync(new Azure.CosmosDB.GetAccountArgs\n        {\n            Name = \"tfex-cosmosdb-account\",\n            ResourceGroupName = \"tfex-cosmosdb-account-rg\",\n        }));\n        var exampleSqlDatabase = new Azure.CosmosDB.SqlDatabase(\"exampleSqlDatabase\", new Azure.CosmosDB.SqlDatabaseArgs\n        {\n            ResourceGroupName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.ResourceGroupName),\n            AccountName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.Name),\n            Throughput = 400,\n        });\n        var exampleSqlContainer = new Azure.CosmosDB.SqlContainer(\"exampleSqlContainer\", new Azure.CosmosDB.SqlContainerArgs\n        {\n            ResourceGroupName = azurerm_cosmosdb_account.Example.Resource_group_name,\n            AccountName = azurerm_cosmosdb_account.Example.Name,\n            DatabaseName = exampleSqlDatabase.Name,\n            PartitionKeyPath = \"/id\",\n        });\n        var exampleSqlTrigger = new Azure.CosmosDB.SqlTrigger(\"exampleSqlTrigger\", new Azure.CosmosDB.SqlTriggerArgs\n        {\n            ContainerId = exampleSqlContainer.Id,\n            Body = \"function trigger(){}\",\n            Operation = \"Delete\",\n            Type = \"Post\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleAccount, err := cosmosdb.LookupAccount(ctx, \u0026cosmosdb.LookupAccountArgs{\n\t\t\tName:              \"tfex-cosmosdb-account\",\n\t\t\tResourceGroupName: \"tfex-cosmosdb-account-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlDatabase, err := cosmosdb.NewSqlDatabase(ctx, \"exampleSqlDatabase\", \u0026cosmosdb.SqlDatabaseArgs{\n\t\t\tResourceGroupName: pulumi.String(exampleAccount.ResourceGroupName),\n\t\t\tAccountName:       pulumi.String(exampleAccount.Name),\n\t\t\tThroughput:        pulumi.Int(400),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlContainer, err := cosmosdb.NewSqlContainer(ctx, \"exampleSqlContainer\", \u0026cosmosdb.SqlContainerArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_cosmosdb_account.Example.Resource_group_name),\n\t\t\tAccountName:       pulumi.Any(azurerm_cosmosdb_account.Example.Name),\n\t\t\tDatabaseName:      exampleSqlDatabase.Name,\n\t\t\tPartitionKeyPath:  pulumi.String(\"/id\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cosmosdb.NewSqlTrigger(ctx, \"exampleSqlTrigger\", \u0026cosmosdb.SqlTriggerArgs{\n\t\t\tContainerId: exampleSqlContainer.ID(),\n\t\t\tBody:        pulumi.String(\"function trigger(){}\"),\n\t\t\tOperation:   pulumi.String(\"Delete\"),\n\t\t\tType:        pulumi.String(\"Post\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL Triggers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cosmosdb/sqlTrigger:SqlTrigger example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DocumentDB/databaseAccounts/account1/sqlDatabases/database1/containers/container1/triggers/trigger1\n```\n\n ",
      "inputProperties": {
        "body": {
          "description": "Body of the Trigger.\n",
          "type": "string"
        },
        "containerId": {
          "description": "The id of the Cosmos DB SQL Container to create the SQL Trigger within. Changing this forces a new SQL Trigger to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this SQL Trigger. Changing this forces a new SQL Trigger to be created.\n",
          "type": "string"
        },
        "operation": {
          "description": "The operation the trigger is associated with. Possible values are `All`, `Create`, `Update`, `Delete` and `Replace`.\n",
          "type": "string"
        },
        "type": {
          "description": "Type of the Trigger. Possible values are `Pre` and `Post`.\n",
          "type": "string"
        }
      },
      "properties": {
        "body": {
          "description": "Body of the Trigger.\n",
          "type": "string"
        },
        "containerId": {
          "description": "The id of the Cosmos DB SQL Container to create the SQL Trigger within. Changing this forces a new SQL Trigger to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this SQL Trigger. Changing this forces a new SQL Trigger to be created.\n",
          "type": "string"
        },
        "operation": {
          "description": "The operation the trigger is associated with. Possible values are `All`, `Create`, `Update`, `Delete` and `Replace`.\n",
          "type": "string"
        },
        "type": {
          "description": "Type of the Trigger. Possible values are `Pre` and `Post`.\n",
          "type": "string"
        }
      },
      "required": [
        "body",
        "containerId",
        "name",
        "operation",
        "type"
      ],
      "requiredInputs": [
        "body",
        "containerId",
        "operation",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SqlTrigger resources.\n",
        "properties": {
          "body": {
            "description": "Body of the Trigger.\n",
            "type": "string"
          },
          "containerId": {
            "description": "The id of the Cosmos DB SQL Container to create the SQL Trigger within. Changing this forces a new SQL Trigger to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this SQL Trigger. Changing this forces a new SQL Trigger to be created.\n",
            "type": "string"
          },
          "operation": {
            "description": "The operation the trigger is associated with. Possible values are `All`, `Create`, `Update`, `Delete` and `Replace`.\n",
            "type": "string"
          },
          "type": {
            "description": "Type of the Trigger. Possible values are `Pre` and `Post`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:cosmosdb/table:Table": {
      "description": "Manages a Table within a Cosmos DB Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleAccount = azure.cosmosdb.getAccount({\n    name: \"tfex-cosmosdb-account\",\n    resourceGroupName: \"tfex-cosmosdb-account-rg\",\n});\nconst exampleTable = new azure.cosmosdb.Table(\"exampleTable\", {\n    resourceGroupName: exampleAccount.then(exampleAccount =\u003e exampleAccount.resourceGroupName),\n    accountName: exampleAccount.then(exampleAccount =\u003e exampleAccount.name),\n    throughput: 400,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_account = azure.cosmosdb.get_account(name=\"tfex-cosmosdb-account\",\n    resource_group_name=\"tfex-cosmosdb-account-rg\")\nexample_table = azure.cosmosdb.Table(\"exampleTable\",\n    resource_group_name=example_account.resource_group_name,\n    account_name=example_account.name,\n    throughput=400)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleAccount = Output.Create(Azure.CosmosDB.GetAccount.InvokeAsync(new Azure.CosmosDB.GetAccountArgs\n        {\n            Name = \"tfex-cosmosdb-account\",\n            ResourceGroupName = \"tfex-cosmosdb-account-rg\",\n        }));\n        var exampleTable = new Azure.CosmosDB.Table(\"exampleTable\", new Azure.CosmosDB.TableArgs\n        {\n            ResourceGroupName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.ResourceGroupName),\n            AccountName = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.Name),\n            Throughput = 400,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/cosmosdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleAccount, err := cosmosdb.LookupAccount(ctx, \u0026cosmosdb.LookupAccountArgs{\n\t\t\tName:              \"tfex-cosmosdb-account\",\n\t\t\tResourceGroupName: \"tfex-cosmosdb-account-rg\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cosmosdb.NewTable(ctx, \"exampleTable\", \u0026cosmosdb.TableArgs{\n\t\t\tResourceGroupName: pulumi.String(exampleAccount.ResourceGroupName),\n\t\t\tAccountName:       pulumi.String(exampleAccount.Name),\n\t\t\tThroughput:        pulumi.Int(400),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCosmosDB Tables can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:cosmosdb/table:Table table1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.DocumentDB/databaseAccounts/account1/tables/table1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "The name of the Cosmos DB Table to create the table within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/TableAutoscaleSettings:TableAutoscaleSettings",
          "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB Table. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB Table is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "throughput": {
          "description": "The throughput of Table (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
          "type": "integer"
        }
      },
      "properties": {
        "accountName": {
          "description": "The name of the Cosmos DB Table to create the table within. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "autoscaleSettings": {
          "$ref": "#/types/azure:cosmosdb/TableAutoscaleSettings:TableAutoscaleSettings",
          "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n"
        },
        "name": {
          "description": "Specifies the name of the Cosmos DB Table. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Cosmos DB Table is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "throughput": {
          "description": "The throughput of Table (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
          "type": "integer"
        }
      },
      "required": [
        "accountName",
        "name",
        "resourceGroupName",
        "throughput"
      ],
      "requiredInputs": [
        "accountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Table resources.\n",
        "properties": {
          "accountName": {
            "description": "The name of the Cosmos DB Table to create the table within. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "autoscaleSettings": {
            "$ref": "#/types/azure:cosmosdb/TableAutoscaleSettings:TableAutoscaleSettings",
            "description": "An `autoscale_settings` block as defined below. This must be set upon database creation otherwise it cannot be updated without a manual destroy-apply.\n"
          },
          "name": {
            "description": "Specifies the name of the Cosmos DB Table. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Cosmos DB Table is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "throughput": {
            "description": "The throughput of Table (RU/s). Must be set in increments of `100`. The minimum value is `400`. This must be set upon database creation otherwise it cannot be updated without a manual resource destroy-apply.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:costmanagement/resourceGroupExport:ResourceGroupExport": {
      "description": "Manages an Azure Cost Management Export for a Resource Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleResourceGroupExport = new azure.costmanagement.ResourceGroupExport(\"exampleResourceGroupExport\", {\n    resourceGroupId: exampleResourceGroup.id,\n    recurrenceType: \"Monthly\",\n    recurrencePeriodStart: \"2020-08-18T00:00:00Z\",\n    recurrencePeriodEnd: \"2020-09-18T00:00:00Z\",\n    deliveryInfo: {\n        storageAccountId: exampleAccount.id,\n        containerName: \"examplecontainer\",\n        rootFolderPath: \"/root/updated\",\n    },\n    query: {\n        type: \"Usage\",\n        timeFrame: \"WeekToDate\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_resource_group_export = azure.costmanagement.ResourceGroupExport(\"exampleResourceGroupExport\",\n    resource_group_id=example_resource_group.id,\n    recurrence_type=\"Monthly\",\n    recurrence_period_start=\"2020-08-18T00:00:00Z\",\n    recurrence_period_end=\"2020-09-18T00:00:00Z\",\n    delivery_info=azure.costmanagement.ResourceGroupExportDeliveryInfoArgs(\n        storage_account_id=example_account.id,\n        container_name=\"examplecontainer\",\n        root_folder_path=\"/root/updated\",\n    ),\n    query=azure.costmanagement.ResourceGroupExportQueryArgs(\n        type=\"Usage\",\n        time_frame=\"WeekToDate\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleResourceGroupExport = new Azure.CostManagement.ResourceGroupExport(\"exampleResourceGroupExport\", new Azure.CostManagement.ResourceGroupExportArgs\n        {\n            ResourceGroupId = exampleResourceGroup.Id,\n            RecurrenceType = \"Monthly\",\n            RecurrencePeriodStart = \"2020-08-18T00:00:00Z\",\n            RecurrencePeriodEnd = \"2020-09-18T00:00:00Z\",\n            DeliveryInfo = new Azure.CostManagement.Inputs.ResourceGroupExportDeliveryInfoArgs\n            {\n                StorageAccountId = exampleAccount.Id,\n                ContainerName = \"examplecontainer\",\n                RootFolderPath = \"/root/updated\",\n            },\n            Query = new Azure.CostManagement.Inputs.ResourceGroupExportQueryArgs\n            {\n                Type = \"Usage\",\n                TimeFrame = \"WeekToDate\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/costmanagement\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = costmanagement.NewResourceGroupExport(ctx, \"exampleResourceGroupExport\", \u0026costmanagement.ResourceGroupExportArgs{\n\t\t\tResourceGroupId:       exampleResourceGroup.ID(),\n\t\t\tRecurrenceType:        pulumi.String(\"Monthly\"),\n\t\t\tRecurrencePeriodStart: pulumi.String(\"2020-08-18T00:00:00Z\"),\n\t\t\tRecurrencePeriodEnd:   pulumi.String(\"2020-09-18T00:00:00Z\"),\n\t\t\tDeliveryInfo: \u0026costmanagement.ResourceGroupExportDeliveryInfoArgs{\n\t\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t\t\tContainerName:    pulumi.String(\"examplecontainer\"),\n\t\t\t\tRootFolderPath:   pulumi.String(\"/root/updated\"),\n\t\t\t},\n\t\t\tQuery: \u0026costmanagement.ResourceGroupExportQueryArgs{\n\t\t\t\tType:      pulumi.String(\"Usage\"),\n\t\t\t\tTimeFrame: pulumi.String(\"WeekToDate\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCost Management Export for a Resource Group can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:costmanagement/resourceGroupExport:ResourceGroupExport example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.CostManagement/exports/example\n```\n\n ",
      "inputProperties": {
        "active": {
          "description": "Is the cost management export active? Default is `true`.\n",
          "type": "boolean"
        },
        "deliveryInfo": {
          "$ref": "#/types/azure:costmanagement/ResourceGroupExportDeliveryInfo:ResourceGroupExportDeliveryInfo",
          "description": "A `delivery_info` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name of the Cost Management Export. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "query": {
          "$ref": "#/types/azure:costmanagement/ResourceGroupExportQuery:ResourceGroupExportQuery",
          "description": "A `query` block as defined below.\n"
        },
        "recurrencePeriodEnd": {
          "description": "The date the export will stop capturing information.\n",
          "type": "string"
        },
        "recurrencePeriodStart": {
          "description": "The date the export will start capturing information.\n",
          "type": "string"
        },
        "recurrenceType": {
          "description": "How often the requested information will be exported. Valid values include `Annually`, `Daily`, `Monthly`, `Weekly`.\n",
          "type": "string"
        },
        "resourceGroupId": {
          "description": "The id of the resource group in which to export information.\n",
          "type": "string"
        }
      },
      "properties": {
        "active": {
          "description": "Is the cost management export active? Default is `true`.\n",
          "type": "boolean"
        },
        "deliveryInfo": {
          "$ref": "#/types/azure:costmanagement/ResourceGroupExportDeliveryInfo:ResourceGroupExportDeliveryInfo",
          "description": "A `delivery_info` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name of the Cost Management Export. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "query": {
          "$ref": "#/types/azure:costmanagement/ResourceGroupExportQuery:ResourceGroupExportQuery",
          "description": "A `query` block as defined below.\n"
        },
        "recurrencePeriodEnd": {
          "description": "The date the export will stop capturing information.\n",
          "type": "string"
        },
        "recurrencePeriodStart": {
          "description": "The date the export will start capturing information.\n",
          "type": "string"
        },
        "recurrenceType": {
          "description": "How often the requested information will be exported. Valid values include `Annually`, `Daily`, `Monthly`, `Weekly`.\n",
          "type": "string"
        },
        "resourceGroupId": {
          "description": "The id of the resource group in which to export information.\n",
          "type": "string"
        }
      },
      "required": [
        "deliveryInfo",
        "name",
        "query",
        "recurrencePeriodEnd",
        "recurrencePeriodStart",
        "recurrenceType",
        "resourceGroupId"
      ],
      "requiredInputs": [
        "deliveryInfo",
        "query",
        "recurrencePeriodEnd",
        "recurrencePeriodStart",
        "recurrenceType",
        "resourceGroupId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ResourceGroupExport resources.\n",
        "properties": {
          "active": {
            "description": "Is the cost management export active? Default is `true`.\n",
            "type": "boolean"
          },
          "deliveryInfo": {
            "$ref": "#/types/azure:costmanagement/ResourceGroupExportDeliveryInfo:ResourceGroupExportDeliveryInfo",
            "description": "A `delivery_info` block as defined below.\n"
          },
          "name": {
            "description": "Specifies the name of the Cost Management Export. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "query": {
            "$ref": "#/types/azure:costmanagement/ResourceGroupExportQuery:ResourceGroupExportQuery",
            "description": "A `query` block as defined below.\n"
          },
          "recurrencePeriodEnd": {
            "description": "The date the export will stop capturing information.\n",
            "type": "string"
          },
          "recurrencePeriodStart": {
            "description": "The date the export will start capturing information.\n",
            "type": "string"
          },
          "recurrenceType": {
            "description": "How often the requested information will be exported. Valid values include `Annually`, `Daily`, `Monthly`, `Weekly`.\n",
            "type": "string"
          },
          "resourceGroupId": {
            "description": "The id of the resource group in which to export information.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dashboard/dashboard:Dashboard": {
      "description": "Manages a shared dashboard in the Azure Portal.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst config = new pulumi.Config();\nconst mdContent = config.get(\"mdContent\") || \"# Hello all :)\";\nconst videoLink = config.get(\"videoLink\") || \"https://www.youtube.com/watch?v=......\";\nconst current = azure.core.getSubscription({});\nconst my_group = new azure.core.ResourceGroup(\"my-group\", {location: \"West Europe\"});\nconst my_board = new azure.dashboard.Dashboard(\"my-board\", {\n    resourceGroupName: my_group.name,\n    location: my_group.location,\n    tags: {\n        source: \"managed\",\n    },\n    dashboardProperties: current.then(current =\u003e `{\n   \"lenses\": {\n        \"0\": {\n            \"order\": 0,\n            \"parts\": {\n                \"0\": {\n                    \"position\": {\n                        \"x\": 0,\n                        \"y\": 0,\n                        \"rowSpan\": 2,\n                        \"colSpan\": 3\n                    },\n                    \"metadata\": {\n                        \"inputs\": [],\n                        \"type\": \"Extension/HubsExtension/PartType/MarkdownPart\",\n                        \"settings\": {\n                            \"content\": {\n                                \"settings\": {\n                                    \"content\": \"${mdContent}\",\n                                    \"subtitle\": \"\",\n                                    \"title\": \"\"\n                                }\n                            }\n                        }\n                    }\n                },               \n                \"1\": {\n                    \"position\": {\n                        \"x\": 5,\n                        \"y\": 0,\n                        \"rowSpan\": 4,\n                        \"colSpan\": 6\n                    },\n                    \"metadata\": {\n                        \"inputs\": [],\n                        \"type\": \"Extension/HubsExtension/PartType/VideoPart\",\n                        \"settings\": {\n                            \"content\": {\n                                \"settings\": {\n                                    \"title\": \"Important Information\",\n                                    \"subtitle\": \"\",\n                                    \"src\": \"${videoLink}\",\n                                    \"autoplay\": true\n                                }\n                            }\n                        }\n                    }\n                },\n                \"2\": {\n                    \"position\": {\n                        \"x\": 0,\n                        \"y\": 4,\n                        \"rowSpan\": 4,\n                        \"colSpan\": 6\n                    },\n                    \"metadata\": {\n                        \"inputs\": [\n                            {\n                                \"name\": \"ComponentId\",\n                                \"value\": \"/subscriptions/${current.subscriptionId}/resourceGroups/myRG/providers/microsoft.insights/components/myWebApp\"\n                            }\n                        ],\n                        \"type\": \"Extension/AppInsightsExtension/PartType/AppMapGalPt\",\n                        \"settings\": {},\n                        \"asset\": {\n                            \"idInputName\": \"ComponentId\",\n                            \"type\": \"ApplicationInsights\"\n                        }\n                    }\n                }              \n            }\n        }\n    },\n    \"metadata\": {\n        \"model\": {\n            \"timeRange\": {\n                \"value\": {\n                    \"relative\": {\n                        \"duration\": 24,\n                        \"timeUnit\": 1\n                    }\n                },\n                \"type\": \"MsPortalFx.Composition.Configuration.ValueTypes.TimeRange\"\n            },\n            \"filterLocale\": {\n                \"value\": \"en-us\"\n            },\n            \"filters\": {\n                \"value\": {\n                    \"MsPortalFx_TimeRange\": {\n                        \"model\": {\n                            \"format\": \"utc\",\n                            \"granularity\": \"auto\",\n                            \"relative\": \"24h\"\n                        },\n                        \"displayCache\": {\n                            \"name\": \"UTC Time\",\n                            \"value\": \"Past 24 hours\"\n                        },\n                        \"filteredPartIds\": [\n                            \"StartboardPart-UnboundPart-ae44fef5-76b8-46b0-86f0-2b3f47bad1c7\"\n                        ]\n                    }\n                }\n            }\n        }\n    }\n}\n`),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nconfig = pulumi.Config()\nmd_content = config.get(\"mdContent\")\nif md_content is None:\n    md_content = \"# Hello all :)\"\nvideo_link = config.get(\"videoLink\")\nif video_link is None:\n    video_link = \"https://www.youtube.com/watch?v=......\"\ncurrent = azure.core.get_subscription()\nmy_group = azure.core.ResourceGroup(\"my-group\", location=\"West Europe\")\nmy_board = azure.dashboard.Dashboard(\"my-board\",\n    resource_group_name=my_group.name,\n    location=my_group.location,\n    tags={\n        \"source\": \"managed\",\n    },\n    dashboard_properties=f\"\"\"{{\n   \"lenses\": {{\n        \"0\": {{\n            \"order\": 0,\n            \"parts\": {{\n                \"0\": {{\n                    \"position\": {{\n                        \"x\": 0,\n                        \"y\": 0,\n                        \"rowSpan\": 2,\n                        \"colSpan\": 3\n                    }},\n                    \"metadata\": {{\n                        \"inputs\": [],\n                        \"type\": \"Extension/HubsExtension/PartType/MarkdownPart\",\n                        \"settings\": {{\n                            \"content\": {{\n                                \"settings\": {{\n                                    \"content\": \"{md_content}\",\n                                    \"subtitle\": \"\",\n                                    \"title\": \"\"\n                                }}\n                            }}\n                        }}\n                    }}\n                }},               \n                \"1\": {{\n                    \"position\": {{\n                        \"x\": 5,\n                        \"y\": 0,\n                        \"rowSpan\": 4,\n                        \"colSpan\": 6\n                    }},\n                    \"metadata\": {{\n                        \"inputs\": [],\n                        \"type\": \"Extension/HubsExtension/PartType/VideoPart\",\n                        \"settings\": {{\n                            \"content\": {{\n                                \"settings\": {{\n                                    \"title\": \"Important Information\",\n                                    \"subtitle\": \"\",\n                                    \"src\": \"{video_link}\",\n                                    \"autoplay\": true\n                                }}\n                            }}\n                        }}\n                    }}\n                }},\n                \"2\": {{\n                    \"position\": {{\n                        \"x\": 0,\n                        \"y\": 4,\n                        \"rowSpan\": 4,\n                        \"colSpan\": 6\n                    }},\n                    \"metadata\": {{\n                        \"inputs\": [\n                            {{\n                                \"name\": \"ComponentId\",\n                                \"value\": \"/subscriptions/{current.subscription_id}/resourceGroups/myRG/providers/microsoft.insights/components/myWebApp\"\n                            }}\n                        ],\n                        \"type\": \"Extension/AppInsightsExtension/PartType/AppMapGalPt\",\n                        \"settings\": {{}},\n                        \"asset\": {{\n                            \"idInputName\": \"ComponentId\",\n                            \"type\": \"ApplicationInsights\"\n                        }}\n                    }}\n                }}              \n            }}\n        }}\n    }},\n    \"metadata\": {{\n        \"model\": {{\n            \"timeRange\": {{\n                \"value\": {{\n                    \"relative\": {{\n                        \"duration\": 24,\n                        \"timeUnit\": 1\n                    }}\n                }},\n                \"type\": \"MsPortalFx.Composition.Configuration.ValueTypes.TimeRange\"\n            }},\n            \"filterLocale\": {{\n                \"value\": \"en-us\"\n            }},\n            \"filters\": {{\n                \"value\": {{\n                    \"MsPortalFx_TimeRange\": {{\n                        \"model\": {{\n                            \"format\": \"utc\",\n                            \"granularity\": \"auto\",\n                            \"relative\": \"24h\"\n                        }},\n                        \"displayCache\": {{\n                            \"name\": \"UTC Time\",\n                            \"value\": \"Past 24 hours\"\n                        }},\n                        \"filteredPartIds\": [\n                            \"StartboardPart-UnboundPart-ae44fef5-76b8-46b0-86f0-2b3f47bad1c7\"\n                        ]\n                    }}\n                }}\n            }}\n        }}\n    }}\n}}\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var config = new Config();\n        var mdContent = config.Get(\"mdContent\") ?? \"# Hello all :)\";\n        var videoLink = config.Get(\"videoLink\") ?? \"https://www.youtube.com/watch?v=......\";\n        var current = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var my_group = new Azure.Core.ResourceGroup(\"my-group\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var my_board = new Azure.Dashboard.Dashboard(\"my-board\", new Azure.Dashboard.DashboardArgs\n        {\n            ResourceGroupName = my_group.Name,\n            Location = my_group.Location,\n            Tags = \n            {\n                { \"source\", \"managed\" },\n            },\n            DashboardProperties = current.Apply(current =\u003e @$\"{{\n   \"\"lenses\"\": {{\n        \"\"0\"\": {{\n            \"\"order\"\": 0,\n            \"\"parts\"\": {{\n                \"\"0\"\": {{\n                    \"\"position\"\": {{\n                        \"\"x\"\": 0,\n                        \"\"y\"\": 0,\n                        \"\"rowSpan\"\": 2,\n                        \"\"colSpan\"\": 3\n                    }},\n                    \"\"metadata\"\": {{\n                        \"\"inputs\"\": [],\n                        \"\"type\"\": \"\"Extension/HubsExtension/PartType/MarkdownPart\"\",\n                        \"\"settings\"\": {{\n                            \"\"content\"\": {{\n                                \"\"settings\"\": {{\n                                    \"\"content\"\": \"\"{mdContent}\"\",\n                                    \"\"subtitle\"\": \"\"\"\",\n                                    \"\"title\"\": \"\"\"\"\n                                }}\n                            }}\n                        }}\n                    }}\n                }},               \n                \"\"1\"\": {{\n                    \"\"position\"\": {{\n                        \"\"x\"\": 5,\n                        \"\"y\"\": 0,\n                        \"\"rowSpan\"\": 4,\n                        \"\"colSpan\"\": 6\n                    }},\n                    \"\"metadata\"\": {{\n                        \"\"inputs\"\": [],\n                        \"\"type\"\": \"\"Extension/HubsExtension/PartType/VideoPart\"\",\n                        \"\"settings\"\": {{\n                            \"\"content\"\": {{\n                                \"\"settings\"\": {{\n                                    \"\"title\"\": \"\"Important Information\"\",\n                                    \"\"subtitle\"\": \"\"\"\",\n                                    \"\"src\"\": \"\"{videoLink}\"\",\n                                    \"\"autoplay\"\": true\n                                }}\n                            }}\n                        }}\n                    }}\n                }},\n                \"\"2\"\": {{\n                    \"\"position\"\": {{\n                        \"\"x\"\": 0,\n                        \"\"y\"\": 4,\n                        \"\"rowSpan\"\": 4,\n                        \"\"colSpan\"\": 6\n                    }},\n                    \"\"metadata\"\": {{\n                        \"\"inputs\"\": [\n                            {{\n                                \"\"name\"\": \"\"ComponentId\"\",\n                                \"\"value\"\": \"\"/subscriptions/{current.SubscriptionId}/resourceGroups/myRG/providers/microsoft.insights/components/myWebApp\"\"\n                            }}\n                        ],\n                        \"\"type\"\": \"\"Extension/AppInsightsExtension/PartType/AppMapGalPt\"\",\n                        \"\"settings\"\": {{}},\n                        \"\"asset\"\": {{\n                            \"\"idInputName\"\": \"\"ComponentId\"\",\n                            \"\"type\"\": \"\"ApplicationInsights\"\"\n                        }}\n                    }}\n                }}              \n            }}\n        }}\n    }},\n    \"\"metadata\"\": {{\n        \"\"model\"\": {{\n            \"\"timeRange\"\": {{\n                \"\"value\"\": {{\n                    \"\"relative\"\": {{\n                        \"\"duration\"\": 24,\n                        \"\"timeUnit\"\": 1\n                    }}\n                }},\n                \"\"type\"\": \"\"MsPortalFx.Composition.Configuration.ValueTypes.TimeRange\"\"\n            }},\n            \"\"filterLocale\"\": {{\n                \"\"value\"\": \"\"en-us\"\"\n            }},\n            \"\"filters\"\": {{\n                \"\"value\"\": {{\n                    \"\"MsPortalFx_TimeRange\"\": {{\n                        \"\"model\"\": {{\n                            \"\"format\"\": \"\"utc\"\",\n                            \"\"granularity\"\": \"\"auto\"\",\n                            \"\"relative\"\": \"\"24h\"\"\n                        }},\n                        \"\"displayCache\"\": {{\n                            \"\"name\"\": \"\"UTC Time\"\",\n                            \"\"value\"\": \"\"Past 24 hours\"\"\n                        }},\n                        \"\"filteredPartIds\"\": [\n                            \"\"StartboardPart-UnboundPart-ae44fef5-76b8-46b0-86f0-2b3f47bad1c7\"\"\n                        ]\n                    }}\n                }}\n            }}\n        }}\n    }}\n}}\n\"),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dashboard\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tmdContent := \"# Hello all :)\"\n\t\tif param := cfg.Get(\"mdContent\"); param != \"\" {\n\t\t\tmdContent = param\n\t\t}\n\t\tvideoLink := \"https://www.youtube.com/watch?v=......\"\n\t\tif param := cfg.Get(\"videoLink\"); param != \"\" {\n\t\t\tvideoLink = param\n\t\t}\n\t\tcurrent, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = core.NewResourceGroup(ctx, \"my_group\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dashboard.NewDashboard(ctx, \"my_board\", \u0026dashboard.DashboardArgs{\n\t\t\tResourceGroupName: my_group.Name,\n\t\t\tLocation:          my_group.Location,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"managed\"),\n\t\t\t},\n\t\t\tDashboardProperties: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \"   \\\"lenses\\\": {\\n\", \"        \\\"0\\\": {\\n\", \"            \\\"order\\\": 0,\\n\", \"            \\\"parts\\\": {\\n\", \"                \\\"0\\\": {\\n\", \"                    \\\"position\\\": {\\n\", \"                        \\\"x\\\": 0,\\n\", \"                        \\\"y\\\": 0,\\n\", \"                        \\\"rowSpan\\\": 2,\\n\", \"                        \\\"colSpan\\\": 3\\n\", \"                    },\\n\", \"                    \\\"metadata\\\": {\\n\", \"                        \\\"inputs\\\": [],\\n\", \"                        \\\"type\\\": \\\"Extension/HubsExtension/PartType/MarkdownPart\\\",\\n\", \"                        \\\"settings\\\": {\\n\", \"                            \\\"content\\\": {\\n\", \"                                \\\"settings\\\": {\\n\", \"                                    \\\"content\\\": \\\"\", mdContent, \"\\\",\\n\", \"                                    \\\"subtitle\\\": \\\"\\\",\\n\", \"                                    \\\"title\\\": \\\"\\\"\\n\", \"                                }\\n\", \"                            }\\n\", \"                        }\\n\", \"                    }\\n\", \"                },               \\n\", \"                \\\"1\\\": {\\n\", \"                    \\\"position\\\": {\\n\", \"                        \\\"x\\\": 5,\\n\", \"                        \\\"y\\\": 0,\\n\", \"                        \\\"rowSpan\\\": 4,\\n\", \"                        \\\"colSpan\\\": 6\\n\", \"                    },\\n\", \"                    \\\"metadata\\\": {\\n\", \"                        \\\"inputs\\\": [],\\n\", \"                        \\\"type\\\": \\\"Extension/HubsExtension/PartType/VideoPart\\\",\\n\", \"                        \\\"settings\\\": {\\n\", \"                            \\\"content\\\": {\\n\", \"                                \\\"settings\\\": {\\n\", \"                                    \\\"title\\\": \\\"Important Information\\\",\\n\", \"                                    \\\"subtitle\\\": \\\"\\\",\\n\", \"                                    \\\"src\\\": \\\"\", videoLink, \"\\\",\\n\", \"                                    \\\"autoplay\\\": true\\n\", \"                                }\\n\", \"                            }\\n\", \"                        }\\n\", \"                    }\\n\", \"                },\\n\", \"                \\\"2\\\": {\\n\", \"                    \\\"position\\\": {\\n\", \"                        \\\"x\\\": 0,\\n\", \"                        \\\"y\\\": 4,\\n\", \"                        \\\"rowSpan\\\": 4,\\n\", \"                        \\\"colSpan\\\": 6\\n\", \"                    },\\n\", \"                    \\\"metadata\\\": {\\n\", \"                        \\\"inputs\\\": [\\n\", \"                            {\\n\", \"                                \\\"name\\\": \\\"ComponentId\\\",\\n\", \"                                \\\"value\\\": \\\"/subscriptions/\", current.SubscriptionId, \"/resourceGroups/myRG/providers/microsoft.insights/components/myWebApp\\\"\\n\", \"                            }\\n\", \"                        ],\\n\", \"                        \\\"type\\\": \\\"Extension/AppInsightsExtension/PartType/AppMapGalPt\\\",\\n\", \"                        \\\"settings\\\": {},\\n\", \"                        \\\"asset\\\": {\\n\", \"                            \\\"idInputName\\\": \\\"ComponentId\\\",\\n\", \"                            \\\"type\\\": \\\"ApplicationInsights\\\"\\n\", \"                        }\\n\", \"                    }\\n\", \"                }              \\n\", \"            }\\n\", \"        }\\n\", \"    },\\n\", \"    \\\"metadata\\\": {\\n\", \"        \\\"model\\\": {\\n\", \"            \\\"timeRange\\\": {\\n\", \"                \\\"value\\\": {\\n\", \"                    \\\"relative\\\": {\\n\", \"                        \\\"duration\\\": 24,\\n\", \"                        \\\"timeUnit\\\": 1\\n\", \"                    }\\n\", \"                },\\n\", \"                \\\"type\\\": \\\"MsPortalFx.Composition.Configuration.ValueTypes.TimeRange\\\"\\n\", \"            },\\n\", \"            \\\"filterLocale\\\": {\\n\", \"                \\\"value\\\": \\\"en-us\\\"\\n\", \"            },\\n\", \"            \\\"filters\\\": {\\n\", \"                \\\"value\\\": {\\n\", \"                    \\\"MsPortalFx_TimeRange\\\": {\\n\", \"                        \\\"model\\\": {\\n\", \"                            \\\"format\\\": \\\"utc\\\",\\n\", \"                            \\\"granularity\\\": \\\"auto\\\",\\n\", \"                            \\\"relative\\\": \\\"24h\\\"\\n\", \"                        },\\n\", \"                        \\\"displayCache\\\": {\\n\", \"                            \\\"name\\\": \\\"UTC Time\\\",\\n\", \"                            \\\"value\\\": \\\"Past 24 hours\\\"\\n\", \"                        },\\n\", \"                        \\\"filteredPartIds\\\": [\\n\", \"                            \\\"StartboardPart-UnboundPart-ae44fef5-76b8-46b0-86f0-2b3f47bad1c7\\\"\\n\", \"                        ]\\n\", \"                    }\\n\", \"                }\\n\", \"            }\\n\", \"        }\\n\", \"    }\\n\", \"}\\n\")),\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\nIt is recommended to follow the steps outlined\n[here](https://docs.microsoft.com/en-us/azure/azure-portal/azure-portal-dashboards-create-programmatically#fetch-the-json-representation-of-the-dashboard) to create a Dashboard in the Portal and extract the relevant JSON to use in this resource. From the extracted JSON, the contents of the `properties: {}` object can used. Variables can be injected as needed - see above example.\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDashboards can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dashboard/dashboard:Dashboard my-board /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Portal/dashboards/00000000-0000-0000-0000-000000000000\n```\n\n Note the URI in the above sample can be found using the Resource Explorer tool in the Azure Portal. ",
      "inputProperties": {
        "dashboardProperties": {
          "description": "JSON data representing dashboard body. See above for details on how to obtain this from the Portal.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Shared Dashboard. This should be be 64 chars max, only alphanumeric and hyphens (no spaces). For a more friendly display name, add the `hidden-title` tag.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the dashboard.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "dashboardProperties": {
          "description": "JSON data representing dashboard body. See above for details on how to obtain this from the Portal.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Shared Dashboard. This should be be 64 chars max, only alphanumeric and hyphens (no spaces). For a more friendly display name, add the `hidden-title` tag.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the dashboard.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "dashboardProperties",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Dashboard resources.\n",
        "properties": {
          "dashboardProperties": {
            "description": "JSON data representing dashboard body. See above for details on how to obtain this from the Portal.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Shared Dashboard. This should be be 64 chars max, only alphanumeric and hyphens (no spaces). For a more friendly display name, add the `hidden-title` tag.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the dashboard.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:databasemigration/project:Project": {
      "description": "Manage a Azure Database Migration Project.\n\n\u003e **NOTE:** Destroying a Database Migration Project will leave any outstanding tasks untouched. This is to avoid unexpectedly deleting any tasks managed outside of this provider.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst exampleService = new azure.databasemigration.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    virtualSubnetId: exampleSubnet.id,\n    skuName: \"Standard_1vCores\",\n});\nconst exampleProject = new azure.databasemigration.Project(\"exampleProject\", {\n    serviceName: exampleService.name,\n    resourceGroupName: exampleResourceGroup.name,\n    location: zurerm_resource_group.example.location,\n    sourcePlatform: \"SQL\",\n    targetPlatform: \"SQLDB\",\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDatabase Migration Projects can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:databasemigration/project:Project example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.DataMigration/services/example-dms/projects/project1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specify the name of the database migration project. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group in which to create the database migration project. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceName": {
          "description": "Name of the database migration service where resource belongs to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourcePlatform": {
          "description": "The platform type of the migration source. Currently only support: `SQL`(on-premises SQL Server). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assigned to the resource.\n",
          "type": "object"
        },
        "targetPlatform": {
          "description": "The platform type of the migration target. Currently only support: `SQLDB`(Azure SQL Database). Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specify the name of the database migration project. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group in which to create the database migration project. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceName": {
          "description": "Name of the database migration service where resource belongs to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourcePlatform": {
          "description": "The platform type of the migration source. Currently only support: `SQL`(on-premises SQL Server). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assigned to the resource.\n",
          "type": "object"
        },
        "targetPlatform": {
          "description": "The platform type of the migration target. Currently only support: `SQLDB`(Azure SQL Database). Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "serviceName",
        "sourcePlatform",
        "targetPlatform"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "serviceName",
        "sourcePlatform",
        "targetPlatform"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Project resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specify the name of the database migration project. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Name of the resource group in which to create the database migration project. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serviceName": {
            "description": "Name of the database migration service where resource belongs to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sourcePlatform": {
            "description": "The platform type of the migration source. Currently only support: `SQL`(on-premises SQL Server). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assigned to the resource.\n",
            "type": "object"
          },
          "targetPlatform": {
            "description": "The platform type of the migration target. Currently only support: `SQLDB`(Azure SQL Database). Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:databasemigration/service:Service": {
      "description": "Manages a Azure Database Migration Service.\n\n\u003e **NOTE:** Destroying a Database Migration Service will leave any outstanding tasks untouched. This is to avoid unexpectedly deleting any tasks managed outside of this provide.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst exampleService = new azure.databasemigration.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    subnetId: exampleSubnet.id,\n    skuName: \"Standard_1vCores\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"])\nexample_service = azure.databasemigration.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    subnet_id=example_subnet.id,\n    sku_name=\"Standard_1vCores\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n        });\n        var exampleService = new Azure.DatabaseMigration.Service(\"exampleService\", new Azure.DatabaseMigration.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SubnetId = exampleSubnet.Id,\n            SkuName = \"Standard_1vCores\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/databasemigration\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databasemigration.NewService(ctx, \"exampleService\", \u0026databasemigration.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSubnetId:          exampleSubnet.ID(),\n\t\t\tSkuName:           pulumi.String(\"Standard_1vCores\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDatabase Migration Services can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:databasemigration/service:Service example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.DataMigration/services/database_migration_service1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specify the name of the database migration service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group in which to create the database migration service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The sku name of the database migration service. Possible values are `Premium_4vCores`, `Standard_1vCores`, `Standard_2vCores` and `Standard_4vCores`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the virtual subnet resource to which the database migration service should be joined. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assigned to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specify the name of the database migration service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group in which to create the database migration service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The sku name of the database migration service. Possible values are `Premium_4vCores`, `Standard_1vCores`, `Standard_2vCores` and `Standard_4vCores`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the virtual subnet resource to which the database migration service should be joined. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assigned to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "skuName",
        "subnetId"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "skuName",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Service resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specify the name of the database migration service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Name of the resource group in which to create the database migration service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The sku name of the database migration service. Possible values are `Premium_4vCores`, `Standard_1vCores`, `Standard_2vCores` and `Standard_4vCores`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the virtual subnet resource to which the database migration service should be joined. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assigned to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:databoxedge/device:Device": {
      "description": "Manages a Databox Edge Device.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleDevice = new azure.databoxedge.Device(\"exampleDevice\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    skuName: \"EdgeP_Base-Standard\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_device = azure.databoxedge.Device(\"exampleDevice\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku_name=\"EdgeP_Base-Standard\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleDevice = new Azure.DataboxEdge.Device(\"exampleDevice\", new Azure.DataboxEdge.DeviceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            SkuName = \"EdgeP_Base-Standard\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/databoxedge\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databoxedge.NewDevice(ctx, \"exampleDevice\", \u0026databoxedge.DeviceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSkuName:           pulumi.String(\"EdgeP_Base-Standard\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDatabox Edge Devices can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:databoxedge/device:Device example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/device1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The Azure Region where the Databox Edge Device should exist. Changing this forces a new Databox Edge Device to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Databox Edge Device. Changing this forces a new Databox Edge Device to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Databox Edge Device should exist. Changing this forces a new Databox Edge Device to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The `sku_name` is comprised of two segments separated by a hyphen (e.g. `TEA_1Node_UPS_Heater-Standard`). The first segment of the `sku_name` defines the `name` of the sku, possible values are `Gateway`, `EdgeMR_Mini`, `EdgeP_Base`, `EdgeP_High`, `EdgePR_Base`, `EdgePR_Base_UPS`, `GPU`, `RCA_Large`, `RCA_Small`, `RDC`, `TCA_Large`, `TCA_Small`, `TDC`, `TEA_1Node`, `TEA_1Node_UPS`, `TEA_1Node_Heater`, `TEA_1Node_UPS_Heater`, `TEA_4Node_Heater`, `TEA_4Node_UPS_Heater` or `TMA`. The second segment defines the `tier` of the `sku_name`, possible values are `Standard`. For more information see the product documentation. Changing this forces a new Databox Edge Device to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Databox Edge Device.\n",
          "type": "object"
        }
      },
      "properties": {
        "deviceProperties": {
          "description": "A `device_properties` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:databoxedge/DeviceDeviceProperty:DeviceDeviceProperty"
          },
          "type": "array"
        },
        "location": {
          "description": "The Azure Region where the Databox Edge Device should exist. Changing this forces a new Databox Edge Device to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Databox Edge Device. Changing this forces a new Databox Edge Device to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Databox Edge Device should exist. Changing this forces a new Databox Edge Device to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The `sku_name` is comprised of two segments separated by a hyphen (e.g. `TEA_1Node_UPS_Heater-Standard`). The first segment of the `sku_name` defines the `name` of the sku, possible values are `Gateway`, `EdgeMR_Mini`, `EdgeP_Base`, `EdgeP_High`, `EdgePR_Base`, `EdgePR_Base_UPS`, `GPU`, `RCA_Large`, `RCA_Small`, `RDC`, `TCA_Large`, `TCA_Small`, `TDC`, `TEA_1Node`, `TEA_1Node_UPS`, `TEA_1Node_Heater`, `TEA_1Node_UPS_Heater`, `TEA_4Node_Heater`, `TEA_4Node_UPS_Heater` or `TMA`. The second segment defines the `tier` of the `sku_name`, possible values are `Standard`. For more information see the product documentation. Changing this forces a new Databox Edge Device to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Databox Edge Device.\n",
          "type": "object"
        }
      },
      "required": [
        "deviceProperties",
        "location",
        "name",
        "resourceGroupName",
        "skuName"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Device resources.\n",
        "properties": {
          "deviceProperties": {
            "description": "A `device_properties` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:databoxedge/DeviceDeviceProperty:DeviceDeviceProperty"
            },
            "type": "array"
          },
          "location": {
            "description": "The Azure Region where the Databox Edge Device should exist. Changing this forces a new Databox Edge Device to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Databox Edge Device. Changing this forces a new Databox Edge Device to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Databox Edge Device should exist. Changing this forces a new Databox Edge Device to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The `sku_name` is comprised of two segments separated by a hyphen (e.g. `TEA_1Node_UPS_Heater-Standard`). The first segment of the `sku_name` defines the `name` of the sku, possible values are `Gateway`, `EdgeMR_Mini`, `EdgeP_Base`, `EdgeP_High`, `EdgePR_Base`, `EdgePR_Base_UPS`, `GPU`, `RCA_Large`, `RCA_Small`, `RDC`, `TCA_Large`, `TCA_Small`, `TDC`, `TEA_1Node`, `TEA_1Node_UPS`, `TEA_1Node_Heater`, `TEA_1Node_UPS_Heater`, `TEA_4Node_Heater`, `TEA_4Node_UPS_Heater` or `TMA`. The second segment defines the `tier` of the `sku_name`, possible values are `Standard`. For more information see the product documentation. Changing this forces a new Databox Edge Device to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Databox Edge Device.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:databoxedge/order:Order": {
      "description": "Manages a Databox Edge Order.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleDevice = new azure.databoxedge.Device(\"exampleDevice\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    skuName: \"EdgeP_Base-Standard\",\n});\nconst exampleOrder = new azure.databoxedge.Order(\"exampleOrder\", {\n    resourceGroupName: exampleResourceGroup.name,\n    deviceName: exampleDevice.name,\n    contact: {\n        companyName: \"Contoso Corporation\",\n        name: \"Bart\",\n        emailLists: [\"bart@example.com\"],\n        phone: \"(800) 867-5309\",\n    },\n    shipmentAddress: {\n        addresses: [\"740 Evergreen Terrace\"],\n        city: \"Springfield\",\n        country: \"United States\",\n        postalCode: \"97403\",\n        state: \"OR\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_device = azure.databoxedge.Device(\"exampleDevice\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku_name=\"EdgeP_Base-Standard\")\nexample_order = azure.databoxedge.Order(\"exampleOrder\",\n    resource_group_name=example_resource_group.name,\n    device_name=example_device.name,\n    contact=azure.databoxedge.OrderContactArgs(\n        company_name=\"Contoso Corporation\",\n        name=\"Bart\",\n        email_lists=[\"bart@example.com\"],\n        phone=\"(800) 867-5309\",\n    ),\n    shipment_address=azure.databoxedge.OrderShipmentAddressArgs(\n        addresses=[\"740 Evergreen Terrace\"],\n        city=\"Springfield\",\n        country=\"United States\",\n        postal_code=\"97403\",\n        state=\"OR\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleDevice = new Azure.DataboxEdge.Device(\"exampleDevice\", new Azure.DataboxEdge.DeviceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            SkuName = \"EdgeP_Base-Standard\",\n        });\n        var exampleOrder = new Azure.DataboxEdge.Order(\"exampleOrder\", new Azure.DataboxEdge.OrderArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DeviceName = exampleDevice.Name,\n            Contact = new Azure.DataboxEdge.Inputs.OrderContactArgs\n            {\n                CompanyName = \"Contoso Corporation\",\n                Name = \"Bart\",\n                EmailLists = \n                {\n                    \"bart@example.com\",\n                },\n                Phone = \"(800) 867-5309\",\n            },\n            ShipmentAddress = new Azure.DataboxEdge.Inputs.OrderShipmentAddressArgs\n            {\n                Addresses = \n                {\n                    \"740 Evergreen Terrace\",\n                },\n                City = \"Springfield\",\n                Country = \"United States\",\n                PostalCode = \"97403\",\n                State = \"OR\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/databoxedge\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDevice, err := databoxedge.NewDevice(ctx, \"exampleDevice\", \u0026databoxedge.DeviceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSkuName:           pulumi.String(\"EdgeP_Base-Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databoxedge.NewOrder(ctx, \"exampleOrder\", \u0026databoxedge.OrderArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDeviceName:        exampleDevice.Name,\n\t\t\tContact: \u0026databoxedge.OrderContactArgs{\n\t\t\t\tCompanyName: pulumi.String(\"Contoso Corporation\"),\n\t\t\t\tName:        pulumi.String(\"Bart\"),\n\t\t\t\tEmailLists: []string{\n\t\t\t\t\t\"bart@example.com\",\n\t\t\t\t},\n\t\t\t\tPhone: \"(800) 867-5309\",\n\t\t\t},\n\t\t\tShipmentAddress: \u0026databoxedge.OrderShipmentAddressArgs{\n\t\t\t\tAddresses: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"740 Evergreen Terrace\"),\n\t\t\t\t},\n\t\t\t\tCity:       pulumi.String(\"Springfield\"),\n\t\t\t\tCountry:    pulumi.String(\"United States\"),\n\t\t\t\tPostalCode: pulumi.String(\"97403\"),\n\t\t\t\tState:      pulumi.String(\"OR\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDatabox Edge Orders can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:databoxedge/order:Order example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/device1/orders/default\n```\n\n ",
      "inputProperties": {
        "contact": {
          "$ref": "#/types/azure:databoxedge/OrderContact:OrderContact",
          "description": "A `contact` block as defined below.\n"
        },
        "deviceName": {
          "description": "The name of the Databox Edge Device this order is for. Changing this forces a new Databox Edge Order to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Databox Edge Order should exist. Changing this forces a new Databox Edge Order to be created.\n",
          "type": "string"
        },
        "shipmentAddress": {
          "$ref": "#/types/azure:databoxedge/OrderShipmentAddress:OrderShipmentAddress",
          "description": "A `shipment_address block as defined below.\n"
        }
      },
      "properties": {
        "contact": {
          "$ref": "#/types/azure:databoxedge/OrderContact:OrderContact",
          "description": "A `contact` block as defined below.\n"
        },
        "deviceName": {
          "description": "The name of the Databox Edge Device this order is for. Changing this forces a new Databox Edge Order to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The contact person name. Changing this forces a new Databox Edge Order to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Databox Edge Order should exist. Changing this forces a new Databox Edge Order to be created.\n",
          "type": "string"
        },
        "returnTrackings": {
          "description": "Tracking information for the package returned from the customer whether it has an original or a replacement device. A `return_tracking` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:databoxedge/OrderReturnTracking:OrderReturnTracking"
          },
          "type": "array"
        },
        "serialNumber": {
          "description": "Serial number of the device being tracked.\n",
          "type": "string"
        },
        "shipmentAddress": {
          "$ref": "#/types/azure:databoxedge/OrderShipmentAddress:OrderShipmentAddress",
          "description": "A `shipment_address block as defined below.\n"
        },
        "shipmentHistories": {
          "description": "List of status changes in the order. A `shipment_history` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:databoxedge/OrderShipmentHistory:OrderShipmentHistory"
          },
          "type": "array"
        },
        "shipmentTrackings": {
          "description": "Tracking information for the package delivered to the customer whether it has an original or a replacement device. A `shipment_tracking` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:databoxedge/OrderShipmentTracking:OrderShipmentTracking"
          },
          "type": "array"
        },
        "statuses": {
          "description": "The current status of the order. A `status` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:databoxedge/OrderStatus:OrderStatus"
          },
          "type": "array"
        }
      },
      "required": [
        "contact",
        "deviceName",
        "name",
        "resourceGroupName",
        "returnTrackings",
        "serialNumber",
        "shipmentAddress",
        "shipmentHistories",
        "shipmentTrackings",
        "statuses"
      ],
      "requiredInputs": [
        "contact",
        "deviceName",
        "resourceGroupName",
        "shipmentAddress"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Order resources.\n",
        "properties": {
          "contact": {
            "$ref": "#/types/azure:databoxedge/OrderContact:OrderContact",
            "description": "A `contact` block as defined below.\n"
          },
          "deviceName": {
            "description": "The name of the Databox Edge Device this order is for. Changing this forces a new Databox Edge Order to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The contact person name. Changing this forces a new Databox Edge Order to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Databox Edge Order should exist. Changing this forces a new Databox Edge Order to be created.\n",
            "type": "string"
          },
          "returnTrackings": {
            "description": "Tracking information for the package returned from the customer whether it has an original or a replacement device. A `return_tracking` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:databoxedge/OrderReturnTracking:OrderReturnTracking"
            },
            "type": "array"
          },
          "serialNumber": {
            "description": "Serial number of the device being tracked.\n",
            "type": "string"
          },
          "shipmentAddress": {
            "$ref": "#/types/azure:databoxedge/OrderShipmentAddress:OrderShipmentAddress",
            "description": "A `shipment_address block as defined below.\n"
          },
          "shipmentHistories": {
            "description": "List of status changes in the order. A `shipment_history` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:databoxedge/OrderShipmentHistory:OrderShipmentHistory"
            },
            "type": "array"
          },
          "shipmentTrackings": {
            "description": "Tracking information for the package delivered to the customer whether it has an original or a replacement device. A `shipment_tracking` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:databoxedge/OrderShipmentTracking:OrderShipmentTracking"
            },
            "type": "array"
          },
          "statuses": {
            "description": "The current status of the order. A `status` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:databoxedge/OrderStatus:OrderStatus"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:databricks/workspace:Workspace": {
      "description": "\n\n\n## Import\n\nDatabrick Workspaces can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:databricks/workspace:Workspace workspace1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Databricks/workspaces/workspace1\n```\n\n ",
      "inputProperties": {
        "customParameters": {
          "$ref": "#/types/azure:databricks/WorkspaceCustomParameters:WorkspaceCustomParameters",
          "description": "A `custom_parameters` block as documented below.\n"
        },
        "customerManagedKeyEnabled": {
          "description": "Is the workspace enabled for customer managed key encryption? If `true` this enables the Managed Identity for the managed storage account. Possible values are `true` or `false`. Defaults to `false`. This field is only valid if the Databricks Workspace `sku` is set to `premium`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "infrastructureEncryptionEnabled": {
          "description": "Is the Databricks File System root file system enabled with a secondary layer of encryption with platform managed keys? Possible values are `true` or `false`. Defaults to `false`. This field is only valid if the Databricks Workspace `sku` is set to `premium`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "loadBalancerBackendAddressPoolId": {
          "description": "Resource ID of the Outbound Load balancer Backend Address Pool for Secure Cluster Connectivity (No Public IP) workspace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managedResourceGroupName": {
          "description": "The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managedServicesCmkKeyVaultKeyId": {
          "description": "Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkSecurityGroupRulesRequired": {
          "description": "Does the data plane (clusters) to control plane communication happen over private link endpoint only or publicly? Possible values `AllRules`, `NoAzureDatabricksRules` or `NoAzureServiceRules`. Required when `public_network_access_enabled` is set to `false`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Allow public access for accessing workspace. Set value to `false` to access workspace only via private link endpoint. Possible values include `true` or `false`. Defaults to `true`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Databricks Workspace should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. Changing this can force a new resource to be created in some circumstances.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "customParameters": {
          "$ref": "#/types/azure:databricks/WorkspaceCustomParameters:WorkspaceCustomParameters",
          "description": "A `custom_parameters` block as documented below.\n"
        },
        "customerManagedKeyEnabled": {
          "description": "Is the workspace enabled for customer managed key encryption? If `true` this enables the Managed Identity for the managed storage account. Possible values are `true` or `false`. Defaults to `false`. This field is only valid if the Databricks Workspace `sku` is set to `premium`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "infrastructureEncryptionEnabled": {
          "description": "Is the Databricks File System root file system enabled with a secondary layer of encryption with platform managed keys? Possible values are `true` or `false`. Defaults to `false`. This field is only valid if the Databricks Workspace `sku` is set to `premium`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "loadBalancerBackendAddressPoolId": {
          "description": "Resource ID of the Outbound Load balancer Backend Address Pool for Secure Cluster Connectivity (No Public IP) workspace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managedResourceGroupId": {
          "description": "The ID of the Managed Resource Group created by the Databricks Workspace.\n",
          "type": "string"
        },
        "managedResourceGroupName": {
          "description": "The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managedServicesCmkKeyVaultKeyId": {
          "description": "Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkSecurityGroupRulesRequired": {
          "description": "Does the data plane (clusters) to control plane communication happen over private link endpoint only or publicly? Possible values `AllRules`, `NoAzureDatabricksRules` or `NoAzureServiceRules`. Required when `public_network_access_enabled` is set to `false`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Allow public access for accessing workspace. Set value to `false` to access workspace only via private link endpoint. Possible values include `true` or `false`. Defaults to `true`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Databricks Workspace should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. Changing this can force a new resource to be created in some circumstances.\n",
          "type": "string"
        },
        "storageAccountIdentities": {
          "description": "A `storage_account_identity` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:databricks/WorkspaceStorageAccountIdentity:WorkspaceStorageAccountIdentity"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "workspaceId": {
          "description": "The unique identifier of the databricks workspace in Databricks control plane.\n",
          "type": "string"
        },
        "workspaceUrl": {
          "description": "The workspace URL which is of the format 'adb-{workspaceId}.{random}.azuredatabricks.net'\n",
          "type": "string"
        }
      },
      "required": [
        "customParameters",
        "location",
        "managedResourceGroupId",
        "managedResourceGroupName",
        "name",
        "networkSecurityGroupRulesRequired",
        "resourceGroupName",
        "sku",
        "storageAccountIdentities",
        "workspaceId",
        "workspaceUrl"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Workspace resources.\n",
        "properties": {
          "customParameters": {
            "$ref": "#/types/azure:databricks/WorkspaceCustomParameters:WorkspaceCustomParameters",
            "description": "A `custom_parameters` block as documented below.\n"
          },
          "customerManagedKeyEnabled": {
            "description": "Is the workspace enabled for customer managed key encryption? If `true` this enables the Managed Identity for the managed storage account. Possible values are `true` or `false`. Defaults to `false`. This field is only valid if the Databricks Workspace `sku` is set to `premium`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "infrastructureEncryptionEnabled": {
            "description": "Is the Databricks File System root file system enabled with a secondary layer of encryption with platform managed keys? Possible values are `true` or `false`. Defaults to `false`. This field is only valid if the Databricks Workspace `sku` is set to `premium`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "loadBalancerBackendAddressPoolId": {
            "description": "Resource ID of the Outbound Load balancer Backend Address Pool for Secure Cluster Connectivity (No Public IP) workspace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "managedResourceGroupId": {
            "description": "The ID of the Managed Resource Group created by the Databricks Workspace.\n",
            "type": "string"
          },
          "managedResourceGroupName": {
            "description": "The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "managedServicesCmkKeyVaultKeyId": {
            "description": "Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkSecurityGroupRulesRequired": {
            "description": "Does the data plane (clusters) to control plane communication happen over private link endpoint only or publicly? Possible values `AllRules`, `NoAzureDatabricksRules` or `NoAzureServiceRules`. Required when `public_network_access_enabled` is set to `false`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Allow public access for accessing workspace. Set value to `false` to access workspace only via private link endpoint. Possible values include `true` or `false`. Defaults to `true`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Databricks Workspace should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sku": {
            "description": "The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. Changing this can force a new resource to be created in some circumstances.\n",
            "type": "string"
          },
          "storageAccountIdentities": {
            "description": "A `storage_account_identity` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:databricks/WorkspaceStorageAccountIdentity:WorkspaceStorageAccountIdentity"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "workspaceId": {
            "description": "The unique identifier of the databricks workspace in Databricks control plane.\n",
            "type": "string"
          },
          "workspaceUrl": {
            "description": "The workspace URL which is of the format 'adb-{workspaceId}.{random}.azuredatabricks.net'\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:databricks/workspaceCustomerManagedKey:WorkspaceCustomerManagedKey": {
      "description": "\n\n\n## Import\n\nDatabricks Workspace Customer Managed Key can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:databricks/workspaceCustomerManagedKey:WorkspaceCustomerManagedKey workspace1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Databricks/customerManagedKey/workspace1\n```\n\n ",
      "inputProperties": {
        "keyVaultKeyId": {
          "description": "The ID of the Key Vault.\n",
          "type": "string"
        },
        "workspaceId": {
          "description": "The ID of the Databricks workspace.\n",
          "type": "string"
        }
      },
      "properties": {
        "keyVaultKeyId": {
          "description": "The ID of the Key Vault.\n",
          "type": "string"
        },
        "workspaceId": {
          "description": "The ID of the Databricks workspace.\n",
          "type": "string"
        }
      },
      "required": [
        "keyVaultKeyId",
        "workspaceId"
      ],
      "requiredInputs": [
        "keyVaultKeyId",
        "workspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WorkspaceCustomerManagedKey resources.\n",
        "properties": {
          "keyVaultKeyId": {
            "description": "The ID of the Key Vault.\n",
            "type": "string"
          },
          "workspaceId": {
            "description": "The ID of the Databricks workspace.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/customDataset:CustomDataset": {
      "description": "Manages a Dataset inside an Azure Data Factory. This is a generic resource that supports all different Dataset Types.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountKind: \"BlobStorage\",\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleLinkedCustomService = new azure.datafactory.LinkedCustomService(\"exampleLinkedCustomService\", {\n    dataFactoryId: exampleFactory.id,\n    type: \"AzureBlobStorage\",\n    typePropertiesJson: `{\n  \"connectionString\":\"${azurerm_storage_account.test.primary_connection_string}\"\n}\n`,\n});\nconst exampleCustomDataset = new azure.datafactory.CustomDataset(\"exampleCustomDataset\", {\n    dataFactoryId: exampleFactory.id,\n    type: \"Json\",\n    linkedService: {\n        name: azurerm_data_factory_linked_custom_service.test.name,\n        parameters: {\n            key1: \"value1\",\n        },\n    },\n    typePropertiesJson: `{\n  \"location\": {\n    \"container\":\"${azurerm_storage_container.test.name}\",\n    \"fileName\":\"foo.txt\",\n    \"folderPath\": \"foo/bar/\",\n    \"type\":\"AzureBlobStorageLocation\"\n  },\n  \"encodingName\":\"UTF-8\"\n}\n`,\n    description: \"test description\",\n    annotations: [\n        \"test1\",\n        \"test2\",\n        \"test3\",\n    ],\n    folder: \"testFolder\",\n    parameters: {\n        foo: \"test1\",\n        Bar: \"Test2\",\n    },\n    additionalProperties: {\n        foo: \"test1\",\n        bar: \"test2\",\n    },\n    schemaJson: `{\n  \"type\": \"object\",\n  \"properties\": {\n    \"name\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"firstName\": {\n          \"type\": \"string\"\n        },\n        \"lastName\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"age\": {\n      \"type\": \"integer\"\n    }\n  }\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    identity=azure.datafactory.FactoryIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_kind=\"BlobStorage\",\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_linked_custom_service = azure.datafactory.LinkedCustomService(\"exampleLinkedCustomService\",\n    data_factory_id=example_factory.id,\n    type=\"AzureBlobStorage\",\n    type_properties_json=f\"\"\"{{\n  \"connectionString\":\"{azurerm_storage_account[\"test\"][\"primary_connection_string\"]}\"\n}}\n\"\"\")\nexample_custom_dataset = azure.datafactory.CustomDataset(\"exampleCustomDataset\",\n    data_factory_id=example_factory.id,\n    type=\"Json\",\n    linked_service=azure.datafactory.CustomDatasetLinkedServiceArgs(\n        name=azurerm_data_factory_linked_custom_service[\"test\"][\"name\"],\n        parameters={\n            \"key1\": \"value1\",\n        },\n    ),\n    type_properties_json=f\"\"\"{{\n  \"location\": {{\n    \"container\":\"{azurerm_storage_container[\"test\"][\"name\"]}\",\n    \"fileName\":\"foo.txt\",\n    \"folderPath\": \"foo/bar/\",\n    \"type\":\"AzureBlobStorageLocation\"\n  }},\n  \"encodingName\":\"UTF-8\"\n}}\n\"\"\",\n    description=\"test description\",\n    annotations=[\n        \"test1\",\n        \"test2\",\n        \"test3\",\n    ],\n    folder=\"testFolder\",\n    parameters={\n        \"foo\": \"test1\",\n        \"Bar\": \"Test2\",\n    },\n    additional_properties={\n        \"foo\": \"test1\",\n        \"bar\": \"test2\",\n    },\n    schema_json=\"\"\"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"name\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"firstName\": {\n          \"type\": \"string\"\n        },\n        \"lastName\": {\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"age\": {\n      \"type\": \"integer\"\n    }\n  }\n}\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Identity = new Azure.DataFactory.Inputs.FactoryIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountKind = \"BlobStorage\",\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleLinkedCustomService = new Azure.DataFactory.LinkedCustomService(\"exampleLinkedCustomService\", new Azure.DataFactory.LinkedCustomServiceArgs\n        {\n            DataFactoryId = exampleFactory.Id,\n            Type = \"AzureBlobStorage\",\n            TypePropertiesJson = @$\"{{\n  \"\"connectionString\"\":\"\"{azurerm_storage_account.Test.Primary_connection_string}\"\"\n}}\n\",\n        });\n        var exampleCustomDataset = new Azure.DataFactory.CustomDataset(\"exampleCustomDataset\", new Azure.DataFactory.CustomDatasetArgs\n        {\n            DataFactoryId = exampleFactory.Id,\n            Type = \"Json\",\n            LinkedService = new Azure.DataFactory.Inputs.CustomDatasetLinkedServiceArgs\n            {\n                Name = azurerm_data_factory_linked_custom_service.Test.Name,\n                Parameters = \n                {\n                    { \"key1\", \"value1\" },\n                },\n            },\n            TypePropertiesJson = @$\"{{\n  \"\"location\"\": {{\n    \"\"container\"\":\"\"{azurerm_storage_container.Test.Name}\"\",\n    \"\"fileName\"\":\"\"foo.txt\"\",\n    \"\"folderPath\"\": \"\"foo/bar/\"\",\n    \"\"type\"\":\"\"AzureBlobStorageLocation\"\"\n  }},\n  \"\"encodingName\"\":\"\"UTF-8\"\"\n}}\n\",\n            Description = \"test description\",\n            Annotations = \n            {\n                \"test1\",\n                \"test2\",\n                \"test3\",\n            },\n            Folder = \"testFolder\",\n            Parameters = \n            {\n                { \"foo\", \"test1\" },\n                { \"Bar\", \"Test2\" },\n            },\n            AdditionalProperties = \n            {\n                { \"foo\", \"test1\" },\n                { \"bar\", \"test2\" },\n            },\n            SchemaJson = @\"{\n  \"\"type\"\": \"\"object\"\",\n  \"\"properties\"\": {\n    \"\"name\"\": {\n      \"\"type\"\": \"\"object\"\",\n      \"\"properties\"\": {\n        \"\"firstName\"\": {\n          \"\"type\"\": \"\"string\"\"\n        },\n        \"\"lastName\"\": {\n          \"\"type\"\": \"\"string\"\"\n        }\n      }\n    },\n    \"\"age\"\": {\n      \"\"type\"\": \"\"integer\"\"\n    }\n  }\n}\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIdentity: \u0026datafactory.FactoryIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountKind:            pulumi.String(\"BlobStorage\"),\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedCustomService(ctx, \"exampleLinkedCustomService\", \u0026datafactory.LinkedCustomServiceArgs{\n\t\t\tDataFactoryId:      exampleFactory.ID(),\n\t\t\tType:               pulumi.String(\"AzureBlobStorage\"),\n\t\t\tTypePropertiesJson: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v\", \"{\\n\", \"  \\\"connectionString\\\":\\\"\", azurerm_storage_account.Test.Primary_connection_string, \"\\\"\\n\", \"}\\n\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewCustomDataset(ctx, \"exampleCustomDataset\", \u0026datafactory.CustomDatasetArgs{\n\t\t\tDataFactoryId: exampleFactory.ID(),\n\t\t\tType:          pulumi.String(\"Json\"),\n\t\t\tLinkedService: \u0026datafactory.CustomDatasetLinkedServiceArgs{\n\t\t\t\tName: pulumi.Any(azurerm_data_factory_linked_custom_service.Test.Name),\n\t\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTypePropertiesJson: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \"  \\\"location\\\": {\\n\", \"    \\\"container\\\":\\\"\", azurerm_storage_container.Test.Name, \"\\\",\\n\", \"    \\\"fileName\\\":\\\"foo.txt\\\",\\n\", \"    \\\"folderPath\\\": \\\"foo/bar/\\\",\\n\", \"    \\\"type\\\":\\\"AzureBlobStorageLocation\\\"\\n\", \"  },\\n\", \"  \\\"encodingName\\\":\\\"UTF-8\\\"\\n\", \"}\\n\")),\n\t\t\tDescription:        pulumi.String(\"test description\"),\n\t\t\tAnnotations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"test1\"),\n\t\t\t\tpulumi.String(\"test2\"),\n\t\t\t\tpulumi.String(\"test3\"),\n\t\t\t},\n\t\t\tFolder: pulumi.String(\"testFolder\"),\n\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"test1\"),\n\t\t\t\t\"Bar\": pulumi.String(\"Test2\"),\n\t\t\t},\n\t\t\tAdditionalProperties: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"test1\"),\n\t\t\t\t\"bar\": pulumi.String(\"test2\"),\n\t\t\t},\n\t\t\tSchemaJson: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \"  \\\"type\\\": \\\"object\\\",\\n\", \"  \\\"properties\\\": {\\n\", \"    \\\"name\\\": {\\n\", \"      \\\"type\\\": \\\"object\\\",\\n\", \"      \\\"properties\\\": {\\n\", \"        \\\"firstName\\\": {\\n\", \"          \\\"type\\\": \\\"string\\\"\\n\", \"        },\\n\", \"        \\\"lastName\\\": {\\n\", \"          \\\"type\\\": \\\"string\\\"\\n\", \"        }\\n\", \"      }\\n\", \"    },\\n\", \"    \\\"age\\\": {\\n\", \"      \\\"type\\\": \\\"integer\\\"\\n\", \"    }\\n\", \"  }\\n\", \"}\\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/customDataset:CustomDataset example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/datasets/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryId": {
          "description": "The Data Factory ID in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedService": {
          "$ref": "#/types/azure:datafactory/CustomDatasetLinkedService:CustomDatasetLinkedService",
          "description": "A `linked_service` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "schemaJson": {
          "description": "A JSON object that contains the schema of the Data Factory Dataset.\n",
          "type": "string"
        },
        "type": {
          "description": "The type of dataset that will be associated with Data Factory.\n",
          "type": "string"
        },
        "typePropertiesJson": {
          "description": "A JSON object that contains the properties of the Data Factory Dataset.\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryId": {
          "description": "The Data Factory ID in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedService": {
          "$ref": "#/types/azure:datafactory/CustomDatasetLinkedService:CustomDatasetLinkedService",
          "description": "A `linked_service` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "schemaJson": {
          "description": "A JSON object that contains the schema of the Data Factory Dataset.\n",
          "type": "string"
        },
        "type": {
          "description": "The type of dataset that will be associated with Data Factory.\n",
          "type": "string"
        },
        "typePropertiesJson": {
          "description": "A JSON object that contains the properties of the Data Factory Dataset.\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryId",
        "linkedService",
        "name",
        "type",
        "typePropertiesJson"
      ],
      "requiredInputs": [
        "dataFactoryId",
        "linkedService",
        "type",
        "typePropertiesJson"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CustomDataset resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryId": {
            "description": "The Data Factory ID in which to associate the Dataset with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Dataset.\n",
            "type": "string"
          },
          "folder": {
            "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
            "type": "string"
          },
          "linkedService": {
            "$ref": "#/types/azure:datafactory/CustomDatasetLinkedService:CustomDatasetLinkedService",
            "description": "A `linked_service` block as defined below.\n"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Dataset.\n",
            "type": "object"
          },
          "schemaJson": {
            "description": "A JSON object that contains the schema of the Data Factory Dataset.\n",
            "type": "string"
          },
          "type": {
            "description": "The type of dataset that will be associated with Data Factory.\n",
            "type": "string"
          },
          "typePropertiesJson": {
            "description": "A JSON object that contains the properties of the Data Factory Dataset.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/dataFlow:DataFlow": {
      "description": "Manages a Data Flow inside an Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedCustomService = new azure.datafactory.LinkedCustomService(\"exampleLinkedCustomService\", {\n    dataFactoryId: exampleFactory.id,\n    type: \"AzureBlobStorage\",\n    typePropertiesJson: pulumi.interpolate`{\n  \"connectionString\": \"${exampleAccount.primaryConnectionString}\"\n}\n`,\n});\nconst example1 = new azure.datafactory.DatasetJson(\"example1\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    linkedServiceName: exampleLinkedCustomService.name,\n    azureBlobStorageLocation: {\n        container: \"container\",\n        path: \"foo/bar/\",\n        filename: \"foo.txt\",\n    },\n    encoding: \"UTF-8\",\n});\nconst example2 = new azure.datafactory.DatasetJson(\"example2\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    linkedServiceName: exampleLinkedCustomService.name,\n    azureBlobStorageLocation: {\n        container: \"container\",\n        path: \"foo/bar/\",\n        filename: \"bar.txt\",\n    },\n    encoding: \"UTF-8\",\n});\nconst exampleDataFlow = new azure.datafactory.DataFlow(\"exampleDataFlow\", {\n    dataFactoryId: exampleFactory.id,\n    sources: [{\n        name: \"source1\",\n        dataset: {\n            name: example1.name,\n        },\n    }],\n    sinks: [{\n        name: \"sink1\",\n        dataset: {\n            name: example2.name,\n        },\n    }],\n    script: `source(\n  allowSchemaDrift: true, \n  validateSchema: false, \n  limit: 100, \n  ignoreNoFilesFound: false, \n  documentForm: 'documentPerLine') ~\u003e source1 \nsource1 sink(\n  allowSchemaDrift: true, \n  validateSchema: false, \n  skipDuplicateMapInputs: true, \n  skipDuplicateMapOutputs: true) ~\u003e sink1\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_custom_service = azure.datafactory.LinkedCustomService(\"exampleLinkedCustomService\",\n    data_factory_id=example_factory.id,\n    type=\"AzureBlobStorage\",\n    type_properties_json=example_account.primary_connection_string.apply(lambda primary_connection_string: f\"\"\"{{\n  \"connectionString\": \"{primary_connection_string}\"\n}}\n\"\"\"))\nexample1 = azure.datafactory.DatasetJson(\"example1\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    linked_service_name=example_linked_custom_service.name,\n    azure_blob_storage_location=azure.datafactory.DatasetJsonAzureBlobStorageLocationArgs(\n        container=\"container\",\n        path=\"foo/bar/\",\n        filename=\"foo.txt\",\n    ),\n    encoding=\"UTF-8\")\nexample2 = azure.datafactory.DatasetJson(\"example2\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    linked_service_name=example_linked_custom_service.name,\n    azure_blob_storage_location=azure.datafactory.DatasetJsonAzureBlobStorageLocationArgs(\n        container=\"container\",\n        path=\"foo/bar/\",\n        filename=\"bar.txt\",\n    ),\n    encoding=\"UTF-8\")\nexample_data_flow = azure.datafactory.DataFlow(\"exampleDataFlow\",\n    data_factory_id=example_factory.id,\n    sources=[azure.datafactory.DataFlowSourceArgs(\n        name=\"source1\",\n        dataset=azure.datafactory.DataFlowSourceDatasetArgs(\n            name=example1.name,\n        ),\n    )],\n    sinks=[azure.datafactory.DataFlowSinkArgs(\n        name=\"sink1\",\n        dataset=azure.datafactory.DataFlowSinkDatasetArgs(\n            name=example2.name,\n        ),\n    )],\n    script=\"\"\"source(\n  allowSchemaDrift: true, \n  validateSchema: false, \n  limit: 100, \n  ignoreNoFilesFound: false, \n  documentForm: 'documentPerLine') ~\u003e source1 \nsource1 sink(\n  allowSchemaDrift: true, \n  validateSchema: false, \n  skipDuplicateMapInputs: true, \n  skipDuplicateMapOutputs: true) ~\u003e sink1\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedCustomService = new Azure.DataFactory.LinkedCustomService(\"exampleLinkedCustomService\", new Azure.DataFactory.LinkedCustomServiceArgs\n        {\n            DataFactoryId = exampleFactory.Id,\n            Type = \"AzureBlobStorage\",\n            TypePropertiesJson = exampleAccount.PrimaryConnectionString.Apply(primaryConnectionString =\u003e @$\"{{\n  \"\"connectionString\"\": \"\"{primaryConnectionString}\"\"\n}}\n\"),\n        });\n        var example1 = new Azure.DataFactory.DatasetJson(\"example1\", new Azure.DataFactory.DatasetJsonArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            LinkedServiceName = exampleLinkedCustomService.Name,\n            AzureBlobStorageLocation = new Azure.DataFactory.Inputs.DatasetJsonAzureBlobStorageLocationArgs\n            {\n                Container = \"container\",\n                Path = \"foo/bar/\",\n                Filename = \"foo.txt\",\n            },\n            Encoding = \"UTF-8\",\n        });\n        var example2 = new Azure.DataFactory.DatasetJson(\"example2\", new Azure.DataFactory.DatasetJsonArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            LinkedServiceName = exampleLinkedCustomService.Name,\n            AzureBlobStorageLocation = new Azure.DataFactory.Inputs.DatasetJsonAzureBlobStorageLocationArgs\n            {\n                Container = \"container\",\n                Path = \"foo/bar/\",\n                Filename = \"bar.txt\",\n            },\n            Encoding = \"UTF-8\",\n        });\n        var exampleDataFlow = new Azure.DataFactory.DataFlow(\"exampleDataFlow\", new Azure.DataFactory.DataFlowArgs\n        {\n            DataFactoryId = exampleFactory.Id,\n            Sources = \n            {\n                new Azure.DataFactory.Inputs.DataFlowSourceArgs\n                {\n                    Name = \"source1\",\n                    Dataset = new Azure.DataFactory.Inputs.DataFlowSourceDatasetArgs\n                    {\n                        Name = example1.Name,\n                    },\n                },\n            },\n            Sinks = \n            {\n                new Azure.DataFactory.Inputs.DataFlowSinkArgs\n                {\n                    Name = \"sink1\",\n                    Dataset = new Azure.DataFactory.Inputs.DataFlowSinkDatasetArgs\n                    {\n                        Name = example2.Name,\n                    },\n                },\n            },\n            Script = @\"source(\n  allowSchemaDrift: true, \n  validateSchema: false, \n  limit: 100, \n  ignoreNoFilesFound: false, \n  documentForm: 'documentPerLine') ~\u003e source1 \nsource1 sink(\n  allowSchemaDrift: true, \n  validateSchema: false, \n  skipDuplicateMapInputs: true, \n  skipDuplicateMapOutputs: true) ~\u003e sink1\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLinkedCustomService, err := datafactory.NewLinkedCustomService(ctx, \"exampleLinkedCustomService\", \u0026datafactory.LinkedCustomServiceArgs{\n\t\t\tDataFactoryId: exampleFactory.ID(),\n\t\t\tType:          pulumi.String(\"AzureBlobStorage\"),\n\t\t\tTypePropertiesJson: exampleAccount.PrimaryConnectionString.ApplyT(func(primaryConnectionString string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v%v%v%v%v\", \"{\\n\", \"  \\\"connectionString\\\": \\\"\", primaryConnectionString, \"\\\"\\n\", \"}\\n\"), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample1, err := datafactory.NewDatasetJson(ctx, \"example1\", \u0026datafactory.DatasetJsonArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tLinkedServiceName: exampleLinkedCustomService.Name,\n\t\t\tAzureBlobStorageLocation: \u0026datafactory.DatasetJsonAzureBlobStorageLocationArgs{\n\t\t\t\tContainer: pulumi.String(\"container\"),\n\t\t\t\tPath:      pulumi.String(\"foo/bar/\"),\n\t\t\t\tFilename:  pulumi.String(\"foo.txt\"),\n\t\t\t},\n\t\t\tEncoding: pulumi.String(\"UTF-8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample2, err := datafactory.NewDatasetJson(ctx, \"example2\", \u0026datafactory.DatasetJsonArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tLinkedServiceName: exampleLinkedCustomService.Name,\n\t\t\tAzureBlobStorageLocation: \u0026datafactory.DatasetJsonAzureBlobStorageLocationArgs{\n\t\t\t\tContainer: pulumi.String(\"container\"),\n\t\t\t\tPath:      pulumi.String(\"foo/bar/\"),\n\t\t\t\tFilename:  pulumi.String(\"bar.txt\"),\n\t\t\t},\n\t\t\tEncoding: pulumi.String(\"UTF-8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewDataFlow(ctx, \"exampleDataFlow\", \u0026datafactory.DataFlowArgs{\n\t\t\tDataFactoryId: exampleFactory.ID(),\n\t\t\tSources: datafactory.DataFlowSourceArray{\n\t\t\t\t\u0026datafactory.DataFlowSourceArgs{\n\t\t\t\t\tName: pulumi.String(\"source1\"),\n\t\t\t\t\tDataset: \u0026datafactory.DataFlowSourceDatasetArgs{\n\t\t\t\t\t\tName: example1.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tSinks: datafactory.DataFlowSinkArray{\n\t\t\t\t\u0026datafactory.DataFlowSinkArgs{\n\t\t\t\t\tName: pulumi.String(\"sink1\"),\n\t\t\t\t\tDataset: \u0026datafactory.DataFlowSinkDatasetArgs{\n\t\t\t\t\t\tName: example2.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tScript: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v\", \"source(\\n\", \"  allowSchemaDrift: true, \\n\", \"  validateSchema: false, \\n\", \"  limit: 100, \\n\", \"  ignoreNoFilesFound: false, \\n\", \"  documentForm: 'documentPerLine') ~\u003e source1 \\n\", \"source1 sink(\\n\", \"  allowSchemaDrift: true, \\n\", \"  validateSchema: false, \\n\", \"  skipDuplicateMapInputs: true, \\n\", \"  skipDuplicateMapOutputs: true) ~\u003e sink1\\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Data Flow can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/dataFlow:DataFlow example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/dataflows/example\n```\n\n ",
      "inputProperties": {
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Data Flow.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryId": {
          "description": "The ID of Data Factory in which to associate the Data Flow with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Data Flow.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Data Flow is in. If not specified, the Data Flow will appear at the root level.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Data Flow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "script": {
          "description": "The script for the Data Factory Data Flow.\n",
          "type": "string"
        },
        "sinks": {
          "description": "One or more `sink` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DataFlowSink:DataFlowSink"
          },
          "type": "array"
        },
        "sources": {
          "description": "One or more `source` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DataFlowSource:DataFlowSource"
          },
          "type": "array"
        },
        "transformations": {
          "description": "One or more `transformation` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DataFlowTransformation:DataFlowTransformation"
          },
          "type": "array"
        }
      },
      "properties": {
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Data Flow.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryId": {
          "description": "The ID of Data Factory in which to associate the Data Flow with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Data Flow.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Data Flow is in. If not specified, the Data Flow will appear at the root level.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Data Flow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "script": {
          "description": "The script for the Data Factory Data Flow.\n",
          "type": "string"
        },
        "sinks": {
          "description": "One or more `sink` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DataFlowSink:DataFlowSink"
          },
          "type": "array"
        },
        "sources": {
          "description": "One or more `source` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DataFlowSource:DataFlowSource"
          },
          "type": "array"
        },
        "transformations": {
          "description": "One or more `transformation` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DataFlowTransformation:DataFlowTransformation"
          },
          "type": "array"
        }
      },
      "required": [
        "dataFactoryId",
        "name",
        "script",
        "sinks",
        "sources"
      ],
      "requiredInputs": [
        "dataFactoryId",
        "script",
        "sinks",
        "sources"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataFlow resources.\n",
        "properties": {
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Data Flow.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryId": {
            "description": "The ID of Data Factory in which to associate the Data Flow with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Data Flow.\n",
            "type": "string"
          },
          "folder": {
            "description": "The folder that this Data Flow is in. If not specified, the Data Flow will appear at the root level.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Data Flow. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "script": {
            "description": "The script for the Data Factory Data Flow.\n",
            "type": "string"
          },
          "sinks": {
            "description": "One or more `sink` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/DataFlowSink:DataFlowSink"
            },
            "type": "array"
          },
          "sources": {
            "description": "One or more `source` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/DataFlowSource:DataFlowSource"
            },
            "type": "array"
          },
          "transformations": {
            "description": "One or more `transformation` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/DataFlowTransformation:DataFlowTransformation"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/datasetAzureBlob:DatasetAzureBlob": {
      "description": "Manages an Azure Blob Dataset inside an Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = exampleResourceGroup.name.apply(name =\u003e azure.storage.getAccount({\n    name: \"storageaccountname\",\n    resourceGroupName: name,\n}));\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceAzureBlobStorage = new azure.datafactory.LinkedServiceAzureBlobStorage(\"exampleLinkedServiceAzureBlobStorage\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: exampleAccount.apply(exampleAccount =\u003e exampleAccount.primaryConnectionString),\n});\nconst exampleDatasetAzureBlob = new azure.datafactory.DatasetAzureBlob(\"exampleDatasetAzureBlob\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    linkedServiceName: exampleLinkedServiceAzureBlobStorage.name,\n    path: \"foo\",\n    filename: \"bar.png\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = example_resource_group.name.apply(lambda name: azure.storage.get_account(name=\"storageaccountname\",\n    resource_group_name=name))\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_azure_blob_storage = azure.datafactory.LinkedServiceAzureBlobStorage(\"exampleLinkedServiceAzureBlobStorage\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=example_account.primary_connection_string)\nexample_dataset_azure_blob = azure.datafactory.DatasetAzureBlob(\"exampleDatasetAzureBlob\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    linked_service_name=example_linked_service_azure_blob_storage.name,\n    path=\"foo\",\n    filename=\"bar.png\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = exampleResourceGroup.Name.Apply(name =\u003e Azure.Storage.GetAccount.InvokeAsync(new Azure.Storage.GetAccountArgs\n        {\n            Name = \"storageaccountname\",\n            ResourceGroupName = name,\n        }));\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceAzureBlobStorage = new Azure.DataFactory.LinkedServiceAzureBlobStorage(\"exampleLinkedServiceAzureBlobStorage\", new Azure.DataFactory.LinkedServiceAzureBlobStorageArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.PrimaryConnectionString),\n        });\n        var exampleDatasetAzureBlob = new Azure.DataFactory.DatasetAzureBlob(\"exampleDatasetAzureBlob\", new Azure.DataFactory.DatasetAzureBlobArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            LinkedServiceName = exampleLinkedServiceAzureBlobStorage.Name,\n            Path = \"foo\",\n            Filename = \"bar.png\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLinkedServiceAzureBlobStorage, err := datafactory.NewLinkedServiceAzureBlobStorage(ctx, \"exampleLinkedServiceAzureBlobStorage\", \u0026datafactory.LinkedServiceAzureBlobStorageArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString: exampleAccount.ApplyT(func(exampleAccount storage.GetAccountResult) (string, error) {\n\t\t\t\treturn exampleAccount.PrimaryConnectionString, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewDatasetAzureBlob(ctx, \"exampleDatasetAzureBlob\", \u0026datafactory.DatasetAzureBlobArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tLinkedServiceName: exampleLinkedServiceAzureBlobStorage.Name,\n\t\t\tPath:              pulumi.String(\"foo\"),\n\t\t\tFilename:          pulumi.String(\"bar.png\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/datasetAzureBlob:DatasetAzureBlob example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/datasets/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "dynamicFilenameEnabled": {
          "description": "Is the `filename` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "type": "boolean"
        },
        "dynamicPathEnabled": {
          "description": "Is the `path` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "type": "boolean"
        },
        "filename": {
          "description": "The filename of the Azure Blob.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "path": {
          "description": "The path of the Azure Blob.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetAzureBlobSchemaColumn:DatasetAzureBlobSchemaColumn"
          },
          "type": "array"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "dynamicFilenameEnabled": {
          "description": "Is the `filename` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "type": "boolean"
        },
        "dynamicPathEnabled": {
          "description": "Is the `path` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "type": "boolean"
        },
        "filename": {
          "description": "The filename of the Azure Blob.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "path": {
          "description": "The path of the Azure Blob.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetAzureBlobSchemaColumn:DatasetAzureBlobSchemaColumn"
          },
          "type": "array"
        }
      },
      "required": [
        "dataFactoryName",
        "linkedServiceName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "linkedServiceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetAzureBlob resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Dataset.\n",
            "type": "string"
          },
          "dynamicFilenameEnabled": {
            "description": "Is the `filename` using dynamic expression, function or system variables? Defaults to `false`.\n",
            "type": "boolean"
          },
          "dynamicPathEnabled": {
            "description": "Is the `path` using dynamic expression, function or system variables? Defaults to `false`.\n",
            "type": "boolean"
          },
          "filename": {
            "description": "The filename of the Azure Blob.\n",
            "type": "string"
          },
          "folder": {
            "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
            "type": "string"
          },
          "linkedServiceName": {
            "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Dataset.\n",
            "type": "object"
          },
          "path": {
            "description": "The path of the Azure Blob.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
            "type": "string"
          },
          "schemaColumns": {
            "description": "A `schema_column` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/DatasetAzureBlobSchemaColumn:DatasetAzureBlobSchemaColumn"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/datasetBinary:DatasetBinary": {
      "description": "Manages a Data Factory Binary Dataset inside an Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceSftp = new azure.datafactory.LinkedServiceSftp(\"exampleLinkedServiceSftp\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    authenticationType: \"Basic\",\n    host: \"http://www.bing.com\",\n    port: 22,\n    username: \"foo\",\n    password: \"bar\",\n});\nconst exampleDatasetBinary = new azure.datafactory.DatasetBinary(\"exampleDatasetBinary\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    linkedServiceName: exampleLinkedServiceSftp.name,\n    sftpServerLocation: {\n        path: \"/test/\",\n        filename: \"**\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_sftp = azure.datafactory.LinkedServiceSftp(\"exampleLinkedServiceSftp\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    authentication_type=\"Basic\",\n    host=\"http://www.bing.com\",\n    port=22,\n    username=\"foo\",\n    password=\"bar\")\nexample_dataset_binary = azure.datafactory.DatasetBinary(\"exampleDatasetBinary\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    linked_service_name=example_linked_service_sftp.name,\n    sftp_server_location=azure.datafactory.DatasetBinarySftpServerLocationArgs(\n        path=\"/test/\",\n        filename=\"**\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceSftp = new Azure.DataFactory.LinkedServiceSftp(\"exampleLinkedServiceSftp\", new Azure.DataFactory.LinkedServiceSftpArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            AuthenticationType = \"Basic\",\n            Host = \"http://www.bing.com\",\n            Port = 22,\n            Username = \"foo\",\n            Password = \"bar\",\n        });\n        var exampleDatasetBinary = new Azure.DataFactory.DatasetBinary(\"exampleDatasetBinary\", new Azure.DataFactory.DatasetBinaryArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            LinkedServiceName = exampleLinkedServiceSftp.Name,\n            SftpServerLocation = new Azure.DataFactory.Inputs.DatasetBinarySftpServerLocationArgs\n            {\n                Path = \"/test/\",\n                Filename = \"**\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLinkedServiceSftp, err := datafactory.NewLinkedServiceSftp(ctx, \"exampleLinkedServiceSftp\", \u0026datafactory.LinkedServiceSftpArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tDataFactoryName:    exampleFactory.Name,\n\t\t\tAuthenticationType: pulumi.String(\"Basic\"),\n\t\t\tHost:               pulumi.String(\"http://www.bing.com\"),\n\t\t\tPort:               pulumi.Int(22),\n\t\t\tUsername:           pulumi.String(\"foo\"),\n\t\t\tPassword:           pulumi.String(\"bar\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewDatasetBinary(ctx, \"exampleDatasetBinary\", \u0026datafactory.DatasetBinaryArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tLinkedServiceName: exampleLinkedServiceSftp.Name,\n\t\t\tSftpServerLocation: \u0026datafactory.DatasetBinarySftpServerLocationArgs{\n\t\t\t\tPath:     pulumi.String(\"/test/\"),\n\t\t\t\tFilename: pulumi.String(\"**\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factorie Binary Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/datasetBinary:DatasetBinary example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/datasets/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Binary Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Binary Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "azureBlobStorageLocation": {
          "$ref": "#/types/azure:datafactory/DatasetBinaryAzureBlobStorageLocation:DatasetBinaryAzureBlobStorageLocation",
          "description": "A `azure_blob_storage_location` block as defined below.\n"
        },
        "compression": {
          "$ref": "#/types/azure:datafactory/DatasetBinaryCompression:DatasetBinaryCompression",
          "description": "A `compression` block as defined below.\n"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Binary Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "httpServerLocation": {
          "$ref": "#/types/azure:datafactory/DatasetBinaryHttpServerLocation:DatasetBinaryHttpServerLocation",
          "description": "A `http_server_location` block as defined below.\n"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Binary Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Binary Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies a list of parameters to associate with the Data Factory Binary Dataset.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Data Factory should exist. Changing this forces a new Data Factory Binary Dataset to be created.\n",
          "type": "string"
        },
        "sftpServerLocation": {
          "$ref": "#/types/azure:datafactory/DatasetBinarySftpServerLocation:DatasetBinarySftpServerLocation",
          "description": "A `sftp_server_location` block as defined below.\n---\n"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Binary Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Binary Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "azureBlobStorageLocation": {
          "$ref": "#/types/azure:datafactory/DatasetBinaryAzureBlobStorageLocation:DatasetBinaryAzureBlobStorageLocation",
          "description": "A `azure_blob_storage_location` block as defined below.\n"
        },
        "compression": {
          "$ref": "#/types/azure:datafactory/DatasetBinaryCompression:DatasetBinaryCompression",
          "description": "A `compression` block as defined below.\n"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Binary Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "httpServerLocation": {
          "$ref": "#/types/azure:datafactory/DatasetBinaryHttpServerLocation:DatasetBinaryHttpServerLocation",
          "description": "A `http_server_location` block as defined below.\n"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Binary Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Binary Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies a list of parameters to associate with the Data Factory Binary Dataset.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Data Factory should exist. Changing this forces a new Data Factory Binary Dataset to be created.\n",
          "type": "string"
        },
        "sftpServerLocation": {
          "$ref": "#/types/azure:datafactory/DatasetBinarySftpServerLocation:DatasetBinarySftpServerLocation",
          "description": "A `sftp_server_location` block as defined below.\n---\n"
        }
      },
      "required": [
        "dataFactoryName",
        "linkedServiceName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "linkedServiceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetBinary resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Binary Dataset.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Binary Dataset.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "azureBlobStorageLocation": {
            "$ref": "#/types/azure:datafactory/DatasetBinaryAzureBlobStorageLocation:DatasetBinaryAzureBlobStorageLocation",
            "description": "A `azure_blob_storage_location` block as defined below.\n"
          },
          "compression": {
            "$ref": "#/types/azure:datafactory/DatasetBinaryCompression:DatasetBinaryCompression",
            "description": "A `compression` block as defined below.\n"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Binary Dataset with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Dataset.\n",
            "type": "string"
          },
          "folder": {
            "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
            "type": "string"
          },
          "httpServerLocation": {
            "$ref": "#/types/azure:datafactory/DatasetBinaryHttpServerLocation:DatasetBinaryHttpServerLocation",
            "description": "A `http_server_location` block as defined below.\n"
          },
          "linkedServiceName": {
            "description": "The Data Factory Linked Service name in which to associate the Binary Dataset with.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Binary Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies a list of parameters to associate with the Data Factory Binary Dataset.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Data Factory should exist. Changing this forces a new Data Factory Binary Dataset to be created.\n",
            "type": "string"
          },
          "sftpServerLocation": {
            "$ref": "#/types/azure:datafactory/DatasetBinarySftpServerLocation:DatasetBinarySftpServerLocation",
            "description": "A `sftp_server_location` block as defined below.\n---\n"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/datasetCosmosDBApi:DatasetCosmosDBApi": {
      "description": "Manages an Azure Cosmos DB SQL API Dataset inside an Azure Data Factory.\n\n\n## Import\n\nData Factory Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/datasetCosmosDBApi:DatasetCosmosDBApi example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/datasets/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "collectionName": {
          "description": "The collection name of the Data Factory Dataset Azure Cosmos DB SQL API.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetCosmosDBApiSchemaColumn:DatasetCosmosDBApiSchemaColumn"
          },
          "type": "array"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "collectionName": {
          "description": "The collection name of the Data Factory Dataset Azure Cosmos DB SQL API.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetCosmosDBApiSchemaColumn:DatasetCosmosDBApiSchemaColumn"
          },
          "type": "array"
        }
      },
      "required": [
        "dataFactoryName",
        "linkedServiceName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "linkedServiceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetCosmosDBApi resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "collectionName": {
            "description": "The collection name of the Data Factory Dataset Azure Cosmos DB SQL API.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Dataset.\n",
            "type": "string"
          },
          "folder": {
            "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
            "type": "string"
          },
          "linkedServiceName": {
            "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Dataset.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
            "type": "string"
          },
          "schemaColumns": {
            "description": "A `schema_column` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/DatasetCosmosDBApiSchemaColumn:DatasetCosmosDBApiSchemaColumn"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/datasetDelimitedText:DatasetDelimitedText": {
      "description": "Manages an Azure Delimited Text Dataset inside an Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceWeb = new azure.datafactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    authenticationType: \"Anonymous\",\n    url: \"https://www.bing.com\",\n});\nconst exampleDatasetDelimitedText = new azure.datafactory.DatasetDelimitedText(\"exampleDatasetDelimitedText\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    linkedServiceName: exampleLinkedServiceWeb.name,\n    httpServerLocation: {\n        relativeUrl: \"http://www.bing.com\",\n        path: \"foo/bar/\",\n        filename: \"fizz.txt\",\n    },\n    columnDelimiter: \",\",\n    rowDelimiter: \"NEW\",\n    encoding: \"UTF-8\",\n    quoteCharacter: \"x\",\n    escapeCharacter: \"f\",\n    firstRowAsHeader: true,\n    nullValue: \"NULL\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_web = azure.datafactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    authentication_type=\"Anonymous\",\n    url=\"https://www.bing.com\")\nexample_dataset_delimited_text = azure.datafactory.DatasetDelimitedText(\"exampleDatasetDelimitedText\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    linked_service_name=example_linked_service_web.name,\n    http_server_location=azure.datafactory.DatasetDelimitedTextHttpServerLocationArgs(\n        relative_url=\"http://www.bing.com\",\n        path=\"foo/bar/\",\n        filename=\"fizz.txt\",\n    ),\n    column_delimiter=\",\",\n    row_delimiter=\"NEW\",\n    encoding=\"UTF-8\",\n    quote_character=\"x\",\n    escape_character=\"f\",\n    first_row_as_header=True,\n    null_value=\"NULL\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceWeb = new Azure.DataFactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\", new Azure.DataFactory.LinkedServiceWebArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            AuthenticationType = \"Anonymous\",\n            Url = \"https://www.bing.com\",\n        });\n        var exampleDatasetDelimitedText = new Azure.DataFactory.DatasetDelimitedText(\"exampleDatasetDelimitedText\", new Azure.DataFactory.DatasetDelimitedTextArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            LinkedServiceName = exampleLinkedServiceWeb.Name,\n            HttpServerLocation = new Azure.DataFactory.Inputs.DatasetDelimitedTextHttpServerLocationArgs\n            {\n                RelativeUrl = \"http://www.bing.com\",\n                Path = \"foo/bar/\",\n                Filename = \"fizz.txt\",\n            },\n            ColumnDelimiter = \",\",\n            RowDelimiter = \"NEW\",\n            Encoding = \"UTF-8\",\n            QuoteCharacter = \"x\",\n            EscapeCharacter = \"f\",\n            FirstRowAsHeader = true,\n            NullValue = \"NULL\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLinkedServiceWeb, err := datafactory.NewLinkedServiceWeb(ctx, \"exampleLinkedServiceWeb\", \u0026datafactory.LinkedServiceWebArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tDataFactoryName:    exampleFactory.Name,\n\t\t\tAuthenticationType: pulumi.String(\"Anonymous\"),\n\t\t\tUrl:                pulumi.String(\"https://www.bing.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewDatasetDelimitedText(ctx, \"exampleDatasetDelimitedText\", \u0026datafactory.DatasetDelimitedTextArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tLinkedServiceName: exampleLinkedServiceWeb.Name,\n\t\t\tHttpServerLocation: \u0026datafactory.DatasetDelimitedTextHttpServerLocationArgs{\n\t\t\t\tRelativeUrl: pulumi.String(\"http://www.bing.com\"),\n\t\t\t\tPath:        pulumi.String(\"foo/bar/\"),\n\t\t\t\tFilename:    pulumi.String(\"fizz.txt\"),\n\t\t\t},\n\t\t\tColumnDelimiter:  pulumi.String(\",\"),\n\t\t\tRowDelimiter:     pulumi.String(\"NEW\"),\n\t\t\tEncoding:         pulumi.String(\"UTF-8\"),\n\t\t\tQuoteCharacter:   pulumi.String(\"x\"),\n\t\t\tEscapeCharacter:  pulumi.String(\"f\"),\n\t\t\tFirstRowAsHeader: pulumi.Bool(true),\n\t\t\tNullValue:        pulumi.String(\"NULL\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/datasetDelimitedText:DatasetDelimitedText example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/datasets/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "azureBlobFsLocation": {
          "$ref": "#/types/azure:datafactory/DatasetDelimitedTextAzureBlobFsLocation:DatasetDelimitedTextAzureBlobFsLocation",
          "description": "An `azure_blob_fs_location` block as defined below.\n"
        },
        "azureBlobStorageLocation": {
          "$ref": "#/types/azure:datafactory/DatasetDelimitedTextAzureBlobStorageLocation:DatasetDelimitedTextAzureBlobStorageLocation",
          "description": "An `azure_blob_storage_location` block as defined below.\n"
        },
        "columnDelimiter": {
          "description": "The column delimiter. Defaults to `,`.\n",
          "type": "string"
        },
        "compressionCodec": {
          "description": "The compression codec used to read/write text files. Valid values are `bzip2`, `gzip`, `deflate`, `ZipDeflate`, `TarGzip`, `Tar`, `snappy`, or `lz4`. Please note these values are case sensitive.\n",
          "type": "string"
        },
        "compressionLevel": {
          "description": "The compression ratio for the Data Factory Dataset. Valid values are `Fastest` or `Optimal`. Please note these values are case sensitive.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "encoding": {
          "description": "The encoding format for the file.\n",
          "type": "string"
        },
        "escapeCharacter": {
          "description": "The escape character. Defaults to `\\`.\n",
          "type": "string"
        },
        "firstRowAsHeader": {
          "description": "When used as input, treat the first row of data as headers. When used as output, write the headers into the output as the first row of data. Defaults to `false`.\n",
          "type": "boolean"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "httpServerLocation": {
          "$ref": "#/types/azure:datafactory/DatasetDelimitedTextHttpServerLocation:DatasetDelimitedTextHttpServerLocation",
          "description": "A `http_server_location` block as defined below.\n"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "nullValue": {
          "description": "The null value string. Defaults to an empty string.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "quoteCharacter": {
          "description": "The quote character. Defaults to `\"`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
          "type": "string"
        },
        "rowDelimiter": {
          "description": "The row delimiter. Defaults to any of the following values on read: `\\r\\n`, `\\r`, `\\n`, and `\\n` or `\\r\\n` on write by mapping data flow and Copy activity respectively.\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetDelimitedTextSchemaColumn:DatasetDelimitedTextSchemaColumn"
          },
          "type": "array"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "azureBlobFsLocation": {
          "$ref": "#/types/azure:datafactory/DatasetDelimitedTextAzureBlobFsLocation:DatasetDelimitedTextAzureBlobFsLocation",
          "description": "An `azure_blob_fs_location` block as defined below.\n"
        },
        "azureBlobStorageLocation": {
          "$ref": "#/types/azure:datafactory/DatasetDelimitedTextAzureBlobStorageLocation:DatasetDelimitedTextAzureBlobStorageLocation",
          "description": "An `azure_blob_storage_location` block as defined below.\n"
        },
        "columnDelimiter": {
          "description": "The column delimiter. Defaults to `,`.\n",
          "type": "string"
        },
        "compressionCodec": {
          "description": "The compression codec used to read/write text files. Valid values are `bzip2`, `gzip`, `deflate`, `ZipDeflate`, `TarGzip`, `Tar`, `snappy`, or `lz4`. Please note these values are case sensitive.\n",
          "type": "string"
        },
        "compressionLevel": {
          "description": "The compression ratio for the Data Factory Dataset. Valid values are `Fastest` or `Optimal`. Please note these values are case sensitive.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "encoding": {
          "description": "The encoding format for the file.\n",
          "type": "string"
        },
        "escapeCharacter": {
          "description": "The escape character. Defaults to `\\`.\n",
          "type": "string"
        },
        "firstRowAsHeader": {
          "description": "When used as input, treat the first row of data as headers. When used as output, write the headers into the output as the first row of data. Defaults to `false`.\n",
          "type": "boolean"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "httpServerLocation": {
          "$ref": "#/types/azure:datafactory/DatasetDelimitedTextHttpServerLocation:DatasetDelimitedTextHttpServerLocation",
          "description": "A `http_server_location` block as defined below.\n"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "nullValue": {
          "description": "The null value string. Defaults to an empty string.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "quoteCharacter": {
          "description": "The quote character. Defaults to `\"`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
          "type": "string"
        },
        "rowDelimiter": {
          "description": "The row delimiter. Defaults to any of the following values on read: `\\r\\n`, `\\r`, `\\n`, and `\\n` or `\\r\\n` on write by mapping data flow and Copy activity respectively.\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetDelimitedTextSchemaColumn:DatasetDelimitedTextSchemaColumn"
          },
          "type": "array"
        }
      },
      "required": [
        "dataFactoryName",
        "linkedServiceName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "linkedServiceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetDelimitedText resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "azureBlobFsLocation": {
            "$ref": "#/types/azure:datafactory/DatasetDelimitedTextAzureBlobFsLocation:DatasetDelimitedTextAzureBlobFsLocation",
            "description": "An `azure_blob_fs_location` block as defined below.\n"
          },
          "azureBlobStorageLocation": {
            "$ref": "#/types/azure:datafactory/DatasetDelimitedTextAzureBlobStorageLocation:DatasetDelimitedTextAzureBlobStorageLocation",
            "description": "An `azure_blob_storage_location` block as defined below.\n"
          },
          "columnDelimiter": {
            "description": "The column delimiter. Defaults to `,`.\n",
            "type": "string"
          },
          "compressionCodec": {
            "description": "The compression codec used to read/write text files. Valid values are `bzip2`, `gzip`, `deflate`, `ZipDeflate`, `TarGzip`, `Tar`, `snappy`, or `lz4`. Please note these values are case sensitive.\n",
            "type": "string"
          },
          "compressionLevel": {
            "description": "The compression ratio for the Data Factory Dataset. Valid values are `Fastest` or `Optimal`. Please note these values are case sensitive.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Dataset.\n",
            "type": "string"
          },
          "encoding": {
            "description": "The encoding format for the file.\n",
            "type": "string"
          },
          "escapeCharacter": {
            "description": "The escape character. Defaults to `\\`.\n",
            "type": "string"
          },
          "firstRowAsHeader": {
            "description": "When used as input, treat the first row of data as headers. When used as output, write the headers into the output as the first row of data. Defaults to `false`.\n",
            "type": "boolean"
          },
          "folder": {
            "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
            "type": "string"
          },
          "httpServerLocation": {
            "$ref": "#/types/azure:datafactory/DatasetDelimitedTextHttpServerLocation:DatasetDelimitedTextHttpServerLocation",
            "description": "A `http_server_location` block as defined below.\n"
          },
          "linkedServiceName": {
            "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "nullValue": {
            "description": "The null value string. Defaults to an empty string.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Dataset.\n",
            "type": "object"
          },
          "quoteCharacter": {
            "description": "The quote character. Defaults to `\"`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
            "type": "string"
          },
          "rowDelimiter": {
            "description": "The row delimiter. Defaults to any of the following values on read: `\\r\\n`, `\\r`, `\\n`, and `\\n` or `\\r\\n` on write by mapping data flow and Copy activity respectively.\n",
            "type": "string"
          },
          "schemaColumns": {
            "description": "A `schema_column` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/DatasetDelimitedTextSchemaColumn:DatasetDelimitedTextSchemaColumn"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/datasetHttp:DatasetHttp": {
      "description": "Manages an Azure HTTP Dataset inside an Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceWeb = new azure.datafactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    authenticationType: \"Anonymous\",\n    url: \"https://www.bing.com\",\n});\nconst exampleDatasetHttp = new azure.datafactory.DatasetHttp(\"exampleDatasetHttp\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    linkedServiceName: exampleLinkedServiceWeb.name,\n    relativeUrl: \"http://www.bing.com\",\n    requestBody: \"foo=bar\",\n    requestMethod: \"POST\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_web = azure.datafactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    authentication_type=\"Anonymous\",\n    url=\"https://www.bing.com\")\nexample_dataset_http = azure.datafactory.DatasetHttp(\"exampleDatasetHttp\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    linked_service_name=example_linked_service_web.name,\n    relative_url=\"http://www.bing.com\",\n    request_body=\"foo=bar\",\n    request_method=\"POST\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceWeb = new Azure.DataFactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\", new Azure.DataFactory.LinkedServiceWebArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            AuthenticationType = \"Anonymous\",\n            Url = \"https://www.bing.com\",\n        });\n        var exampleDatasetHttp = new Azure.DataFactory.DatasetHttp(\"exampleDatasetHttp\", new Azure.DataFactory.DatasetHttpArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            LinkedServiceName = exampleLinkedServiceWeb.Name,\n            RelativeUrl = \"http://www.bing.com\",\n            RequestBody = \"foo=bar\",\n            RequestMethod = \"POST\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLinkedServiceWeb, err := datafactory.NewLinkedServiceWeb(ctx, \"exampleLinkedServiceWeb\", \u0026datafactory.LinkedServiceWebArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tDataFactoryName:    exampleFactory.Name,\n\t\t\tAuthenticationType: pulumi.String(\"Anonymous\"),\n\t\t\tUrl:                pulumi.String(\"https://www.bing.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewDatasetHttp(ctx, \"exampleDatasetHttp\", \u0026datafactory.DatasetHttpArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tLinkedServiceName: exampleLinkedServiceWeb.Name,\n\t\t\tRelativeUrl:       pulumi.String(\"http://www.bing.com\"),\n\t\t\tRequestBody:       pulumi.String(\"foo=bar\"),\n\t\t\tRequestMethod:     pulumi.String(\"POST\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/datasetHttp:DatasetHttp example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/datasets/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "relativeUrl": {
          "description": "The relative URL based on the URL in the HTTP Linked Service.\n",
          "type": "string"
        },
        "requestBody": {
          "description": "The body for the HTTP request.\n",
          "type": "string"
        },
        "requestMethod": {
          "description": "The HTTP method for the HTTP request. (e.g. GET, POST)\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetHttpSchemaColumn:DatasetHttpSchemaColumn"
          },
          "type": "array"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "relativeUrl": {
          "description": "The relative URL based on the URL in the HTTP Linked Service.\n",
          "type": "string"
        },
        "requestBody": {
          "description": "The body for the HTTP request.\n",
          "type": "string"
        },
        "requestMethod": {
          "description": "The HTTP method for the HTTP request. (e.g. GET, POST)\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetHttpSchemaColumn:DatasetHttpSchemaColumn"
          },
          "type": "array"
        }
      },
      "required": [
        "dataFactoryName",
        "linkedServiceName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "linkedServiceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetHttp resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Dataset.\n",
            "type": "string"
          },
          "folder": {
            "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
            "type": "string"
          },
          "linkedServiceName": {
            "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Dataset.\n",
            "type": "object"
          },
          "relativeUrl": {
            "description": "The relative URL based on the URL in the HTTP Linked Service.\n",
            "type": "string"
          },
          "requestBody": {
            "description": "The body for the HTTP request.\n",
            "type": "string"
          },
          "requestMethod": {
            "description": "The HTTP method for the HTTP request. (e.g. GET, POST)\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
            "type": "string"
          },
          "schemaColumns": {
            "description": "A `schema_column` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/DatasetHttpSchemaColumn:DatasetHttpSchemaColumn"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/datasetJson:DatasetJson": {
      "description": "Manages an Azure JSON Dataset inside an Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceWeb = new azure.datafactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    authenticationType: \"Anonymous\",\n    url: \"https://www.bing.com\",\n});\nconst exampleDatasetJson = new azure.datafactory.DatasetJson(\"exampleDatasetJson\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    linkedServiceName: exampleLinkedServiceWeb.name,\n    httpServerLocation: {\n        relativeUrl: \"/fizz/buzz/\",\n        path: \"foo/bar/\",\n        filename: \"foo.txt\",\n    },\n    encoding: \"UTF-8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_web = azure.datafactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    authentication_type=\"Anonymous\",\n    url=\"https://www.bing.com\")\nexample_dataset_json = azure.datafactory.DatasetJson(\"exampleDatasetJson\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    linked_service_name=example_linked_service_web.name,\n    http_server_location=azure.datafactory.DatasetJsonHttpServerLocationArgs(\n        relative_url=\"/fizz/buzz/\",\n        path=\"foo/bar/\",\n        filename=\"foo.txt\",\n    ),\n    encoding=\"UTF-8\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceWeb = new Azure.DataFactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\", new Azure.DataFactory.LinkedServiceWebArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            AuthenticationType = \"Anonymous\",\n            Url = \"https://www.bing.com\",\n        });\n        var exampleDatasetJson = new Azure.DataFactory.DatasetJson(\"exampleDatasetJson\", new Azure.DataFactory.DatasetJsonArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            LinkedServiceName = exampleLinkedServiceWeb.Name,\n            HttpServerLocation = new Azure.DataFactory.Inputs.DatasetJsonHttpServerLocationArgs\n            {\n                RelativeUrl = \"/fizz/buzz/\",\n                Path = \"foo/bar/\",\n                Filename = \"foo.txt\",\n            },\n            Encoding = \"UTF-8\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLinkedServiceWeb, err := datafactory.NewLinkedServiceWeb(ctx, \"exampleLinkedServiceWeb\", \u0026datafactory.LinkedServiceWebArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tDataFactoryName:    exampleFactory.Name,\n\t\t\tAuthenticationType: pulumi.String(\"Anonymous\"),\n\t\t\tUrl:                pulumi.String(\"https://www.bing.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewDatasetJson(ctx, \"exampleDatasetJson\", \u0026datafactory.DatasetJsonArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tLinkedServiceName: exampleLinkedServiceWeb.Name,\n\t\t\tHttpServerLocation: \u0026datafactory.DatasetJsonHttpServerLocationArgs{\n\t\t\t\tRelativeUrl: pulumi.String(\"/fizz/buzz/\"),\n\t\t\t\tPath:        pulumi.String(\"foo/bar/\"),\n\t\t\t\tFilename:    pulumi.String(\"foo.txt\"),\n\t\t\t},\n\t\t\tEncoding: pulumi.String(\"UTF-8\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/datasetJson:DatasetJson example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/datasets/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "azureBlobStorageLocation": {
          "$ref": "#/types/azure:datafactory/DatasetJsonAzureBlobStorageLocation:DatasetJsonAzureBlobStorageLocation",
          "description": "A `azure_blob_storage_location` block as defined below.\n"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "encoding": {
          "description": "The encoding format for the file.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "httpServerLocation": {
          "$ref": "#/types/azure:datafactory/DatasetJsonHttpServerLocation:DatasetJsonHttpServerLocation",
          "description": "A `http_server_location` block as defined below.\n"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetJsonSchemaColumn:DatasetJsonSchemaColumn"
          },
          "type": "array"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "azureBlobStorageLocation": {
          "$ref": "#/types/azure:datafactory/DatasetJsonAzureBlobStorageLocation:DatasetJsonAzureBlobStorageLocation",
          "description": "A `azure_blob_storage_location` block as defined below.\n"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "encoding": {
          "description": "The encoding format for the file.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "httpServerLocation": {
          "$ref": "#/types/azure:datafactory/DatasetJsonHttpServerLocation:DatasetJsonHttpServerLocation",
          "description": "A `http_server_location` block as defined below.\n"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetJsonSchemaColumn:DatasetJsonSchemaColumn"
          },
          "type": "array"
        }
      },
      "required": [
        "dataFactoryName",
        "linkedServiceName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "linkedServiceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetJson resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "azureBlobStorageLocation": {
            "$ref": "#/types/azure:datafactory/DatasetJsonAzureBlobStorageLocation:DatasetJsonAzureBlobStorageLocation",
            "description": "A `azure_blob_storage_location` block as defined below.\n"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Dataset.\n",
            "type": "string"
          },
          "encoding": {
            "description": "The encoding format for the file.\n",
            "type": "string"
          },
          "folder": {
            "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
            "type": "string"
          },
          "httpServerLocation": {
            "$ref": "#/types/azure:datafactory/DatasetJsonHttpServerLocation:DatasetJsonHttpServerLocation",
            "description": "A `http_server_location` block as defined below.\n"
          },
          "linkedServiceName": {
            "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Dataset.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
            "type": "string"
          },
          "schemaColumns": {
            "description": "A `schema_column` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/DatasetJsonSchemaColumn:DatasetJsonSchemaColumn"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/datasetMysql:DatasetMysql": {
      "description": "Manages a MySQL Dataset inside a Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceMysql = new azure.datafactory.LinkedServiceMysql(\"exampleLinkedServiceMysql\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: \"Server=test;Port=3306;Database=test;User=test;SSLMode=1;UseSystemTrustStore=0;Password=test\",\n});\nconst exampleDatasetMysql = new azure.datafactory.DatasetMysql(\"exampleDatasetMysql\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    linkedServiceName: exampleLinkedServiceMysql.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_mysql = azure.datafactory.LinkedServiceMysql(\"exampleLinkedServiceMysql\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=\"Server=test;Port=3306;Database=test;User=test;SSLMode=1;UseSystemTrustStore=0;Password=test\")\nexample_dataset_mysql = azure.datafactory.DatasetMysql(\"exampleDatasetMysql\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    linked_service_name=example_linked_service_mysql.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceMysql = new Azure.DataFactory.LinkedServiceMysql(\"exampleLinkedServiceMysql\", new Azure.DataFactory.LinkedServiceMysqlArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = \"Server=test;Port=3306;Database=test;User=test;SSLMode=1;UseSystemTrustStore=0;Password=test\",\n        });\n        var exampleDatasetMysql = new Azure.DataFactory.DatasetMysql(\"exampleDatasetMysql\", new Azure.DataFactory.DatasetMysqlArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            LinkedServiceName = exampleLinkedServiceMysql.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLinkedServiceMysql, err := datafactory.NewLinkedServiceMysql(ctx, \"exampleLinkedServiceMysql\", \u0026datafactory.LinkedServiceMysqlArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString:  pulumi.String(\"Server=test;Port=3306;Database=test;User=test;SSLMode=1;UseSystemTrustStore=0;Password=test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewDatasetMysql(ctx, \"exampleDatasetMysql\", \u0026datafactory.DatasetMysqlArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tLinkedServiceName: exampleLinkedServiceMysql.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory MySQL Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/datasetMysql:DatasetMysql example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/datasets/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset MySQL.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset MySQL.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset MySQL.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset MySQL. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset MySQL.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset MySQL. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetMysqlSchemaColumn:DatasetMysqlSchemaColumn"
          },
          "type": "array"
        },
        "tableName": {
          "description": "The table name of the Data Factory Dataset MySQL.\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset MySQL.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset MySQL.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset MySQL.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset MySQL. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset MySQL.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset MySQL. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetMysqlSchemaColumn:DatasetMysqlSchemaColumn"
          },
          "type": "array"
        },
        "tableName": {
          "description": "The table name of the Data Factory Dataset MySQL.\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryName",
        "linkedServiceName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "linkedServiceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetMysql resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Dataset MySQL.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Dataset MySQL.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Dataset MySQL.\n",
            "type": "string"
          },
          "folder": {
            "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
            "type": "string"
          },
          "linkedServiceName": {
            "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Dataset MySQL. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Dataset MySQL.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Dataset MySQL. Changing this forces a new resource\n",
            "type": "string"
          },
          "schemaColumns": {
            "description": "A `schema_column` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/DatasetMysqlSchemaColumn:DatasetMysqlSchemaColumn"
            },
            "type": "array"
          },
          "tableName": {
            "description": "The table name of the Data Factory Dataset MySQL.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/datasetParquet:DatasetParquet": {
      "description": "Manages an Azure Parquet Dataset inside an Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceWeb = new azure.datafactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    authenticationType: \"Anonymous\",\n    url: \"https://www.bing.com\",\n});\nconst exampleDatasetParquet = new azure.datafactory.DatasetParquet(\"exampleDatasetParquet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    linkedServiceName: exampleLinkedServiceWeb.name,\n    httpServerLocation: {\n        relativeUrl: \"http://www.bing.com\",\n        path: \"foo/bar/\",\n        filename: \"fizz.txt\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_web = azure.datafactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    authentication_type=\"Anonymous\",\n    url=\"https://www.bing.com\")\nexample_dataset_parquet = azure.datafactory.DatasetParquet(\"exampleDatasetParquet\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    linked_service_name=example_linked_service_web.name,\n    http_server_location=azure.datafactory.DatasetParquetHttpServerLocationArgs(\n        relative_url=\"http://www.bing.com\",\n        path=\"foo/bar/\",\n        filename=\"fizz.txt\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceWeb = new Azure.DataFactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\", new Azure.DataFactory.LinkedServiceWebArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            AuthenticationType = \"Anonymous\",\n            Url = \"https://www.bing.com\",\n        });\n        var exampleDatasetParquet = new Azure.DataFactory.DatasetParquet(\"exampleDatasetParquet\", new Azure.DataFactory.DatasetParquetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            LinkedServiceName = exampleLinkedServiceWeb.Name,\n            HttpServerLocation = new Azure.DataFactory.Inputs.DatasetParquetHttpServerLocationArgs\n            {\n                RelativeUrl = \"http://www.bing.com\",\n                Path = \"foo/bar/\",\n                Filename = \"fizz.txt\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLinkedServiceWeb, err := datafactory.NewLinkedServiceWeb(ctx, \"exampleLinkedServiceWeb\", \u0026datafactory.LinkedServiceWebArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tDataFactoryName:    exampleFactory.Name,\n\t\t\tAuthenticationType: pulumi.String(\"Anonymous\"),\n\t\t\tUrl:                pulumi.String(\"https://www.bing.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewDatasetParquet(ctx, \"exampleDatasetParquet\", \u0026datafactory.DatasetParquetArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tLinkedServiceName: exampleLinkedServiceWeb.Name,\n\t\t\tHttpServerLocation: \u0026datafactory.DatasetParquetHttpServerLocationArgs{\n\t\t\t\tRelativeUrl: pulumi.String(\"http://www.bing.com\"),\n\t\t\t\tPath:        pulumi.String(\"foo/bar/\"),\n\t\t\t\tFilename:    pulumi.String(\"fizz.txt\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/datasetParquet:DatasetParquet example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/datasets/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "azureBlobStorageLocation": {
          "$ref": "#/types/azure:datafactory/DatasetParquetAzureBlobStorageLocation:DatasetParquetAzureBlobStorageLocation",
          "description": "A `azure_blob_storage_location` block as defined below.\n"
        },
        "compressionCodec": {
          "description": "The compression codec used to read/write text files. Valid values are `bzip2`, `gzip`, `deflate`, `ZipDeflate`, `TarGzip`, `Tar`, `snappy`, or `lz4`. Please note these values are case sensitive.\n",
          "type": "string"
        },
        "compressionLevel": {
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "httpServerLocation": {
          "$ref": "#/types/azure:datafactory/DatasetParquetHttpServerLocation:DatasetParquetHttpServerLocation",
          "description": "A `http_server_location` block as defined below.\n"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetParquetSchemaColumn:DatasetParquetSchemaColumn"
          },
          "type": "array"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "azureBlobStorageLocation": {
          "$ref": "#/types/azure:datafactory/DatasetParquetAzureBlobStorageLocation:DatasetParquetAzureBlobStorageLocation",
          "description": "A `azure_blob_storage_location` block as defined below.\n"
        },
        "compressionCodec": {
          "description": "The compression codec used to read/write text files. Valid values are `bzip2`, `gzip`, `deflate`, `ZipDeflate`, `TarGzip`, `Tar`, `snappy`, or `lz4`. Please note these values are case sensitive.\n",
          "type": "string"
        },
        "compressionLevel": {
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "httpServerLocation": {
          "$ref": "#/types/azure:datafactory/DatasetParquetHttpServerLocation:DatasetParquetHttpServerLocation",
          "description": "A `http_server_location` block as defined below.\n"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetParquetSchemaColumn:DatasetParquetSchemaColumn"
          },
          "type": "array"
        }
      },
      "required": [
        "dataFactoryName",
        "linkedServiceName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "linkedServiceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetParquet resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Dataset.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Dataset.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "azureBlobStorageLocation": {
            "$ref": "#/types/azure:datafactory/DatasetParquetAzureBlobStorageLocation:DatasetParquetAzureBlobStorageLocation",
            "description": "A `azure_blob_storage_location` block as defined below.\n"
          },
          "compressionCodec": {
            "description": "The compression codec used to read/write text files. Valid values are `bzip2`, `gzip`, `deflate`, `ZipDeflate`, `TarGzip`, `Tar`, `snappy`, or `lz4`. Please note these values are case sensitive.\n",
            "type": "string"
          },
          "compressionLevel": {
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Dataset.\n",
            "type": "string"
          },
          "folder": {
            "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
            "type": "string"
          },
          "httpServerLocation": {
            "$ref": "#/types/azure:datafactory/DatasetParquetHttpServerLocation:DatasetParquetHttpServerLocation",
            "description": "A `http_server_location` block as defined below.\n"
          },
          "linkedServiceName": {
            "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Dataset. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Dataset.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Dataset. Changing this forces a new resource\n",
            "type": "string"
          },
          "schemaColumns": {
            "description": "A `schema_column` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/DatasetParquetSchemaColumn:DatasetParquetSchemaColumn"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/datasetPostgresql:DatasetPostgresql": {
      "description": "Manages a PostgreSQL Dataset inside a Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServicePostgresql = new azure.datafactory.LinkedServicePostgresql(\"exampleLinkedServicePostgresql\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: \"Host=example;Port=5432;Database=example;UID=example;EncryptionMethod=0;Password=example\",\n});\nconst exampleDatasetPostgresql = new azure.datafactory.DatasetPostgresql(\"exampleDatasetPostgresql\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    linkedServiceName: exampleLinkedServicePostgresql.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_postgresql = azure.datafactory.LinkedServicePostgresql(\"exampleLinkedServicePostgresql\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=\"Host=example;Port=5432;Database=example;UID=example;EncryptionMethod=0;Password=example\")\nexample_dataset_postgresql = azure.datafactory.DatasetPostgresql(\"exampleDatasetPostgresql\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    linked_service_name=example_linked_service_postgresql.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServicePostgresql = new Azure.DataFactory.LinkedServicePostgresql(\"exampleLinkedServicePostgresql\", new Azure.DataFactory.LinkedServicePostgresqlArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = \"Host=example;Port=5432;Database=example;UID=example;EncryptionMethod=0;Password=example\",\n        });\n        var exampleDatasetPostgresql = new Azure.DataFactory.DatasetPostgresql(\"exampleDatasetPostgresql\", new Azure.DataFactory.DatasetPostgresqlArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            LinkedServiceName = exampleLinkedServicePostgresql.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLinkedServicePostgresql, err := datafactory.NewLinkedServicePostgresql(ctx, \"exampleLinkedServicePostgresql\", \u0026datafactory.LinkedServicePostgresqlArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString:  pulumi.String(\"Host=example;Port=5432;Database=example;UID=example;EncryptionMethod=0;Password=example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewDatasetPostgresql(ctx, \"exampleDatasetPostgresql\", \u0026datafactory.DatasetPostgresqlArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tLinkedServiceName: exampleLinkedServicePostgresql.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory PostgreSQL Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/datasetPostgresql:DatasetPostgresql example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/datasets/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset PostgreSQL.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset PostgreSQL.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset PostgreSQL.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset PostgreSQL. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset PostgreSQL.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset PostgreSQL. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetPostgresqlSchemaColumn:DatasetPostgresqlSchemaColumn"
          },
          "type": "array"
        },
        "tableName": {
          "description": "The table name of the Data Factory Dataset PostgreSQL.\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset PostgreSQL.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset PostgreSQL.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset PostgreSQL.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset PostgreSQL. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset PostgreSQL.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset PostgreSQL. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetPostgresqlSchemaColumn:DatasetPostgresqlSchemaColumn"
          },
          "type": "array"
        },
        "tableName": {
          "description": "The table name of the Data Factory Dataset PostgreSQL.\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryName",
        "linkedServiceName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "linkedServiceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetPostgresql resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Dataset PostgreSQL.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Dataset PostgreSQL.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Dataset PostgreSQL.\n",
            "type": "string"
          },
          "folder": {
            "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
            "type": "string"
          },
          "linkedServiceName": {
            "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Dataset PostgreSQL. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Dataset PostgreSQL.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Dataset PostgreSQL. Changing this forces a new resource\n",
            "type": "string"
          },
          "schemaColumns": {
            "description": "A `schema_column` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/DatasetPostgresqlSchemaColumn:DatasetPostgresqlSchemaColumn"
            },
            "type": "array"
          },
          "tableName": {
            "description": "The table name of the Data Factory Dataset PostgreSQL.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/datasetSnowflake:DatasetSnowflake": {
      "description": "Manages a Snowflake Dataset inside an Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceSnowflake = new azure.datafactory.LinkedServiceSnowflake(\"exampleLinkedServiceSnowflake\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: \"jdbc:snowflake://account.region.snowflakecomputing.com/?user=user\u0026db=db\u0026warehouse=wh\",\n});\nconst exampleDatasetSnowflake = new azure.datafactory.DatasetSnowflake(\"exampleDatasetSnowflake\", {\n    resourceGroupName: azurerm_resource_group.test.name,\n    dataFactoryName: azurerm_data_factory.test.name,\n    linkedServiceName: azurerm_data_factory_linked_service_snowflake.test.name,\n    schemaName: \"foo_schema\",\n    tableName: \"foo_table\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_snowflake = azure.datafactory.LinkedServiceSnowflake(\"exampleLinkedServiceSnowflake\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=\"jdbc:snowflake://account.region.snowflakecomputing.com/?user=user\u0026db=db\u0026warehouse=wh\")\nexample_dataset_snowflake = azure.datafactory.DatasetSnowflake(\"exampleDatasetSnowflake\",\n    resource_group_name=azurerm_resource_group[\"test\"][\"name\"],\n    data_factory_name=azurerm_data_factory[\"test\"][\"name\"],\n    linked_service_name=azurerm_data_factory_linked_service_snowflake[\"test\"][\"name\"],\n    schema_name=\"foo_schema\",\n    table_name=\"foo_table\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceSnowflake = new Azure.DataFactory.LinkedServiceSnowflake(\"exampleLinkedServiceSnowflake\", new Azure.DataFactory.LinkedServiceSnowflakeArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = \"jdbc:snowflake://account.region.snowflakecomputing.com/?user=user\u0026db=db\u0026warehouse=wh\",\n        });\n        var exampleDatasetSnowflake = new Azure.DataFactory.DatasetSnowflake(\"exampleDatasetSnowflake\", new Azure.DataFactory.DatasetSnowflakeArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n            DataFactoryName = azurerm_data_factory.Test.Name,\n            LinkedServiceName = azurerm_data_factory_linked_service_snowflake.Test.Name,\n            SchemaName = \"foo_schema\",\n            TableName = \"foo_table\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceSnowflake(ctx, \"exampleLinkedServiceSnowflake\", \u0026datafactory.LinkedServiceSnowflakeArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString:  pulumi.String(\"jdbc:snowflake://account.region.snowflakecomputing.com/?user=user\u0026db=db\u0026warehouse=wh\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewDatasetSnowflake(ctx, \"exampleDatasetSnowflake\", \u0026datafactory.DatasetSnowflakeArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_resource_group.Test.Name),\n\t\t\tDataFactoryName:   pulumi.Any(azurerm_data_factory.Test.Name),\n\t\t\tLinkedServiceName: pulumi.Any(azurerm_data_factory_linked_service_snowflake.Test.Name),\n\t\t\tSchemaName:        pulumi.String(\"foo_schema\"),\n\t\t\tTableName:         pulumi.String(\"foo_table\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Snowflake Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/datasetSnowflake:DatasetSnowflake example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/datasets/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset Snowflake.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset Snowflake.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset Snowflake.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset Snowflake. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset Snowflake.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset Snowflake. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetSnowflakeSchemaColumn:DatasetSnowflakeSchemaColumn"
          },
          "type": "array"
        },
        "schemaName": {
          "description": "The schema name of the Data Factory Dataset Snowflake.\n",
          "type": "string"
        },
        "tableName": {
          "description": "The table name of the Data Factory Dataset Snowflake.\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset Snowflake.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset Snowflake.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset Snowflake.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset Snowflake. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset Snowflake.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset Snowflake. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetSnowflakeSchemaColumn:DatasetSnowflakeSchemaColumn"
          },
          "type": "array"
        },
        "schemaName": {
          "description": "The schema name of the Data Factory Dataset Snowflake.\n",
          "type": "string"
        },
        "tableName": {
          "description": "The table name of the Data Factory Dataset Snowflake.\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryName",
        "linkedServiceName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "linkedServiceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetSnowflake resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Dataset Snowflake.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Dataset Snowflake.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Dataset Snowflake.\n",
            "type": "string"
          },
          "folder": {
            "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
            "type": "string"
          },
          "linkedServiceName": {
            "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Dataset Snowflake. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Dataset Snowflake.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Dataset Snowflake. Changing this forces a new resource\n",
            "type": "string"
          },
          "schemaColumns": {
            "description": "A `schema_column` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/DatasetSnowflakeSchemaColumn:DatasetSnowflakeSchemaColumn"
            },
            "type": "array"
          },
          "schemaName": {
            "description": "The schema name of the Data Factory Dataset Snowflake.\n",
            "type": "string"
          },
          "tableName": {
            "description": "The table name of the Data Factory Dataset Snowflake.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/datasetSqlServerTable:DatasetSqlServerTable": {
      "description": "Manages a SQL Server Table Dataset inside a Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceSqlServer = new azure.datafactory.LinkedServiceSqlServer(\"exampleLinkedServiceSqlServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: \"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;Password=test\",\n});\nconst exampleDatasetSqlServerTable = new azure.datafactory.DatasetSqlServerTable(\"exampleDatasetSqlServerTable\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    linkedServiceName: exampleLinkedServiceSqlServer.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_sql_server = azure.datafactory.LinkedServiceSqlServer(\"exampleLinkedServiceSqlServer\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=\"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;Password=test\")\nexample_dataset_sql_server_table = azure.datafactory.DatasetSqlServerTable(\"exampleDatasetSqlServerTable\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    linked_service_name=example_linked_service_sql_server.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceSqlServer = new Azure.DataFactory.LinkedServiceSqlServer(\"exampleLinkedServiceSqlServer\", new Azure.DataFactory.LinkedServiceSqlServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = \"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;Password=test\",\n        });\n        var exampleDatasetSqlServerTable = new Azure.DataFactory.DatasetSqlServerTable(\"exampleDatasetSqlServerTable\", new Azure.DataFactory.DatasetSqlServerTableArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            LinkedServiceName = exampleLinkedServiceSqlServer.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLinkedServiceSqlServer, err := datafactory.NewLinkedServiceSqlServer(ctx, \"exampleLinkedServiceSqlServer\", \u0026datafactory.LinkedServiceSqlServerArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString:  pulumi.String(\"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;Password=test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewDatasetSqlServerTable(ctx, \"exampleDatasetSqlServerTable\", \u0026datafactory.DatasetSqlServerTableArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tLinkedServiceName: exampleLinkedServiceSqlServer.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory SQL Server Table Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/datasetSqlServerTable:DatasetSqlServerTable example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/datasets/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset SQL Server Table.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset SQL Server Table.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset SQL Server Table.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset SQL Server Table. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset SQL Server Table.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset SQL Server Table. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetSqlServerTableSchemaColumn:DatasetSqlServerTableSchemaColumn"
          },
          "type": "array"
        },
        "tableName": {
          "description": "The table name of the Data Factory Dataset SQL Server Table.\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Dataset SQL Server Table.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Dataset SQL Server Table.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Dataset SQL Server Table.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
          "type": "string"
        },
        "linkedServiceName": {
          "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Dataset SQL Server Table. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Dataset SQL Server Table.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Dataset SQL Server Table. Changing this forces a new resource\n",
          "type": "string"
        },
        "schemaColumns": {
          "description": "A `schema_column` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/DatasetSqlServerTableSchemaColumn:DatasetSqlServerTableSchemaColumn"
          },
          "type": "array"
        },
        "tableName": {
          "description": "The table name of the Data Factory Dataset SQL Server Table.\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryName",
        "linkedServiceName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "linkedServiceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetSqlServerTable resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Dataset SQL Server Table.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Dataset SQL Server Table.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Dataset with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Dataset SQL Server Table.\n",
            "type": "string"
          },
          "folder": {
            "description": "The folder that this Dataset is in. If not specified, the Dataset will appear at the root level.\n",
            "type": "string"
          },
          "linkedServiceName": {
            "description": "The Data Factory Linked Service name in which to associate the Dataset with.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Dataset SQL Server Table. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Dataset SQL Server Table.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Dataset SQL Server Table. Changing this forces a new resource\n",
            "type": "string"
          },
          "schemaColumns": {
            "description": "A `schema_column` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/DatasetSqlServerTableSchemaColumn:DatasetSqlServerTableSchemaColumn"
            },
            "type": "array"
          },
          "tableName": {
            "description": "The table name of the Data Factory Dataset SQL Server Table.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/factory:Factory": {
      "description": "Manages an Azure Data Factory (Version 2).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/factory:Factory example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example\n```\n\n ",
      "inputProperties": {
        "customerManagedKeyId": {
          "description": "Specifies the Azure Key Vault Key ID to be used as the Customer Managed Key (CMK) for double encryption. Required with user assigned identity.\n",
          "type": "string"
        },
        "githubConfiguration": {
          "$ref": "#/types/azure:datafactory/FactoryGithubConfiguration:FactoryGithubConfiguration",
          "description": "A `github_configuration` block as defined below.\n"
        },
        "globalParameters": {
          "description": "A list of `global_parameter` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/FactoryGlobalParameter:FactoryGlobalParameter"
          },
          "type": "array"
        },
        "identity": {
          "$ref": "#/types/azure:datafactory/FactoryIdentity:FactoryIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managedVirtualNetworkEnabled": {
          "description": "Is Managed Virtual Network enabled?\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Data Factory. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "publicNetworkEnabled": {
          "description": "Is the Data Factory visible to the public network? Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "vstsConfiguration": {
          "$ref": "#/types/azure:datafactory/FactoryVstsConfiguration:FactoryVstsConfiguration",
          "description": "A `vsts_configuration` block as defined below.\n"
        }
      },
      "properties": {
        "customerManagedKeyId": {
          "description": "Specifies the Azure Key Vault Key ID to be used as the Customer Managed Key (CMK) for double encryption. Required with user assigned identity.\n",
          "type": "string"
        },
        "githubConfiguration": {
          "$ref": "#/types/azure:datafactory/FactoryGithubConfiguration:FactoryGithubConfiguration",
          "description": "A `github_configuration` block as defined below.\n"
        },
        "globalParameters": {
          "description": "A list of `global_parameter` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/FactoryGlobalParameter:FactoryGlobalParameter"
          },
          "type": "array"
        },
        "identity": {
          "$ref": "#/types/azure:datafactory/FactoryIdentity:FactoryIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managedVirtualNetworkEnabled": {
          "description": "Is Managed Virtual Network enabled?\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Data Factory. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "publicNetworkEnabled": {
          "description": "Is the Data Factory visible to the public network? Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "vstsConfiguration": {
          "$ref": "#/types/azure:datafactory/FactoryVstsConfiguration:FactoryVstsConfiguration",
          "description": "A `vsts_configuration` block as defined below.\n"
        }
      },
      "required": [
        "identity",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Factory resources.\n",
        "properties": {
          "customerManagedKeyId": {
            "description": "Specifies the Azure Key Vault Key ID to be used as the Customer Managed Key (CMK) for double encryption. Required with user assigned identity.\n",
            "type": "string"
          },
          "githubConfiguration": {
            "$ref": "#/types/azure:datafactory/FactoryGithubConfiguration:FactoryGithubConfiguration",
            "description": "A `github_configuration` block as defined below.\n"
          },
          "globalParameters": {
            "description": "A list of `global_parameter` blocks as defined above.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/FactoryGlobalParameter:FactoryGlobalParameter"
            },
            "type": "array"
          },
          "identity": {
            "$ref": "#/types/azure:datafactory/FactoryIdentity:FactoryIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "managedVirtualNetworkEnabled": {
            "description": "Is Managed Virtual Network enabled?\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the Data Factory. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "publicNetworkEnabled": {
            "description": "Is the Data Factory visible to the public network? Defaults to `true`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "vstsConfiguration": {
            "$ref": "#/types/azure:datafactory/FactoryVstsConfiguration:FactoryVstsConfiguration",
            "description": "A `vsts_configuration` block as defined below.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/integrationRuntimeManaged:IntegrationRuntimeManaged": {
      "description": "Manages an Azure Data Factory Managed Integration Runtime.\n\n\u003e **NOTE:** The `azure.datafactory.IntegrationRuntimeManaged` resource has been superseded by the `azure.datafactory.IntegrationRuntimeSsis` resource. We recommend using the `azure.datafactory.IntegrationRuntimeSsis` resource for new deployments.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleIntegrationRuntimeManaged = new azure.datafactory.IntegrationRuntimeManaged(\"exampleIntegrationRuntimeManaged\", {\n    dataFactoryName: exampleFactory.name,\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    nodeSize: \"Standard_D8_v3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_integration_runtime_managed = azure.datafactory.IntegrationRuntimeManaged(\"exampleIntegrationRuntimeManaged\",\n    data_factory_name=example_factory.name,\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    node_size=\"Standard_D8_v3\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleIntegrationRuntimeManaged = new Azure.DataFactory.IntegrationRuntimeManaged(\"exampleIntegrationRuntimeManaged\", new Azure.DataFactory.IntegrationRuntimeManagedArgs\n        {\n            DataFactoryName = exampleFactory.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            NodeSize = \"Standard_D8_v3\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewIntegrationRuntimeManaged(ctx, \"exampleIntegrationRuntimeManaged\", \u0026datafactory.IntegrationRuntimeManagedArgs{\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tNodeSize:          pulumi.String(\"Standard_D8_v3\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Integration Managed Runtimes can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/integrationRuntimeManaged:IntegrationRuntimeManaged example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/integrationruntimes/example\n```\n\n ",
      "inputProperties": {
        "catalogInfo": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeManagedCatalogInfo:IntegrationRuntimeManagedCatalogInfo",
          "description": "A `catalog_info` block as defined below.\n"
        },
        "customSetupScript": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeManagedCustomSetupScript:IntegrationRuntimeManagedCustomSetupScript",
          "description": "A `custom_setup_script` block as defined below.\n"
        },
        "dataFactoryName": {
          "description": "Specifies the name of the Data Factory the Managed Integration Runtime belongs to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "Integration runtime description.\n",
          "type": "string"
        },
        "edition": {
          "description": "The Managed Integration Runtime edition. Valid values are `Standard` and `Enterprise`. Defaults to `Standard`.\n",
          "type": "string"
        },
        "licenseType": {
          "description": "The type of the license that is used. Valid values are `LicenseIncluded` and `BasePrize`. Defaults to `LicenseIncluded`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxParallelExecutionsPerNode": {
          "description": "Defines the maximum parallel executions per node. Defaults to `1`. Max is `16`.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the Managed Integration Runtime. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "nodeSize": {
          "description": "The size of the nodes on which the Managed Integration Runtime runs. Valid values are: `Standard_D2_v3`, `Standard_D4_v3`, `Standard_D8_v3`, `Standard_D16_v3`, `Standard_D32_v3`, `Standard_D64_v3`, `Standard_E2_v3`, `Standard_E4_v3`, `Standard_E8_v3`, `Standard_E16_v3`, `Standard_E32_v3`, `Standard_E64_v3`, `Standard_D1_v2`, `Standard_D2_v2`, `Standard_D3_v2`, `Standard_D4_v2`, `Standard_A4_v2` and `Standard_A8_v2`\n",
          "type": "string"
        },
        "numberOfNodes": {
          "description": "Number of nodes for the Managed Integration Runtime. Max is `10`. Defaults to `1`.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Managed Integration Runtime. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "vnetIntegration": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeManagedVnetIntegration:IntegrationRuntimeManagedVnetIntegration",
          "description": "A `vnet_integration` block as defined below.\n"
        }
      },
      "properties": {
        "catalogInfo": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeManagedCatalogInfo:IntegrationRuntimeManagedCatalogInfo",
          "description": "A `catalog_info` block as defined below.\n"
        },
        "customSetupScript": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeManagedCustomSetupScript:IntegrationRuntimeManagedCustomSetupScript",
          "description": "A `custom_setup_script` block as defined below.\n"
        },
        "dataFactoryName": {
          "description": "Specifies the name of the Data Factory the Managed Integration Runtime belongs to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "Integration runtime description.\n",
          "type": "string"
        },
        "edition": {
          "description": "The Managed Integration Runtime edition. Valid values are `Standard` and `Enterprise`. Defaults to `Standard`.\n",
          "type": "string"
        },
        "licenseType": {
          "description": "The type of the license that is used. Valid values are `LicenseIncluded` and `BasePrize`. Defaults to `LicenseIncluded`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxParallelExecutionsPerNode": {
          "description": "Defines the maximum parallel executions per node. Defaults to `1`. Max is `16`.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the Managed Integration Runtime. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "nodeSize": {
          "description": "The size of the nodes on which the Managed Integration Runtime runs. Valid values are: `Standard_D2_v3`, `Standard_D4_v3`, `Standard_D8_v3`, `Standard_D16_v3`, `Standard_D32_v3`, `Standard_D64_v3`, `Standard_E2_v3`, `Standard_E4_v3`, `Standard_E8_v3`, `Standard_E16_v3`, `Standard_E32_v3`, `Standard_E64_v3`, `Standard_D1_v2`, `Standard_D2_v2`, `Standard_D3_v2`, `Standard_D4_v2`, `Standard_A4_v2` and `Standard_A8_v2`\n",
          "type": "string"
        },
        "numberOfNodes": {
          "description": "Number of nodes for the Managed Integration Runtime. Max is `10`. Defaults to `1`.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Managed Integration Runtime. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "vnetIntegration": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeManagedVnetIntegration:IntegrationRuntimeManagedVnetIntegration",
          "description": "A `vnet_integration` block as defined below.\n"
        }
      },
      "required": [
        "dataFactoryName",
        "location",
        "name",
        "nodeSize",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "nodeSize",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IntegrationRuntimeManaged resources.\n",
        "properties": {
          "catalogInfo": {
            "$ref": "#/types/azure:datafactory/IntegrationRuntimeManagedCatalogInfo:IntegrationRuntimeManagedCatalogInfo",
            "description": "A `catalog_info` block as defined below.\n"
          },
          "customSetupScript": {
            "$ref": "#/types/azure:datafactory/IntegrationRuntimeManagedCustomSetupScript:IntegrationRuntimeManagedCustomSetupScript",
            "description": "A `custom_setup_script` block as defined below.\n"
          },
          "dataFactoryName": {
            "description": "Specifies the name of the Data Factory the Managed Integration Runtime belongs to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "Integration runtime description.\n",
            "type": "string"
          },
          "edition": {
            "description": "The Managed Integration Runtime edition. Valid values are `Standard` and `Enterprise`. Defaults to `Standard`.\n",
            "type": "string"
          },
          "licenseType": {
            "description": "The type of the license that is used. Valid values are `LicenseIncluded` and `BasePrize`. Defaults to `LicenseIncluded`.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maxParallelExecutionsPerNode": {
            "description": "Defines the maximum parallel executions per node. Defaults to `1`. Max is `16`.\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the Managed Integration Runtime. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "nodeSize": {
            "description": "The size of the nodes on which the Managed Integration Runtime runs. Valid values are: `Standard_D2_v3`, `Standard_D4_v3`, `Standard_D8_v3`, `Standard_D16_v3`, `Standard_D32_v3`, `Standard_D64_v3`, `Standard_E2_v3`, `Standard_E4_v3`, `Standard_E8_v3`, `Standard_E16_v3`, `Standard_E32_v3`, `Standard_E64_v3`, `Standard_D1_v2`, `Standard_D2_v2`, `Standard_D3_v2`, `Standard_D4_v2`, `Standard_A4_v2` and `Standard_A8_v2`\n",
            "type": "string"
          },
          "numberOfNodes": {
            "description": "Number of nodes for the Managed Integration Runtime. Max is `10`. Defaults to `1`.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Managed Integration Runtime. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "vnetIntegration": {
            "$ref": "#/types/azure:datafactory/IntegrationRuntimeManagedVnetIntegration:IntegrationRuntimeManagedVnetIntegration",
            "description": "A `vnet_integration` block as defined below.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/integrationRuntimeRule:IntegrationRuntimeRule": {
      "description": "Manages a Data Factory Azure Integration Runtime.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleIntegrationRuntimeRule = new azure.datafactory.IntegrationRuntimeRule(\"exampleIntegrationRuntimeRule\", {\n    dataFactoryName: exampleFactory.name,\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_integration_runtime_rule = azure.datafactory.IntegrationRuntimeRule(\"exampleIntegrationRuntimeRule\",\n    data_factory_name=example_factory.name,\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleIntegrationRuntimeRule = new Azure.DataFactory.IntegrationRuntimeRule(\"exampleIntegrationRuntimeRule\", new Azure.DataFactory.IntegrationRuntimeRuleArgs\n        {\n            DataFactoryName = exampleFactory.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewIntegrationRuntimeRule(ctx, \"exampleIntegrationRuntimeRule\", \u0026datafactory.IntegrationRuntimeRuleArgs{\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Azure Integration Runtimes can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/integrationRuntimeRule:IntegrationRuntimeRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/integrationruntimes/example\n```\n\n ",
      "inputProperties": {
        "cleanupEnabled": {
          "description": "Cluster will not be recycled and it will be used in next data flow activity run until TTL (time to live) is reached if this is set as `false`. Default is `true`.\n",
          "type": "boolean"
        },
        "computeType": {
          "description": "Compute type of the cluster which will execute data flow job. Valid values are `General`, `ComputeOptimized` and `MemoryOptimized`. Defaults to `General`.\n",
          "type": "string"
        },
        "coreCount": {
          "description": "Core count of the cluster which will execute data flow job. Valid values are `8`, `16`, `32`, `48`, `80`, `144` and `272`. Defaults to `8`.\n",
          "type": "integer"
        },
        "dataFactoryName": {
          "description": "Specifies the name of the Data Factory the Managed Integration Runtime belongs to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "Integration runtime description.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Managed Integration Runtime. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Managed Integration Runtime. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "timeToLiveMin": {
          "description": "Time to live (in minutes) setting of the cluster which will execute data flow job. Defaults to `0`.\n",
          "type": "integer"
        },
        "virtualNetworkEnabled": {
          "description": "Is Integration Runtime compute provisioned within Managed Virtual Network? Changing this forces a new resource to be created.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "cleanupEnabled": {
          "description": "Cluster will not be recycled and it will be used in next data flow activity run until TTL (time to live) is reached if this is set as `false`. Default is `true`.\n",
          "type": "boolean"
        },
        "computeType": {
          "description": "Compute type of the cluster which will execute data flow job. Valid values are `General`, `ComputeOptimized` and `MemoryOptimized`. Defaults to `General`.\n",
          "type": "string"
        },
        "coreCount": {
          "description": "Core count of the cluster which will execute data flow job. Valid values are `8`, `16`, `32`, `48`, `80`, `144` and `272`. Defaults to `8`.\n",
          "type": "integer"
        },
        "dataFactoryName": {
          "description": "Specifies the name of the Data Factory the Managed Integration Runtime belongs to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "Integration runtime description.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Managed Integration Runtime. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Managed Integration Runtime. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "timeToLiveMin": {
          "description": "Time to live (in minutes) setting of the cluster which will execute data flow job. Defaults to `0`.\n",
          "type": "integer"
        },
        "virtualNetworkEnabled": {
          "description": "Is Integration Runtime compute provisioned within Managed Virtual Network? Changing this forces a new resource to be created.\n",
          "type": "boolean"
        }
      },
      "required": [
        "cleanupEnabled",
        "dataFactoryName",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IntegrationRuntimeRule resources.\n",
        "properties": {
          "cleanupEnabled": {
            "description": "Cluster will not be recycled and it will be used in next data flow activity run until TTL (time to live) is reached if this is set as `false`. Default is `true`.\n",
            "type": "boolean"
          },
          "computeType": {
            "description": "Compute type of the cluster which will execute data flow job. Valid values are `General`, `ComputeOptimized` and `MemoryOptimized`. Defaults to `General`.\n",
            "type": "string"
          },
          "coreCount": {
            "description": "Core count of the cluster which will execute data flow job. Valid values are `8`, `16`, `32`, `48`, `80`, `144` and `272`. Defaults to `8`.\n",
            "type": "integer"
          },
          "dataFactoryName": {
            "description": "Specifies the name of the Data Factory the Managed Integration Runtime belongs to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "Integration runtime description.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Managed Integration Runtime. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Managed Integration Runtime. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "timeToLiveMin": {
            "description": "Time to live (in minutes) setting of the cluster which will execute data flow job. Defaults to `0`.\n",
            "type": "integer"
          },
          "virtualNetworkEnabled": {
            "description": "Is Integration Runtime compute provisioned within Managed Virtual Network? Changing this forces a new resource to be created.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/integrationRuntimeSelfHosted:IntegrationRuntimeSelfHosted": {
      "description": "Manages a Data Factory Self-hosted Integration Runtime.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleIntegrationRuntimeSelfHosted = new azure.datafactory.IntegrationRuntimeSelfHosted(\"exampleIntegrationRuntimeSelfHosted\", {\n    resourceGroupName: \"example\",\n    dataFactoryName: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_integration_runtime_self_hosted = azure.datafactory.IntegrationRuntimeSelfHosted(\"exampleIntegrationRuntimeSelfHosted\",\n    resource_group_name=\"example\",\n    data_factory_name=\"example\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleIntegrationRuntimeSelfHosted = new Azure.DataFactory.IntegrationRuntimeSelfHosted(\"exampleIntegrationRuntimeSelfHosted\", new Azure.DataFactory.IntegrationRuntimeSelfHostedArgs\n        {\n            ResourceGroupName = \"example\",\n            DataFactoryName = \"example\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewIntegrationRuntimeSelfHosted(ctx, \"exampleIntegrationRuntimeSelfHosted\", \u0026datafactory.IntegrationRuntimeSelfHostedArgs{\n\t\t\tResourceGroupName: pulumi.String(\"example\"),\n\t\t\tDataFactoryName:   pulumi.String(\"example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factories can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/integrationRuntimeSelfHosted:IntegrationRuntimeSelfHosted example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/integrationruntimes/example\n```\n\n ",
      "inputProperties": {
        "dataFactoryName": {
          "description": "Changing this forces a new Data Factory Self-hosted Integration Runtime to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "Integration runtime description.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Data Factory. Changing this forces a new Data Factory Self-hosted Integration Runtime to be created.\n",
          "type": "string"
        },
        "rbacAuthorizations": {
          "description": "A `rbac_authorization` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/IntegrationRuntimeSelfHostedRbacAuthorization:IntegrationRuntimeSelfHostedRbacAuthorization"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Data Factory should exist. Changing this forces a new Data Factory Self-hosted Integration Runtime to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "authKey1": {
          "description": "The primary integration runtime authentication key.\n",
          "type": "string"
        },
        "authKey2": {
          "description": "The secondary integration runtime authentication key.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "Changing this forces a new Data Factory Self-hosted Integration Runtime to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "Integration runtime description.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Data Factory. Changing this forces a new Data Factory Self-hosted Integration Runtime to be created.\n",
          "type": "string"
        },
        "rbacAuthorizations": {
          "description": "A `rbac_authorization` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/IntegrationRuntimeSelfHostedRbacAuthorization:IntegrationRuntimeSelfHostedRbacAuthorization"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Data Factory should exist. Changing this forces a new Data Factory Self-hosted Integration Runtime to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "authKey1",
        "authKey2",
        "dataFactoryName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IntegrationRuntimeSelfHosted resources.\n",
        "properties": {
          "authKey1": {
            "description": "The primary integration runtime authentication key.\n",
            "type": "string"
          },
          "authKey2": {
            "description": "The secondary integration runtime authentication key.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "Changing this forces a new Data Factory Self-hosted Integration Runtime to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "Integration runtime description.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Data Factory. Changing this forces a new Data Factory Self-hosted Integration Runtime to be created.\n",
            "type": "string"
          },
          "rbacAuthorizations": {
            "description": "A `rbac_authorization` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/IntegrationRuntimeSelfHostedRbacAuthorization:IntegrationRuntimeSelfHostedRbacAuthorization"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Data Factory should exist. Changing this forces a new Data Factory Self-hosted Integration Runtime to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/integrationRuntimeSsis:IntegrationRuntimeSsis": {
      "description": "Manages a Data Factory Azure-SSIS Integration Runtime.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleIntegrationRuntimeSsis = new azure.datafactory.IntegrationRuntimeSsis(\"exampleIntegrationRuntimeSsis\", {\n    dataFactoryName: exampleFactory.name,\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    nodeSize: \"Standard_D8_v3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_integration_runtime_ssis = azure.datafactory.IntegrationRuntimeSsis(\"exampleIntegrationRuntimeSsis\",\n    data_factory_name=example_factory.name,\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    node_size=\"Standard_D8_v3\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleIntegrationRuntimeSsis = new Azure.DataFactory.IntegrationRuntimeSsis(\"exampleIntegrationRuntimeSsis\", new Azure.DataFactory.IntegrationRuntimeSsisArgs\n        {\n            DataFactoryName = exampleFactory.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            NodeSize = \"Standard_D8_v3\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewIntegrationRuntimeSsis(ctx, \"exampleIntegrationRuntimeSsis\", \u0026datafactory.IntegrationRuntimeSsisArgs{\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tNodeSize:          pulumi.String(\"Standard_D8_v3\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Azure-SSIS Integration Runtimes can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/integrationRuntimeSsis:IntegrationRuntimeSsis example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/integrationruntimes/example\n```\n\n ",
      "inputProperties": {
        "catalogInfo": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisCatalogInfo:IntegrationRuntimeSsisCatalogInfo",
          "description": "A `catalog_info` block as defined below.\n"
        },
        "customSetupScript": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisCustomSetupScript:IntegrationRuntimeSsisCustomSetupScript",
          "description": "A `custom_setup_script` block as defined below.\n"
        },
        "dataFactoryName": {
          "description": "Specifies the name of the Data Factory the Azure-SSIS Integration Runtime belongs to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "Integration runtime description.\n",
          "type": "string"
        },
        "edition": {
          "description": "The Azure-SSIS Integration Runtime edition. Valid values are `Standard` and `Enterprise`. Defaults to `Standard`.\n",
          "type": "string"
        },
        "expressCustomSetup": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisExpressCustomSetup:IntegrationRuntimeSsisExpressCustomSetup",
          "description": "An `express_custom_setup` block as defined below.\n"
        },
        "licenseType": {
          "description": "The type of the license that is used. Valid values are `LicenseIncluded` and `BasePrice`. Defaults to `LicenseIncluded`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxParallelExecutionsPerNode": {
          "description": "Defines the maximum parallel executions per node. Defaults to `1`. Max is `16`.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the Azure-SSIS Integration Runtime. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "nodeSize": {
          "description": "The size of the nodes on which the Azure-SSIS Integration Runtime runs. Valid values are: `Standard_D2_v3`, `Standard_D4_v3`, `Standard_D8_v3`, `Standard_D16_v3`, `Standard_D32_v3`, `Standard_D64_v3`, `Standard_E2_v3`, `Standard_E4_v3`, `Standard_E8_v3`, `Standard_E16_v3`, `Standard_E32_v3`, `Standard_E64_v3`, `Standard_D1_v2`, `Standard_D2_v2`, `Standard_D3_v2`, `Standard_D4_v2`, `Standard_A4_v2` and `Standard_A8_v2`\n",
          "type": "string"
        },
        "numberOfNodes": {
          "description": "Number of nodes for the Azure-SSIS Integration Runtime. Max is `10`. Defaults to `1`.\n",
          "type": "integer"
        },
        "packageStores": {
          "description": "One or more `package_store` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisPackageStore:IntegrationRuntimeSsisPackageStore"
          },
          "type": "array"
        },
        "proxy": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisProxy:IntegrationRuntimeSsisProxy",
          "description": "A `proxy` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Azure-SSIS Integration Runtime. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "vnetIntegration": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisVnetIntegration:IntegrationRuntimeSsisVnetIntegration",
          "description": "A `vnet_integration` block as defined below.\n"
        }
      },
      "properties": {
        "catalogInfo": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisCatalogInfo:IntegrationRuntimeSsisCatalogInfo",
          "description": "A `catalog_info` block as defined below.\n"
        },
        "customSetupScript": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisCustomSetupScript:IntegrationRuntimeSsisCustomSetupScript",
          "description": "A `custom_setup_script` block as defined below.\n"
        },
        "dataFactoryName": {
          "description": "Specifies the name of the Data Factory the Azure-SSIS Integration Runtime belongs to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "Integration runtime description.\n",
          "type": "string"
        },
        "edition": {
          "description": "The Azure-SSIS Integration Runtime edition. Valid values are `Standard` and `Enterprise`. Defaults to `Standard`.\n",
          "type": "string"
        },
        "expressCustomSetup": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisExpressCustomSetup:IntegrationRuntimeSsisExpressCustomSetup",
          "description": "An `express_custom_setup` block as defined below.\n"
        },
        "licenseType": {
          "description": "The type of the license that is used. Valid values are `LicenseIncluded` and `BasePrice`. Defaults to `LicenseIncluded`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxParallelExecutionsPerNode": {
          "description": "Defines the maximum parallel executions per node. Defaults to `1`. Max is `16`.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the Azure-SSIS Integration Runtime. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "nodeSize": {
          "description": "The size of the nodes on which the Azure-SSIS Integration Runtime runs. Valid values are: `Standard_D2_v3`, `Standard_D4_v3`, `Standard_D8_v3`, `Standard_D16_v3`, `Standard_D32_v3`, `Standard_D64_v3`, `Standard_E2_v3`, `Standard_E4_v3`, `Standard_E8_v3`, `Standard_E16_v3`, `Standard_E32_v3`, `Standard_E64_v3`, `Standard_D1_v2`, `Standard_D2_v2`, `Standard_D3_v2`, `Standard_D4_v2`, `Standard_A4_v2` and `Standard_A8_v2`\n",
          "type": "string"
        },
        "numberOfNodes": {
          "description": "Number of nodes for the Azure-SSIS Integration Runtime. Max is `10`. Defaults to `1`.\n",
          "type": "integer"
        },
        "packageStores": {
          "description": "One or more `package_store` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisPackageStore:IntegrationRuntimeSsisPackageStore"
          },
          "type": "array"
        },
        "proxy": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisProxy:IntegrationRuntimeSsisProxy",
          "description": "A `proxy` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Azure-SSIS Integration Runtime. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "vnetIntegration": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisVnetIntegration:IntegrationRuntimeSsisVnetIntegration",
          "description": "A `vnet_integration` block as defined below.\n"
        }
      },
      "required": [
        "dataFactoryName",
        "location",
        "name",
        "nodeSize",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "nodeSize",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IntegrationRuntimeSsis resources.\n",
        "properties": {
          "catalogInfo": {
            "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisCatalogInfo:IntegrationRuntimeSsisCatalogInfo",
            "description": "A `catalog_info` block as defined below.\n"
          },
          "customSetupScript": {
            "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisCustomSetupScript:IntegrationRuntimeSsisCustomSetupScript",
            "description": "A `custom_setup_script` block as defined below.\n"
          },
          "dataFactoryName": {
            "description": "Specifies the name of the Data Factory the Azure-SSIS Integration Runtime belongs to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "Integration runtime description.\n",
            "type": "string"
          },
          "edition": {
            "description": "The Azure-SSIS Integration Runtime edition. Valid values are `Standard` and `Enterprise`. Defaults to `Standard`.\n",
            "type": "string"
          },
          "expressCustomSetup": {
            "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisExpressCustomSetup:IntegrationRuntimeSsisExpressCustomSetup",
            "description": "An `express_custom_setup` block as defined below.\n"
          },
          "licenseType": {
            "description": "The type of the license that is used. Valid values are `LicenseIncluded` and `BasePrice`. Defaults to `LicenseIncluded`.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maxParallelExecutionsPerNode": {
            "description": "Defines the maximum parallel executions per node. Defaults to `1`. Max is `16`.\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the Azure-SSIS Integration Runtime. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "nodeSize": {
            "description": "The size of the nodes on which the Azure-SSIS Integration Runtime runs. Valid values are: `Standard_D2_v3`, `Standard_D4_v3`, `Standard_D8_v3`, `Standard_D16_v3`, `Standard_D32_v3`, `Standard_D64_v3`, `Standard_E2_v3`, `Standard_E4_v3`, `Standard_E8_v3`, `Standard_E16_v3`, `Standard_E32_v3`, `Standard_E64_v3`, `Standard_D1_v2`, `Standard_D2_v2`, `Standard_D3_v2`, `Standard_D4_v2`, `Standard_A4_v2` and `Standard_A8_v2`\n",
            "type": "string"
          },
          "numberOfNodes": {
            "description": "Number of nodes for the Azure-SSIS Integration Runtime. Max is `10`. Defaults to `1`.\n",
            "type": "integer"
          },
          "packageStores": {
            "description": "One or more `package_store` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisPackageStore:IntegrationRuntimeSsisPackageStore"
            },
            "type": "array"
          },
          "proxy": {
            "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisProxy:IntegrationRuntimeSsisProxy",
            "description": "A `proxy` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Azure-SSIS Integration Runtime. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "vnetIntegration": {
            "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisVnetIntegration:IntegrationRuntimeSsisVnetIntegration",
            "description": "A `vnet_integration` block as defined below.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedCustomService:LinkedCustomService": {
      "description": "Manages a Linked Service (connection) between a resource and Azure Data Factory. This is a generic resource that supports all different Linked Service Types.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountKind: \"BlobStorage\",\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleLinkedCustomService = new azure.datafactory.LinkedCustomService(\"exampleLinkedCustomService\", {\n    dataFactoryId: exampleFactory.id,\n    type: \"AzureBlobStorage\",\n    description: \"test description\",\n    typePropertiesJson: `{\n  \"connectionString\":\"${azurerm_storage_account.test.primary_connection_string}\"\n}\n`,\n    parameters: {\n        foo: \"bar\",\n        Env: \"Test\",\n    },\n    annotations: [\n        \"test1\",\n        \"test2\",\n        \"test3\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    identity=azure.datafactory.FactoryIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_kind=\"BlobStorage\",\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_linked_custom_service = azure.datafactory.LinkedCustomService(\"exampleLinkedCustomService\",\n    data_factory_id=example_factory.id,\n    type=\"AzureBlobStorage\",\n    description=\"test description\",\n    type_properties_json=f\"\"\"{{\n  \"connectionString\":\"{azurerm_storage_account[\"test\"][\"primary_connection_string\"]}\"\n}}\n\"\"\",\n    parameters={\n        \"foo\": \"bar\",\n        \"Env\": \"Test\",\n    },\n    annotations=[\n        \"test1\",\n        \"test2\",\n        \"test3\",\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Identity = new Azure.DataFactory.Inputs.FactoryIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountKind = \"BlobStorage\",\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleLinkedCustomService = new Azure.DataFactory.LinkedCustomService(\"exampleLinkedCustomService\", new Azure.DataFactory.LinkedCustomServiceArgs\n        {\n            DataFactoryId = exampleFactory.Id,\n            Type = \"AzureBlobStorage\",\n            Description = \"test description\",\n            TypePropertiesJson = @$\"{{\n  \"\"connectionString\"\":\"\"{azurerm_storage_account.Test.Primary_connection_string}\"\"\n}}\n\",\n            Parameters = \n            {\n                { \"foo\", \"bar\" },\n                { \"Env\", \"Test\" },\n            },\n            Annotations = \n            {\n                \"test1\",\n                \"test2\",\n                \"test3\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIdentity: \u0026datafactory.FactoryIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountKind:            pulumi.String(\"BlobStorage\"),\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedCustomService(ctx, \"exampleLinkedCustomService\", \u0026datafactory.LinkedCustomServiceArgs{\n\t\t\tDataFactoryId:      exampleFactory.ID(),\n\t\t\tType:               pulumi.String(\"AzureBlobStorage\"),\n\t\t\tDescription:        pulumi.String(\"test description\"),\n\t\t\tTypePropertiesJson: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v\", \"{\\n\", \"  \\\"connectionString\\\":\\\"\", azurerm_storage_account.Test.Primary_connection_string, \"\\\"\\n\", \"}\\n\")),\n\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t\t\"Env\": pulumi.String(\"Test\"),\n\t\t\t},\n\t\t\tAnnotations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"test1\"),\n\t\t\t\tpulumi.String(\"test2\"),\n\t\t\t\tpulumi.String(\"test3\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedCustomService:LinkedCustomService example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryId": {
          "description": "The Data Factory ID in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntime": {
          "$ref": "#/types/azure:datafactory/LinkedCustomServiceIntegrationRuntime:LinkedCustomServiceIntegrationRuntime",
          "description": "An `integration_runtime` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "type": {
          "description": "The type of data stores that will be connected to Data Factory. For full list of supported data stores, please refer to [Azure Data Factory connector](https://docs.microsoft.com/en-us/azure/data-factory/connector-overview).\n",
          "type": "string"
        },
        "typePropertiesJson": {
          "description": "A JSON object that contains the properties of the Data Factory Linked Service.\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryId": {
          "description": "The Data Factory ID in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntime": {
          "$ref": "#/types/azure:datafactory/LinkedCustomServiceIntegrationRuntime:LinkedCustomServiceIntegrationRuntime",
          "description": "An `integration_runtime` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "type": {
          "description": "The type of data stores that will be connected to Data Factory. For full list of supported data stores, please refer to [Azure Data Factory connector](https://docs.microsoft.com/en-us/azure/data-factory/connector-overview).\n",
          "type": "string"
        },
        "typePropertiesJson": {
          "description": "A JSON object that contains the properties of the Data Factory Linked Service.\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryId",
        "name",
        "type",
        "typePropertiesJson"
      ],
      "requiredInputs": [
        "dataFactoryId",
        "type",
        "typePropertiesJson"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedCustomService resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryId": {
            "description": "The Data Factory ID in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service.\n",
            "type": "string"
          },
          "integrationRuntime": {
            "$ref": "#/types/azure:datafactory/LinkedCustomServiceIntegrationRuntime:LinkedCustomServiceIntegrationRuntime",
            "description": "An `integration_runtime` block as defined below.\n"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "type": {
            "description": "The type of data stores that will be connected to Data Factory. For full list of supported data stores, please refer to [Azure Data Factory connector](https://docs.microsoft.com/en-us/azure/data-factory/connector-overview).\n",
            "type": "string"
          },
          "typePropertiesJson": {
            "description": "A JSON object that contains the properties of the Data Factory Linked Service.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceAzureBlobStorage:LinkedServiceAzureBlobStorage": {
      "description": "Manages a Linked Service (connection) between an Azure Blob Storage Account and Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = exampleResourceGroup.name.apply(name =\u003e azure.storage.getAccount({\n    name: \"storageaccountname\",\n    resourceGroupName: name,\n}));\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceAzureBlobStorage = new azure.datafactory.LinkedServiceAzureBlobStorage(\"exampleLinkedServiceAzureBlobStorage\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: exampleAccount.apply(exampleAccount =\u003e exampleAccount.primaryConnectionString),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = example_resource_group.name.apply(lambda name: azure.storage.get_account(name=\"storageaccountname\",\n    resource_group_name=name))\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_azure_blob_storage = azure.datafactory.LinkedServiceAzureBlobStorage(\"exampleLinkedServiceAzureBlobStorage\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=example_account.primary_connection_string)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = exampleResourceGroup.Name.Apply(name =\u003e Azure.Storage.GetAccount.InvokeAsync(new Azure.Storage.GetAccountArgs\n        {\n            Name = \"storageaccountname\",\n            ResourceGroupName = name,\n        }));\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceAzureBlobStorage = new Azure.DataFactory.LinkedServiceAzureBlobStorage(\"exampleLinkedServiceAzureBlobStorage\", new Azure.DataFactory.LinkedServiceAzureBlobStorageArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.PrimaryConnectionString),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceAzureBlobStorage(ctx, \"exampleLinkedServiceAzureBlobStorage\", \u0026datafactory.LinkedServiceAzureBlobStorageArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString: exampleAccount.ApplyT(func(exampleAccount storage.GetAccountResult) (string, error) {\n\t\t\t\treturn exampleAccount.PrimaryConnectionString, nil\n\t\t\t}).(pulumi.StringOutput),\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\n{{% /example %}}\n{{% example %}}\n### With SAS Uri And SAS Token.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst testResourceGroup = new azure.core.ResourceGroup(\"testResourceGroup\", {location: \"West Europe\"});\nconst current = azure.core.getClientConfig({});\nconst testFactory = new azure.datafactory.Factory(\"testFactory\", {\n    location: testResourceGroup.location,\n    resourceGroupName: testResourceGroup.name,\n});\nconst testKeyVault = new azure.keyvault.KeyVault(\"testKeyVault\", {\n    location: testResourceGroup.location,\n    resourceGroupName: testResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"standard\",\n});\nconst testLinkedServiceKeyVault = new azure.datafactory.LinkedServiceKeyVault(\"testLinkedServiceKeyVault\", {\n    resourceGroupName: testResourceGroup.name,\n    dataFactoryName: testFactory.name,\n    keyVaultId: testKeyVault.id,\n});\nconst testLinkedServiceAzureBlobStorage = new azure.datafactory.LinkedServiceAzureBlobStorage(\"testLinkedServiceAzureBlobStorage\", {\n    resourceGroupName: testResourceGroup.name,\n    dataFactoryName: testFactory.name,\n    sasUri: \"https://storageaccountname.blob.core.windows.net\",\n    keyVaultSasToken: {\n        linkedServiceName: testLinkedServiceKeyVault.name,\n        secretName: \"secret\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ntest_resource_group = azure.core.ResourceGroup(\"testResourceGroup\", location=\"West Europe\")\ncurrent = azure.core.get_client_config()\ntest_factory = azure.datafactory.Factory(\"testFactory\",\n    location=test_resource_group.location,\n    resource_group_name=test_resource_group.name)\ntest_key_vault = azure.keyvault.KeyVault(\"testKeyVault\",\n    location=test_resource_group.location,\n    resource_group_name=test_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"standard\")\ntest_linked_service_key_vault = azure.datafactory.LinkedServiceKeyVault(\"testLinkedServiceKeyVault\",\n    resource_group_name=test_resource_group.name,\n    data_factory_name=test_factory.name,\n    key_vault_id=test_key_vault.id)\ntest_linked_service_azure_blob_storage = azure.datafactory.LinkedServiceAzureBlobStorage(\"testLinkedServiceAzureBlobStorage\",\n    resource_group_name=test_resource_group.name,\n    data_factory_name=test_factory.name,\n    sas_uri=\"https://storageaccountname.blob.core.windows.net\",\n    key_vault_sas_token=azure.datafactory.LinkedServiceAzureBlobStorageKeyVaultSasTokenArgs(\n        linked_service_name=test_linked_service_key_vault.name,\n        secret_name=\"secret\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var testResourceGroup = new Azure.Core.ResourceGroup(\"testResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var testFactory = new Azure.DataFactory.Factory(\"testFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = testResourceGroup.Location,\n            ResourceGroupName = testResourceGroup.Name,\n        });\n        var testKeyVault = new Azure.KeyVault.KeyVault(\"testKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = testResourceGroup.Location,\n            ResourceGroupName = testResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"standard\",\n        });\n        var testLinkedServiceKeyVault = new Azure.DataFactory.LinkedServiceKeyVault(\"testLinkedServiceKeyVault\", new Azure.DataFactory.LinkedServiceKeyVaultArgs\n        {\n            ResourceGroupName = testResourceGroup.Name,\n            DataFactoryName = testFactory.Name,\n            KeyVaultId = testKeyVault.Id,\n        });\n        var testLinkedServiceAzureBlobStorage = new Azure.DataFactory.LinkedServiceAzureBlobStorage(\"testLinkedServiceAzureBlobStorage\", new Azure.DataFactory.LinkedServiceAzureBlobStorageArgs\n        {\n            ResourceGroupName = testResourceGroup.Name,\n            DataFactoryName = testFactory.Name,\n            SasUri = \"https://storageaccountname.blob.core.windows.net\",\n            KeyVaultSasToken = new Azure.DataFactory.Inputs.LinkedServiceAzureBlobStorageKeyVaultSasTokenArgs\n            {\n                LinkedServiceName = testLinkedServiceKeyVault.Name,\n                SecretName = \"secret\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestResourceGroup, err := core.NewResourceGroup(ctx, \"testResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestFactory, err := datafactory.NewFactory(ctx, \"testFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          testResourceGroup.Location,\n\t\t\tResourceGroupName: testResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestKeyVault, err := keyvault.NewKeyVault(ctx, \"testKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:          testResourceGroup.Location,\n\t\t\tResourceGroupName: testResourceGroup.Name,\n\t\t\tTenantId:          pulumi.String(current.TenantId),\n\t\t\tSkuName:           pulumi.String(\"standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestLinkedServiceKeyVault, err := datafactory.NewLinkedServiceKeyVault(ctx, \"testLinkedServiceKeyVault\", \u0026datafactory.LinkedServiceKeyVaultArgs{\n\t\t\tResourceGroupName: testResourceGroup.Name,\n\t\t\tDataFactoryName:   testFactory.Name,\n\t\t\tKeyVaultId:        testKeyVault.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceAzureBlobStorage(ctx, \"testLinkedServiceAzureBlobStorage\", \u0026datafactory.LinkedServiceAzureBlobStorageArgs{\n\t\t\tResourceGroupName: testResourceGroup.Name,\n\t\t\tDataFactoryName:   testFactory.Name,\n\t\t\tSasUri:            pulumi.String(\"https://storageaccountname.blob.core.windows.net\"),\n\t\t\tKeyVaultSasToken: \u0026datafactory.LinkedServiceAzureBlobStorageKeyVaultSasTokenArgs{\n\t\t\t\tLinkedServiceName: testLinkedServiceKeyVault.Name,\n\t\t\t\tSecretName:        pulumi.String(\"secret\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceAzureBlobStorage:LinkedServiceAzureBlobStorage example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string. Conflicts with `sas_uri` and `service_endpoint`.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "keyVaultSasToken": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureBlobStorageKeyVaultSasToken:LinkedServiceAzureBlobStorageKeyVaultSasToken",
          "description": "A `key_vault_sas_token` block as defined below. Use this argument to store SAS Token in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. A `sas_uri` is required.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        },
        "sasUri": {
          "description": "The SAS URI. Conflicts with `connection_string` and `service_endpoint`.\n",
          "type": "string"
        },
        "serviceEndpoint": {
          "description": "The Service Endpoint. Conflicts with `connection_string` and `sas_uri`. Required with `use_managed_identity`.\n",
          "type": "string"
        },
        "servicePrincipalId": {
          "description": "The service principal id in which to authenticate against the Azure Blob Storage account. Required if `service_principal_key` is set.\n",
          "type": "string"
        },
        "servicePrincipalKey": {
          "description": "The service principal key in which to authenticate against the AAzure Blob Storage account.  Required if `service_principal_id` is set.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The tenant id or name in which to authenticate against the Azure Blob Storage account.\n",
          "type": "string"
        },
        "useManagedIdentity": {
          "description": "Whether to use the Data Factory's managed identity to authenticate against the Azure Blob Storage account. Incompatible with `service_principal_id` and `service_principal_key`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string. Conflicts with `sas_uri` and `service_endpoint`.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "keyVaultSasToken": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureBlobStorageKeyVaultSasToken:LinkedServiceAzureBlobStorageKeyVaultSasToken",
          "description": "A `key_vault_sas_token` block as defined below. Use this argument to store SAS Token in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. A `sas_uri` is required.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        },
        "sasUri": {
          "description": "The SAS URI. Conflicts with `connection_string` and `service_endpoint`.\n",
          "type": "string"
        },
        "serviceEndpoint": {
          "description": "The Service Endpoint. Conflicts with `connection_string` and `sas_uri`. Required with `use_managed_identity`.\n",
          "type": "string"
        },
        "servicePrincipalId": {
          "description": "The service principal id in which to authenticate against the Azure Blob Storage account. Required if `service_principal_key` is set.\n",
          "type": "string"
        },
        "servicePrincipalKey": {
          "description": "The service principal key in which to authenticate against the AAzure Blob Storage account.  Required if `service_principal_id` is set.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The tenant id or name in which to authenticate against the Azure Blob Storage account.\n",
          "type": "string"
        },
        "useManagedIdentity": {
          "description": "Whether to use the Data Factory's managed identity to authenticate against the Azure Blob Storage account. Incompatible with `service_principal_id` and `service_principal_key`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "dataFactoryName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceAzureBlobStorage resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "connectionString": {
            "description": "The connection string. Conflicts with `sas_uri` and `service_endpoint`.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
            "type": "string"
          },
          "keyVaultSasToken": {
            "$ref": "#/types/azure:datafactory/LinkedServiceAzureBlobStorageKeyVaultSasToken:LinkedServiceAzureBlobStorageKeyVaultSasToken",
            "description": "A `key_vault_sas_token` block as defined below. Use this argument to store SAS Token in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. A `sas_uri` is required.\n"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
            "type": "string"
          },
          "sasUri": {
            "description": "The SAS URI. Conflicts with `connection_string` and `service_endpoint`.\n",
            "type": "string"
          },
          "serviceEndpoint": {
            "description": "The Service Endpoint. Conflicts with `connection_string` and `sas_uri`. Required with `use_managed_identity`.\n",
            "type": "string"
          },
          "servicePrincipalId": {
            "description": "The service principal id in which to authenticate against the Azure Blob Storage account. Required if `service_principal_key` is set.\n",
            "type": "string"
          },
          "servicePrincipalKey": {
            "description": "The service principal key in which to authenticate against the AAzure Blob Storage account.  Required if `service_principal_id` is set.\n",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenant id or name in which to authenticate against the Azure Blob Storage account.\n",
            "type": "string"
          },
          "useManagedIdentity": {
            "description": "Whether to use the Data Factory's managed identity to authenticate against the Azure Blob Storage account. Incompatible with `service_principal_id` and `service_principal_key`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceAzureDatabricks:LinkedServiceAzureDatabricks": {
      "description": "Manages a Linked Service (connection) between Azure Databricks and Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### With Managed Identity \u0026 New Cluster\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"East US\"});\n//Create a Linked Service using managed identity and new cluster config\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\n//Create a databricks instance\nconst exampleWorkspace = new azure.databricks.Workspace(\"exampleWorkspace\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: \"standard\",\n});\nconst msiLinked = new azure.datafactory.LinkedServiceAzureDatabricks(\"msiLinked\", {\n    dataFactoryName: exampleFactory.name,\n    resourceGroupName: exampleResourceGroup.name,\n    description: \"ADB Linked Service via MSI\",\n    adbDomain: pulumi.interpolate`https://${exampleWorkspace.workspaceUrl}`,\n    msiWorkSpaceResourceId: exampleWorkspace.id,\n    newClusterConfig: {\n        nodeType: \"Standard_NC12\",\n        clusterVersion: \"5.5.x-gpu-scala2.11\",\n        minNumberOfWorkers: 1,\n        maxNumberOfWorkers: 5,\n        driverNodeType: \"Standard_NC12\",\n        logDestination: \"dbfs:/logs\",\n        customTags: {\n            custom_tag1: \"sct_value_1\",\n            custom_tag2: \"sct_value_2\",\n        },\n        sparkConfig: {\n            config1: \"value1\",\n            config2: \"value2\",\n        },\n        sparkEnvironmentVariables: {\n            envVar1: \"value1\",\n            envVar2: \"value2\",\n        },\n        initScripts: [\n            \"init.sh\",\n            \"init2.sh\",\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"East US\")\n#Create a Linked Service using managed identity and new cluster config\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    identity=azure.datafactory.FactoryIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\n#Create a databricks instance\nexample_workspace = azure.databricks.Workspace(\"exampleWorkspace\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=\"standard\")\nmsi_linked = azure.datafactory.LinkedServiceAzureDatabricks(\"msiLinked\",\n    data_factory_name=example_factory.name,\n    resource_group_name=example_resource_group.name,\n    description=\"ADB Linked Service via MSI\",\n    adb_domain=example_workspace.workspace_url.apply(lambda workspace_url: f\"https://{workspace_url}\"),\n    msi_work_space_resource_id=example_workspace.id,\n    new_cluster_config=azure.datafactory.LinkedServiceAzureDatabricksNewClusterConfigArgs(\n        node_type=\"Standard_NC12\",\n        cluster_version=\"5.5.x-gpu-scala2.11\",\n        min_number_of_workers=1,\n        max_number_of_workers=5,\n        driver_node_type=\"Standard_NC12\",\n        log_destination=\"dbfs:/logs\",\n        custom_tags={\n            \"custom_tag1\": \"sct_value_1\",\n            \"custom_tag2\": \"sct_value_2\",\n        },\n        spark_config={\n            \"config1\": \"value1\",\n            \"config2\": \"value2\",\n        },\n        spark_environment_variables={\n            \"envVar1\": \"value1\",\n            \"envVar2\": \"value2\",\n        },\n        init_scripts=[\n            \"init.sh\",\n            \"init2.sh\",\n        ],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"East US\",\n        });\n        //Create a Linked Service using managed identity and new cluster config\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Identity = new Azure.DataFactory.Inputs.FactoryIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n        //Create a databricks instance\n        var exampleWorkspace = new Azure.DataBricks.Workspace(\"exampleWorkspace\", new Azure.DataBricks.WorkspaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = \"standard\",\n        });\n        var msiLinked = new Azure.DataFactory.LinkedServiceAzureDatabricks(\"msiLinked\", new Azure.DataFactory.LinkedServiceAzureDatabricksArgs\n        {\n            DataFactoryName = exampleFactory.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Description = \"ADB Linked Service via MSI\",\n            AdbDomain = exampleWorkspace.WorkspaceUrl.Apply(workspaceUrl =\u003e $\"https://{workspaceUrl}\"),\n            MsiWorkSpaceResourceId = exampleWorkspace.Id,\n            NewClusterConfig = new Azure.DataFactory.Inputs.LinkedServiceAzureDatabricksNewClusterConfigArgs\n            {\n                NodeType = \"Standard_NC12\",\n                ClusterVersion = \"5.5.x-gpu-scala2.11\",\n                MinNumberOfWorkers = 1,\n                MaxNumberOfWorkers = 5,\n                DriverNodeType = \"Standard_NC12\",\n                LogDestination = \"dbfs:/logs\",\n                CustomTags = \n                {\n                    { \"custom_tag1\", \"sct_value_1\" },\n                    { \"custom_tag2\", \"sct_value_2\" },\n                },\n                SparkConfig = \n                {\n                    { \"config1\", \"value1\" },\n                    { \"config2\", \"value2\" },\n                },\n                SparkEnvironmentVariables = \n                {\n                    { \"envVar1\", \"value1\" },\n                    { \"envVar2\", \"value2\" },\n                },\n                InitScripts = \n                {\n                    \"init.sh\",\n                    \"init2.sh\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/databricks\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"East US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIdentity: \u0026datafactory.FactoryIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkspace, err := databricks.NewWorkspace(ctx, \"exampleWorkspace\", \u0026databricks.WorkspaceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku:               pulumi.String(\"standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceAzureDatabricks(ctx, \"msiLinked\", \u0026datafactory.LinkedServiceAzureDatabricksArgs{\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDescription:       pulumi.String(\"ADB Linked Service via MSI\"),\n\t\t\tAdbDomain: exampleWorkspace.WorkspaceUrl.ApplyT(func(workspaceUrl string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v%v\", \"https://\", workspaceUrl), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tMsiWorkSpaceResourceId: exampleWorkspace.ID(),\n\t\t\tNewClusterConfig: \u0026datafactory.LinkedServiceAzureDatabricksNewClusterConfigArgs{\n\t\t\t\tNodeType:           pulumi.String(\"Standard_NC12\"),\n\t\t\t\tClusterVersion:     pulumi.String(\"5.5.x-gpu-scala2.11\"),\n\t\t\t\tMinNumberOfWorkers: pulumi.Int(1),\n\t\t\t\tMaxNumberOfWorkers: pulumi.Int(5),\n\t\t\t\tDriverNodeType:     pulumi.String(\"Standard_NC12\"),\n\t\t\t\tLogDestination:     pulumi.String(\"dbfs:/logs\"),\n\t\t\t\tCustomTags: pulumi.StringMap{\n\t\t\t\t\t\"custom_tag1\": pulumi.String(\"sct_value_1\"),\n\t\t\t\t\t\"custom_tag2\": pulumi.String(\"sct_value_2\"),\n\t\t\t\t},\n\t\t\t\tSparkConfig: pulumi.StringMap{\n\t\t\t\t\t\"config1\": pulumi.String(\"value1\"),\n\t\t\t\t\t\"config2\": pulumi.String(\"value2\"),\n\t\t\t\t},\n\t\t\t\tSparkEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"envVar1\": pulumi.String(\"value1\"),\n\t\t\t\t\t\"envVar2\": pulumi.String(\"value2\"),\n\t\t\t\t},\n\t\t\t\tInitScripts: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"init.sh\"),\n\t\t\t\t\tpulumi.String(\"init2.sh\"),\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\n{{% /example %}}\n{{% example %}}\n### With Access Token \u0026 Existing Cluster\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"East US\"});\n//Link to an existing cluster via access token\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\n//Create a databricks instance\nconst exampleWorkspace = new azure.databricks.Workspace(\"exampleWorkspace\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: \"standard\",\n});\nconst atLinked = new azure.datafactory.LinkedServiceAzureDatabricks(\"atLinked\", {\n    dataFactoryName: exampleFactory.name,\n    resourceGroupName: exampleResourceGroup.name,\n    description: \"ADB Linked Service via Access Token\",\n    existingClusterId: \"0308-201146-sly615\",\n    accessToken: \"SomeDatabricksAccessToken\",\n    adbDomain: pulumi.interpolate`https://${exampleWorkspace.workspaceUrl}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"East US\")\n#Link to an existing cluster via access token\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\n#Create a databricks instance\nexample_workspace = azure.databricks.Workspace(\"exampleWorkspace\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=\"standard\")\nat_linked = azure.datafactory.LinkedServiceAzureDatabricks(\"atLinked\",\n    data_factory_name=example_factory.name,\n    resource_group_name=example_resource_group.name,\n    description=\"ADB Linked Service via Access Token\",\n    existing_cluster_id=\"0308-201146-sly615\",\n    access_token=\"SomeDatabricksAccessToken\",\n    adb_domain=example_workspace.workspace_url.apply(lambda workspace_url: f\"https://{workspace_url}\"))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"East US\",\n        });\n        //Link to an existing cluster via access token\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        //Create a databricks instance\n        var exampleWorkspace = new Azure.DataBricks.Workspace(\"exampleWorkspace\", new Azure.DataBricks.WorkspaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = \"standard\",\n        });\n        var atLinked = new Azure.DataFactory.LinkedServiceAzureDatabricks(\"atLinked\", new Azure.DataFactory.LinkedServiceAzureDatabricksArgs\n        {\n            DataFactoryName = exampleFactory.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Description = \"ADB Linked Service via Access Token\",\n            ExistingClusterId = \"0308-201146-sly615\",\n            AccessToken = \"SomeDatabricksAccessToken\",\n            AdbDomain = exampleWorkspace.WorkspaceUrl.Apply(workspaceUrl =\u003e $\"https://{workspaceUrl}\"),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/databricks\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"East US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkspace, err := databricks.NewWorkspace(ctx, \"exampleWorkspace\", \u0026databricks.WorkspaceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku:               pulumi.String(\"standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceAzureDatabricks(ctx, \"atLinked\", \u0026datafactory.LinkedServiceAzureDatabricksArgs{\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDescription:       pulumi.String(\"ADB Linked Service via Access Token\"),\n\t\t\tExistingClusterId: pulumi.String(\"0308-201146-sly615\"),\n\t\t\tAccessToken:       pulumi.String(\"SomeDatabricksAccessToken\"),\n\t\t\tAdbDomain: exampleWorkspace.WorkspaceUrl.ApplyT(func(workspaceUrl string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v%v\", \"https://\", workspaceUrl), nil\n\t\t\t}).(pulumi.StringOutput),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Linked Services can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceAzureDatabricks:LinkedServiceAzureDatabricks example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "accessToken": {
          "description": "Authenticate to ADB via an access token.\n",
          "type": "string"
        },
        "adbDomain": {
          "description": "The domain URL of the databricks instance.\n",
          "type": "string"
        },
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "existingClusterId": {
          "description": "The cluster_id of an existing cluster within the linked ADB instance.\n",
          "type": "string"
        },
        "instancePool": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureDatabricksInstancePool:LinkedServiceAzureDatabricksInstancePool",
          "description": "Leverages an instance pool within the linked ADB instance as defined by  `instance_pool` block below.\n"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "keyVaultPassword": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureDatabricksKeyVaultPassword:LinkedServiceAzureDatabricksKeyVaultPassword",
          "description": "Authenticate to ADB via Azure Key Vault Linked Service as defined in the `key_vault_password` block below.\n"
        },
        "msiWorkSpaceResourceId": {
          "description": "Authenticate to ADB via managed service identity.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "newClusterConfig": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureDatabricksNewClusterConfig:LinkedServiceAzureDatabricksNewClusterConfig",
          "description": "Creates new clusters within the linked ADB instance as defined in the  `new_cluster_config` block below.\n"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource.\n",
          "type": "string"
        }
      },
      "properties": {
        "accessToken": {
          "description": "Authenticate to ADB via an access token.\n",
          "type": "string"
        },
        "adbDomain": {
          "description": "The domain URL of the databricks instance.\n",
          "type": "string"
        },
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "existingClusterId": {
          "description": "The cluster_id of an existing cluster within the linked ADB instance.\n",
          "type": "string"
        },
        "instancePool": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureDatabricksInstancePool:LinkedServiceAzureDatabricksInstancePool",
          "description": "Leverages an instance pool within the linked ADB instance as defined by  `instance_pool` block below.\n"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "keyVaultPassword": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureDatabricksKeyVaultPassword:LinkedServiceAzureDatabricksKeyVaultPassword",
          "description": "Authenticate to ADB via Azure Key Vault Linked Service as defined in the `key_vault_password` block below.\n"
        },
        "msiWorkSpaceResourceId": {
          "description": "Authenticate to ADB via managed service identity.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "newClusterConfig": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureDatabricksNewClusterConfig:LinkedServiceAzureDatabricksNewClusterConfig",
          "description": "Creates new clusters within the linked ADB instance as defined in the  `new_cluster_config` block below.\n"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource.\n",
          "type": "string"
        }
      },
      "required": [
        "adbDomain",
        "dataFactoryName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "adbDomain",
        "dataFactoryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceAzureDatabricks resources.\n",
        "properties": {
          "accessToken": {
            "description": "Authenticate to ADB via an access token.\n",
            "type": "string"
          },
          "adbDomain": {
            "description": "The domain URL of the databricks instance.\n",
            "type": "string"
          },
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service.\n",
            "type": "string"
          },
          "existingClusterId": {
            "description": "The cluster_id of an existing cluster within the linked ADB instance.\n",
            "type": "string"
          },
          "instancePool": {
            "$ref": "#/types/azure:datafactory/LinkedServiceAzureDatabricksInstancePool:LinkedServiceAzureDatabricksInstancePool",
            "description": "Leverages an instance pool within the linked ADB instance as defined by  `instance_pool` block below.\n"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
            "type": "string"
          },
          "keyVaultPassword": {
            "$ref": "#/types/azure:datafactory/LinkedServiceAzureDatabricksKeyVaultPassword:LinkedServiceAzureDatabricksKeyVaultPassword",
            "description": "Authenticate to ADB via Azure Key Vault Linked Service as defined in the `key_vault_password` block below.\n"
          },
          "msiWorkSpaceResourceId": {
            "description": "Authenticate to ADB via managed service identity.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "newClusterConfig": {
            "$ref": "#/types/azure:datafactory/LinkedServiceAzureDatabricksNewClusterConfig:LinkedServiceAzureDatabricksNewClusterConfig",
            "description": "Creates new clusters within the linked ADB instance as defined in the  `new_cluster_config` block below.\n"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceAzureFileStorage:LinkedServiceAzureFileStorage": {
      "description": "Manages a Linked Service (connection) between a SFTP Server and Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = exampleResourceGroup.name.apply(name =\u003e azure.storage.getAccount({\n    name: \"storageaccountname\",\n    resourceGroupName: name,\n}));\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceAzureFileStorage = new azure.datafactory.LinkedServiceAzureFileStorage(\"exampleLinkedServiceAzureFileStorage\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: exampleAccount.apply(exampleAccount =\u003e exampleAccount.primaryConnectionString),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = example_resource_group.name.apply(lambda name: azure.storage.get_account(name=\"storageaccountname\",\n    resource_group_name=name))\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_azure_file_storage = azure.datafactory.LinkedServiceAzureFileStorage(\"exampleLinkedServiceAzureFileStorage\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=example_account.primary_connection_string)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = exampleResourceGroup.Name.Apply(name =\u003e Azure.Storage.GetAccount.InvokeAsync(new Azure.Storage.GetAccountArgs\n        {\n            Name = \"storageaccountname\",\n            ResourceGroupName = name,\n        }));\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceAzureFileStorage = new Azure.DataFactory.LinkedServiceAzureFileStorage(\"exampleLinkedServiceAzureFileStorage\", new Azure.DataFactory.LinkedServiceAzureFileStorageArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.PrimaryConnectionString),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceAzureFileStorage(ctx, \"exampleLinkedServiceAzureFileStorage\", \u0026datafactory.LinkedServiceAzureFileStorageArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString: exampleAccount.ApplyT(func(exampleAccount storage.GetAccountResult) (string, error) {\n\t\t\t\treturn exampleAccount.PrimaryConnectionString, nil\n\t\t\t}).(pulumi.StringOutput),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceAzureFileStorage:LinkedServiceAzureFileStorage example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "fileShare": {
          "description": "The name of the file share.\n",
          "type": "string"
        },
        "host": {
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "keyVaultPassword": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureFileStorageKeyVaultPassword:LinkedServiceAzureFileStorageKeyVaultPassword",
          "description": "A `key_vault_password` block as defined below. Use this argument to store Azure File Storage password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "password": {
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        },
        "userId": {
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "fileShare": {
          "description": "The name of the file share.\n",
          "type": "string"
        },
        "host": {
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "keyVaultPassword": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureFileStorageKeyVaultPassword:LinkedServiceAzureFileStorageKeyVaultPassword",
          "description": "A `key_vault_password` block as defined below. Use this argument to store Azure File Storage password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "password": {
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        },
        "userId": {
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "dataFactoryName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "connectionString",
        "dataFactoryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceAzureFileStorage resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "connectionString": {
            "description": "The connection string.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service.\n",
            "type": "string"
          },
          "fileShare": {
            "description": "The name of the file share.\n",
            "type": "string"
          },
          "host": {
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
            "type": "string"
          },
          "keyVaultPassword": {
            "$ref": "#/types/azure:datafactory/LinkedServiceAzureFileStorageKeyVaultPassword:LinkedServiceAzureFileStorageKeyVaultPassword",
            "description": "A `key_vault_password` block as defined below. Use this argument to store Azure File Storage password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "password": {
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceAzureFunction:LinkedServiceAzureFunction": {
      "description": "Manages a Linked Service (connection) between an Azure Function and Azure Data Factory.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFunctionApp = exampleResourceGroup.name.apply(name =\u003e azure.appservice.getFunctionApp({\n    name: \"test-azure-functions\",\n    resourceGroupName: name,\n}));\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceAzureFunction = new azure.datafactory.LinkedServiceAzureFunction(\"exampleLinkedServiceAzureFunction\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    url: exampleFunctionApp.apply(exampleFunctionApp =\u003e `https://${exampleFunctionApp.defaultHostname}`),\n    key: \"foo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_function_app = example_resource_group.name.apply(lambda name: azure.appservice.get_function_app(name=\"test-azure-functions\",\n    resource_group_name=name))\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_azure_function = azure.datafactory.LinkedServiceAzureFunction(\"exampleLinkedServiceAzureFunction\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    url=example_function_app.apply(lambda example_function_app: f\"https://{example_function_app.default_hostname}\"),\n    key=\"foo\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFunctionApp = exampleResourceGroup.Name.Apply(name =\u003e Azure.AppService.GetFunctionApp.InvokeAsync(new Azure.AppService.GetFunctionAppArgs\n        {\n            Name = \"test-azure-functions\",\n            ResourceGroupName = name,\n        }));\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceAzureFunction = new Azure.DataFactory.LinkedServiceAzureFunction(\"exampleLinkedServiceAzureFunction\", new Azure.DataFactory.LinkedServiceAzureFunctionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            Url = exampleFunctionApp.Apply(exampleFunctionApp =\u003e $\"https://{exampleFunctionApp.DefaultHostname}\"),\n            Key = \"foo\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceAzureFunction(ctx, \"exampleLinkedServiceAzureFunction\", \u0026datafactory.LinkedServiceAzureFunctionArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tUrl: exampleFunctionApp.ApplyT(func(exampleFunctionApp appservice.GetFunctionAppResult) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v%v\", \"https://\", exampleFunctionApp.DefaultHostname), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tKey: pulumi.String(\"foo\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceAzureFunction:LinkedServiceAzureFunction example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "key": {
          "description": "The system key of the Azure Function. Exactly one of either `key` or `key_vault_key` is required\n",
          "type": "string"
        },
        "keyVaultKey": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureFunctionKeyVaultKey:LinkedServiceAzureFunctionKeyVaultKey",
          "description": "A `key_vault_key` block as defined below. Use this Argument to store the system key of the Azure Function in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. Exactly one of either `key` or `key_vault_key` is required.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        },
        "url": {
          "description": "The url of the Azure Function.\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "key": {
          "description": "The system key of the Azure Function. Exactly one of either `key` or `key_vault_key` is required\n",
          "type": "string"
        },
        "keyVaultKey": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureFunctionKeyVaultKey:LinkedServiceAzureFunctionKeyVaultKey",
          "description": "A `key_vault_key` block as defined below. Use this Argument to store the system key of the Azure Function in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. Exactly one of either `key` or `key_vault_key` is required.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        },
        "url": {
          "description": "The url of the Azure Function.\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryName",
        "name",
        "resourceGroupName",
        "url"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "resourceGroupName",
        "url"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceAzureFunction resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
            "type": "string"
          },
          "key": {
            "description": "The system key of the Azure Function. Exactly one of either `key` or `key_vault_key` is required\n",
            "type": "string"
          },
          "keyVaultKey": {
            "$ref": "#/types/azure:datafactory/LinkedServiceAzureFunctionKeyVaultKey:LinkedServiceAzureFunctionKeyVaultKey",
            "description": "A `key_vault_key` block as defined below. Use this Argument to store the system key of the Azure Function in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. Exactly one of either `key` or `key_vault_key` is required.\n"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
            "type": "string"
          },
          "url": {
            "description": "The url of the Azure Function.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceAzureSearch:LinkedServiceAzureSearch": {
      "description": "Manages a Linked Service (connection) between Azure Search Service and Azure Data Factory.\n\n\n## Import\n\nData Factory Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceAzureSearch:LinkedServiceAzureSearch example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryId": {
          "description": "The Data Factory ID in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "searchServiceKey": {
          "description": "The key of the Azure Search Service.\n",
          "type": "string"
        },
        "url": {
          "description": "The URL of the Search Service endpoint (e.g. https://{searchServiceName}.search.windows.net).\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryId": {
          "description": "The Data Factory ID in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "encryptedCredential": {
          "description": "The encrypted credential to connnect to Azure Search Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "searchServiceKey": {
          "description": "The key of the Azure Search Service.\n",
          "type": "string"
        },
        "url": {
          "description": "The URL of the Search Service endpoint (e.g. https://{searchServiceName}.search.windows.net).\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryId",
        "encryptedCredential",
        "name",
        "searchServiceKey",
        "url"
      ],
      "requiredInputs": [
        "dataFactoryId",
        "searchServiceKey",
        "url"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceAzureSearch resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryId": {
            "description": "The Data Factory ID in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service.\n",
            "type": "string"
          },
          "encryptedCredential": {
            "description": "The encrypted credential to connnect to Azure Search Service.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "searchServiceKey": {
            "description": "The key of the Azure Search Service.\n",
            "type": "string"
          },
          "url": {
            "description": "The URL of the Search Service endpoint (e.g. https://{searchServiceName}.search.windows.net).\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceAzureSqlDatabase:LinkedServiceAzureSqlDatabase": {
      "description": "Manages a Linked Service (connection) between Azure SQL Database and Azure Data Factory.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceAzureSqlDatabase = new azure.datafactory.LinkedServiceAzureSqlDatabase(\"exampleLinkedServiceAzureSqlDatabase\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: \"data source=serverhostname;initial catalog=master;user id=testUser;Password=test;integrated security=False;encrypt=True;connection timeout=30\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_azure_sql_database = azure.datafactory.LinkedServiceAzureSqlDatabase(\"exampleLinkedServiceAzureSqlDatabase\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=\"data source=serverhostname;initial catalog=master;user id=testUser;Password=test;integrated security=False;encrypt=True;connection timeout=30\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceAzureSqlDatabase = new Azure.DataFactory.LinkedServiceAzureSqlDatabase(\"exampleLinkedServiceAzureSqlDatabase\", new Azure.DataFactory.LinkedServiceAzureSqlDatabaseArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = \"data source=serverhostname;initial catalog=master;user id=testUser;Password=test;integrated security=False;encrypt=True;connection timeout=30\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceAzureSqlDatabase(ctx, \"exampleLinkedServiceAzureSqlDatabase\", \u0026datafactory.LinkedServiceAzureSqlDatabaseArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString:  pulumi.String(\"data source=serverhostname;initial catalog=master;user id=testUser;Password=test;integrated security=False;encrypt=True;connection timeout=30\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Azure SQL Database Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceAzureSqlDatabase:LinkedServiceAzureSqlDatabase example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service Azure SQL Database.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service Azure SQL Database.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string in which to authenticate with Azure SQL Database. Exactly one of either `connection_string` or `key_vault_connection_string` is required.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service Azure SQL Database.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service Azure SQL Database.\n",
          "type": "string"
        },
        "keyVaultConnectionString": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureSqlDatabaseKeyVaultConnectionString:LinkedServiceAzureSqlDatabaseKeyVaultConnectionString",
          "description": "A `key_vault_connection_string` block as defined below. Use this argument to store Azure SQL Database connection string in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. Exactly one of either `connection_string` or `key_vault_connection_string` is required.\n"
        },
        "keyVaultPassword": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureSqlDatabaseKeyVaultPassword:LinkedServiceAzureSqlDatabaseKeyVaultPassword",
          "description": "A `key_vault_password` block as defined below. Use this argument to store SQL Server password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service Azure SQL Database. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service Azure SQL Database.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service Azure SQL Database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "servicePrincipalId": {
          "description": "The service principal id in which to authenticate against the Azure SQL Database. Required if `service_principal_key` is set.\n",
          "type": "string"
        },
        "servicePrincipalKey": {
          "description": "The service principal key in which to authenticate against the Azure SQL Database. Required if `service_principal_id` is set.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The tenant id or name in which to authenticate against the Azure SQL Database.\n",
          "type": "string"
        },
        "useManagedIdentity": {
          "description": "Whether to use the Data Factory's managed identity to authenticate against the Azure SQL Database. Incompatible with `service_principal_id` and `service_principal_key`\n",
          "type": "boolean"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service Azure SQL Database.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service Azure SQL Database.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string in which to authenticate with Azure SQL Database. Exactly one of either `connection_string` or `key_vault_connection_string` is required.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service Azure SQL Database.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service Azure SQL Database.\n",
          "type": "string"
        },
        "keyVaultConnectionString": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureSqlDatabaseKeyVaultConnectionString:LinkedServiceAzureSqlDatabaseKeyVaultConnectionString",
          "description": "A `key_vault_connection_string` block as defined below. Use this argument to store Azure SQL Database connection string in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. Exactly one of either `connection_string` or `key_vault_connection_string` is required.\n"
        },
        "keyVaultPassword": {
          "$ref": "#/types/azure:datafactory/LinkedServiceAzureSqlDatabaseKeyVaultPassword:LinkedServiceAzureSqlDatabaseKeyVaultPassword",
          "description": "A `key_vault_password` block as defined below. Use this argument to store SQL Server password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service Azure SQL Database. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service Azure SQL Database.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service Azure SQL Database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "servicePrincipalId": {
          "description": "The service principal id in which to authenticate against the Azure SQL Database. Required if `service_principal_key` is set.\n",
          "type": "string"
        },
        "servicePrincipalKey": {
          "description": "The service principal key in which to authenticate against the Azure SQL Database. Required if `service_principal_id` is set.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The tenant id or name in which to authenticate against the Azure SQL Database.\n",
          "type": "string"
        },
        "useManagedIdentity": {
          "description": "Whether to use the Data Factory's managed identity to authenticate against the Azure SQL Database. Incompatible with `service_principal_id` and `service_principal_key`\n",
          "type": "boolean"
        }
      },
      "required": [
        "dataFactoryName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceAzureSqlDatabase resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service Azure SQL Database.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service Azure SQL Database.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "connectionString": {
            "description": "The connection string in which to authenticate with Azure SQL Database. Exactly one of either `connection_string` or `key_vault_connection_string` is required.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service Azure SQL Database.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service Azure SQL Database.\n",
            "type": "string"
          },
          "keyVaultConnectionString": {
            "$ref": "#/types/azure:datafactory/LinkedServiceAzureSqlDatabaseKeyVaultConnectionString:LinkedServiceAzureSqlDatabaseKeyVaultConnectionString",
            "description": "A `key_vault_connection_string` block as defined below. Use this argument to store Azure SQL Database connection string in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. Exactly one of either `connection_string` or `key_vault_connection_string` is required.\n"
          },
          "keyVaultPassword": {
            "$ref": "#/types/azure:datafactory/LinkedServiceAzureSqlDatabaseKeyVaultPassword:LinkedServiceAzureSqlDatabaseKeyVaultPassword",
            "description": "A `key_vault_password` block as defined below. Use this argument to store SQL Server password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service Azure SQL Database. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service Azure SQL Database.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service Azure SQL Database. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "servicePrincipalId": {
            "description": "The service principal id in which to authenticate against the Azure SQL Database. Required if `service_principal_key` is set.\n",
            "type": "string"
          },
          "servicePrincipalKey": {
            "description": "The service principal key in which to authenticate against the Azure SQL Database. Required if `service_principal_id` is set.\n",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenant id or name in which to authenticate against the Azure SQL Database.\n",
            "type": "string"
          },
          "useManagedIdentity": {
            "description": "Whether to use the Data Factory's managed identity to authenticate against the Azure SQL Database. Incompatible with `service_principal_id` and `service_principal_key`\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceAzureTableStorage:LinkedServiceAzureTableStorage": {
      "description": "Manages a Linked Service (connection) between an Azure Table Storage and Azure Data Factory.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = exampleResourceGroup.name.apply(name =\u003e azure.storage.getAccount({\n    name: \"storageaccountname\",\n    resourceGroupName: name,\n}));\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceAzureTableStorage = new azure.datafactory.LinkedServiceAzureTableStorage(\"exampleLinkedServiceAzureTableStorage\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: exampleAccount.apply(exampleAccount =\u003e exampleAccount.primaryConnectionString),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = example_resource_group.name.apply(lambda name: azure.storage.get_account(name=\"storageaccountname\",\n    resource_group_name=name))\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_azure_table_storage = azure.datafactory.LinkedServiceAzureTableStorage(\"exampleLinkedServiceAzureTableStorage\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=example_account.primary_connection_string)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = exampleResourceGroup.Name.Apply(name =\u003e Azure.Storage.GetAccount.InvokeAsync(new Azure.Storage.GetAccountArgs\n        {\n            Name = \"storageaccountname\",\n            ResourceGroupName = name,\n        }));\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceAzureTableStorage = new Azure.DataFactory.LinkedServiceAzureTableStorage(\"exampleLinkedServiceAzureTableStorage\", new Azure.DataFactory.LinkedServiceAzureTableStorageArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.PrimaryConnectionString),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceAzureTableStorage(ctx, \"exampleLinkedServiceAzureTableStorage\", \u0026datafactory.LinkedServiceAzureTableStorageArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString: exampleAccount.ApplyT(func(exampleAccount storage.GetAccountResult) (string, error) {\n\t\t\t\treturn exampleAccount.PrimaryConnectionString, nil\n\t\t\t}).(pulumi.StringOutput),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceAzureTableStorage:LinkedServiceAzureTableStorage example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string to an Azure Storage Account.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string to an Azure Storage Account.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "dataFactoryName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "connectionString",
        "dataFactoryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceAzureTableStorage resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "connectionString": {
            "description": "The connection string to an Azure Storage Account.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceCosmosDb:LinkedServiceCosmosDb": {
      "description": "Manages a Linked Service (connection) between a SFTP Server and Azure Data Factory.\n\n\n\n## Import\n\nData Factory Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceCosmosDb:LinkedServiceCosmosDb example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "accountEndpoint": {
          "description": "The endpoint of the Azure CosmosDB account. Required if `connection_string` is unspecified.\n",
          "type": "string"
        },
        "accountKey": {
          "description": "The account key of the Azure Cosmos DB account. Required if `connection_string` is unspecified.\n",
          "type": "string"
        },
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string. Required if `account_endpoint`, `account_key`, and `database` are unspecified.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "database": {
          "description": "The name of the database. Required if `connection_string` is unspecified.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "properties": {
        "accountEndpoint": {
          "description": "The endpoint of the Azure CosmosDB account. Required if `connection_string` is unspecified.\n",
          "type": "string"
        },
        "accountKey": {
          "description": "The account key of the Azure Cosmos DB account. Required if `connection_string` is unspecified.\n",
          "type": "string"
        },
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string. Required if `account_endpoint`, `account_key`, and `database` are unspecified.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "database": {
          "description": "The name of the database. Required if `connection_string` is unspecified.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceCosmosDb resources.\n",
        "properties": {
          "accountEndpoint": {
            "description": "The endpoint of the Azure CosmosDB account. Required if `connection_string` is unspecified.\n",
            "type": "string"
          },
          "accountKey": {
            "description": "The account key of the Azure Cosmos DB account. Required if `connection_string` is unspecified.\n",
            "type": "string"
          },
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "connectionString": {
            "description": "The connection string. Required if `account_endpoint`, `account_key`, and `database` are unspecified.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "database": {
            "description": "The name of the database. Required if `connection_string` is unspecified.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceDataLakeStorageGen2:LinkedServiceDataLakeStorageGen2": {
      "description": "Manages a Linked Service (connection) between Data Lake Storage Gen2 and Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst current = azure.core.getClientConfig({});\nconst exampleLinkedServiceDataLakeStorageGen2 = new azure.datafactory.LinkedServiceDataLakeStorageGen2(\"exampleLinkedServiceDataLakeStorageGen2\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    servicePrincipalId: current.then(current =\u003e current.clientId),\n    servicePrincipalKey: \"exampleKey\",\n    tenant: \"11111111-1111-1111-1111-111111111111\",\n    url: \"https://datalakestoragegen2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\ncurrent = azure.core.get_client_config()\nexample_linked_service_data_lake_storage_gen2 = azure.datafactory.LinkedServiceDataLakeStorageGen2(\"exampleLinkedServiceDataLakeStorageGen2\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    service_principal_id=current.client_id,\n    service_principal_key=\"exampleKey\",\n    tenant=\"11111111-1111-1111-1111-111111111111\",\n    url=\"https://datalakestoragegen2\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleLinkedServiceDataLakeStorageGen2 = new Azure.DataFactory.LinkedServiceDataLakeStorageGen2(\"exampleLinkedServiceDataLakeStorageGen2\", new Azure.DataFactory.LinkedServiceDataLakeStorageGen2Args\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ServicePrincipalId = current.Apply(current =\u003e current.ClientId),\n            ServicePrincipalKey = \"exampleKey\",\n            Tenant = \"11111111-1111-1111-1111-111111111111\",\n            Url = \"https://datalakestoragegen2\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceDataLakeStorageGen2(ctx, \"exampleLinkedServiceDataLakeStorageGen2\", \u0026datafactory.LinkedServiceDataLakeStorageGen2Args{\n\t\t\tResourceGroupName:   exampleResourceGroup.Name,\n\t\t\tDataFactoryName:     exampleFactory.Name,\n\t\t\tServicePrincipalId:  pulumi.String(current.ClientId),\n\t\t\tServicePrincipalKey: pulumi.String(\"exampleKey\"),\n\t\t\tTenant:              pulumi.String(\"11111111-1111-1111-1111-111111111111\"),\n\t\t\tUrl:                 pulumi.String(\"https://datalakestoragegen2\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Data Lake Storage Gen2 Linked Services can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceDataLakeStorageGen2:LinkedServiceDataLakeStorageGen2 example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        },
        "servicePrincipalId": {
          "description": "The service principal id with which to authenticate against the Azure Data Lake Storage Gen2 account.  Incompatible with `storage_account_key` and `use_managed_identity`.\n",
          "type": "string"
        },
        "servicePrincipalKey": {
          "description": "The service principal key with which to authenticate against the Azure Data Lake Storage Gen2 account.\n",
          "type": "string"
        },
        "storageAccountKey": {
          "description": "The Storage Account Key with which to authenticate against the Azure Data Lake Storage Gen2 account.  Incompatible with `service_principal_id`, `service_principal_key`, `tenant` and `use_managed_identity`.\n",
          "type": "string"
        },
        "tenant": {
          "description": "The tenant id or name in which the service principal exists to authenticate against the Azure Data Lake Storage Gen2 account.\n",
          "type": "string"
        },
        "url": {
          "description": "The endpoint for the Azure Data Lake Storage Gen2 service.\n",
          "type": "string"
        },
        "useManagedIdentity": {
          "description": "Whether to use the Data Factory's managed identity to authenticate against the Azure Data Lake Storage Gen2 account. Incompatible with `service_principal_id`, `service_principal_key`, `tenant` and `storage_account_key`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        },
        "servicePrincipalId": {
          "description": "The service principal id with which to authenticate against the Azure Data Lake Storage Gen2 account.  Incompatible with `storage_account_key` and `use_managed_identity`.\n",
          "type": "string"
        },
        "servicePrincipalKey": {
          "description": "The service principal key with which to authenticate against the Azure Data Lake Storage Gen2 account.\n",
          "type": "string"
        },
        "storageAccountKey": {
          "description": "The Storage Account Key with which to authenticate against the Azure Data Lake Storage Gen2 account.  Incompatible with `service_principal_id`, `service_principal_key`, `tenant` and `use_managed_identity`.\n",
          "type": "string"
        },
        "tenant": {
          "description": "The tenant id or name in which the service principal exists to authenticate against the Azure Data Lake Storage Gen2 account.\n",
          "type": "string"
        },
        "url": {
          "description": "The endpoint for the Azure Data Lake Storage Gen2 service.\n",
          "type": "string"
        },
        "useManagedIdentity": {
          "description": "Whether to use the Data Factory's managed identity to authenticate against the Azure Data Lake Storage Gen2 account. Incompatible with `service_principal_id`, `service_principal_key`, `tenant` and `storage_account_key`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "dataFactoryName",
        "name",
        "resourceGroupName",
        "url"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "resourceGroupName",
        "url"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceDataLakeStorageGen2 resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
            "type": "string"
          },
          "servicePrincipalId": {
            "description": "The service principal id with which to authenticate against the Azure Data Lake Storage Gen2 account.  Incompatible with `storage_account_key` and `use_managed_identity`.\n",
            "type": "string"
          },
          "servicePrincipalKey": {
            "description": "The service principal key with which to authenticate against the Azure Data Lake Storage Gen2 account.\n",
            "type": "string"
          },
          "storageAccountKey": {
            "description": "The Storage Account Key with which to authenticate against the Azure Data Lake Storage Gen2 account.  Incompatible with `service_principal_id`, `service_principal_key`, `tenant` and `use_managed_identity`.\n",
            "type": "string"
          },
          "tenant": {
            "description": "The tenant id or name in which the service principal exists to authenticate against the Azure Data Lake Storage Gen2 account.\n",
            "type": "string"
          },
          "url": {
            "description": "The endpoint for the Azure Data Lake Storage Gen2 service.\n",
            "type": "string"
          },
          "useManagedIdentity": {
            "description": "Whether to use the Data Factory's managed identity to authenticate against the Azure Data Lake Storage Gen2 account. Incompatible with `service_principal_id`, `service_principal_key`, `tenant` and `storage_account_key`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceKeyVault:LinkedServiceKeyVault": {
      "description": "Manages a Linked Service (connection) between Key Vault and Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"standard\",\n});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceKeyVault = new azure.datafactory.LinkedServiceKeyVault(\"exampleLinkedServiceKeyVault\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    keyVaultId: exampleKeyVault.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"standard\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_key_vault = azure.datafactory.LinkedServiceKeyVault(\"exampleLinkedServiceKeyVault\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    key_vault_id=example_key_vault.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"standard\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceKeyVault = new Azure.DataFactory.LinkedServiceKeyVault(\"exampleLinkedServiceKeyVault\", new Azure.DataFactory.LinkedServiceKeyVaultArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            KeyVaultId = exampleKeyVault.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTenantId:          pulumi.String(current.TenantId),\n\t\t\tSkuName:           pulumi.String(\"standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceKeyVault(ctx, \"exampleLinkedServiceKeyVault\", \u0026datafactory.LinkedServiceKeyVaultArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tKeyVaultId:        exampleKeyVault.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Key Vault Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceKeyVault:LinkedServiceKeyVault example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service Key Vault.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service Key Vault.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service Key Vault.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service Key Vault.\n",
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID the Azure Key Vault resource.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service Key Vault. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service Key Vault.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service Key Vault. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service Key Vault.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service Key Vault.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service Key Vault.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service Key Vault.\n",
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID the Azure Key Vault resource.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service Key Vault. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service Key Vault.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service Key Vault. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryName",
        "keyVaultId",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "keyVaultId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceKeyVault resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service Key Vault.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service Key Vault.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service Key Vault.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service Key Vault.\n",
            "type": "string"
          },
          "keyVaultId": {
            "description": "The ID the Azure Key Vault resource.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service Key Vault. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service Key Vault.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service Key Vault. Changing this forces a new resource\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceKusto:LinkedServiceKusto": {
      "description": "Manages a Linked Service (connection) between a Kusto Cluster and Azure Data Factory.\n\n\n## Import\n\nData Factory Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceKusto:LinkedServiceKusto example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryId": {
          "description": "The Data Factory ID in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "kustoDatabaseName": {
          "description": "The Kusto Database Name.\n",
          "type": "string"
        },
        "kustoEndpoint": {
          "description": "The URI of the Kusto Cluster endpoint.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "servicePrincipalId": {
          "description": "The service principal id in which to authenticate against the Kusto Database.\n",
          "type": "string"
        },
        "servicePrincipalKey": {
          "description": "The service principal key in which to authenticate against the Kusto Database.\n",
          "type": "string"
        },
        "tenant": {
          "description": "The service principal tenant id or name in which to authenticate against the Kusto Database.\n",
          "type": "string"
        },
        "useManagedIdentity": {
          "description": "Whether to use the Data Factory's managed identity to authenticate against the Kusto Database.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryId": {
          "description": "The Data Factory ID in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "kustoDatabaseName": {
          "description": "The Kusto Database Name.\n",
          "type": "string"
        },
        "kustoEndpoint": {
          "description": "The URI of the Kusto Cluster endpoint.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "servicePrincipalId": {
          "description": "The service principal id in which to authenticate against the Kusto Database.\n",
          "type": "string"
        },
        "servicePrincipalKey": {
          "description": "The service principal key in which to authenticate against the Kusto Database.\n",
          "type": "string"
        },
        "tenant": {
          "description": "The service principal tenant id or name in which to authenticate against the Kusto Database.\n",
          "type": "string"
        },
        "useManagedIdentity": {
          "description": "Whether to use the Data Factory's managed identity to authenticate against the Kusto Database.\n",
          "type": "boolean"
        }
      },
      "required": [
        "dataFactoryId",
        "kustoDatabaseName",
        "kustoEndpoint",
        "name"
      ],
      "requiredInputs": [
        "dataFactoryId",
        "kustoDatabaseName",
        "kustoEndpoint"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceKusto resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryId": {
            "description": "The Data Factory ID in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
            "type": "string"
          },
          "kustoDatabaseName": {
            "description": "The Kusto Database Name.\n",
            "type": "string"
          },
          "kustoEndpoint": {
            "description": "The URI of the Kusto Cluster endpoint.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "servicePrincipalId": {
            "description": "The service principal id in which to authenticate against the Kusto Database.\n",
            "type": "string"
          },
          "servicePrincipalKey": {
            "description": "The service principal key in which to authenticate against the Kusto Database.\n",
            "type": "string"
          },
          "tenant": {
            "description": "The service principal tenant id or name in which to authenticate against the Kusto Database.\n",
            "type": "string"
          },
          "useManagedIdentity": {
            "description": "Whether to use the Data Factory's managed identity to authenticate against the Kusto Database.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceMysql:LinkedServiceMysql": {
      "description": "Manages a Linked Service (connection) between MySQL and Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceMysql = new azure.datafactory.LinkedServiceMysql(\"exampleLinkedServiceMysql\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: \"Server=test;Port=3306;Database=test;User=test;SSLMode=1;UseSystemTrustStore=0;Password=test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_mysql = azure.datafactory.LinkedServiceMysql(\"exampleLinkedServiceMysql\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=\"Server=test;Port=3306;Database=test;User=test;SSLMode=1;UseSystemTrustStore=0;Password=test\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceMysql = new Azure.DataFactory.LinkedServiceMysql(\"exampleLinkedServiceMysql\", new Azure.DataFactory.LinkedServiceMysqlArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = \"Server=test;Port=3306;Database=test;User=test;SSLMode=1;UseSystemTrustStore=0;Password=test\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceMysql(ctx, \"exampleLinkedServiceMysql\", \u0026datafactory.LinkedServiceMysqlArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString:  pulumi.String(\"Server=test;Port=3306;Database=test;User=test;SSLMode=1;UseSystemTrustStore=0;Password=test\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory MySql Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceMysql:LinkedServiceMysql example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service MySQL.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service MySQL.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string in which to authenticate with MySQL.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service MySQL.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service MySQL.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service MySQL. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service MySQL.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service MySQL. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service MySQL.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service MySQL.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string in which to authenticate with MySQL.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service MySQL.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service MySQL.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service MySQL. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service MySQL.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service MySQL. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "dataFactoryName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "connectionString",
        "dataFactoryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceMysql resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service MySQL.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service MySQL.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "connectionString": {
            "description": "The connection string in which to authenticate with MySQL.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service MySQL.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service MySQL.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service MySQL. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service MySQL.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service MySQL. Changing this forces a new resource\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceOdata:LinkedServiceOdata": {
      "description": "Manages a Linked Service (connection) between a Database and Azure Data Factory through OData protocol.\n\n\u003e **Note:** All arguments including the connection_string will be stored in the raw state as plain-text. [Read more about sensitive data in state](https://www.terraform.io/docs/state/sensitive-data.html).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst anonymous = new azure.datafactory.LinkedServiceOdata(\"anonymous\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    url: \"https://services.odata.org/v4/TripPinServiceRW/People\",\n});\nconst basicAuth = new azure.datafactory.LinkedServiceOdata(\"basicAuth\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    url: \"https://services.odata.org/v4/TripPinServiceRW/People\",\n    basicAuthentication: {\n        username: \"emma\",\n        password: \"Ch4ngeM3!\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nanonymous = azure.datafactory.LinkedServiceOdata(\"anonymous\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    url=\"https://services.odata.org/v4/TripPinServiceRW/People\")\nbasic_auth = azure.datafactory.LinkedServiceOdata(\"basicAuth\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    url=\"https://services.odata.org/v4/TripPinServiceRW/People\",\n    basic_authentication=azure.datafactory.LinkedServiceOdataBasicAuthenticationArgs(\n        username=\"emma\",\n        password=\"Ch4ngeM3!\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var anonymous = new Azure.DataFactory.LinkedServiceOdata(\"anonymous\", new Azure.DataFactory.LinkedServiceOdataArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            Url = \"https://services.odata.org/v4/TripPinServiceRW/People\",\n        });\n        var basicAuth = new Azure.DataFactory.LinkedServiceOdata(\"basicAuth\", new Azure.DataFactory.LinkedServiceOdataArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            Url = \"https://services.odata.org/v4/TripPinServiceRW/People\",\n            BasicAuthentication = new Azure.DataFactory.Inputs.LinkedServiceOdataBasicAuthenticationArgs\n            {\n                Username = \"emma\",\n                Password = \"Ch4ngeM3!\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceOdata(ctx, \"anonymous\", \u0026datafactory.LinkedServiceOdataArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tUrl:               pulumi.String(\"https://services.odata.org/v4/TripPinServiceRW/People\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceOdata(ctx, \"basicAuth\", \u0026datafactory.LinkedServiceOdataArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tUrl:               pulumi.String(\"https://services.odata.org/v4/TripPinServiceRW/People\"),\n\t\t\tBasicAuthentication: \u0026datafactory.LinkedServiceOdataBasicAuthenticationArgs{\n\t\t\t\tUsername: pulumi.String(\"emma\"),\n\t\t\t\tPassword: pulumi.String(\"Ch4ngeM3!\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory OData Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceOdata:LinkedServiceOdata example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service OData.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service OData.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "basicAuthentication": {
          "$ref": "#/types/azure:datafactory/LinkedServiceOdataBasicAuthentication:LinkedServiceOdataBasicAuthentication",
          "description": "A `basic_authentication` block as defined below.\n"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service OData.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service OData.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service OData. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service OData.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service OData. Changing this forces a new resource\n",
          "type": "string"
        },
        "url": {
          "description": "The URL of the OData service endpoint.\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service OData.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service OData.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "basicAuthentication": {
          "$ref": "#/types/azure:datafactory/LinkedServiceOdataBasicAuthentication:LinkedServiceOdataBasicAuthentication",
          "description": "A `basic_authentication` block as defined below.\n"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service OData.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service OData.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service OData. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service OData.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service OData. Changing this forces a new resource\n",
          "type": "string"
        },
        "url": {
          "description": "The URL of the OData service endpoint.\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryName",
        "name",
        "resourceGroupName",
        "url"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "resourceGroupName",
        "url"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceOdata resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service OData.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service OData.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "basicAuthentication": {
            "$ref": "#/types/azure:datafactory/LinkedServiceOdataBasicAuthentication:LinkedServiceOdataBasicAuthentication",
            "description": "A `basic_authentication` block as defined below.\n"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service OData.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service OData.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service OData. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service OData.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service OData. Changing this forces a new resource\n",
            "type": "string"
          },
          "url": {
            "description": "The URL of the OData service endpoint.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServicePostgresql:LinkedServicePostgresql": {
      "description": "Manages a Linked Service (connection) between PostgreSQL and Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServicePostgresql = new azure.datafactory.LinkedServicePostgresql(\"exampleLinkedServicePostgresql\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: \"Host=example;Port=5432;Database=example;UID=example;EncryptionMethod=0;Password=example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_postgresql = azure.datafactory.LinkedServicePostgresql(\"exampleLinkedServicePostgresql\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=\"Host=example;Port=5432;Database=example;UID=example;EncryptionMethod=0;Password=example\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServicePostgresql = new Azure.DataFactory.LinkedServicePostgresql(\"exampleLinkedServicePostgresql\", new Azure.DataFactory.LinkedServicePostgresqlArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = \"Host=example;Port=5432;Database=example;UID=example;EncryptionMethod=0;Password=example\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServicePostgresql(ctx, \"exampleLinkedServicePostgresql\", \u0026datafactory.LinkedServicePostgresqlArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString:  pulumi.String(\"Host=example;Port=5432;Database=example;UID=example;EncryptionMethod=0;Password=example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory PostgreSQL Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServicePostgresql:LinkedServicePostgresql example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service PostgreSQL.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service PostgreSQL.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string in which to authenticate with PostgreSQL.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service PostgreSQL.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service PostgreSQL.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service PostgreSQL. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service PostgreSQL.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service PostgreSQL. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service PostgreSQL.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service PostgreSQL.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string in which to authenticate with PostgreSQL.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service PostgreSQL.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service PostgreSQL.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service PostgreSQL. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service PostgreSQL.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service PostgreSQL. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "dataFactoryName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "connectionString",
        "dataFactoryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServicePostgresql resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service PostgreSQL.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service PostgreSQL.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "connectionString": {
            "description": "The connection string in which to authenticate with PostgreSQL.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service PostgreSQL.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service PostgreSQL.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service PostgreSQL. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service PostgreSQL.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service PostgreSQL. Changing this forces a new resource\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceSftp:LinkedServiceSftp": {
      "description": "Manages a Linked Service (connection) between a SFTP Server and Azure Data Factory.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceSftp = new azure.datafactory.LinkedServiceSftp(\"exampleLinkedServiceSftp\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    authenticationType: \"Basic\",\n    host: \"http://www.bing.com\",\n    port: 22,\n    username: \"foo\",\n    password: \"bar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_sftp = azure.datafactory.LinkedServiceSftp(\"exampleLinkedServiceSftp\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    authentication_type=\"Basic\",\n    host=\"http://www.bing.com\",\n    port=22,\n    username=\"foo\",\n    password=\"bar\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceSftp = new Azure.DataFactory.LinkedServiceSftp(\"exampleLinkedServiceSftp\", new Azure.DataFactory.LinkedServiceSftpArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            AuthenticationType = \"Basic\",\n            Host = \"http://www.bing.com\",\n            Port = 22,\n            Username = \"foo\",\n            Password = \"bar\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceSftp(ctx, \"exampleLinkedServiceSftp\", \u0026datafactory.LinkedServiceSftpArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tDataFactoryName:    exampleFactory.Name,\n\t\t\tAuthenticationType: pulumi.String(\"Basic\"),\n\t\t\tHost:               pulumi.String(\"http://www.bing.com\"),\n\t\t\tPort:               pulumi.Int(22),\n\t\t\tUsername:           pulumi.String(\"foo\"),\n\t\t\tPassword:           pulumi.String(\"bar\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceSftp:LinkedServiceSftp example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "authenticationType": {
          "description": "The type of authentication used to connect to the web table source. Valid options are `Anonymous`, `Basic` and `ClientCertificate`.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "host": {
          "description": "The SFTP server hostname.\n",
          "type": "string"
        },
        "hostKeyFingerprint": {
          "description": "The host key fingerprint of the SFTP server.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "password": {
          "description": "Password to logon to the SFTP Server for Basic Authentication.\n",
          "type": "string"
        },
        "port": {
          "description": "The TCP port number that the SFTP server uses to lsiten for client connection. Default value is 22.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        },
        "skipHostKeyValidation": {
          "description": "Whether to validate host key fingerprint while connecting. If set to `false`, `host_key_fingerprint` must also be set.\n",
          "type": "boolean"
        },
        "username": {
          "description": "The username used to log on to the SFTP server.\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "authenticationType": {
          "description": "The type of authentication used to connect to the web table source. Valid options are `Anonymous`, `Basic` and `ClientCertificate`.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "host": {
          "description": "The SFTP server hostname.\n",
          "type": "string"
        },
        "hostKeyFingerprint": {
          "description": "The host key fingerprint of the SFTP server.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "password": {
          "description": "Password to logon to the SFTP Server for Basic Authentication.\n",
          "type": "string"
        },
        "port": {
          "description": "The TCP port number that the SFTP server uses to lsiten for client connection. Default value is 22.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        },
        "skipHostKeyValidation": {
          "description": "Whether to validate host key fingerprint while connecting. If set to `false`, `host_key_fingerprint` must also be set.\n",
          "type": "boolean"
        },
        "username": {
          "description": "The username used to log on to the SFTP server.\n",
          "type": "string"
        }
      },
      "required": [
        "authenticationType",
        "dataFactoryName",
        "host",
        "name",
        "password",
        "port",
        "resourceGroupName",
        "username"
      ],
      "requiredInputs": [
        "authenticationType",
        "dataFactoryName",
        "host",
        "password",
        "port",
        "resourceGroupName",
        "username"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceSftp resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "authenticationType": {
            "description": "The type of authentication used to connect to the web table source. Valid options are `Anonymous`, `Basic` and `ClientCertificate`.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service.\n",
            "type": "string"
          },
          "host": {
            "description": "The SFTP server hostname.\n",
            "type": "string"
          },
          "hostKeyFingerprint": {
            "description": "The host key fingerprint of the SFTP server.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "password": {
            "description": "Password to logon to the SFTP Server for Basic Authentication.\n",
            "type": "string"
          },
          "port": {
            "description": "The TCP port number that the SFTP server uses to lsiten for client connection. Default value is 22.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
            "type": "string"
          },
          "skipHostKeyValidation": {
            "description": "Whether to validate host key fingerprint while connecting. If set to `false`, `host_key_fingerprint` must also be set.\n",
            "type": "boolean"
          },
          "username": {
            "description": "The username used to log on to the SFTP server.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceSnowflake:LinkedServiceSnowflake": {
      "description": "Manages a Linked Service (connection) between Snowflake and Azure Data Factory.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceSnowflake = new azure.datafactory.LinkedServiceSnowflake(\"exampleLinkedServiceSnowflake\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: \"jdbc:snowflake://account.region.snowflakecomputing.com/?user=user\u0026db=db\u0026warehouse=wh\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_snowflake = azure.datafactory.LinkedServiceSnowflake(\"exampleLinkedServiceSnowflake\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=\"jdbc:snowflake://account.region.snowflakecomputing.com/?user=user\u0026db=db\u0026warehouse=wh\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceSnowflake = new Azure.DataFactory.LinkedServiceSnowflake(\"exampleLinkedServiceSnowflake\", new Azure.DataFactory.LinkedServiceSnowflakeArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = \"jdbc:snowflake://account.region.snowflakecomputing.com/?user=user\u0026db=db\u0026warehouse=wh\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceSnowflake(ctx, \"exampleLinkedServiceSnowflake\", \u0026datafactory.LinkedServiceSnowflakeArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString:  pulumi.String(\"jdbc:snowflake://account.region.snowflakecomputing.com/?user=user\u0026db=db\u0026warehouse=wh\"),\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\n{{% /example %}}\n{{% example %}}\n### With Password In Key Vault\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"standard\",\n});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceKeyVault = new azure.datafactory.LinkedServiceKeyVault(\"exampleLinkedServiceKeyVault\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    keyVaultId: exampleKeyVault.id,\n});\nconst exampleLinkedServiceSnowflake = new azure.datafactory.LinkedServiceSnowflake(\"exampleLinkedServiceSnowflake\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: \"jdbc:snowflake://account.region.snowflakecomputing.com/?user=user\u0026db=db\u0026warehouse=wh\",\n    keyVaultPassword: {\n        linkedServiceName: exampleLinkedServiceKeyVault.name,\n        secretName: \"secret\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"standard\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_key_vault = azure.datafactory.LinkedServiceKeyVault(\"exampleLinkedServiceKeyVault\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    key_vault_id=example_key_vault.id)\nexample_linked_service_snowflake = azure.datafactory.LinkedServiceSnowflake(\"exampleLinkedServiceSnowflake\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=\"jdbc:snowflake://account.region.snowflakecomputing.com/?user=user\u0026db=db\u0026warehouse=wh\",\n    key_vault_password=azure.datafactory.LinkedServiceSnowflakeKeyVaultPasswordArgs(\n        linked_service_name=example_linked_service_key_vault.name,\n        secret_name=\"secret\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"standard\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceKeyVault = new Azure.DataFactory.LinkedServiceKeyVault(\"exampleLinkedServiceKeyVault\", new Azure.DataFactory.LinkedServiceKeyVaultArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            KeyVaultId = exampleKeyVault.Id,\n        });\n        var exampleLinkedServiceSnowflake = new Azure.DataFactory.LinkedServiceSnowflake(\"exampleLinkedServiceSnowflake\", new Azure.DataFactory.LinkedServiceSnowflakeArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = \"jdbc:snowflake://account.region.snowflakecomputing.com/?user=user\u0026db=db\u0026warehouse=wh\",\n            KeyVaultPassword = new Azure.DataFactory.Inputs.LinkedServiceSnowflakeKeyVaultPasswordArgs\n            {\n                LinkedServiceName = exampleLinkedServiceKeyVault.Name,\n                SecretName = \"secret\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTenantId:          pulumi.String(current.TenantId),\n\t\t\tSkuName:           pulumi.String(\"standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLinkedServiceKeyVault, err := datafactory.NewLinkedServiceKeyVault(ctx, \"exampleLinkedServiceKeyVault\", \u0026datafactory.LinkedServiceKeyVaultArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tKeyVaultId:        exampleKeyVault.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceSnowflake(ctx, \"exampleLinkedServiceSnowflake\", \u0026datafactory.LinkedServiceSnowflakeArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString:  pulumi.String(\"jdbc:snowflake://account.region.snowflakecomputing.com/?user=user\u0026db=db\u0026warehouse=wh\"),\n\t\t\tKeyVaultPassword: \u0026datafactory.LinkedServiceSnowflakeKeyVaultPasswordArgs{\n\t\t\t\tLinkedServiceName: exampleLinkedServiceKeyVault.Name,\n\t\t\t\tSecretName:        pulumi.String(\"secret\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Snowflake Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceSnowflake:LinkedServiceSnowflake example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string in which to authenticate with Snowflake.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "keyVaultPassword": {
          "$ref": "#/types/azure:datafactory/LinkedServiceSnowflakeKeyVaultPassword:LinkedServiceSnowflakeKeyVaultPassword",
          "description": "A `key_vault_password` block as defined below. Use this argument to store Snowflake password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string in which to authenticate with Snowflake.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "keyVaultPassword": {
          "$ref": "#/types/azure:datafactory/LinkedServiceSnowflakeKeyVaultPassword:LinkedServiceSnowflakeKeyVaultPassword",
          "description": "A `key_vault_password` block as defined below. Use this argument to store Snowflake password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "dataFactoryName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "connectionString",
        "dataFactoryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceSnowflake resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "connectionString": {
            "description": "The connection string in which to authenticate with Snowflake.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
            "type": "string"
          },
          "keyVaultPassword": {
            "$ref": "#/types/azure:datafactory/LinkedServiceSnowflakeKeyVaultPassword:LinkedServiceSnowflakeKeyVaultPassword",
            "description": "A `key_vault_password` block as defined below. Use this argument to store Snowflake password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceSqlServer:LinkedServiceSqlServer": {
      "description": "Manages a Linked Service (connection) between a SQL Server and Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceSqlServer = new azure.datafactory.LinkedServiceSqlServer(\"exampleLinkedServiceSqlServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: \"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;Password=test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_sql_server = azure.datafactory.LinkedServiceSqlServer(\"exampleLinkedServiceSqlServer\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=\"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;Password=test\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceSqlServer = new Azure.DataFactory.LinkedServiceSqlServer(\"exampleLinkedServiceSqlServer\", new Azure.DataFactory.LinkedServiceSqlServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = \"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;Password=test\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceSqlServer(ctx, \"exampleLinkedServiceSqlServer\", \u0026datafactory.LinkedServiceSqlServerArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString:  pulumi.String(\"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;Password=test\"),\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\n{{% /example %}}\n{{% example %}}\n### With Password In Key Vault\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"standard\",\n});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceKeyVault = new azure.datafactory.LinkedServiceKeyVault(\"exampleLinkedServiceKeyVault\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    keyVaultId: exampleKeyVault.id,\n});\nconst exampleLinkedServiceSqlServer = new azure.datafactory.LinkedServiceSqlServer(\"exampleLinkedServiceSqlServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: \"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;\",\n    keyVaultPassword: {\n        linkedServiceName: exampleLinkedServiceKeyVault.name,\n        secretName: \"secret\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"standard\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_key_vault = azure.datafactory.LinkedServiceKeyVault(\"exampleLinkedServiceKeyVault\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    key_vault_id=example_key_vault.id)\nexample_linked_service_sql_server = azure.datafactory.LinkedServiceSqlServer(\"exampleLinkedServiceSqlServer\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=\"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;\",\n    key_vault_password=azure.datafactory.LinkedServiceSqlServerKeyVaultPasswordArgs(\n        linked_service_name=example_linked_service_key_vault.name,\n        secret_name=\"secret\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"standard\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceKeyVault = new Azure.DataFactory.LinkedServiceKeyVault(\"exampleLinkedServiceKeyVault\", new Azure.DataFactory.LinkedServiceKeyVaultArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            KeyVaultId = exampleKeyVault.Id,\n        });\n        var exampleLinkedServiceSqlServer = new Azure.DataFactory.LinkedServiceSqlServer(\"exampleLinkedServiceSqlServer\", new Azure.DataFactory.LinkedServiceSqlServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = \"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;\",\n            KeyVaultPassword = new Azure.DataFactory.Inputs.LinkedServiceSqlServerKeyVaultPasswordArgs\n            {\n                LinkedServiceName = exampleLinkedServiceKeyVault.Name,\n                SecretName = \"secret\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTenantId:          pulumi.String(current.TenantId),\n\t\t\tSkuName:           pulumi.String(\"standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLinkedServiceKeyVault, err := datafactory.NewLinkedServiceKeyVault(ctx, \"exampleLinkedServiceKeyVault\", \u0026datafactory.LinkedServiceKeyVaultArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tKeyVaultId:        exampleKeyVault.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceSqlServer(ctx, \"exampleLinkedServiceSqlServer\", \u0026datafactory.LinkedServiceSqlServerArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString:  pulumi.String(\"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;\"),\n\t\t\tKeyVaultPassword: \u0026datafactory.LinkedServiceSqlServerKeyVaultPasswordArgs{\n\t\t\t\tLinkedServiceName: exampleLinkedServiceKeyVault.Name,\n\t\t\t\tSecretName:        pulumi.String(\"secret\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory SQL Server Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceSqlServer:LinkedServiceSqlServer example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service SQL Server.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service SQL Server.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string in which to authenticate with the SQL Server. Exactly one of either `connection_string` or `key_vault_connection_string` is required.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service SQL Server.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service SQL Server.\n",
          "type": "string"
        },
        "keyVaultConnectionString": {
          "$ref": "#/types/azure:datafactory/LinkedServiceSqlServerKeyVaultConnectionString:LinkedServiceSqlServerKeyVaultConnectionString",
          "description": "A `key_vault_connection_string` block as defined below. Use this argument to store SQL Server connection string in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. Exactly one of either `connection_string` or `key_vault_connection_string` is required.\n"
        },
        "keyVaultPassword": {
          "$ref": "#/types/azure:datafactory/LinkedServiceSqlServerKeyVaultPassword:LinkedServiceSqlServerKeyVaultPassword",
          "description": "A `key_vault_password` block as defined below. Use this argument to store SQL Server password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service SQL Server. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service SQL Server.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service SQL Server. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service SQL Server.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service SQL Server.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string in which to authenticate with the SQL Server. Exactly one of either `connection_string` or `key_vault_connection_string` is required.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service SQL Server.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service SQL Server.\n",
          "type": "string"
        },
        "keyVaultConnectionString": {
          "$ref": "#/types/azure:datafactory/LinkedServiceSqlServerKeyVaultConnectionString:LinkedServiceSqlServerKeyVaultConnectionString",
          "description": "A `key_vault_connection_string` block as defined below. Use this argument to store SQL Server connection string in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. Exactly one of either `connection_string` or `key_vault_connection_string` is required.\n"
        },
        "keyVaultPassword": {
          "$ref": "#/types/azure:datafactory/LinkedServiceSqlServerKeyVaultPassword:LinkedServiceSqlServerKeyVaultPassword",
          "description": "A `key_vault_password` block as defined below. Use this argument to store SQL Server password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service SQL Server. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service SQL Server.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service SQL Server. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceSqlServer resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service SQL Server.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service SQL Server.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "connectionString": {
            "description": "The connection string in which to authenticate with the SQL Server. Exactly one of either `connection_string` or `key_vault_connection_string` is required.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service SQL Server.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service SQL Server.\n",
            "type": "string"
          },
          "keyVaultConnectionString": {
            "$ref": "#/types/azure:datafactory/LinkedServiceSqlServerKeyVaultConnectionString:LinkedServiceSqlServerKeyVaultConnectionString",
            "description": "A `key_vault_connection_string` block as defined below. Use this argument to store SQL Server connection string in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. Exactly one of either `connection_string` or `key_vault_connection_string` is required.\n"
          },
          "keyVaultPassword": {
            "$ref": "#/types/azure:datafactory/LinkedServiceSqlServerKeyVaultPassword:LinkedServiceSqlServerKeyVaultPassword",
            "description": "A `key_vault_password` block as defined below. Use this argument to store SQL Server password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service SQL Server. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service SQL Server.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service SQL Server. Changing this forces a new resource\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceSynapse:LinkedServiceSynapse": {
      "description": "Manages a Linked Service (connection) between Synapse and Azure Data Factory.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceSynapse = new azure.datafactory.LinkedServiceSynapse(\"exampleLinkedServiceSynapse\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: \"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;Password=test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_synapse = azure.datafactory.LinkedServiceSynapse(\"exampleLinkedServiceSynapse\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=\"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;Password=test\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceSynapse = new Azure.DataFactory.LinkedServiceSynapse(\"exampleLinkedServiceSynapse\", new Azure.DataFactory.LinkedServiceSynapseArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = \"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;Password=test\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceSynapse(ctx, \"exampleLinkedServiceSynapse\", \u0026datafactory.LinkedServiceSynapseArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString:  pulumi.String(\"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;Password=test\"),\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\n{{% /example %}}\n{{% example %}}\n### With Password In Key Vault\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"standard\",\n});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceKeyVault = new azure.datafactory.LinkedServiceKeyVault(\"exampleLinkedServiceKeyVault\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    keyVaultId: exampleKeyVault.id,\n});\nconst exampleLinkedServiceSynapse = new azure.datafactory.LinkedServiceSynapse(\"exampleLinkedServiceSynapse\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    connectionString: \"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;\",\n    keyVaultPassword: {\n        linkedServiceName: exampleLinkedServiceKeyVault.name,\n        secretName: \"secret\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"standard\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_key_vault = azure.datafactory.LinkedServiceKeyVault(\"exampleLinkedServiceKeyVault\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    key_vault_id=example_key_vault.id)\nexample_linked_service_synapse = azure.datafactory.LinkedServiceSynapse(\"exampleLinkedServiceSynapse\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    connection_string=\"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;\",\n    key_vault_password=azure.datafactory.LinkedServiceSynapseKeyVaultPasswordArgs(\n        linked_service_name=example_linked_service_key_vault.name,\n        secret_name=\"secret\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"standard\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceKeyVault = new Azure.DataFactory.LinkedServiceKeyVault(\"exampleLinkedServiceKeyVault\", new Azure.DataFactory.LinkedServiceKeyVaultArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            KeyVaultId = exampleKeyVault.Id,\n        });\n        var exampleLinkedServiceSynapse = new Azure.DataFactory.LinkedServiceSynapse(\"exampleLinkedServiceSynapse\", new Azure.DataFactory.LinkedServiceSynapseArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            ConnectionString = \"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;\",\n            KeyVaultPassword = new Azure.DataFactory.Inputs.LinkedServiceSynapseKeyVaultPasswordArgs\n            {\n                LinkedServiceName = exampleLinkedServiceKeyVault.Name,\n                SecretName = \"secret\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTenantId:          pulumi.String(current.TenantId),\n\t\t\tSkuName:           pulumi.String(\"standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLinkedServiceKeyVault, err := datafactory.NewLinkedServiceKeyVault(ctx, \"exampleLinkedServiceKeyVault\", \u0026datafactory.LinkedServiceKeyVaultArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tKeyVaultId:        exampleKeyVault.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceSynapse(ctx, \"exampleLinkedServiceSynapse\", \u0026datafactory.LinkedServiceSynapseArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t\tConnectionString:  pulumi.String(\"Integrated Security=False;Data Source=test;Initial Catalog=test;User ID=test;\"),\n\t\t\tKeyVaultPassword: \u0026datafactory.LinkedServiceSynapseKeyVaultPasswordArgs{\n\t\t\t\tLinkedServiceName: exampleLinkedServiceKeyVault.Name,\n\t\t\t\tSecretName:        pulumi.String(\"secret\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Synapse Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceSynapse:LinkedServiceSynapse example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service Synapse.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service Synapse.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string in which to authenticate with the Synapse.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service Synapse.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service Synapse.\n",
          "type": "string"
        },
        "keyVaultPassword": {
          "$ref": "#/types/azure:datafactory/LinkedServiceSynapseKeyVaultPassword:LinkedServiceSynapseKeyVaultPassword",
          "description": "A `key_vault_password` block as defined below. Use this argument to store Synapse password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service Synapse. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service Synapse.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service Synapse. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service Synapse.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service Synapse.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectionString": {
          "description": "The connection string in which to authenticate with the Synapse.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service Synapse.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service Synapse.\n",
          "type": "string"
        },
        "keyVaultPassword": {
          "$ref": "#/types/azure:datafactory/LinkedServiceSynapseKeyVaultPassword:LinkedServiceSynapseKeyVaultPassword",
          "description": "A `key_vault_password` block as defined below. Use this argument to store Synapse password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service Synapse. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service Synapse.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service Synapse. Changing this forces a new resource\n",
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "dataFactoryName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "connectionString",
        "dataFactoryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceSynapse resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service Synapse.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service Synapse.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "connectionString": {
            "description": "The connection string in which to authenticate with the Synapse.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service Synapse.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service Synapse.\n",
            "type": "string"
          },
          "keyVaultPassword": {
            "$ref": "#/types/azure:datafactory/LinkedServiceSynapseKeyVaultPassword:LinkedServiceSynapseKeyVaultPassword",
            "description": "A `key_vault_password` block as defined below. Use this argument to store Synapse password in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service.\n"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service Synapse. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service Synapse.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service Synapse. Changing this forces a new resource\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/linkedServiceWeb:LinkedServiceWeb": {
      "description": "Manages a Linked Service (connection) between a Web Server and Azure Data Factory.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleLinkedServiceWeb = new azure.datafactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n    authenticationType: \"Anonymous\",\n    url: \"http://www.bing.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_linked_service_web = azure.datafactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name,\n    authentication_type=\"Anonymous\",\n    url=\"http://www.bing.com\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleLinkedServiceWeb = new Azure.DataFactory.LinkedServiceWeb(\"exampleLinkedServiceWeb\", new Azure.DataFactory.LinkedServiceWebArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n            AuthenticationType = \"Anonymous\",\n            Url = \"http://www.bing.com\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewLinkedServiceWeb(ctx, \"exampleLinkedServiceWeb\", \u0026datafactory.LinkedServiceWebArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tDataFactoryName:    exampleFactory.Name,\n\t\t\tAuthenticationType: pulumi.String(\"Anonymous\"),\n\t\t\tUrl:                pulumi.String(\"http://www.bing.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Linked Service's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/linkedServiceWeb:LinkedServiceWeb example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example\n```\n\n ",
      "inputProperties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "authenticationType": {
          "description": "The type of authentication used to connect to the web table source. Valid options are `Anonymous`, `Basic` and `ClientCertificate`.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "password": {
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        },
        "url": {
          "description": "The URL of the web service endpoint (e.g. http://www.microsoft.com).\n",
          "type": "string"
        },
        "username": {
          "type": "string"
        }
      },
      "properties": {
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "authenticationType": {
          "description": "The type of authentication used to connect to the web table source. Valid options are `Anonymous`, `Basic` and `ClientCertificate`.\n",
          "type": "string"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Linked Service.\n",
          "type": "string"
        },
        "integrationRuntimeName": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "type": "object"
        },
        "password": {
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
          "type": "string"
        },
        "url": {
          "description": "The URL of the web service endpoint (e.g. http://www.microsoft.com).\n",
          "type": "string"
        },
        "username": {
          "type": "string"
        }
      },
      "required": [
        "authenticationType",
        "dataFactoryName",
        "name",
        "resourceGroupName",
        "url"
      ],
      "requiredInputs": [
        "authenticationType",
        "dataFactoryName",
        "resourceGroupName",
        "url"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServiceWeb resources.\n",
        "properties": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Linked Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "authenticationType": {
            "description": "The type of authentication used to connect to the web table source. Valid options are `Anonymous`, `Basic` and `ClientCertificate`.\n",
            "type": "string"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Linked Service with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Linked Service.\n",
            "type": "string"
          },
          "integrationRuntimeName": {
            "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data\nfactory. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
            "type": "object"
          },
          "password": {
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Linked Service. Changing this forces a new resource\n",
            "type": "string"
          },
          "url": {
            "description": "The URL of the web service endpoint (e.g. http://www.microsoft.com).\n",
            "type": "string"
          },
          "username": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/managedPrivateEndpoint:ManagedPrivateEndpoint": {
      "description": "Manages a Data Factory Managed Private Endpoint.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    managedVirtualNetworkEnabled: true,\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountKind: \"BlobStorage\",\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleManagedPrivateEndpoint = new azure.datafactory.ManagedPrivateEndpoint(\"exampleManagedPrivateEndpoint\", {\n    dataFactoryId: exampleFactory.id,\n    targetResourceId: exampleAccount.id,\n    subresourceName: \"blob\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    managed_virtual_network_enabled=True)\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_kind=\"BlobStorage\",\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_managed_private_endpoint = azure.datafactory.ManagedPrivateEndpoint(\"exampleManagedPrivateEndpoint\",\n    data_factory_id=example_factory.id,\n    target_resource_id=example_account.id,\n    subresource_name=\"blob\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ManagedVirtualNetworkEnabled = true,\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountKind = \"BlobStorage\",\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleManagedPrivateEndpoint = new Azure.DataFactory.ManagedPrivateEndpoint(\"exampleManagedPrivateEndpoint\", new Azure.DataFactory.ManagedPrivateEndpointArgs\n        {\n            DataFactoryId = exampleFactory.Id,\n            TargetResourceId = exampleAccount.Id,\n            SubresourceName = \"blob\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:                     exampleResourceGroup.Location,\n\t\t\tResourceGroupName:            exampleResourceGroup.Name,\n\t\t\tManagedVirtualNetworkEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountKind:            pulumi.String(\"BlobStorage\"),\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewManagedPrivateEndpoint(ctx, \"exampleManagedPrivateEndpoint\", \u0026datafactory.ManagedPrivateEndpointArgs{\n\t\t\tDataFactoryId:    exampleFactory.ID(),\n\t\t\tTargetResourceId: exampleAccount.ID(),\n\t\t\tSubresourceName:  pulumi.String(\"blob\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Managed Private Endpoint can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/managedPrivateEndpoint:ManagedPrivateEndpoint example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/managedVirtualNetworks/default/managedPrivateEndpoints/endpoint1\n```\n\n ",
      "inputProperties": {
        "dataFactoryId": {
          "description": "The ID of the Data Factory on which to create the Managed Private Endpoint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name which should be used for this Managed Private Endpoint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subresourceName": {
          "description": "Specifies the sub resource name which the Data Factory Private Endpoint is able to connect to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "targetResourceId": {
          "description": "The ID of the Private Link Enabled Remote Resource which this Data Factory Private Endpoint should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "dataFactoryId": {
          "description": "The ID of the Data Factory on which to create the Managed Private Endpoint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name which should be used for this Managed Private Endpoint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subresourceName": {
          "description": "Specifies the sub resource name which the Data Factory Private Endpoint is able to connect to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "targetResourceId": {
          "description": "The ID of the Private Link Enabled Remote Resource which this Data Factory Private Endpoint should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryId",
        "name",
        "subresourceName",
        "targetResourceId"
      ],
      "requiredInputs": [
        "dataFactoryId",
        "subresourceName",
        "targetResourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ManagedPrivateEndpoint resources.\n",
        "properties": {
          "dataFactoryId": {
            "description": "The ID of the Data Factory on which to create the Managed Private Endpoint. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name which should be used for this Managed Private Endpoint. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subresourceName": {
            "description": "Specifies the sub resource name which the Data Factory Private Endpoint is able to connect to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "targetResourceId": {
            "description": "The ID of the Private Link Enabled Remote Resource which this Data Factory Private Endpoint should be connected to. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/pipeline:Pipeline": {
      "description": "Manages a Pipeline inside a Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst examplePipeline = new azure.datafactory.Pipeline(\"examplePipeline\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_pipeline = azure.datafactory.Pipeline(\"examplePipeline\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var examplePipeline = new Azure.DataFactory.Pipeline(\"examplePipeline\", new Azure.DataFactory.PipelineArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewPipeline(ctx, \"examplePipeline\", \u0026datafactory.PipelineArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\n{{% /example %}}\n{{% example %}}\n### With Activities\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst test = new azure.datafactory.Pipeline(\"test\", {\n    resourceGroupName: azurerm_resource_group.test.name,\n    dataFactoryName: azurerm_data_factory.test.name,\n    variables: {\n        bob: \"item1\",\n    },\n    activitiesJson: `[\n\t{\n\t\t\"name\": \"Append variable1\",\n\t\t\"type\": \"AppendVariable\",\n\t\t\"dependsOn\": [],\n\t\t\"userProperties\": [],\n\t\t\"typeProperties\": {\n\t\t\t\"variableName\": \"bob\",\n\t\t\t\"value\": \"something\"\n\t\t}\n\t}\n]\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ntest = azure.datafactory.Pipeline(\"test\",\n    resource_group_name=azurerm_resource_group[\"test\"][\"name\"],\n    data_factory_name=azurerm_data_factory[\"test\"][\"name\"],\n    variables={\n        \"bob\": \"item1\",\n    },\n    activities_json=\"\"\"[\n\t{\n\t\t\"name\": \"Append variable1\",\n\t\t\"type\": \"AppendVariable\",\n\t\t\"dependsOn\": [],\n\t\t\"userProperties\": [],\n\t\t\"typeProperties\": {\n\t\t\t\"variableName\": \"bob\",\n\t\t\t\"value\": \"something\"\n\t\t}\n\t}\n]\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var test = new Azure.DataFactory.Pipeline(\"test\", new Azure.DataFactory.PipelineArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n            DataFactoryName = azurerm_data_factory.Test.Name,\n            Variables = \n            {\n                { \"bob\", \"item1\" },\n            },\n            ActivitiesJson = @\"[\n\t{\n\t\t\"\"name\"\": \"\"Append variable1\"\",\n\t\t\"\"type\"\": \"\"AppendVariable\"\",\n\t\t\"\"dependsOn\"\": [],\n\t\t\"\"userProperties\"\": [],\n\t\t\"\"typeProperties\"\": {\n\t\t\t\"\"variableName\"\": \"\"bob\"\",\n\t\t\t\"\"value\"\": \"\"something\"\"\n\t\t}\n\t}\n]\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\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 := datafactory.NewPipeline(ctx, \"test\", \u0026datafactory.PipelineArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_resource_group.Test.Name),\n\t\t\tDataFactoryName:   pulumi.Any(azurerm_data_factory.Test.Name),\n\t\t\tVariables: pulumi.StringMap{\n\t\t\t\t\"bob\": pulumi.String(\"item1\"),\n\t\t\t},\n\t\t\tActivitiesJson: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v\", \"[\\n\", \"\t{\\n\", \"\t\t\\\"name\\\": \\\"Append variable1\\\",\\n\", \"\t\t\\\"type\\\": \\\"AppendVariable\\\",\\n\", \"\t\t\\\"dependsOn\\\": [],\\n\", \"\t\t\\\"userProperties\\\": [],\\n\", \"\t\t\\\"typeProperties\\\": {\\n\", \"\t\t\t\\\"variableName\\\": \\\"bob\\\",\\n\", \"\t\t\t\\\"value\\\": \\\"something\\\"\\n\", \"\t\t}\\n\", \"\t}\\n\", \"]\\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Pipeline's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/pipeline:Pipeline example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/pipelines/example\n```\n\n ",
      "inputProperties": {
        "activitiesJson": {
          "description": "A JSON object that contains the activities that will be associated with the Data Factory Pipeline.\n",
          "type": "string"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Pipeline.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "concurrency": {
          "description": "The max number of concurrent runs for the Data Factory Pipeline. Must be between `1` and `50`.\n",
          "type": "integer"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Pipeline with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Pipeline.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Pipeline is in. If not specified, the Pipeline will appear at the root level.\n",
          "type": "string"
        },
        "moniterMetricsAfterDuration": {
          "description": "The TimeSpan value after which an Azure Monitoring Metric is fired.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Pipeline. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Pipeline.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Pipeline. Changing this forces a new resource\n",
          "type": "string"
        },
        "variables": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of variables to associate with the Data Factory Pipeline.\n",
          "type": "object"
        }
      },
      "properties": {
        "activitiesJson": {
          "description": "A JSON object that contains the activities that will be associated with the Data Factory Pipeline.\n",
          "type": "string"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Pipeline.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "concurrency": {
          "description": "The max number of concurrent runs for the Data Factory Pipeline. Must be between `1` and `50`.\n",
          "type": "integer"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Pipeline with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Pipeline.\n",
          "type": "string"
        },
        "folder": {
          "description": "The folder that this Pipeline is in. If not specified, the Pipeline will appear at the root level.\n",
          "type": "string"
        },
        "moniterMetricsAfterDuration": {
          "description": "The TimeSpan value after which an Azure Monitoring Metric is fired.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Pipeline. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Pipeline.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Pipeline. Changing this forces a new resource\n",
          "type": "string"
        },
        "variables": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of variables to associate with the Data Factory Pipeline.\n",
          "type": "object"
        }
      },
      "required": [
        "dataFactoryName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Pipeline resources.\n",
        "properties": {
          "activitiesJson": {
            "description": "A JSON object that contains the activities that will be associated with the Data Factory Pipeline.\n",
            "type": "string"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Pipeline.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "concurrency": {
            "description": "The max number of concurrent runs for the Data Factory Pipeline. Must be between `1` and `50`.\n",
            "type": "integer"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Pipeline with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Pipeline.\n",
            "type": "string"
          },
          "folder": {
            "description": "The folder that this Pipeline is in. If not specified, the Pipeline will appear at the root level.\n",
            "type": "string"
          },
          "moniterMetricsAfterDuration": {
            "description": "The TimeSpan value after which an Azure Monitoring Metric is fired.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Pipeline. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of parameters to associate with the Data Factory Pipeline.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Pipeline. Changing this forces a new resource\n",
            "type": "string"
          },
          "variables": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of variables to associate with the Data Factory Pipeline.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/triggerBlobEvent:TriggerBlobEvent": {
      "description": "Manages a Blob Event Trigger inside an Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst examplePipeline = new azure.datafactory.Pipeline(\"examplePipeline\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleTriggerBlobEvent = new azure.datafactory.TriggerBlobEvent(\"exampleTriggerBlobEvent\", {\n    dataFactoryId: exampleFactory.id,\n    storageAccountId: exampleAccount.id,\n    events: [\n        \"Microsoft.Storage.BlobCreated\",\n        \"Microsoft.Storage.BlobDeleted\",\n    ],\n    blobPathEndsWith: \".txt\",\n    ignoreEmptyBlobs: true,\n    activated: true,\n    annotations: [\n        \"test1\",\n        \"test2\",\n        \"test3\",\n    ],\n    description: \"example description\",\n    pipelines: [{\n        name: examplePipeline.name,\n        parameters: {\n            Env: \"Prod\",\n        },\n    }],\n    additionalProperties: {\n        foo: \"foo1\",\n        bar: \"bar2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_pipeline = azure.datafactory.Pipeline(\"examplePipeline\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name)\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_trigger_blob_event = azure.datafactory.TriggerBlobEvent(\"exampleTriggerBlobEvent\",\n    data_factory_id=example_factory.id,\n    storage_account_id=example_account.id,\n    events=[\n        \"Microsoft.Storage.BlobCreated\",\n        \"Microsoft.Storage.BlobDeleted\",\n    ],\n    blob_path_ends_with=\".txt\",\n    ignore_empty_blobs=True,\n    activated=True,\n    annotations=[\n        \"test1\",\n        \"test2\",\n        \"test3\",\n    ],\n    description=\"example description\",\n    pipelines=[azure.datafactory.TriggerBlobEventPipelineArgs(\n        name=example_pipeline.name,\n        parameters={\n            \"Env\": \"Prod\",\n        },\n    )],\n    additional_properties={\n        \"foo\": \"foo1\",\n        \"bar\": \"bar2\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var examplePipeline = new Azure.DataFactory.Pipeline(\"examplePipeline\", new Azure.DataFactory.PipelineArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleTriggerBlobEvent = new Azure.DataFactory.TriggerBlobEvent(\"exampleTriggerBlobEvent\", new Azure.DataFactory.TriggerBlobEventArgs\n        {\n            DataFactoryId = exampleFactory.Id,\n            StorageAccountId = exampleAccount.Id,\n            Events = \n            {\n                \"Microsoft.Storage.BlobCreated\",\n                \"Microsoft.Storage.BlobDeleted\",\n            },\n            BlobPathEndsWith = \".txt\",\n            IgnoreEmptyBlobs = true,\n            Activated = true,\n            Annotations = \n            {\n                \"test1\",\n                \"test2\",\n                \"test3\",\n            },\n            Description = \"example description\",\n            Pipelines = \n            {\n                new Azure.DataFactory.Inputs.TriggerBlobEventPipelineArgs\n                {\n                    Name = examplePipeline.Name,\n                    Parameters = \n                    {\n                        { \"Env\", \"Prod\" },\n                    },\n                },\n            },\n            AdditionalProperties = \n            {\n                { \"foo\", \"foo1\" },\n                { \"bar\", \"bar2\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePipeline, err := datafactory.NewPipeline(ctx, \"examplePipeline\", \u0026datafactory.PipelineArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewTriggerBlobEvent(ctx, \"exampleTriggerBlobEvent\", \u0026datafactory.TriggerBlobEventArgs{\n\t\t\tDataFactoryId:    exampleFactory.ID(),\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t\tEvents: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Microsoft.Storage.BlobCreated\"),\n\t\t\t\tpulumi.String(\"Microsoft.Storage.BlobDeleted\"),\n\t\t\t},\n\t\t\tBlobPathEndsWith: pulumi.String(\".txt\"),\n\t\t\tIgnoreEmptyBlobs: pulumi.Bool(true),\n\t\t\tActivated:        pulumi.Bool(true),\n\t\t\tAnnotations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"test1\"),\n\t\t\t\tpulumi.String(\"test2\"),\n\t\t\t\tpulumi.String(\"test3\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tPipelines: datafactory.TriggerBlobEventPipelineArray{\n\t\t\t\t\u0026datafactory.TriggerBlobEventPipelineArgs{\n\t\t\t\t\tName: examplePipeline.Name,\n\t\t\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\t\t\"Env\": pulumi.String(\"Prod\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAdditionalProperties: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"foo1\"),\n\t\t\t\t\"bar\": pulumi.String(\"bar2\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Blob Event Trigger can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/triggerBlobEvent:TriggerBlobEvent example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/triggers/example\n```\n\n ",
      "inputProperties": {
        "activated": {
          "description": "Specifies if the Data Factory Blob Event Trigger is activated. Defaults to `true`.\n",
          "type": "boolean"
        },
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Blob Event Trigger.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Blob Event Trigger.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "blobPathBeginsWith": {
          "description": "The pattern that blob path starts with for trigger to fire.\n",
          "type": "string"
        },
        "blobPathEndsWith": {
          "description": "The pattern that blob path ends with for trigger to fire.\n",
          "type": "string"
        },
        "dataFactoryId": {
          "description": "The ID of Data Factory in which to associate the Trigger with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Blob Event Trigger.\n",
          "type": "string"
        },
        "events": {
          "description": "List of events that will fire this trigger. Possible values are `Microsoft.Storage.BlobCreated` and `Microsoft.Storage.BlobDeleted`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ignoreEmptyBlobs": {
          "description": "are blobs with zero bytes ignored?\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Blob Event Trigger. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pipelines": {
          "description": "One or more `pipeline` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/TriggerBlobEventPipeline:TriggerBlobEventPipeline"
          },
          "type": "array"
        },
        "storageAccountId": {
          "description": "The ID of Storage Account in which blob event will be listened. Changing this forces a new resource.\n",
          "type": "string"
        }
      },
      "properties": {
        "activated": {
          "description": "Specifies if the Data Factory Blob Event Trigger is activated. Defaults to `true`.\n",
          "type": "boolean"
        },
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Blob Event Trigger.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Blob Event Trigger.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "blobPathBeginsWith": {
          "description": "The pattern that blob path starts with for trigger to fire.\n",
          "type": "string"
        },
        "blobPathEndsWith": {
          "description": "The pattern that blob path ends with for trigger to fire.\n",
          "type": "string"
        },
        "dataFactoryId": {
          "description": "The ID of Data Factory in which to associate the Trigger with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Blob Event Trigger.\n",
          "type": "string"
        },
        "events": {
          "description": "List of events that will fire this trigger. Possible values are `Microsoft.Storage.BlobCreated` and `Microsoft.Storage.BlobDeleted`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ignoreEmptyBlobs": {
          "description": "are blobs with zero bytes ignored?\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Blob Event Trigger. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pipelines": {
          "description": "One or more `pipeline` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/TriggerBlobEventPipeline:TriggerBlobEventPipeline"
          },
          "type": "array"
        },
        "storageAccountId": {
          "description": "The ID of Storage Account in which blob event will be listened. Changing this forces a new resource.\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryId",
        "events",
        "name",
        "pipelines",
        "storageAccountId"
      ],
      "requiredInputs": [
        "dataFactoryId",
        "events",
        "pipelines",
        "storageAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TriggerBlobEvent resources.\n",
        "properties": {
          "activated": {
            "description": "Specifies if the Data Factory Blob Event Trigger is activated. Defaults to `true`.\n",
            "type": "boolean"
          },
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Blob Event Trigger.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Blob Event Trigger.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "blobPathBeginsWith": {
            "description": "The pattern that blob path starts with for trigger to fire.\n",
            "type": "string"
          },
          "blobPathEndsWith": {
            "description": "The pattern that blob path ends with for trigger to fire.\n",
            "type": "string"
          },
          "dataFactoryId": {
            "description": "The ID of Data Factory in which to associate the Trigger with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Blob Event Trigger.\n",
            "type": "string"
          },
          "events": {
            "description": "List of events that will fire this trigger. Possible values are `Microsoft.Storage.BlobCreated` and `Microsoft.Storage.BlobDeleted`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "ignoreEmptyBlobs": {
            "description": "are blobs with zero bytes ignored?\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Blob Event Trigger. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "pipelines": {
            "description": "One or more `pipeline` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/TriggerBlobEventPipeline:TriggerBlobEventPipeline"
            },
            "type": "array"
          },
          "storageAccountId": {
            "description": "The ID of Storage Account in which blob event will be listened. Changing this forces a new resource.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/triggerCustomEvent:TriggerCustomEvent": {
      "description": "Manages a Custom Event Trigger inside an Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst examplePipeline = new azure.datafactory.Pipeline(\"examplePipeline\", {\n    resourceGroupName: exampleResourceGroup.name,\n    dataFactoryName: exampleFactory.name,\n});\nconst exampleTopic = new azure.eventgrid.Topic(\"exampleTopic\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleTriggerCustomEvent = new azure.datafactory.TriggerCustomEvent(\"exampleTriggerCustomEvent\", {\n    dataFactoryId: exampleFactory.id,\n    eventgridTopicId: exampleTopic.id,\n    events: [\n        \"event1\",\n        \"event2\",\n    ],\n    subjectBeginsWith: \"abc\",\n    subjectEndsWith: \"xyz\",\n    annotations: [\n        \"example1\",\n        \"example2\",\n        \"example3\",\n    ],\n    description: \"example description\",\n    pipelines: [{\n        name: examplePipeline.name,\n        parameters: {\n            Env: \"Prod\",\n        },\n    }],\n    additionalProperties: {\n        foo: \"foo1\",\n        bar: \"bar2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_pipeline = azure.datafactory.Pipeline(\"examplePipeline\",\n    resource_group_name=example_resource_group.name,\n    data_factory_name=example_factory.name)\nexample_topic = azure.eventgrid.Topic(\"exampleTopic\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_trigger_custom_event = azure.datafactory.TriggerCustomEvent(\"exampleTriggerCustomEvent\",\n    data_factory_id=example_factory.id,\n    eventgrid_topic_id=example_topic.id,\n    events=[\n        \"event1\",\n        \"event2\",\n    ],\n    subject_begins_with=\"abc\",\n    subject_ends_with=\"xyz\",\n    annotations=[\n        \"example1\",\n        \"example2\",\n        \"example3\",\n    ],\n    description=\"example description\",\n    pipelines=[azure.datafactory.TriggerCustomEventPipelineArgs(\n        name=example_pipeline.name,\n        parameters={\n            \"Env\": \"Prod\",\n        },\n    )],\n    additional_properties={\n        \"foo\": \"foo1\",\n        \"bar\": \"bar2\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var examplePipeline = new Azure.DataFactory.Pipeline(\"examplePipeline\", new Azure.DataFactory.PipelineArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            DataFactoryName = exampleFactory.Name,\n        });\n        var exampleTopic = new Azure.EventGrid.Topic(\"exampleTopic\", new Azure.EventGrid.TopicArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleTriggerCustomEvent = new Azure.DataFactory.TriggerCustomEvent(\"exampleTriggerCustomEvent\", new Azure.DataFactory.TriggerCustomEventArgs\n        {\n            DataFactoryId = exampleFactory.Id,\n            EventgridTopicId = exampleTopic.Id,\n            Events = \n            {\n                \"event1\",\n                \"event2\",\n            },\n            SubjectBeginsWith = \"abc\",\n            SubjectEndsWith = \"xyz\",\n            Annotations = \n            {\n                \"example1\",\n                \"example2\",\n                \"example3\",\n            },\n            Description = \"example description\",\n            Pipelines = \n            {\n                new Azure.DataFactory.Inputs.TriggerCustomEventPipelineArgs\n                {\n                    Name = examplePipeline.Name,\n                    Parameters = \n                    {\n                        { \"Env\", \"Prod\" },\n                    },\n                },\n            },\n            AdditionalProperties = \n            {\n                { \"foo\", \"foo1\" },\n                { \"bar\", \"bar2\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFactory, err := datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePipeline, err := datafactory.NewPipeline(ctx, \"examplePipeline\", \u0026datafactory.PipelineArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDataFactoryName:   exampleFactory.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := eventgrid.NewTopic(ctx, \"exampleTopic\", \u0026eventgrid.TopicArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewTriggerCustomEvent(ctx, \"exampleTriggerCustomEvent\", \u0026datafactory.TriggerCustomEventArgs{\n\t\t\tDataFactoryId:    exampleFactory.ID(),\n\t\t\tEventgridTopicId: exampleTopic.ID(),\n\t\t\tEvents: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"event1\"),\n\t\t\t\tpulumi.String(\"event2\"),\n\t\t\t},\n\t\t\tSubjectBeginsWith: pulumi.String(\"abc\"),\n\t\t\tSubjectEndsWith:   pulumi.String(\"xyz\"),\n\t\t\tAnnotations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"example1\"),\n\t\t\t\tpulumi.String(\"example2\"),\n\t\t\t\tpulumi.String(\"example3\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tPipelines: datafactory.TriggerCustomEventPipelineArray{\n\t\t\t\t\u0026datafactory.TriggerCustomEventPipelineArgs{\n\t\t\t\t\tName: examplePipeline.Name,\n\t\t\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\t\t\"Env\": pulumi.String(\"Prod\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAdditionalProperties: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"foo1\"),\n\t\t\t\t\"bar\": pulumi.String(\"bar2\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Custom Event Trigger can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/triggerCustomEvent:TriggerCustomEvent example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/triggers/example\n```\n\n ",
      "inputProperties": {
        "activated": {
          "description": "Specifies if the Data Factory Custom Event Trigger is activated. Defaults to `true`.\n",
          "type": "boolean"
        },
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Custom Event Trigger.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Custom Event Trigger.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryId": {
          "description": "The ID of Data Factory in which to associate the Trigger with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Custom Event Trigger.\n",
          "type": "string"
        },
        "eventgridTopicId": {
          "description": "The ID of Event Grid Topic in which event will be listened. Changing this forces a new resource.\n",
          "type": "string"
        },
        "events": {
          "description": "List of events that will fire this trigger. At least one event must be specified.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Custom Event Trigger. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pipelines": {
          "description": "One or more `pipeline` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/TriggerCustomEventPipeline:TriggerCustomEventPipeline"
          },
          "type": "array"
        },
        "subjectBeginsWith": {
          "description": "The pattern that event subject starts with for trigger to fire.\n",
          "type": "string"
        },
        "subjectEndsWith": {
          "description": "The pattern that event subject ends with for trigger to fire.\n",
          "type": "string"
        }
      },
      "properties": {
        "activated": {
          "description": "Specifies if the Data Factory Custom Event Trigger is activated. Defaults to `true`.\n",
          "type": "boolean"
        },
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional properties to associate with the Data Factory Custom Event Trigger.\n",
          "type": "object"
        },
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Custom Event Trigger.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryId": {
          "description": "The ID of Data Factory in which to associate the Trigger with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for the Data Factory Custom Event Trigger.\n",
          "type": "string"
        },
        "eventgridTopicId": {
          "description": "The ID of Event Grid Topic in which event will be listened. Changing this forces a new resource.\n",
          "type": "string"
        },
        "events": {
          "description": "List of events that will fire this trigger. At least one event must be specified.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Custom Event Trigger. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pipelines": {
          "description": "One or more `pipeline` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/TriggerCustomEventPipeline:TriggerCustomEventPipeline"
          },
          "type": "array"
        },
        "subjectBeginsWith": {
          "description": "The pattern that event subject starts with for trigger to fire.\n",
          "type": "string"
        },
        "subjectEndsWith": {
          "description": "The pattern that event subject ends with for trigger to fire.\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryId",
        "eventgridTopicId",
        "events",
        "name",
        "pipelines"
      ],
      "requiredInputs": [
        "dataFactoryId",
        "eventgridTopicId",
        "events",
        "pipelines"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TriggerCustomEvent resources.\n",
        "properties": {
          "activated": {
            "description": "Specifies if the Data Factory Custom Event Trigger is activated. Defaults to `true`.\n",
            "type": "boolean"
          },
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional properties to associate with the Data Factory Custom Event Trigger.\n",
            "type": "object"
          },
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Custom Event Trigger.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryId": {
            "description": "The ID of Data Factory in which to associate the Trigger with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for the Data Factory Custom Event Trigger.\n",
            "type": "string"
          },
          "eventgridTopicId": {
            "description": "The ID of Event Grid Topic in which event will be listened. Changing this forces a new resource.\n",
            "type": "string"
          },
          "events": {
            "description": "List of events that will fire this trigger. At least one event must be specified.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Custom Event Trigger. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "pipelines": {
            "description": "One or more `pipeline` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:datafactory/TriggerCustomEventPipeline:TriggerCustomEventPipeline"
            },
            "type": "array"
          },
          "subjectBeginsWith": {
            "description": "The pattern that event subject starts with for trigger to fire.\n",
            "type": "string"
          },
          "subjectEndsWith": {
            "description": "The pattern that event subject ends with for trigger to fire.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/triggerSchedule:TriggerSchedule": {
      "description": "Manages a Trigger Schedule inside a Azure Data Factory.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFactory = new azure.datafactory.Factory(\"exampleFactory\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst testPipeline = new azure.datafactory.Pipeline(\"testPipeline\", {\n    resourceGroupName: azurerm_resource_group.test.name,\n    dataFactoryName: azurerm_data_factory.test.name,\n});\nconst testTriggerSchedule = new azure.datafactory.TriggerSchedule(\"testTriggerSchedule\", {\n    dataFactoryName: azurerm_data_factory.test.name,\n    resourceGroupName: azurerm_resource_group.test.name,\n    pipelineName: testPipeline.name,\n    interval: 5,\n    frequency: \"Day\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_factory = azure.datafactory.Factory(\"exampleFactory\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\ntest_pipeline = azure.datafactory.Pipeline(\"testPipeline\",\n    resource_group_name=azurerm_resource_group[\"test\"][\"name\"],\n    data_factory_name=azurerm_data_factory[\"test\"][\"name\"])\ntest_trigger_schedule = azure.datafactory.TriggerSchedule(\"testTriggerSchedule\",\n    data_factory_name=azurerm_data_factory[\"test\"][\"name\"],\n    resource_group_name=azurerm_resource_group[\"test\"][\"name\"],\n    pipeline_name=test_pipeline.name,\n    interval=5,\n    frequency=\"Day\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFactory = new Azure.DataFactory.Factory(\"exampleFactory\", new Azure.DataFactory.FactoryArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var testPipeline = new Azure.DataFactory.Pipeline(\"testPipeline\", new Azure.DataFactory.PipelineArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n            DataFactoryName = azurerm_data_factory.Test.Name,\n        });\n        var testTriggerSchedule = new Azure.DataFactory.TriggerSchedule(\"testTriggerSchedule\", new Azure.DataFactory.TriggerScheduleArgs\n        {\n            DataFactoryName = azurerm_data_factory.Test.Name,\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n            PipelineName = testPipeline.Name,\n            Interval = 5,\n            Frequency = \"Day\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datafactory\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewFactory(ctx, \"exampleFactory\", \u0026datafactory.FactoryArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestPipeline, err := datafactory.NewPipeline(ctx, \"testPipeline\", \u0026datafactory.PipelineArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_resource_group.Test.Name),\n\t\t\tDataFactoryName:   pulumi.Any(azurerm_data_factory.Test.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafactory.NewTriggerSchedule(ctx, \"testTriggerSchedule\", \u0026datafactory.TriggerScheduleArgs{\n\t\t\tDataFactoryName:   pulumi.Any(azurerm_data_factory.Test.Name),\n\t\t\tResourceGroupName: pulumi.Any(azurerm_resource_group.Test.Name),\n\t\t\tPipelineName:      testPipeline.Name,\n\t\t\tInterval:          pulumi.Int(5),\n\t\t\tFrequency:         pulumi.String(\"Day\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Factory Schedule Trigger can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datafactory/triggerSchedule:TriggerSchedule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/triggers/example\n```\n\n ",
      "inputProperties": {
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Schedule Trigger.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Schedule Trigger with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The Schedule Trigger's description.\n",
          "type": "string"
        },
        "endTime": {
          "description": "The time the Schedule Trigger should end. The time will be represented in UTC.\n",
          "type": "string"
        },
        "frequency": {
          "description": "The trigger frequency. Valid values include `Minute`, `Hour`, `Day`, `Week`, `Month`. Defaults to `Minute`.\n",
          "type": "string"
        },
        "interval": {
          "description": "The interval for how often the trigger occurs. This defaults to 1.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Schedule Trigger. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "pipelineName": {
          "description": "The Data Factory Pipeline name that the trigger will act on.\n",
          "type": "string"
        },
        "pipelineParameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The pipeline parameters that the trigger will act upon.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Schedule Trigger. Changing this forces a new resource\n",
          "type": "string"
        },
        "schedule": {
          "$ref": "#/types/azure:datafactory/TriggerScheduleSchedule:TriggerScheduleSchedule",
          "description": "A `schedule` block as defined below, which further specifies the recurrence schedule for the trigger. A schedule is capable of limiting or increasing the number of trigger executions specified by the `frequency` and `interval` properties.\n"
        },
        "startTime": {
          "description": "The time the Schedule Trigger will start. This defaults to the current time. The time will be represented in UTC.\n",
          "type": "string"
        }
      },
      "properties": {
        "annotations": {
          "description": "List of tags that can be used for describing the Data Factory Schedule Trigger.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryName": {
          "description": "The Data Factory name in which to associate the Schedule Trigger with. Changing this forces a new resource.\n",
          "type": "string"
        },
        "description": {
          "description": "The Schedule Trigger's description.\n",
          "type": "string"
        },
        "endTime": {
          "description": "The time the Schedule Trigger should end. The time will be represented in UTC.\n",
          "type": "string"
        },
        "frequency": {
          "description": "The trigger frequency. Valid values include `Minute`, `Hour`, `Day`, `Week`, `Month`. Defaults to `Minute`.\n",
          "type": "string"
        },
        "interval": {
          "description": "The interval for how often the trigger occurs. This defaults to 1.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the Data Factory Schedule Trigger. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
          "type": "string"
        },
        "pipelineName": {
          "description": "The Data Factory Pipeline name that the trigger will act on.\n",
          "type": "string"
        },
        "pipelineParameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The pipeline parameters that the trigger will act upon.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Factory Schedule Trigger. Changing this forces a new resource\n",
          "type": "string"
        },
        "schedule": {
          "$ref": "#/types/azure:datafactory/TriggerScheduleSchedule:TriggerScheduleSchedule",
          "description": "A `schedule` block as defined below, which further specifies the recurrence schedule for the trigger. A schedule is capable of limiting or increasing the number of trigger executions specified by the `frequency` and `interval` properties.\n"
        },
        "startTime": {
          "description": "The time the Schedule Trigger will start. This defaults to the current time. The time will be represented in UTC.\n",
          "type": "string"
        }
      },
      "required": [
        "dataFactoryName",
        "name",
        "pipelineName",
        "resourceGroupName",
        "startTime"
      ],
      "requiredInputs": [
        "dataFactoryName",
        "pipelineName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TriggerSchedule resources.\n",
        "properties": {
          "annotations": {
            "description": "List of tags that can be used for describing the Data Factory Schedule Trigger.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryName": {
            "description": "The Data Factory name in which to associate the Schedule Trigger with. Changing this forces a new resource.\n",
            "type": "string"
          },
          "description": {
            "description": "The Schedule Trigger's description.\n",
            "type": "string"
          },
          "endTime": {
            "description": "The time the Schedule Trigger should end. The time will be represented in UTC.\n",
            "type": "string"
          },
          "frequency": {
            "description": "The trigger frequency. Valid values include `Minute`, `Hour`, `Day`, `Week`, `Month`. Defaults to `Minute`.\n",
            "type": "string"
          },
          "interval": {
            "description": "The interval for how often the trigger occurs. This defaults to 1.\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the Data Factory Schedule Trigger. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/en-us/azure/data-factory/naming-rules) for all restrictions.\n",
            "type": "string"
          },
          "pipelineName": {
            "description": "The Data Factory Pipeline name that the trigger will act on.\n",
            "type": "string"
          },
          "pipelineParameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The pipeline parameters that the trigger will act upon.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Factory Schedule Trigger. Changing this forces a new resource\n",
            "type": "string"
          },
          "schedule": {
            "$ref": "#/types/azure:datafactory/TriggerScheduleSchedule:TriggerScheduleSchedule",
            "description": "A `schedule` block as defined below, which further specifies the recurrence schedule for the trigger. A schedule is capable of limiting or increasing the number of trigger executions specified by the `frequency` and `interval` properties.\n"
          },
          "startTime": {
            "description": "The time the Schedule Trigger will start. This defaults to the current time. The time will be represented in UTC.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datafactory/triggerTumblingWindow:TriggerTumblingWindow": {
      "inputProperties": {
        "activated": {
          "type": "boolean"
        },
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "annotations": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryId": {
          "type": "string"
        },
        "delay": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "endTime": {
          "type": "string"
        },
        "frequency": {
          "type": "string"
        },
        "interval": {
          "type": "integer"
        },
        "maxConcurrency": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "pipeline": {
          "$ref": "#/types/azure:datafactory/TriggerTumblingWindowPipeline:TriggerTumblingWindowPipeline"
        },
        "retry": {
          "$ref": "#/types/azure:datafactory/TriggerTumblingWindowRetry:TriggerTumblingWindowRetry"
        },
        "startTime": {
          "type": "string"
        },
        "triggerDependencies": {
          "items": {
            "$ref": "#/types/azure:datafactory/TriggerTumblingWindowTriggerDependency:TriggerTumblingWindowTriggerDependency"
          },
          "type": "array"
        }
      },
      "properties": {
        "activated": {
          "type": "boolean"
        },
        "additionalProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "annotations": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataFactoryId": {
          "type": "string"
        },
        "delay": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "endTime": {
          "type": "string"
        },
        "frequency": {
          "type": "string"
        },
        "interval": {
          "type": "integer"
        },
        "maxConcurrency": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "pipeline": {
          "$ref": "#/types/azure:datafactory/TriggerTumblingWindowPipeline:TriggerTumblingWindowPipeline"
        },
        "retry": {
          "$ref": "#/types/azure:datafactory/TriggerTumblingWindowRetry:TriggerTumblingWindowRetry"
        },
        "startTime": {
          "type": "string"
        },
        "triggerDependencies": {
          "items": {
            "$ref": "#/types/azure:datafactory/TriggerTumblingWindowTriggerDependency:TriggerTumblingWindowTriggerDependency"
          },
          "type": "array"
        }
      },
      "required": [
        "dataFactoryId",
        "frequency",
        "interval",
        "name",
        "pipeline",
        "startTime"
      ],
      "requiredInputs": [
        "dataFactoryId",
        "frequency",
        "interval",
        "pipeline",
        "startTime"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TriggerTumblingWindow resources.\n",
        "properties": {
          "activated": {
            "type": "boolean"
          },
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "annotations": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataFactoryId": {
            "type": "string"
          },
          "delay": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "endTime": {
            "type": "string"
          },
          "frequency": {
            "type": "string"
          },
          "interval": {
            "type": "integer"
          },
          "maxConcurrency": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "pipeline": {
            "$ref": "#/types/azure:datafactory/TriggerTumblingWindowPipeline:TriggerTumblingWindowPipeline"
          },
          "retry": {
            "$ref": "#/types/azure:datafactory/TriggerTumblingWindowRetry:TriggerTumblingWindowRetry"
          },
          "startTime": {
            "type": "string"
          },
          "triggerDependencies": {
            "items": {
              "$ref": "#/types/azure:datafactory/TriggerTumblingWindowTriggerDependency:TriggerTumblingWindowTriggerDependency"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:datalake/analyticsAccount:AnalyticsAccount": {
      "description": "Manages an Azure Data Lake Analytics Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleStore = new azure.datalake.Store(\"exampleStore\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleAnalyticsAccount = new azure.datalake.AnalyticsAccount(\"exampleAnalyticsAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    defaultStoreAccountName: exampleStore.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_store = azure.datalake.Store(\"exampleStore\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_analytics_account = azure.datalake.AnalyticsAccount(\"exampleAnalyticsAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    default_store_account_name=example_store.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleStore = new Azure.DataLake.Store(\"exampleStore\", new Azure.DataLake.StoreArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleAnalyticsAccount = new Azure.DataLake.AnalyticsAccount(\"exampleAnalyticsAccount\", new Azure.DataLake.AnalyticsAccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            DefaultStoreAccountName = exampleStore.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datalake\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := datalake.NewStore(ctx, \"exampleStore\", \u0026datalake.StoreArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datalake.NewAnalyticsAccount(ctx, \"exampleAnalyticsAccount\", \u0026datalake.AnalyticsAccountArgs{\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tLocation:                exampleResourceGroup.Location,\n\t\t\tDefaultStoreAccountName: exampleStore.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Lake Analytics Account can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datalake/analyticsAccount:AnalyticsAccount example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DataLakeAnalytics/accounts/mydatalakeaccount\n```\n\n ",
      "inputProperties": {
        "defaultStoreAccountName": {
          "description": "Specifies the data lake store to use by default. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Lake Analytics Account. Changing this forces a new resource to be created. Has to be between 3 to 24 characters.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Lake Analytics Account.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "tier": {
          "description": "The monthly commitment tier for Data Lake Analytics Account. Accepted values are `Consumption`, `Commitment_100000AUHours`, `Commitment_10000AUHours`, `Commitment_1000AUHours`, `Commitment_100AUHours`, `Commitment_500000AUHours`, `Commitment_50000AUHours`, `Commitment_5000AUHours`, or `Commitment_500AUHours`.\n",
          "type": "string"
        }
      },
      "properties": {
        "defaultStoreAccountName": {
          "description": "Specifies the data lake store to use by default. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Lake Analytics Account. Changing this forces a new resource to be created. Has to be between 3 to 24 characters.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Lake Analytics Account.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "tier": {
          "description": "The monthly commitment tier for Data Lake Analytics Account. Accepted values are `Consumption`, `Commitment_100000AUHours`, `Commitment_10000AUHours`, `Commitment_1000AUHours`, `Commitment_100AUHours`, `Commitment_500000AUHours`, `Commitment_50000AUHours`, `Commitment_5000AUHours`, or `Commitment_500AUHours`.\n",
          "type": "string"
        }
      },
      "required": [
        "defaultStoreAccountName",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "defaultStoreAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AnalyticsAccount resources.\n",
        "properties": {
          "defaultStoreAccountName": {
            "description": "Specifies the data lake store to use by default. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Lake Analytics Account. Changing this forces a new resource to be created. Has to be between 3 to 24 characters.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Lake Analytics Account.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "tier": {
            "description": "The monthly commitment tier for Data Lake Analytics Account. Accepted values are `Consumption`, `Commitment_100000AUHours`, `Commitment_10000AUHours`, `Commitment_1000AUHours`, `Commitment_100AUHours`, `Commitment_500000AUHours`, `Commitment_50000AUHours`, `Commitment_5000AUHours`, or `Commitment_500AUHours`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datalake/analyticsFirewallRule:AnalyticsFirewallRule": {
      "description": "Manages a Azure Data Lake Analytics Firewall Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleStore = new azure.datalake.Store(\"exampleStore\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleAnalyticsAccount = new azure.datalake.AnalyticsAccount(\"exampleAnalyticsAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    defaultStoreAccountName: exampleStore.name,\n});\nconst exampleAnalyticsFirewallRule = new azure.datalake.AnalyticsFirewallRule(\"exampleAnalyticsFirewallRule\", {\n    accountName: azurerm_data_lake_analytics.example.name,\n    resourceGroupName: exampleResourceGroup.name,\n    startIpAddress: \"1.2.3.4\",\n    endIpAddress: \"2.3.4.5\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_store = azure.datalake.Store(\"exampleStore\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_analytics_account = azure.datalake.AnalyticsAccount(\"exampleAnalyticsAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    default_store_account_name=example_store.name)\nexample_analytics_firewall_rule = azure.datalake.AnalyticsFirewallRule(\"exampleAnalyticsFirewallRule\",\n    account_name=azurerm_data_lake_analytics[\"example\"][\"name\"],\n    resource_group_name=example_resource_group.name,\n    start_ip_address=\"1.2.3.4\",\n    end_ip_address=\"2.3.4.5\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleStore = new Azure.DataLake.Store(\"exampleStore\", new Azure.DataLake.StoreArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleAnalyticsAccount = new Azure.DataLake.AnalyticsAccount(\"exampleAnalyticsAccount\", new Azure.DataLake.AnalyticsAccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            DefaultStoreAccountName = exampleStore.Name,\n        });\n        var exampleAnalyticsFirewallRule = new Azure.DataLake.AnalyticsFirewallRule(\"exampleAnalyticsFirewallRule\", new Azure.DataLake.AnalyticsFirewallRuleArgs\n        {\n            AccountName = azurerm_data_lake_analytics.Example.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StartIpAddress = \"1.2.3.4\",\n            EndIpAddress = \"2.3.4.5\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datalake\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := datalake.NewStore(ctx, \"exampleStore\", \u0026datalake.StoreArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datalake.NewAnalyticsAccount(ctx, \"exampleAnalyticsAccount\", \u0026datalake.AnalyticsAccountArgs{\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tLocation:                exampleResourceGroup.Location,\n\t\t\tDefaultStoreAccountName: exampleStore.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datalake.NewAnalyticsFirewallRule(ctx, \"exampleAnalyticsFirewallRule\", \u0026datalake.AnalyticsFirewallRuleArgs{\n\t\t\tAccountName:       pulumi.Any(azurerm_data_lake_analytics.Example.Name),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStartIpAddress:    pulumi.String(\"1.2.3.4\"),\n\t\t\tEndIpAddress:      pulumi.String(\"2.3.4.5\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Lake Analytics Firewall Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datalake/analyticsFirewallRule:AnalyticsFirewallRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DataLakeAnalytics/accounts/mydatalakeaccount/firewallRules/rule1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "Specifies the name of the Data Lake Analytics for which the Firewall Rule should take effect.\n",
          "type": "string"
        },
        "endIpAddress": {
          "description": "The End IP Address for the firewall rule.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Lake Analytics. Changing this forces a new resource to be created. Has to be between 3 to 24 characters.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Lake Analytics.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "The Start IP address for the firewall rule.\n",
          "type": "string"
        }
      },
      "properties": {
        "accountName": {
          "description": "Specifies the name of the Data Lake Analytics for which the Firewall Rule should take effect.\n",
          "type": "string"
        },
        "endIpAddress": {
          "description": "The End IP Address for the firewall rule.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Lake Analytics. Changing this forces a new resource to be created. Has to be between 3 to 24 characters.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Lake Analytics.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "The Start IP address for the firewall rule.\n",
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "endIpAddress",
        "name",
        "resourceGroupName",
        "startIpAddress"
      ],
      "requiredInputs": [
        "accountName",
        "endIpAddress",
        "resourceGroupName",
        "startIpAddress"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AnalyticsFirewallRule resources.\n",
        "properties": {
          "accountName": {
            "description": "Specifies the name of the Data Lake Analytics for which the Firewall Rule should take effect.\n",
            "type": "string"
          },
          "endIpAddress": {
            "description": "The End IP Address for the firewall rule.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Lake Analytics. Changing this forces a new resource to be created. Has to be between 3 to 24 characters.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Lake Analytics.\n",
            "type": "string"
          },
          "startIpAddress": {
            "description": "The Start IP address for the firewall rule.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datalake/store:Store": {
      "description": "Manages an Azure Data Lake Store.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleStore = new azure.datalake.Store(\"exampleStore\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    encryptionState: \"Enabled\",\n    encryptionType: \"ServiceManaged\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_store = azure.datalake.Store(\"exampleStore\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    encryption_state=\"Enabled\",\n    encryption_type=\"ServiceManaged\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleStore = new Azure.DataLake.Store(\"exampleStore\", new Azure.DataLake.StoreArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            EncryptionState = \"Enabled\",\n            EncryptionType = \"ServiceManaged\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datalake\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datalake.NewStore(ctx, \"exampleStore\", \u0026datalake.StoreArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tEncryptionState:   pulumi.String(\"Enabled\"),\n\t\t\tEncryptionType:    pulumi.String(\"ServiceManaged\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Lake Store's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datalake/store:Store example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DataLakeStore/accounts/mydatalakeaccount\n```\n\n ",
      "inputProperties": {
        "encryptionState": {
          "description": "Is Encryption enabled on this Data Lake Store Account? Possible values are `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
          "type": "string"
        },
        "encryptionType": {
          "description": "The Encryption Type used for this Data Lake Store Account. Currently can be set to `ServiceManaged` when `encryption_state` is `Enabled` - and must be a blank string when it's Disabled.\n",
          "type": "string"
        },
        "firewallAllowAzureIps": {
          "description": "are Azure Service IP's allowed through the firewall? Possible values are `Enabled` and `Disabled`. Defaults to `Enabled.`\n",
          "type": "string"
        },
        "firewallState": {
          "description": "the state of the Firewall. Possible values are `Enabled` and `Disabled`. Defaults to `Enabled.`\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:datalake/StoreIdentity:StoreIdentity",
          "description": "An `identity` block defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Lake Store. Changing this forces a new resource to be created. Has to be between 3 to 24 characters.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Lake Store.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "tier": {
          "description": "The monthly commitment tier for Data Lake Store. Accepted values are `Consumption`, `Commitment_1TB`, `Commitment_10TB`, `Commitment_100TB`, `Commitment_500TB`, `Commitment_1PB` or `Commitment_5PB`.\n",
          "type": "string"
        }
      },
      "properties": {
        "encryptionState": {
          "description": "Is Encryption enabled on this Data Lake Store Account? Possible values are `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
          "type": "string"
        },
        "encryptionType": {
          "description": "The Encryption Type used for this Data Lake Store Account. Currently can be set to `ServiceManaged` when `encryption_state` is `Enabled` - and must be a blank string when it's Disabled.\n",
          "type": "string"
        },
        "endpoint": {
          "description": "The Endpoint for the Data Lake Store.\n",
          "type": "string"
        },
        "firewallAllowAzureIps": {
          "description": "are Azure Service IP's allowed through the firewall? Possible values are `Enabled` and `Disabled`. Defaults to `Enabled.`\n",
          "type": "string"
        },
        "firewallState": {
          "description": "the state of the Firewall. Possible values are `Enabled` and `Disabled`. Defaults to `Enabled.`\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:datalake/StoreIdentity:StoreIdentity",
          "description": "An `identity` block defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Lake Store. Changing this forces a new resource to be created. Has to be between 3 to 24 characters.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Lake Store.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "tier": {
          "description": "The monthly commitment tier for Data Lake Store. Accepted values are `Consumption`, `Commitment_1TB`, `Commitment_10TB`, `Commitment_100TB`, `Commitment_500TB`, `Commitment_1PB` or `Commitment_5PB`.\n",
          "type": "string"
        }
      },
      "required": [
        "encryptionType",
        "endpoint",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Store resources.\n",
        "properties": {
          "encryptionState": {
            "description": "Is Encryption enabled on this Data Lake Store Account? Possible values are `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
            "type": "string"
          },
          "encryptionType": {
            "description": "The Encryption Type used for this Data Lake Store Account. Currently can be set to `ServiceManaged` when `encryption_state` is `Enabled` - and must be a blank string when it's Disabled.\n",
            "type": "string"
          },
          "endpoint": {
            "description": "The Endpoint for the Data Lake Store.\n",
            "type": "string"
          },
          "firewallAllowAzureIps": {
            "description": "are Azure Service IP's allowed through the firewall? Possible values are `Enabled` and `Disabled`. Defaults to `Enabled.`\n",
            "type": "string"
          },
          "firewallState": {
            "description": "the state of the Firewall. Possible values are `Enabled` and `Disabled`. Defaults to `Enabled.`\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:datalake/StoreIdentity:StoreIdentity",
            "description": "An `identity` block defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Lake Store. Changing this forces a new resource to be created. Has to be between 3 to 24 characters.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Lake Store.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "tier": {
            "description": "The monthly commitment tier for Data Lake Store. Accepted values are `Consumption`, `Commitment_1TB`, `Commitment_10TB`, `Commitment_100TB`, `Commitment_500TB`, `Commitment_1PB` or `Commitment_5PB`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datalake/storeFile:StoreFile": {
      "description": "Manages a Azure Data Lake Store File.\n\n\u003e **Note:** If you want to change the data in the remote file without changing the `local_file_path`, then\ntaint the resource so the `azure.datalake.StoreFile` gets recreated with the new data.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleStore = new azure.datalake.Store(\"exampleStore\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleStoreFile = new azure.datalake.StoreFile(\"exampleStoreFile\", {\n    resourceGroupName: exampleResourceGroup.name,\n    localFilePath: \"/path/to/local/file\",\n    remoteFilePath: \"/path/created/for/remote/file\",\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Lake Store File's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datalake/storeFile:StoreFile txt\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "Specifies the name of the Data Lake Store for which the File should created.\n",
          "type": "string"
        },
        "localFilePath": {
          "description": "The path to the local file to be added to the Data Lake Store.\n",
          "type": "string"
        },
        "remoteFilePath": {
          "description": "The path created for the file on the Data Lake Store.\n",
          "type": "string"
        }
      },
      "properties": {
        "accountName": {
          "description": "Specifies the name of the Data Lake Store for which the File should created.\n",
          "type": "string"
        },
        "localFilePath": {
          "description": "The path to the local file to be added to the Data Lake Store.\n",
          "type": "string"
        },
        "remoteFilePath": {
          "description": "The path created for the file on the Data Lake Store.\n",
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "localFilePath",
        "remoteFilePath"
      ],
      "requiredInputs": [
        "accountName",
        "localFilePath",
        "remoteFilePath"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StoreFile resources.\n",
        "properties": {
          "accountName": {
            "description": "Specifies the name of the Data Lake Store for which the File should created.\n",
            "type": "string"
          },
          "localFilePath": {
            "description": "The path to the local file to be added to the Data Lake Store.\n",
            "type": "string"
          },
          "remoteFilePath": {
            "description": "The path created for the file on the Data Lake Store.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datalake/storeFirewallRule:StoreFirewallRule": {
      "description": "Manages a Azure Data Lake Store Firewall Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleStore = new azure.datalake.Store(\"exampleStore\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleStoreFirewallRule = new azure.datalake.StoreFirewallRule(\"exampleStoreFirewallRule\", {\n    accountName: exampleStore.name,\n    resourceGroupName: exampleResourceGroup.name,\n    startIpAddress: \"1.2.3.4\",\n    endIpAddress: \"2.3.4.5\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_store = azure.datalake.Store(\"exampleStore\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_store_firewall_rule = azure.datalake.StoreFirewallRule(\"exampleStoreFirewallRule\",\n    account_name=example_store.name,\n    resource_group_name=example_resource_group.name,\n    start_ip_address=\"1.2.3.4\",\n    end_ip_address=\"2.3.4.5\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleStore = new Azure.DataLake.Store(\"exampleStore\", new Azure.DataLake.StoreArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleStoreFirewallRule = new Azure.DataLake.StoreFirewallRule(\"exampleStoreFirewallRule\", new Azure.DataLake.StoreFirewallRuleArgs\n        {\n            AccountName = exampleStore.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StartIpAddress = \"1.2.3.4\",\n            EndIpAddress = \"2.3.4.5\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datalake\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := datalake.NewStore(ctx, \"exampleStore\", \u0026datalake.StoreArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datalake.NewStoreFirewallRule(ctx, \"exampleStoreFirewallRule\", \u0026datalake.StoreFirewallRuleArgs{\n\t\t\tAccountName:       exampleStore.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStartIpAddress:    pulumi.String(\"1.2.3.4\"),\n\t\t\tEndIpAddress:      pulumi.String(\"2.3.4.5\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Lake Store Firewall Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datalake/storeFirewallRule:StoreFirewallRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DataLakeStore/accounts/mydatalakeaccount/firewallRules/rule1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "Specifies the name of the Data Lake Store for which the Firewall Rule should take effect.\n",
          "type": "string"
        },
        "endIpAddress": {
          "description": "The End IP Address for the firewall rule.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Lake Store. Changing this forces a new resource to be created. Has to be between 3 to 24 characters.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Lake Store.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "The Start IP address for the firewall rule.\n",
          "type": "string"
        }
      },
      "properties": {
        "accountName": {
          "description": "Specifies the name of the Data Lake Store for which the Firewall Rule should take effect.\n",
          "type": "string"
        },
        "endIpAddress": {
          "description": "The End IP Address for the firewall rule.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Data Lake Store. Changing this forces a new resource to be created. Has to be between 3 to 24 characters.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Data Lake Store.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "The Start IP address for the firewall rule.\n",
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "endIpAddress",
        "name",
        "resourceGroupName",
        "startIpAddress"
      ],
      "requiredInputs": [
        "accountName",
        "endIpAddress",
        "resourceGroupName",
        "startIpAddress"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StoreFirewallRule resources.\n",
        "properties": {
          "accountName": {
            "description": "Specifies the name of the Data Lake Store for which the Firewall Rule should take effect.\n",
            "type": "string"
          },
          "endIpAddress": {
            "description": "The End IP Address for the firewall rule.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Data Lake Store. Changing this forces a new resource to be created. Has to be between 3 to 24 characters.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Data Lake Store.\n",
            "type": "string"
          },
          "startIpAddress": {
            "description": "The Start IP address for the firewall rule.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datalake/storeVirtualNetworkRule:StoreVirtualNetworkRule": {
      "description": "Allows you to add, update, or remove an Azure Data Lake Store to a subnet of a virtual network.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"northeurope\"});\nconst vnet = new azure.network.VirtualNetwork(\"vnet\", {\n    addressSpaces: [\"10.7.29.0/29\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst subnet = new azure.network.Subnet(\"subnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: vnet.name,\n    addressPrefixes: [\"10.7.29.0/29\"],\n    serviceEndpoints: [\"Microsoft.AzureActiveDirectory\"],\n});\nconst exampleStore = new azure.datalake.Store(\"exampleStore\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst adlsvnetrule = new azure.datalake.StoreVirtualNetworkRule(\"adlsvnetrule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    accountName: exampleStore.name,\n    subnetId: subnet.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"northeurope\")\nvnet = azure.network.VirtualNetwork(\"vnet\",\n    address_spaces=[\"10.7.29.0/29\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nsubnet = azure.network.Subnet(\"subnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=vnet.name,\n    address_prefixes=[\"10.7.29.0/29\"],\n    service_endpoints=[\"Microsoft.AzureActiveDirectory\"])\nexample_store = azure.datalake.Store(\"exampleStore\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nadlsvnetrule = azure.datalake.StoreVirtualNetworkRule(\"adlsvnetrule\",\n    resource_group_name=example_resource_group.name,\n    account_name=example_store.name,\n    subnet_id=subnet.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"northeurope\",\n        });\n        var vnet = new Azure.Network.VirtualNetwork(\"vnet\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.7.29.0/29\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var subnet = new Azure.Network.Subnet(\"subnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = vnet.Name,\n            AddressPrefixes = \n            {\n                \"10.7.29.0/29\",\n            },\n            ServiceEndpoints = \n            {\n                \"Microsoft.AzureActiveDirectory\",\n            },\n        });\n        var exampleStore = new Azure.DataLake.Store(\"exampleStore\", new Azure.DataLake.StoreArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var adlsvnetrule = new Azure.DataLake.StoreVirtualNetworkRule(\"adlsvnetrule\", new Azure.DataLake.StoreVirtualNetworkRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            AccountName = exampleStore.Name,\n            SubnetId = subnet.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datalake\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"northeurope\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvnet, err := network.NewVirtualNetwork(ctx, \"vnet\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.7.29.0/29\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet, err := network.NewSubnet(ctx, \"subnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: vnet.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.7.29.0/29\"),\n\t\t\t},\n\t\t\tServiceEndpoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Microsoft.AzureActiveDirectory\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := datalake.NewStore(ctx, \"exampleStore\", \u0026datalake.StoreArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datalake.NewStoreVirtualNetworkRule(ctx, \"adlsvnetrule\", \u0026datalake.StoreVirtualNetworkRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAccountName:       exampleStore.Name,\n\t\t\tSubnetId:          subnet.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Lake Store Virtual Network Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datalake/storeVirtualNetworkRule:StoreVirtualNetworkRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DataLakeStore/accounts/myaccount/virtualNetworkRules/vnetrulename\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "The name of the Data Lake Store to which this Data Lake Store virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Data Lake Store virtual network rule. Changing this forces a new resource to be created. Cannot be empty and must only contain alphanumeric characters, underscores, periods and hyphens. Cannot start with a period, underscore or hyphen, and cannot end with a period and a hyphen.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Data Lake Store resides. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet that the Data Lake Store will be connected to.\n",
          "type": "string"
        }
      },
      "properties": {
        "accountName": {
          "description": "The name of the Data Lake Store to which this Data Lake Store virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Data Lake Store virtual network rule. Changing this forces a new resource to be created. Cannot be empty and must only contain alphanumeric characters, underscores, periods and hyphens. Cannot start with a period, underscore or hyphen, and cannot end with a period and a hyphen.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Data Lake Store resides. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet that the Data Lake Store will be connected to.\n",
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "name",
        "resourceGroupName",
        "subnetId"
      ],
      "requiredInputs": [
        "accountName",
        "resourceGroupName",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StoreVirtualNetworkRule resources.\n",
        "properties": {
          "accountName": {
            "description": "The name of the Data Lake Store to which this Data Lake Store virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Data Lake Store virtual network rule. Changing this forces a new resource to be created. Cannot be empty and must only contain alphanumeric characters, underscores, periods and hyphens. Cannot start with a period, underscore or hyphen, and cannot end with a period and a hyphen.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the Data Lake Store resides. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the subnet that the Data Lake Store will be connected to.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dataprotection/backupInstanceBlogStorage:BackupInstanceBlogStorage": {
      "description": "Manages a Backup Instance Blob Storage.\n\n\n## Import\n\nBackup Instance Blob Storages can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dataprotection/backupInstanceBlogStorage:BackupInstanceBlogStorage example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataProtection/backupVaults/vault1/backupInstances/backupInstance1\n```\n\n ",
      "inputProperties": {
        "backupPolicyId": {
          "description": "The ID of the Backup Policy.\n",
          "type": "string"
        },
        "location": {
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Backup Instance Blob Storage. Changing this forces a new Backup Instance Blob Storage to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the source Storage Account. Changing this forces a new Backup Instance Blob Storage to be created.\n",
          "type": "string"
        },
        "vaultId": {
          "description": "The ID of the Backup Vault within which the Backup Instance Blob Storage should exist. Changing this forces a new Backup Instance Blob Storage to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "backupPolicyId": {
          "description": "The ID of the Backup Policy.\n",
          "type": "string"
        },
        "location": {
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Backup Instance Blob Storage. Changing this forces a new Backup Instance Blob Storage to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the source Storage Account. Changing this forces a new Backup Instance Blob Storage to be created.\n",
          "type": "string"
        },
        "vaultId": {
          "description": "The ID of the Backup Vault within which the Backup Instance Blob Storage should exist. Changing this forces a new Backup Instance Blob Storage to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "backupPolicyId",
        "location",
        "name",
        "storageAccountId",
        "vaultId"
      ],
      "requiredInputs": [
        "backupPolicyId",
        "storageAccountId",
        "vaultId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BackupInstanceBlogStorage resources.\n",
        "properties": {
          "backupPolicyId": {
            "description": "The ID of the Backup Policy.\n",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Backup Instance Blob Storage. Changing this forces a new Backup Instance Blob Storage to be created.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of the source Storage Account. Changing this forces a new Backup Instance Blob Storage to be created.\n",
            "type": "string"
          },
          "vaultId": {
            "description": "The ID of the Backup Vault within which the Backup Instance Blob Storage should exist. Changing this forces a new Backup Instance Blob Storage to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dataprotection/backupInstanceDisk:BackupInstanceDisk": {
      "description": "Manages a Backup Instance to back up Disk.\n\n\n## Import\n\nBackup Instance Disks can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dataprotection/backupInstanceDisk:BackupInstanceDisk example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataProtection/backupVaults/vault1/backupInstances/backupInstance1\n```\n\n ",
      "inputProperties": {
        "backupPolicyId": {
          "description": "The ID of the Backup Policy.\n",
          "type": "string"
        },
        "diskId": {
          "description": "The ID of the source Disk. Changing this forces a new Backup Instance Disk to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Backup Instance Disk should exist. Changing this forces a new Backup Instance Disk to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Backup Instance Disk. Changing this forces a new Backup Instance Disk to be created.\n",
          "type": "string"
        },
        "snapshotResourceGroupName": {
          "description": "The name of the Resource Group where snapshots are stored. Changing this forces a new Backup Instance Disk to be created.\n",
          "type": "string"
        },
        "vaultId": {
          "description": "The ID of the Backup Vault within which the Backup Instance Disk should exist. Changing this forces a new Backup Instance Disk to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "backupPolicyId": {
          "description": "The ID of the Backup Policy.\n",
          "type": "string"
        },
        "diskId": {
          "description": "The ID of the source Disk. Changing this forces a new Backup Instance Disk to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Backup Instance Disk should exist. Changing this forces a new Backup Instance Disk to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Backup Instance Disk. Changing this forces a new Backup Instance Disk to be created.\n",
          "type": "string"
        },
        "snapshotResourceGroupName": {
          "description": "The name of the Resource Group where snapshots are stored. Changing this forces a new Backup Instance Disk to be created.\n",
          "type": "string"
        },
        "vaultId": {
          "description": "The ID of the Backup Vault within which the Backup Instance Disk should exist. Changing this forces a new Backup Instance Disk to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "backupPolicyId",
        "diskId",
        "location",
        "name",
        "snapshotResourceGroupName",
        "vaultId"
      ],
      "requiredInputs": [
        "backupPolicyId",
        "diskId",
        "snapshotResourceGroupName",
        "vaultId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BackupInstanceDisk resources.\n",
        "properties": {
          "backupPolicyId": {
            "description": "The ID of the Backup Policy.\n",
            "type": "string"
          },
          "diskId": {
            "description": "The ID of the source Disk. Changing this forces a new Backup Instance Disk to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Backup Instance Disk should exist. Changing this forces a new Backup Instance Disk to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Backup Instance Disk. Changing this forces a new Backup Instance Disk to be created.\n",
            "type": "string"
          },
          "snapshotResourceGroupName": {
            "description": "The name of the Resource Group where snapshots are stored. Changing this forces a new Backup Instance Disk to be created.\n",
            "type": "string"
          },
          "vaultId": {
            "description": "The ID of the Backup Vault within which the Backup Instance Disk should exist. Changing this forces a new Backup Instance Disk to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dataprotection/backupInstancePostgresql:BackupInstancePostgresql": {
      "description": "Manages a Backup Instance to back up PostgreSQL.\n\n\u003e **Note**: Before using this resource, there are some prerequisite permissions for configure backup and restore. See more details from https://docs.microsoft.com/en-us/azure/backup/backup-azure-database-postgresql#prerequisite-permissions-for-configure-backup-and-restore.\n\n\n## Import\n\nBackup Instance PostgreSQL can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dataprotection/backupInstancePostgresql:BackupInstancePostgresql example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataProtection/backupVaults/vault1/backupInstances/backupInstance1\n```\n\n ",
      "inputProperties": {
        "backupPolicyId": {
          "description": "The ID of the Backup Policy.\n",
          "type": "string"
        },
        "databaseCredentialKeyVaultSecretId": {
          "description": "The ID or versionless ID of the key vault secret which stores the connection string of the database.\n",
          "type": "string"
        },
        "databaseId": {
          "description": "The ID of the source database. Changing this forces a new Backup Instance PostgreSQL to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The location of the source database. Changing this forces a new Backup Instance PostgreSQL to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Backup Instance PostgreSQL. Changing this forces a new Backup Instance PostgreSQL to be created.\n",
          "type": "string"
        },
        "vaultId": {
          "description": "The ID of the Backup Vault within which the PostgreSQL Backup Instance should exist. Changing this forces a new Backup Instance PostgreSQL to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "backupPolicyId": {
          "description": "The ID of the Backup Policy.\n",
          "type": "string"
        },
        "databaseCredentialKeyVaultSecretId": {
          "description": "The ID or versionless ID of the key vault secret which stores the connection string of the database.\n",
          "type": "string"
        },
        "databaseId": {
          "description": "The ID of the source database. Changing this forces a new Backup Instance PostgreSQL to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The location of the source database. Changing this forces a new Backup Instance PostgreSQL to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Backup Instance PostgreSQL. Changing this forces a new Backup Instance PostgreSQL to be created.\n",
          "type": "string"
        },
        "vaultId": {
          "description": "The ID of the Backup Vault within which the PostgreSQL Backup Instance should exist. Changing this forces a new Backup Instance PostgreSQL to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "backupPolicyId",
        "databaseId",
        "location",
        "name",
        "vaultId"
      ],
      "requiredInputs": [
        "backupPolicyId",
        "databaseId",
        "vaultId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BackupInstancePostgresql resources.\n",
        "properties": {
          "backupPolicyId": {
            "description": "The ID of the Backup Policy.\n",
            "type": "string"
          },
          "databaseCredentialKeyVaultSecretId": {
            "description": "The ID or versionless ID of the key vault secret which stores the connection string of the database.\n",
            "type": "string"
          },
          "databaseId": {
            "description": "The ID of the source database. Changing this forces a new Backup Instance PostgreSQL to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "The location of the source database. Changing this forces a new Backup Instance PostgreSQL to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Backup Instance PostgreSQL. Changing this forces a new Backup Instance PostgreSQL to be created.\n",
            "type": "string"
          },
          "vaultId": {
            "description": "The ID of the Backup Vault within which the PostgreSQL Backup Instance should exist. Changing this forces a new Backup Instance PostgreSQL to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dataprotection/backupPolicyBlobStorage:BackupPolicyBlobStorage": {
      "description": "Manages a Backup Policy Blob Storage.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst exampleBackupVault = new azure.dataprotection.BackupVault(\"exampleBackupVault\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    datastoreType: \"VaultStore\",\n    redundancy: \"LocallyRedundant\",\n});\nconst exampleBackupPolicyBlobStorage = new azure.dataprotection.BackupPolicyBlobStorage(\"exampleBackupPolicyBlobStorage\", {\n    vaultId: exampleBackupVault.id,\n    retentionDuration: \"P30D\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nexample_backup_vault = azure.dataprotection.BackupVault(\"exampleBackupVault\",\n    resource_group_name=rg.name,\n    location=rg.location,\n    datastore_type=\"VaultStore\",\n    redundancy=\"LocallyRedundant\")\nexample_backup_policy_blob_storage = azure.dataprotection.BackupPolicyBlobStorage(\"exampleBackupPolicyBlobStorage\",\n    vault_id=example_backup_vault.id,\n    retention_duration=\"P30D\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleBackupVault = new Azure.DataProtection.BackupVault(\"exampleBackupVault\", new Azure.DataProtection.BackupVaultArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n            DatastoreType = \"VaultStore\",\n            Redundancy = \"LocallyRedundant\",\n        });\n        var exampleBackupPolicyBlobStorage = new Azure.DataProtection.BackupPolicyBlobStorage(\"exampleBackupPolicyBlobStorage\", new Azure.DataProtection.BackupPolicyBlobStorageArgs\n        {\n            VaultId = exampleBackupVault.Id,\n            RetentionDuration = \"P30D\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dataprotection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBackupVault, err := dataprotection.NewBackupVault(ctx, \"exampleBackupVault\", \u0026dataprotection.BackupVaultArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tDatastoreType:     pulumi.String(\"VaultStore\"),\n\t\t\tRedundancy:        pulumi.String(\"LocallyRedundant\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dataprotection.NewBackupPolicyBlobStorage(ctx, \"exampleBackupPolicyBlobStorage\", \u0026dataprotection.BackupPolicyBlobStorageArgs{\n\t\t\tVaultId:           exampleBackupVault.ID(),\n\t\t\tRetentionDuration: pulumi.String(\"P30D\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBackup Policy Blob Storages can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dataprotection/backupPolicyBlobStorage:BackupPolicyBlobStorage example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataProtection/backupVaults/vault1/backupPolicies/backupPolicy1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name which should be used for this Backup Policy Blob Storage. Changing this forces a new Backup Policy Blob Storage to be created.\n",
          "type": "string"
        },
        "retentionDuration": {
          "description": "Duration of deletion after given timespan. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy Blob Storage to be created.\n",
          "type": "string"
        },
        "vaultId": {
          "description": "The ID of the Backup Vault within which the Backup Policy Blob Storage should exist. Changing this forces a new Backup Policy Blob Storage to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "The name which should be used for this Backup Policy Blob Storage. Changing this forces a new Backup Policy Blob Storage to be created.\n",
          "type": "string"
        },
        "retentionDuration": {
          "description": "Duration of deletion after given timespan. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy Blob Storage to be created.\n",
          "type": "string"
        },
        "vaultId": {
          "description": "The ID of the Backup Vault within which the Backup Policy Blob Storage should exist. Changing this forces a new Backup Policy Blob Storage to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "retentionDuration",
        "vaultId"
      ],
      "requiredInputs": [
        "retentionDuration",
        "vaultId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BackupPolicyBlobStorage resources.\n",
        "properties": {
          "name": {
            "description": "The name which should be used for this Backup Policy Blob Storage. Changing this forces a new Backup Policy Blob Storage to be created.\n",
            "type": "string"
          },
          "retentionDuration": {
            "description": "Duration of deletion after given timespan. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy Blob Storage to be created.\n",
            "type": "string"
          },
          "vaultId": {
            "description": "The ID of the Backup Vault within which the Backup Policy Blob Storage should exist. Changing this forces a new Backup Policy Blob Storage to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dataprotection/backupPolicyDisk:BackupPolicyDisk": {
      "description": "Manages a Backup Policy Disk.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst exampleBackupVault = new azure.dataprotection.BackupVault(\"exampleBackupVault\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    datastoreType: \"VaultStore\",\n    redundancy: \"LocallyRedundant\",\n});\nconst exampleBackupPolicyDisk = new azure.dataprotection.BackupPolicyDisk(\"exampleBackupPolicyDisk\", {\n    vaultId: exampleBackupVault.id,\n    backupRepeatingTimeIntervals: [\"R/2021-05-19T06:33:16+00:00/PT4H\"],\n    defaultRetentionDuration: \"P7D\",\n    retentionRules: [\n        {\n            name: \"Daily\",\n            duration: \"P7D\",\n            priority: 25,\n            criteria: {\n                absoluteCriteria: \"FirstOfDay\",\n            },\n        },\n        {\n            name: \"Weekly\",\n            duration: \"P7D\",\n            priority: 20,\n            criteria: {\n                absoluteCriteria: \"FirstOfWeek\",\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nexample_backup_vault = azure.dataprotection.BackupVault(\"exampleBackupVault\",\n    resource_group_name=rg.name,\n    location=rg.location,\n    datastore_type=\"VaultStore\",\n    redundancy=\"LocallyRedundant\")\nexample_backup_policy_disk = azure.dataprotection.BackupPolicyDisk(\"exampleBackupPolicyDisk\",\n    vault_id=example_backup_vault.id,\n    backup_repeating_time_intervals=[\"R/2021-05-19T06:33:16+00:00/PT4H\"],\n    default_retention_duration=\"P7D\",\n    retention_rules=[\n        azure.dataprotection.BackupPolicyDiskRetentionRuleArgs(\n            name=\"Daily\",\n            duration=\"P7D\",\n            priority=25,\n            criteria=azure.dataprotection.BackupPolicyDiskRetentionRuleCriteriaArgs(\n                absolute_criteria=\"FirstOfDay\",\n            ),\n        ),\n        azure.dataprotection.BackupPolicyDiskRetentionRuleArgs(\n            name=\"Weekly\",\n            duration=\"P7D\",\n            priority=20,\n            criteria=azure.dataprotection.BackupPolicyDiskRetentionRuleCriteriaArgs(\n                absolute_criteria=\"FirstOfWeek\",\n            ),\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleBackupVault = new Azure.DataProtection.BackupVault(\"exampleBackupVault\", new Azure.DataProtection.BackupVaultArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n            DatastoreType = \"VaultStore\",\n            Redundancy = \"LocallyRedundant\",\n        });\n        var exampleBackupPolicyDisk = new Azure.DataProtection.BackupPolicyDisk(\"exampleBackupPolicyDisk\", new Azure.DataProtection.BackupPolicyDiskArgs\n        {\n            VaultId = exampleBackupVault.Id,\n            BackupRepeatingTimeIntervals = \n            {\n                \"R/2021-05-19T06:33:16+00:00/PT4H\",\n            },\n            DefaultRetentionDuration = \"P7D\",\n            RetentionRules = \n            {\n                new Azure.DataProtection.Inputs.BackupPolicyDiskRetentionRuleArgs\n                {\n                    Name = \"Daily\",\n                    Duration = \"P7D\",\n                    Priority = 25,\n                    Criteria = new Azure.DataProtection.Inputs.BackupPolicyDiskRetentionRuleCriteriaArgs\n                    {\n                        AbsoluteCriteria = \"FirstOfDay\",\n                    },\n                },\n                new Azure.DataProtection.Inputs.BackupPolicyDiskRetentionRuleArgs\n                {\n                    Name = \"Weekly\",\n                    Duration = \"P7D\",\n                    Priority = 20,\n                    Criteria = new Azure.DataProtection.Inputs.BackupPolicyDiskRetentionRuleCriteriaArgs\n                    {\n                        AbsoluteCriteria = \"FirstOfWeek\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dataprotection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBackupVault, err := dataprotection.NewBackupVault(ctx, \"exampleBackupVault\", \u0026dataprotection.BackupVaultArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tDatastoreType:     pulumi.String(\"VaultStore\"),\n\t\t\tRedundancy:        pulumi.String(\"LocallyRedundant\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dataprotection.NewBackupPolicyDisk(ctx, \"exampleBackupPolicyDisk\", \u0026dataprotection.BackupPolicyDiskArgs{\n\t\t\tVaultId: exampleBackupVault.ID(),\n\t\t\tBackupRepeatingTimeIntervals: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"R/2021-05-19T06:33:16+00:00/PT4H\"),\n\t\t\t},\n\t\t\tDefaultRetentionDuration: pulumi.String(\"P7D\"),\n\t\t\tRetentionRules: dataprotection.BackupPolicyDiskRetentionRuleArray{\n\t\t\t\t\u0026dataprotection.BackupPolicyDiskRetentionRuleArgs{\n\t\t\t\t\tName:     pulumi.String(\"Daily\"),\n\t\t\t\t\tDuration: pulumi.String(\"P7D\"),\n\t\t\t\t\tPriority: pulumi.Int(25),\n\t\t\t\t\tCriteria: \u0026dataprotection.BackupPolicyDiskRetentionRuleCriteriaArgs{\n\t\t\t\t\t\tAbsoluteCriteria: pulumi.String(\"FirstOfDay\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026dataprotection.BackupPolicyDiskRetentionRuleArgs{\n\t\t\t\t\tName:     pulumi.String(\"Weekly\"),\n\t\t\t\t\tDuration: pulumi.String(\"P7D\"),\n\t\t\t\t\tPriority: pulumi.Int(20),\n\t\t\t\t\tCriteria: \u0026dataprotection.BackupPolicyDiskRetentionRuleCriteriaArgs{\n\t\t\t\t\t\tAbsoluteCriteria: pulumi.String(\"FirstOfWeek\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBackup Policy Disks can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dataprotection/backupPolicyDisk:BackupPolicyDisk example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataProtection/backupVaults/vault1/backupPolicies/backupPolicy1\n```\n\n ",
      "inputProperties": {
        "backupRepeatingTimeIntervals": {
          "description": "Specifies a list of repeating time interval. It should follow `ISO 8601` repeating time interval . Changing this forces a new Backup Policy Disk to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "defaultRetentionDuration": {
          "description": "The duration of default retention rule. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy Disk to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Backup Policy Disk. Changing this forces a new Backup Policy Disk to be created.\n",
          "type": "string"
        },
        "retentionRules": {
          "description": "One or more `retention_rule` blocks as defined below. Changing this forces a new Backup Policy Disk to be created.\n",
          "items": {
            "$ref": "#/types/azure:dataprotection/BackupPolicyDiskRetentionRule:BackupPolicyDiskRetentionRule"
          },
          "type": "array"
        },
        "vaultId": {
          "description": "The ID of the Backup Vault within which the Backup Policy Disk should exist. Changing this forces a new Backup Policy Disk to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "backupRepeatingTimeIntervals": {
          "description": "Specifies a list of repeating time interval. It should follow `ISO 8601` repeating time interval . Changing this forces a new Backup Policy Disk to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "defaultRetentionDuration": {
          "description": "The duration of default retention rule. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy Disk to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Backup Policy Disk. Changing this forces a new Backup Policy Disk to be created.\n",
          "type": "string"
        },
        "retentionRules": {
          "description": "One or more `retention_rule` blocks as defined below. Changing this forces a new Backup Policy Disk to be created.\n",
          "items": {
            "$ref": "#/types/azure:dataprotection/BackupPolicyDiskRetentionRule:BackupPolicyDiskRetentionRule"
          },
          "type": "array"
        },
        "vaultId": {
          "description": "The ID of the Backup Vault within which the Backup Policy Disk should exist. Changing this forces a new Backup Policy Disk to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "backupRepeatingTimeIntervals",
        "defaultRetentionDuration",
        "name",
        "vaultId"
      ],
      "requiredInputs": [
        "backupRepeatingTimeIntervals",
        "defaultRetentionDuration",
        "vaultId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BackupPolicyDisk resources.\n",
        "properties": {
          "backupRepeatingTimeIntervals": {
            "description": "Specifies a list of repeating time interval. It should follow `ISO 8601` repeating time interval . Changing this forces a new Backup Policy Disk to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "defaultRetentionDuration": {
            "description": "The duration of default retention rule. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy Disk to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Backup Policy Disk. Changing this forces a new Backup Policy Disk to be created.\n",
            "type": "string"
          },
          "retentionRules": {
            "description": "One or more `retention_rule` blocks as defined below. Changing this forces a new Backup Policy Disk to be created.\n",
            "items": {
              "$ref": "#/types/azure:dataprotection/BackupPolicyDiskRetentionRule:BackupPolicyDiskRetentionRule"
            },
            "type": "array"
          },
          "vaultId": {
            "description": "The ID of the Backup Vault within which the Backup Policy Disk should exist. Changing this forces a new Backup Policy Disk to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dataprotection/backupPolicyPostgresql:BackupPolicyPostgresql": {
      "description": "Manages a Backup Policy to back up PostgreSQL. \n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst exampleBackupVault = new azure.dataprotection.BackupVault(\"exampleBackupVault\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    datastoreType: \"VaultStore\",\n    redundancy: \"LocallyRedundant\",\n});\nconst exampleBackupPolicyPostgresql = new azure.dataprotection.BackupPolicyPostgresql(\"exampleBackupPolicyPostgresql\", {\n    resourceGroupName: rg.name,\n    vaultName: exampleBackupVault.name,\n    backupRepeatingTimeIntervals: [\"R/2021-05-23T02:30:00+00:00/P1W\"],\n    defaultRetentionDuration: \"P4M\",\n    retentionRules: [\n        {\n            name: \"weekly\",\n            duration: \"P6M\",\n            priority: 20,\n            criteria: {\n                absoluteCriteria: \"FirstOfWeek\",\n            },\n        },\n        {\n            name: \"thursday\",\n            duration: \"P1W\",\n            priority: 25,\n            criteria: {\n                daysOfWeeks: [\"Thursday\"],\n                scheduledBackupTimes: [\"2021-05-23T02:30:00Z\"],\n            },\n        },\n        {\n            name: \"monthly\",\n            duration: \"P1D\",\n            priority: 15,\n            criteria: {\n                weeksOfMonths: [\n                    \"First\",\n                    \"Last\",\n                ],\n                daysOfWeeks: [\"Tuesday\"],\n                scheduledBackupTimes: [\"2021-05-23T02:30:00Z\"],\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nexample_backup_vault = azure.dataprotection.BackupVault(\"exampleBackupVault\",\n    resource_group_name=rg.name,\n    location=rg.location,\n    datastore_type=\"VaultStore\",\n    redundancy=\"LocallyRedundant\")\nexample_backup_policy_postgresql = azure.dataprotection.BackupPolicyPostgresql(\"exampleBackupPolicyPostgresql\",\n    resource_group_name=rg.name,\n    vault_name=example_backup_vault.name,\n    backup_repeating_time_intervals=[\"R/2021-05-23T02:30:00+00:00/P1W\"],\n    default_retention_duration=\"P4M\",\n    retention_rules=[\n        azure.dataprotection.BackupPolicyPostgresqlRetentionRuleArgs(\n            name=\"weekly\",\n            duration=\"P6M\",\n            priority=20,\n            criteria=azure.dataprotection.BackupPolicyPostgresqlRetentionRuleCriteriaArgs(\n                absolute_criteria=\"FirstOfWeek\",\n            ),\n        ),\n        azure.dataprotection.BackupPolicyPostgresqlRetentionRuleArgs(\n            name=\"thursday\",\n            duration=\"P1W\",\n            priority=25,\n            criteria=azure.dataprotection.BackupPolicyPostgresqlRetentionRuleCriteriaArgs(\n                days_of_weeks=[\"Thursday\"],\n                scheduled_backup_times=[\"2021-05-23T02:30:00Z\"],\n            ),\n        ),\n        azure.dataprotection.BackupPolicyPostgresqlRetentionRuleArgs(\n            name=\"monthly\",\n            duration=\"P1D\",\n            priority=15,\n            criteria=azure.dataprotection.BackupPolicyPostgresqlRetentionRuleCriteriaArgs(\n                weeks_of_months=[\n                    \"First\",\n                    \"Last\",\n                ],\n                days_of_weeks=[\"Tuesday\"],\n                scheduled_backup_times=[\"2021-05-23T02:30:00Z\"],\n            ),\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleBackupVault = new Azure.DataProtection.BackupVault(\"exampleBackupVault\", new Azure.DataProtection.BackupVaultArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n            DatastoreType = \"VaultStore\",\n            Redundancy = \"LocallyRedundant\",\n        });\n        var exampleBackupPolicyPostgresql = new Azure.DataProtection.BackupPolicyPostgresql(\"exampleBackupPolicyPostgresql\", new Azure.DataProtection.BackupPolicyPostgresqlArgs\n        {\n            ResourceGroupName = rg.Name,\n            VaultName = exampleBackupVault.Name,\n            BackupRepeatingTimeIntervals = \n            {\n                \"R/2021-05-23T02:30:00+00:00/P1W\",\n            },\n            DefaultRetentionDuration = \"P4M\",\n            RetentionRules = \n            {\n                new Azure.DataProtection.Inputs.BackupPolicyPostgresqlRetentionRuleArgs\n                {\n                    Name = \"weekly\",\n                    Duration = \"P6M\",\n                    Priority = 20,\n                    Criteria = new Azure.DataProtection.Inputs.BackupPolicyPostgresqlRetentionRuleCriteriaArgs\n                    {\n                        AbsoluteCriteria = \"FirstOfWeek\",\n                    },\n                },\n                new Azure.DataProtection.Inputs.BackupPolicyPostgresqlRetentionRuleArgs\n                {\n                    Name = \"thursday\",\n                    Duration = \"P1W\",\n                    Priority = 25,\n                    Criteria = new Azure.DataProtection.Inputs.BackupPolicyPostgresqlRetentionRuleCriteriaArgs\n                    {\n                        DaysOfWeeks = \n                        {\n                            \"Thursday\",\n                        },\n                        ScheduledBackupTimes = \n                        {\n                            \"2021-05-23T02:30:00Z\",\n                        },\n                    },\n                },\n                new Azure.DataProtection.Inputs.BackupPolicyPostgresqlRetentionRuleArgs\n                {\n                    Name = \"monthly\",\n                    Duration = \"P1D\",\n                    Priority = 15,\n                    Criteria = new Azure.DataProtection.Inputs.BackupPolicyPostgresqlRetentionRuleCriteriaArgs\n                    {\n                        WeeksOfMonths = \n                        {\n                            \"First\",\n                            \"Last\",\n                        },\n                        DaysOfWeeks = \n                        {\n                            \"Tuesday\",\n                        },\n                        ScheduledBackupTimes = \n                        {\n                            \"2021-05-23T02:30:00Z\",\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dataprotection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBackupVault, err := dataprotection.NewBackupVault(ctx, \"exampleBackupVault\", \u0026dataprotection.BackupVaultArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tDatastoreType:     pulumi.String(\"VaultStore\"),\n\t\t\tRedundancy:        pulumi.String(\"LocallyRedundant\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dataprotection.NewBackupPolicyPostgresql(ctx, \"exampleBackupPolicyPostgresql\", \u0026dataprotection.BackupPolicyPostgresqlArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tVaultName:         exampleBackupVault.Name,\n\t\t\tBackupRepeatingTimeIntervals: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"R/2021-05-23T02:30:00+00:00/P1W\"),\n\t\t\t},\n\t\t\tDefaultRetentionDuration: pulumi.String(\"P4M\"),\n\t\t\tRetentionRules: dataprotection.BackupPolicyPostgresqlRetentionRuleArray{\n\t\t\t\t\u0026dataprotection.BackupPolicyPostgresqlRetentionRuleArgs{\n\t\t\t\t\tName:     pulumi.String(\"weekly\"),\n\t\t\t\t\tDuration: pulumi.String(\"P6M\"),\n\t\t\t\t\tPriority: pulumi.Int(20),\n\t\t\t\t\tCriteria: \u0026dataprotection.BackupPolicyPostgresqlRetentionRuleCriteriaArgs{\n\t\t\t\t\t\tAbsoluteCriteria: pulumi.String(\"FirstOfWeek\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026dataprotection.BackupPolicyPostgresqlRetentionRuleArgs{\n\t\t\t\t\tName:     pulumi.String(\"thursday\"),\n\t\t\t\t\tDuration: pulumi.String(\"P1W\"),\n\t\t\t\t\tPriority: pulumi.Int(25),\n\t\t\t\t\tCriteria: \u0026dataprotection.BackupPolicyPostgresqlRetentionRuleCriteriaArgs{\n\t\t\t\t\t\tDaysOfWeeks: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Thursday\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tScheduledBackupTimes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"2021-05-23T02:30:00Z\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026dataprotection.BackupPolicyPostgresqlRetentionRuleArgs{\n\t\t\t\t\tName:     pulumi.String(\"monthly\"),\n\t\t\t\t\tDuration: pulumi.String(\"P1D\"),\n\t\t\t\t\tPriority: pulumi.Int(15),\n\t\t\t\t\tCriteria: \u0026dataprotection.BackupPolicyPostgresqlRetentionRuleCriteriaArgs{\n\t\t\t\t\t\tWeeksOfMonths: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"First\"),\n\t\t\t\t\t\t\tpulumi.String(\"Last\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tDaysOfWeeks: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Tuesday\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tScheduledBackupTimes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"2021-05-23T02:30:00Z\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBackup Policy PostgreSQLs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dataprotection/backupPolicyPostgresql:BackupPolicyPostgresql example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataProtection/backupVaults/vault1/backupPolicies/backupPolicy1\n```\n\n ",
      "inputProperties": {
        "backupRepeatingTimeIntervals": {
          "description": "Specifies a list of repeating time interval. It supports weekly back. It should follow `ISO 8601` repeating time interval. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "defaultRetentionDuration": {
          "description": "The duration of default retention rule. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Backup Policy PostgreSQL. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Backup Policy PostgreSQL should exist. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "type": "string"
        },
        "retentionRules": {
          "description": "One or more `retention_rule` blocks as defined below. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "items": {
            "$ref": "#/types/azure:dataprotection/BackupPolicyPostgresqlRetentionRule:BackupPolicyPostgresqlRetentionRule"
          },
          "type": "array"
        },
        "vaultName": {
          "description": "The name of the Backup Vault where the Backup Policy PostgreSQL should exist. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "backupRepeatingTimeIntervals": {
          "description": "Specifies a list of repeating time interval. It supports weekly back. It should follow `ISO 8601` repeating time interval. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "defaultRetentionDuration": {
          "description": "The duration of default retention rule. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Backup Policy PostgreSQL. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Backup Policy PostgreSQL should exist. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "type": "string"
        },
        "retentionRules": {
          "description": "One or more `retention_rule` blocks as defined below. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "items": {
            "$ref": "#/types/azure:dataprotection/BackupPolicyPostgresqlRetentionRule:BackupPolicyPostgresqlRetentionRule"
          },
          "type": "array"
        },
        "vaultName": {
          "description": "The name of the Backup Vault where the Backup Policy PostgreSQL should exist. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "backupRepeatingTimeIntervals",
        "defaultRetentionDuration",
        "name",
        "resourceGroupName",
        "vaultName"
      ],
      "requiredInputs": [
        "backupRepeatingTimeIntervals",
        "defaultRetentionDuration",
        "resourceGroupName",
        "vaultName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BackupPolicyPostgresql resources.\n",
        "properties": {
          "backupRepeatingTimeIntervals": {
            "description": "Specifies a list of repeating time interval. It supports weekly back. It should follow `ISO 8601` repeating time interval. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "defaultRetentionDuration": {
            "description": "The duration of default retention rule. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Backup Policy PostgreSQL. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Backup Policy PostgreSQL should exist. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
            "type": "string"
          },
          "retentionRules": {
            "description": "One or more `retention_rule` blocks as defined below. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
            "items": {
              "$ref": "#/types/azure:dataprotection/BackupPolicyPostgresqlRetentionRule:BackupPolicyPostgresqlRetentionRule"
            },
            "type": "array"
          },
          "vaultName": {
            "description": "The name of the Backup Vault where the Backup Policy PostgreSQL should exist. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dataprotection/backupVault:BackupVault": {
      "description": "Manages a Backup Vault.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst example = new azure.dataprotection.BackupVault(\"example\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    datastoreType: \"VaultStore\",\n    redundancy: \"LocallyRedundant\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nexample = azure.dataprotection.BackupVault(\"example\",\n    resource_group_name=rg.name,\n    location=rg.location,\n    datastore_type=\"VaultStore\",\n    redundancy=\"LocallyRedundant\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var example = new Azure.DataProtection.BackupVault(\"example\", new Azure.DataProtection.BackupVaultArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n            DatastoreType = \"VaultStore\",\n            Redundancy = \"LocallyRedundant\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dataprotection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dataprotection.NewBackupVault(ctx, \"example\", \u0026dataprotection.BackupVaultArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tDatastoreType:     pulumi.String(\"VaultStore\"),\n\t\t\tRedundancy:        pulumi.String(\"LocallyRedundant\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBackup Vaults can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dataprotection/backupVault:BackupVault example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataProtection/backupVaults/vault1\n```\n\n ",
      "inputProperties": {
        "datastoreType": {
          "description": "Specifies the type of the data store. Possible values are `ArchiveStore`, `SnapshotStore` and `VaultStore`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:dataprotection/BackupVaultIdentity:BackupVaultIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Backup Vault should exist. Changing this forces a new Backup Vault to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Backup Vault. Changing this forces a new Backup Vault to be created.\n",
          "type": "string"
        },
        "redundancy": {
          "description": "Specifies the backup storage redundancy. Possible values are `GeoRedundant` and `LocallyRedundant`. Changing this forces a new Backup Vault to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Backup Vault should exist. Changing this forces a new Backup Vault to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Backup Vault.\n",
          "type": "object"
        }
      },
      "properties": {
        "datastoreType": {
          "description": "Specifies the type of the data store. Possible values are `ArchiveStore`, `SnapshotStore` and `VaultStore`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:dataprotection/BackupVaultIdentity:BackupVaultIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Backup Vault should exist. Changing this forces a new Backup Vault to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Backup Vault. Changing this forces a new Backup Vault to be created.\n",
          "type": "string"
        },
        "redundancy": {
          "description": "Specifies the backup storage redundancy. Possible values are `GeoRedundant` and `LocallyRedundant`. Changing this forces a new Backup Vault to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Backup Vault should exist. Changing this forces a new Backup Vault to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Backup Vault.\n",
          "type": "object"
        }
      },
      "required": [
        "datastoreType",
        "location",
        "name",
        "redundancy",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "datastoreType",
        "redundancy",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BackupVault resources.\n",
        "properties": {
          "datastoreType": {
            "description": "Specifies the type of the data store. Possible values are `ArchiveStore`, `SnapshotStore` and `VaultStore`.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:dataprotection/BackupVaultIdentity:BackupVaultIdentity",
            "description": "A `identity` block as defined below.\n"
          },
          "location": {
            "description": "The Azure Region where the Backup Vault should exist. Changing this forces a new Backup Vault to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Backup Vault. Changing this forces a new Backup Vault to be created.\n",
            "type": "string"
          },
          "redundancy": {
            "description": "Specifies the backup storage redundancy. Possible values are `GeoRedundant` and `LocallyRedundant`. Changing this forces a new Backup Vault to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Backup Vault should exist. Changing this forces a new Backup Vault to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Backup Vault.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:datashare/account:Account": {
      "description": "Manages a Data Share Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.datashare.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.datashare.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    identity=azure.datashare.AccountIdentityArgs(\n        type=\"SystemAssigned\",\n    ),\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.DataShare.Account(\"exampleAccount\", new Azure.DataShare.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Identity = new Azure.DataShare.Inputs.AccountIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n            Tags = \n            {\n                { \"foo\", \"bar\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datashare\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datashare.NewAccount(ctx, \"exampleAccount\", \u0026datashare.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIdentity: \u0026datashare.AccountIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Share Accounts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datashare/account:Account example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataShare/accounts/account1\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:datashare/AccountIdentity:AccountIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Data Share Account should exist. Changing this forces a new Data Share Account to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Data Share Account. Changing this forces a new Data Share Account to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Data Share Account should exist. Changing this forces a new Data Share Account to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Data Share Account.\n",
          "type": "object"
        }
      },
      "properties": {
        "identity": {
          "$ref": "#/types/azure:datashare/AccountIdentity:AccountIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Data Share Account should exist. Changing this forces a new Data Share Account to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Data Share Account. Changing this forces a new Data Share Account to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Data Share Account should exist. Changing this forces a new Data Share Account to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Data Share Account.\n",
          "type": "object"
        }
      },
      "required": [
        "identity",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "identity",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Account resources.\n",
        "properties": {
          "identity": {
            "$ref": "#/types/azure:datashare/AccountIdentity:AccountIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "location": {
            "description": "The Azure Region where the Data Share Account should exist. Changing this forces a new Data Share Account to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Data Share Account. Changing this forces a new Data Share Account to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Data Share Account should exist. Changing this forces a new Data Share Account to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Data Share Account.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:datashare/datasetBlobStorage:DatasetBlobStorage": {
      "description": "Manages a Data Share Blob Storage Dataset.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as azuread from \"@pulumi/azuread\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.datashare.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\nconst exampleShare = new azure.datashare.Share(\"exampleShare\", {\n    accountId: exampleAccount.id,\n    kind: \"CopyBased\",\n});\nconst exampleStorage_accountAccount = new azure.storage.Account(\"exampleStorage/accountAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"RAGRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleStorage / accountAccount.name,\n    containerAccessType: \"container\",\n});\nconst exampleServicePrincipal = exampleAccount.name.apply(name =\u003e azuread.getServicePrincipal({\n    displayName: name,\n}));\nconst exampleAssignment = new azure.authorization.Assignment(\"exampleAssignment\", {\n    scope: exampleStorage / accountAccount.id,\n    roleDefinitionName: \"Storage Blob Data Reader\",\n    principalId: exampleServicePrincipal.apply(exampleServicePrincipal =\u003e exampleServicePrincipal.objectId),\n});\nconst exampleDatasetBlobStorage = new azure.datashare.DatasetBlobStorage(\"exampleDatasetBlobStorage\", {\n    dataShareId: exampleShare.id,\n    containerName: exampleContainer.name,\n    storageAccount: {\n        name: exampleStorage / accountAccount.name,\n        resourceGroupName: exampleStorage / accountAccount.resourceGroupName,\n        subscriptionId: \"00000000-0000-0000-0000-000000000000\",\n    },\n    filePath: \"myfile.txt\",\n}, {\n    dependsOn: [exampleAssignment],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_azuread as azuread\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.datashare.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    identity=azure.datashare.AccountIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\nexample_share = azure.datashare.Share(\"exampleShare\",\n    account_id=example_account.id,\n    kind=\"CopyBased\")\nexample_storage_account_account = azure.storage.Account(\"exampleStorage/accountAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"RAGRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_storage / account_account[\"name\"],\n    container_access_type=\"container\")\nexample_service_principal = example_account.name.apply(lambda name: azuread.get_service_principal(display_name=name))\nexample_assignment = azure.authorization.Assignment(\"exampleAssignment\",\n    scope=example_storage / account_account[\"id\"],\n    role_definition_name=\"Storage Blob Data Reader\",\n    principal_id=example_service_principal.object_id)\nexample_dataset_blob_storage = azure.datashare.DatasetBlobStorage(\"exampleDatasetBlobStorage\",\n    data_share_id=example_share.id,\n    container_name=example_container.name,\n    storage_account=azure.datashare.DatasetBlobStorageStorageAccountArgs(\n        name=example_storage / account_account[\"name\"],\n        resource_group_name=example_storage / account_account[\"resourceGroupName\"],\n        subscription_id=\"00000000-0000-0000-0000-000000000000\",\n    ),\n    file_path=\"myfile.txt\",\n    opts=pulumi.ResourceOptions(depends_on=[example_assignment]))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing AzureAD = Pulumi.AzureAD;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.DataShare.Account(\"exampleAccount\", new Azure.DataShare.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Identity = new Azure.DataShare.Inputs.AccountIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n        var exampleShare = new Azure.DataShare.Share(\"exampleShare\", new Azure.DataShare.ShareArgs\n        {\n            AccountId = exampleAccount.Id,\n            Kind = \"CopyBased\",\n        });\n        var exampleStorage_accountAccount = new Azure.Storage.Account(\"exampleStorage/accountAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"RAGRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleStorage / accountAccount.Name,\n            ContainerAccessType = \"container\",\n        });\n        var exampleServicePrincipal = exampleAccount.Name.Apply(name =\u003e AzureAD.GetServicePrincipal.InvokeAsync(new AzureAD.GetServicePrincipalArgs\n        {\n            DisplayName = name,\n        }));\n        var exampleAssignment = new Azure.Authorization.Assignment(\"exampleAssignment\", new Azure.Authorization.AssignmentArgs\n        {\n            Scope = exampleStorage / accountAccount.Id,\n            RoleDefinitionName = \"Storage Blob Data Reader\",\n            PrincipalId = exampleServicePrincipal.Apply(exampleServicePrincipal =\u003e exampleServicePrincipal.ObjectId),\n        });\n        var exampleDatasetBlobStorage = new Azure.DataShare.DatasetBlobStorage(\"exampleDatasetBlobStorage\", new Azure.DataShare.DatasetBlobStorageArgs\n        {\n            DataShareId = exampleShare.Id,\n            ContainerName = exampleContainer.Name,\n            StorageAccount = new Azure.DataShare.Inputs.DatasetBlobStorageStorageAccountArgs\n            {\n                Name = exampleStorage / accountAccount.Name,\n                ResourceGroupName = exampleStorage / accountAccount.ResourceGroupName,\n                SubscriptionId = \"00000000-0000-0000-0000-000000000000\",\n            },\n            FilePath = \"myfile.txt\",\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                exampleAssignment,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datashare\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azuread/sdk/v4/go/azuread\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := datashare.NewAccount(ctx, \"exampleAccount\", \u0026datashare.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIdentity: \u0026datashare.AccountIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleShare, err := datashare.NewShare(ctx, \"exampleShare\", \u0026datashare.ShareArgs{\n\t\t\tAccountId: exampleAccount.ID(),\n\t\t\tKind:      pulumi.String(\"CopyBased\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewAccount(ctx, \"exampleStorage_accountAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"RAGRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleStorage / accountAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"container\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAssignment, err := authorization.NewAssignment(ctx, \"exampleAssignment\", \u0026authorization.AssignmentArgs{\n\t\t\tScope:              exampleStorage / accountAccount.Id,\n\t\t\tRoleDefinitionName: pulumi.String(\"Storage Blob Data Reader\"),\n\t\t\tPrincipalId: exampleServicePrincipal.ApplyT(func(exampleServicePrincipal GetServicePrincipalResult) (string, error) {\n\t\t\t\treturn exampleServicePrincipal.ObjectId, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datashare.NewDatasetBlobStorage(ctx, \"exampleDatasetBlobStorage\", \u0026datashare.DatasetBlobStorageArgs{\n\t\t\tDataShareId:   exampleShare.ID(),\n\t\t\tContainerName: exampleContainer.Name,\n\t\t\tStorageAccount: \u0026datashare.DatasetBlobStorageStorageAccountArgs{\n\t\t\t\tName:              exampleStorage / accountAccount.Name,\n\t\t\t\tResourceGroupName: exampleStorage / accountAccount.ResourceGroupName,\n\t\t\t\tSubscriptionId:    pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t},\n\t\t\tFilePath: pulumi.String(\"myfile.txt\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleAssignment,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Share Blob Storage Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datashare/datasetBlobStorage:DatasetBlobStorage example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataShare/accounts/account1/shares/share1/dataSets/dataSet1\n```\n\n ",
      "inputProperties": {
        "containerName": {
          "description": "The name of the storage account container to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
          "type": "string"
        },
        "dataShareId": {
          "description": "The ID of the Data Share in which this Data Share Blob Storage Dataset should be created. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
          "type": "string"
        },
        "filePath": {
          "description": "The path of the file in the storage container to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
          "type": "string"
        },
        "folderPath": {
          "description": "The path of the folder in the storage container to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Data Share Blob Storage Dataset. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
          "type": "string"
        },
        "storageAccount": {
          "$ref": "#/types/azure:datashare/DatasetBlobStorageStorageAccount:DatasetBlobStorageStorageAccount",
          "description": "A `storage_account` block as defined below.\n"
        }
      },
      "properties": {
        "containerName": {
          "description": "The name of the storage account container to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
          "type": "string"
        },
        "dataShareId": {
          "description": "The ID of the Data Share in which this Data Share Blob Storage Dataset should be created. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The name of the Data Share Dataset.\n",
          "type": "string"
        },
        "filePath": {
          "description": "The path of the file in the storage container to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
          "type": "string"
        },
        "folderPath": {
          "description": "The path of the folder in the storage container to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Data Share Blob Storage Dataset. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
          "type": "string"
        },
        "storageAccount": {
          "$ref": "#/types/azure:datashare/DatasetBlobStorageStorageAccount:DatasetBlobStorageStorageAccount",
          "description": "A `storage_account` block as defined below.\n"
        }
      },
      "required": [
        "containerName",
        "dataShareId",
        "displayName",
        "name",
        "storageAccount"
      ],
      "requiredInputs": [
        "containerName",
        "dataShareId",
        "storageAccount"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetBlobStorage resources.\n",
        "properties": {
          "containerName": {
            "description": "The name of the storage account container to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
            "type": "string"
          },
          "dataShareId": {
            "description": "The ID of the Data Share in which this Data Share Blob Storage Dataset should be created. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The name of the Data Share Dataset.\n",
            "type": "string"
          },
          "filePath": {
            "description": "The path of the file in the storage container to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
            "type": "string"
          },
          "folderPath": {
            "description": "The path of the folder in the storage container to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Data Share Blob Storage Dataset. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
            "type": "string"
          },
          "storageAccount": {
            "$ref": "#/types/azure:datashare/DatasetBlobStorageStorageAccount:DatasetBlobStorageStorageAccount",
            "description": "A `storage_account` block as defined below.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:datashare/datasetDataLakeGen1:DatasetDataLakeGen1": {
      "description": "Manages a Data Share Data Lake Gen1 Dataset.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as azuread from \"@pulumi/azuread\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.datashare.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\nconst exampleShare = new azure.datashare.Share(\"exampleShare\", {\n    accountId: exampleAccount.id,\n    kind: \"CopyBased\",\n});\nconst exampleStore = new azure.datalake.Store(\"exampleStore\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    firewallState: \"Disabled\",\n});\nconst exampleStoreFile = new azure.datalake.StoreFile(\"exampleStoreFile\", {\n    accountName: exampleStore.name,\n    localFilePath: \"./example/myfile.txt\",\n    remoteFilePath: \"/example/myfile.txt\",\n});\nconst exampleServicePrincipal = exampleAccount.name.apply(name =\u003e azuread.getServicePrincipal({\n    displayName: name,\n}));\nconst exampleAssignment = new azure.authorization.Assignment(\"exampleAssignment\", {\n    scope: exampleStore.id,\n    roleDefinitionName: \"Owner\",\n    principalId: exampleServicePrincipal.apply(exampleServicePrincipal =\u003e exampleServicePrincipal.objectId),\n});\nconst exampleDatasetDataLakeGen1 = new azure.datashare.DatasetDataLakeGen1(\"exampleDatasetDataLakeGen1\", {\n    dataShareId: exampleShare.id,\n    dataLakeStoreId: exampleStore.id,\n    fileName: \"myfile.txt\",\n    folderPath: \"example\",\n}, {\n    dependsOn: [exampleAssignment],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_azuread as azuread\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.datashare.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    identity=azure.datashare.AccountIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\nexample_share = azure.datashare.Share(\"exampleShare\",\n    account_id=example_account.id,\n    kind=\"CopyBased\")\nexample_store = azure.datalake.Store(\"exampleStore\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    firewall_state=\"Disabled\")\nexample_store_file = azure.datalake.StoreFile(\"exampleStoreFile\",\n    account_name=example_store.name,\n    local_file_path=\"./example/myfile.txt\",\n    remote_file_path=\"/example/myfile.txt\")\nexample_service_principal = example_account.name.apply(lambda name: azuread.get_service_principal(display_name=name))\nexample_assignment = azure.authorization.Assignment(\"exampleAssignment\",\n    scope=example_store.id,\n    role_definition_name=\"Owner\",\n    principal_id=example_service_principal.object_id)\nexample_dataset_data_lake_gen1 = azure.datashare.DatasetDataLakeGen1(\"exampleDatasetDataLakeGen1\",\n    data_share_id=example_share.id,\n    data_lake_store_id=example_store.id,\n    file_name=\"myfile.txt\",\n    folder_path=\"example\",\n    opts=pulumi.ResourceOptions(depends_on=[example_assignment]))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing AzureAD = Pulumi.AzureAD;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.DataShare.Account(\"exampleAccount\", new Azure.DataShare.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Identity = new Azure.DataShare.Inputs.AccountIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n        var exampleShare = new Azure.DataShare.Share(\"exampleShare\", new Azure.DataShare.ShareArgs\n        {\n            AccountId = exampleAccount.Id,\n            Kind = \"CopyBased\",\n        });\n        var exampleStore = new Azure.DataLake.Store(\"exampleStore\", new Azure.DataLake.StoreArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            FirewallState = \"Disabled\",\n        });\n        var exampleStoreFile = new Azure.DataLake.StoreFile(\"exampleStoreFile\", new Azure.DataLake.StoreFileArgs\n        {\n            AccountName = exampleStore.Name,\n            LocalFilePath = \"./example/myfile.txt\",\n            RemoteFilePath = \"/example/myfile.txt\",\n        });\n        var exampleServicePrincipal = exampleAccount.Name.Apply(name =\u003e AzureAD.GetServicePrincipal.InvokeAsync(new AzureAD.GetServicePrincipalArgs\n        {\n            DisplayName = name,\n        }));\n        var exampleAssignment = new Azure.Authorization.Assignment(\"exampleAssignment\", new Azure.Authorization.AssignmentArgs\n        {\n            Scope = exampleStore.Id,\n            RoleDefinitionName = \"Owner\",\n            PrincipalId = exampleServicePrincipal.Apply(exampleServicePrincipal =\u003e exampleServicePrincipal.ObjectId),\n        });\n        var exampleDatasetDataLakeGen1 = new Azure.DataShare.DatasetDataLakeGen1(\"exampleDatasetDataLakeGen1\", new Azure.DataShare.DatasetDataLakeGen1Args\n        {\n            DataShareId = exampleShare.Id,\n            DataLakeStoreId = exampleStore.Id,\n            FileName = \"myfile.txt\",\n            FolderPath = \"example\",\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                exampleAssignment,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datalake\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datashare\"\n\t\"github.com/pulumi/pulumi-azuread/sdk/v4/go/azuread\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := datashare.NewAccount(ctx, \"exampleAccount\", \u0026datashare.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIdentity: \u0026datashare.AccountIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleShare, err := datashare.NewShare(ctx, \"exampleShare\", \u0026datashare.ShareArgs{\n\t\t\tAccountId: exampleAccount.ID(),\n\t\t\tKind:      pulumi.String(\"CopyBased\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := datalake.NewStore(ctx, \"exampleStore\", \u0026datalake.StoreArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tFirewallState:     pulumi.String(\"Disabled\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datalake.NewStoreFile(ctx, \"exampleStoreFile\", \u0026datalake.StoreFileArgs{\n\t\t\tAccountName:    exampleStore.Name,\n\t\t\tLocalFilePath:  pulumi.String(\"./example/myfile.txt\"),\n\t\t\tRemoteFilePath: pulumi.String(\"/example/myfile.txt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAssignment, err := authorization.NewAssignment(ctx, \"exampleAssignment\", \u0026authorization.AssignmentArgs{\n\t\t\tScope:              exampleStore.ID(),\n\t\t\tRoleDefinitionName: pulumi.String(\"Owner\"),\n\t\t\tPrincipalId: exampleServicePrincipal.ApplyT(func(exampleServicePrincipal GetServicePrincipalResult) (string, error) {\n\t\t\t\treturn exampleServicePrincipal.ObjectId, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datashare.NewDatasetDataLakeGen1(ctx, \"exampleDatasetDataLakeGen1\", \u0026datashare.DatasetDataLakeGen1Args{\n\t\t\tDataShareId:     exampleShare.ID(),\n\t\t\tDataLakeStoreId: exampleStore.ID(),\n\t\t\tFileName:        pulumi.String(\"myfile.txt\"),\n\t\t\tFolderPath:      pulumi.String(\"example\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleAssignment,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Share Data Lake Gen1 Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datashare/datasetDataLakeGen1:DatasetDataLakeGen1 example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataShare/accounts/account1/shares/share1/dataSets/dataSet1\n```\n\n ",
      "inputProperties": {
        "dataLakeStoreId": {
          "description": "The resource ID of the Data Lake Store to be shared with the receiver.\n",
          "type": "string"
        },
        "dataShareId": {
          "description": "The resource ID of the Data Share where this Data Share Data Lake Gen1 Dataset should be created. Changing this forces a new Data Share Data Lake Gen1 Dataset to be created.\n",
          "type": "string"
        },
        "fileName": {
          "description": "The file name of the data lake store to be shared with the receiver. Changing this forces a new Data Share Data Lake Gen1 Dataset to be created.\n",
          "type": "string"
        },
        "folderPath": {
          "description": "The folder path of the data lake store to be shared with the receiver. Changing this forces a new Data Share Data Lake Gen1 Dataset to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Data Share Data Lake Gen1 Dataset. Changing this forces a new Data Share Data Lake Gen1 Dataset to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "dataLakeStoreId": {
          "description": "The resource ID of the Data Lake Store to be shared with the receiver.\n",
          "type": "string"
        },
        "dataShareId": {
          "description": "The resource ID of the Data Share where this Data Share Data Lake Gen1 Dataset should be created. Changing this forces a new Data Share Data Lake Gen1 Dataset to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The displayed name of the Data Share Dataset.\n",
          "type": "string"
        },
        "fileName": {
          "description": "The file name of the data lake store to be shared with the receiver. Changing this forces a new Data Share Data Lake Gen1 Dataset to be created.\n",
          "type": "string"
        },
        "folderPath": {
          "description": "The folder path of the data lake store to be shared with the receiver. Changing this forces a new Data Share Data Lake Gen1 Dataset to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Data Share Data Lake Gen1 Dataset. Changing this forces a new Data Share Data Lake Gen1 Dataset to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "dataLakeStoreId",
        "dataShareId",
        "displayName",
        "folderPath",
        "name"
      ],
      "requiredInputs": [
        "dataLakeStoreId",
        "dataShareId",
        "folderPath"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetDataLakeGen1 resources.\n",
        "properties": {
          "dataLakeStoreId": {
            "description": "The resource ID of the Data Lake Store to be shared with the receiver.\n",
            "type": "string"
          },
          "dataShareId": {
            "description": "The resource ID of the Data Share where this Data Share Data Lake Gen1 Dataset should be created. Changing this forces a new Data Share Data Lake Gen1 Dataset to be created.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The displayed name of the Data Share Dataset.\n",
            "type": "string"
          },
          "fileName": {
            "description": "The file name of the data lake store to be shared with the receiver. Changing this forces a new Data Share Data Lake Gen1 Dataset to be created.\n",
            "type": "string"
          },
          "folderPath": {
            "description": "The folder path of the data lake store to be shared with the receiver. Changing this forces a new Data Share Data Lake Gen1 Dataset to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Data Share Data Lake Gen1 Dataset. Changing this forces a new Data Share Data Lake Gen1 Dataset to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datashare/datasetDataLakeGen2:DatasetDataLakeGen2": {
      "description": "Manages a Data Share Data Lake Gen2 Dataset.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as azuread from \"@pulumi/azuread\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.datashare.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\nconst exampleShare = new azure.datashare.Share(\"exampleShare\", {\n    accountId: exampleAccount.id,\n    kind: \"CopyBased\",\n});\nconst exampleStorage_accountAccount = new azure.storage.Account(\"exampleStorage/accountAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountKind: \"BlobStorage\",\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleDataLakeGen2Filesystem = new azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", {storageAccountId: exampleStorage / accountAccount.id});\nconst exampleServicePrincipal = exampleAccount.name.apply(name =\u003e azuread.getServicePrincipal({\n    displayName: name,\n}));\nconst exampleAssignment = new azure.authorization.Assignment(\"exampleAssignment\", {\n    scope: exampleStorage / accountAccount.id,\n    roleDefinitionName: \"Storage Blob Data Reader\",\n    principalId: exampleServicePrincipal.apply(exampleServicePrincipal =\u003e exampleServicePrincipal.objectId),\n});\nconst exampleDatasetDataLakeGen2 = new azure.datashare.DatasetDataLakeGen2(\"exampleDatasetDataLakeGen2\", {\n    shareId: exampleShare.id,\n    storageAccountId: exampleStorage / accountAccount.id,\n    fileSystemName: exampleDataLakeGen2Filesystem.name,\n    filePath: \"myfile.txt\",\n}, {\n    dependsOn: [exampleAssignment],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_azuread as azuread\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.datashare.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    identity=azure.datashare.AccountIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\nexample_share = azure.datashare.Share(\"exampleShare\",\n    account_id=example_account.id,\n    kind=\"CopyBased\")\nexample_storage_account_account = azure.storage.Account(\"exampleStorage/accountAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_kind=\"BlobStorage\",\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_data_lake_gen2_filesystem = azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", storage_account_id=example_storage / account_account[\"id\"])\nexample_service_principal = example_account.name.apply(lambda name: azuread.get_service_principal(display_name=name))\nexample_assignment = azure.authorization.Assignment(\"exampleAssignment\",\n    scope=example_storage / account_account[\"id\"],\n    role_definition_name=\"Storage Blob Data Reader\",\n    principal_id=example_service_principal.object_id)\nexample_dataset_data_lake_gen2 = azure.datashare.DatasetDataLakeGen2(\"exampleDatasetDataLakeGen2\",\n    share_id=example_share.id,\n    storage_account_id=example_storage / account_account[\"id\"],\n    file_system_name=example_data_lake_gen2_filesystem.name,\n    file_path=\"myfile.txt\",\n    opts=pulumi.ResourceOptions(depends_on=[example_assignment]))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing AzureAD = Pulumi.AzureAD;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.DataShare.Account(\"exampleAccount\", new Azure.DataShare.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Identity = new Azure.DataShare.Inputs.AccountIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n        var exampleShare = new Azure.DataShare.Share(\"exampleShare\", new Azure.DataShare.ShareArgs\n        {\n            AccountId = exampleAccount.Id,\n            Kind = \"CopyBased\",\n        });\n        var exampleStorage_accountAccount = new Azure.Storage.Account(\"exampleStorage/accountAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountKind = \"BlobStorage\",\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleDataLakeGen2Filesystem = new Azure.Storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", new Azure.Storage.DataLakeGen2FilesystemArgs\n        {\n            StorageAccountId = exampleStorage / accountAccount.Id,\n        });\n        var exampleServicePrincipal = exampleAccount.Name.Apply(name =\u003e AzureAD.GetServicePrincipal.InvokeAsync(new AzureAD.GetServicePrincipalArgs\n        {\n            DisplayName = name,\n        }));\n        var exampleAssignment = new Azure.Authorization.Assignment(\"exampleAssignment\", new Azure.Authorization.AssignmentArgs\n        {\n            Scope = exampleStorage / accountAccount.Id,\n            RoleDefinitionName = \"Storage Blob Data Reader\",\n            PrincipalId = exampleServicePrincipal.Apply(exampleServicePrincipal =\u003e exampleServicePrincipal.ObjectId),\n        });\n        var exampleDatasetDataLakeGen2 = new Azure.DataShare.DatasetDataLakeGen2(\"exampleDatasetDataLakeGen2\", new Azure.DataShare.DatasetDataLakeGen2Args\n        {\n            ShareId = exampleShare.Id,\n            StorageAccountId = exampleStorage / accountAccount.Id,\n            FileSystemName = exampleDataLakeGen2Filesystem.Name,\n            FilePath = \"myfile.txt\",\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                exampleAssignment,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datashare\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azuread/sdk/v4/go/azuread\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := datashare.NewAccount(ctx, \"exampleAccount\", \u0026datashare.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIdentity: \u0026datashare.AccountIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleShare, err := datashare.NewShare(ctx, \"exampleShare\", \u0026datashare.ShareArgs{\n\t\t\tAccountId: exampleAccount.ID(),\n\t\t\tKind:      pulumi.String(\"CopyBased\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewAccount(ctx, \"exampleStorage_accountAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountKind:            pulumi.String(\"BlobStorage\"),\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDataLakeGen2Filesystem, err := storage.NewDataLakeGen2Filesystem(ctx, \"exampleDataLakeGen2Filesystem\", \u0026storage.DataLakeGen2FilesystemArgs{\n\t\t\tStorageAccountId: exampleStorage / accountAccount.Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAssignment, err := authorization.NewAssignment(ctx, \"exampleAssignment\", \u0026authorization.AssignmentArgs{\n\t\t\tScope:              exampleStorage / accountAccount.Id,\n\t\t\tRoleDefinitionName: pulumi.String(\"Storage Blob Data Reader\"),\n\t\t\tPrincipalId: exampleServicePrincipal.ApplyT(func(exampleServicePrincipal GetServicePrincipalResult) (string, error) {\n\t\t\t\treturn exampleServicePrincipal.ObjectId, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datashare.NewDatasetDataLakeGen2(ctx, \"exampleDatasetDataLakeGen2\", \u0026datashare.DatasetDataLakeGen2Args{\n\t\t\tShareId:          exampleShare.ID(),\n\t\t\tStorageAccountId: exampleStorage / accountAccount.Id,\n\t\t\tFileSystemName:   exampleDataLakeGen2Filesystem.Name,\n\t\t\tFilePath:         pulumi.String(\"myfile.txt\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleAssignment,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Share Data Lake Gen2 Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datashare/datasetDataLakeGen2:DatasetDataLakeGen2 example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataShare/accounts/account1/shares/share1/dataSets/dataSet1\n```\n\n ",
      "inputProperties": {
        "filePath": {
          "description": "The path of the file in the data lake file system to be shared with the receiver. Conflicts with `folder_path` Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
          "type": "string"
        },
        "fileSystemName": {
          "description": "The name of the data lake file system to be shared with the receiver. Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
          "type": "string"
        },
        "folderPath": {
          "description": "The folder path in the data lake file system to be shared with the receiver. Conflicts with `file_path` Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Data Share Data Lake Gen2 Dataset. Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
          "type": "string"
        },
        "shareId": {
          "description": "The resource ID of the Data Share where this Data Share Data Lake Gen2 Dataset should be created. Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The resource id of the storage account of the data lake file system to be shared with the receiver. Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "displayName": {
          "description": "The name of the Data Share Dataset.\n",
          "type": "string"
        },
        "filePath": {
          "description": "The path of the file in the data lake file system to be shared with the receiver. Conflicts with `folder_path` Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
          "type": "string"
        },
        "fileSystemName": {
          "description": "The name of the data lake file system to be shared with the receiver. Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
          "type": "string"
        },
        "folderPath": {
          "description": "The folder path in the data lake file system to be shared with the receiver. Conflicts with `file_path` Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Data Share Data Lake Gen2 Dataset. Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
          "type": "string"
        },
        "shareId": {
          "description": "The resource ID of the Data Share where this Data Share Data Lake Gen2 Dataset should be created. Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The resource id of the storage account of the data lake file system to be shared with the receiver. Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "displayName",
        "fileSystemName",
        "name",
        "shareId",
        "storageAccountId"
      ],
      "requiredInputs": [
        "fileSystemName",
        "shareId",
        "storageAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetDataLakeGen2 resources.\n",
        "properties": {
          "displayName": {
            "description": "The name of the Data Share Dataset.\n",
            "type": "string"
          },
          "filePath": {
            "description": "The path of the file in the data lake file system to be shared with the receiver. Conflicts with `folder_path` Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
            "type": "string"
          },
          "fileSystemName": {
            "description": "The name of the data lake file system to be shared with the receiver. Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
            "type": "string"
          },
          "folderPath": {
            "description": "The folder path in the data lake file system to be shared with the receiver. Conflicts with `file_path` Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Data Share Data Lake Gen2 Dataset. Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
            "type": "string"
          },
          "shareId": {
            "description": "The resource ID of the Data Share where this Data Share Data Lake Gen2 Dataset should be created. Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The resource id of the storage account of the data lake file system to be shared with the receiver. Changing this forces a new Data Share Data Lake Gen2 Dataset to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datashare/datasetKustoCluster:DatasetKustoCluster": {
      "description": "Manages a Data Share Kusto Cluster Dataset.\n\n\n## Import\n\nData Share Kusto Cluster Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datashare/datasetKustoCluster:DatasetKustoCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataShare/accounts/account1/shares/share1/dataSets/dataSet1\n```\n\n ",
      "inputProperties": {
        "kustoClusterId": {
          "description": "The resource ID of the Kusto Cluster to be shared with the receiver. Changing this forces a new Data Share Kusto Cluster Dataset to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Data Share Kusto Cluster Dataset. Changing this forces a new Data Share Kusto Cluster Dataset to be created.\n",
          "type": "string"
        },
        "shareId": {
          "description": "The resource ID of the Data Share where this Data Share Kusto Cluster Dataset should be created. Changing this forces a new Data Share Kusto Cluster Dataset to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "displayName": {
          "description": "The name of the Data Share Dataset.\n",
          "type": "string"
        },
        "kustoClusterId": {
          "description": "The resource ID of the Kusto Cluster to be shared with the receiver. Changing this forces a new Data Share Kusto Cluster Dataset to be created.\n",
          "type": "string"
        },
        "kustoClusterLocation": {
          "description": "The location of the Kusto Cluster.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Data Share Kusto Cluster Dataset. Changing this forces a new Data Share Kusto Cluster Dataset to be created.\n",
          "type": "string"
        },
        "shareId": {
          "description": "The resource ID of the Data Share where this Data Share Kusto Cluster Dataset should be created. Changing this forces a new Data Share Kusto Cluster Dataset to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "displayName",
        "kustoClusterId",
        "kustoClusterLocation",
        "name",
        "shareId"
      ],
      "requiredInputs": [
        "kustoClusterId",
        "shareId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetKustoCluster resources.\n",
        "properties": {
          "displayName": {
            "description": "The name of the Data Share Dataset.\n",
            "type": "string"
          },
          "kustoClusterId": {
            "description": "The resource ID of the Kusto Cluster to be shared with the receiver. Changing this forces a new Data Share Kusto Cluster Dataset to be created.\n",
            "type": "string"
          },
          "kustoClusterLocation": {
            "description": "The location of the Kusto Cluster.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Data Share Kusto Cluster Dataset. Changing this forces a new Data Share Kusto Cluster Dataset to be created.\n",
            "type": "string"
          },
          "shareId": {
            "description": "The resource ID of the Data Share where this Data Share Kusto Cluster Dataset should be created. Changing this forces a new Data Share Kusto Cluster Dataset to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datashare/datasetKustoDatabase:DatasetKustoDatabase": {
      "description": "Manages a Data Share Kusto Database Dataset.\n\n\n## Import\n\nData Share Kusto Database Datasets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datashare/datasetKustoDatabase:DatasetKustoDatabase example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataShare/accounts/account1/shares/share1/dataSets/dataSet1\n```\n\n ",
      "inputProperties": {
        "kustoDatabaseId": {
          "description": "The resource ID of the Kusto Cluster Database to be shared with the receiver. Changing this forces a new Data Share Kusto Database Dataset to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Data Share Kusto Database Dataset. Changing this forces a new Data Share Kusto Database Dataset to be created.\n",
          "type": "string"
        },
        "shareId": {
          "description": "The resource ID of the Data Share where this Data Share Kusto Database Dataset should be created. Changing this forces a new Data Share Kusto Database Dataset to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "displayName": {
          "description": "The name of the Data Share Dataset.\n",
          "type": "string"
        },
        "kustoClusterLocation": {
          "description": "The location of the Kusto Cluster.\n",
          "type": "string"
        },
        "kustoDatabaseId": {
          "description": "The resource ID of the Kusto Cluster Database to be shared with the receiver. Changing this forces a new Data Share Kusto Database Dataset to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Data Share Kusto Database Dataset. Changing this forces a new Data Share Kusto Database Dataset to be created.\n",
          "type": "string"
        },
        "shareId": {
          "description": "The resource ID of the Data Share where this Data Share Kusto Database Dataset should be created. Changing this forces a new Data Share Kusto Database Dataset to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "displayName",
        "kustoClusterLocation",
        "kustoDatabaseId",
        "name",
        "shareId"
      ],
      "requiredInputs": [
        "kustoDatabaseId",
        "shareId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatasetKustoDatabase resources.\n",
        "properties": {
          "displayName": {
            "description": "The name of the Data Share Dataset.\n",
            "type": "string"
          },
          "kustoClusterLocation": {
            "description": "The location of the Kusto Cluster.\n",
            "type": "string"
          },
          "kustoDatabaseId": {
            "description": "The resource ID of the Kusto Cluster Database to be shared with the receiver. Changing this forces a new Data Share Kusto Database Dataset to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Data Share Kusto Database Dataset. Changing this forces a new Data Share Kusto Database Dataset to be created.\n",
            "type": "string"
          },
          "shareId": {
            "description": "The resource ID of the Data Share where this Data Share Kusto Database Dataset should be created. Changing this forces a new Data Share Kusto Database Dataset to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:datashare/share:Share": {
      "description": "Manages a Data Share.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.datashare.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tags: {\n        foo: \"bar\",\n    },\n});\nconst exampleShare = new azure.datashare.Share(\"exampleShare\", {\n    accountId: exampleAccount.id,\n    kind: \"CopyBased\",\n    description: \"example desc\",\n    terms: \"example terms\",\n    snapshotSchedule: {\n        name: \"example-ss\",\n        recurrence: \"Day\",\n        startTime: \"2020-04-17T04:47:52.9614956Z\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.datashare.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tags={\n        \"foo\": \"bar\",\n    })\nexample_share = azure.datashare.Share(\"exampleShare\",\n    account_id=example_account.id,\n    kind=\"CopyBased\",\n    description=\"example desc\",\n    terms=\"example terms\",\n    snapshot_schedule=azure.datashare.ShareSnapshotScheduleArgs(\n        name=\"example-ss\",\n        recurrence=\"Day\",\n        start_time=\"2020-04-17T04:47:52.9614956Z\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.DataShare.Account(\"exampleAccount\", new Azure.DataShare.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Tags = \n            {\n                { \"foo\", \"bar\" },\n            },\n        });\n        var exampleShare = new Azure.DataShare.Share(\"exampleShare\", new Azure.DataShare.ShareArgs\n        {\n            AccountId = exampleAccount.Id,\n            Kind = \"CopyBased\",\n            Description = \"example desc\",\n            Terms = \"example terms\",\n            SnapshotSchedule = new Azure.DataShare.Inputs.ShareSnapshotScheduleArgs\n            {\n                Name = \"example-ss\",\n                Recurrence = \"Day\",\n                StartTime = \"2020-04-17T04:47:52.9614956Z\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/datashare\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := datashare.NewAccount(ctx, \"exampleAccount\", \u0026datashare.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datashare.NewShare(ctx, \"exampleShare\", \u0026datashare.ShareArgs{\n\t\t\tAccountId:   exampleAccount.ID(),\n\t\t\tKind:        pulumi.String(\"CopyBased\"),\n\t\t\tDescription: pulumi.String(\"example desc\"),\n\t\t\tTerms:       pulumi.String(\"example terms\"),\n\t\t\tSnapshotSchedule: \u0026datashare.ShareSnapshotScheduleArgs{\n\t\t\t\tName:       pulumi.String(\"example-ss\"),\n\t\t\t\tRecurrence: pulumi.String(\"Day\"),\n\t\t\t\tStartTime:  pulumi.String(\"2020-04-17T04:47:52.9614956Z\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Shares can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:datashare/share:Share example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataShare/accounts/account1/shares/share1\n```\n\n ",
      "inputProperties": {
        "accountId": {
          "description": "The ID of the Data Share account in which the Data Share is created. Changing this forces a new Data Share to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The Data Share's description.\n",
          "type": "string"
        },
        "kind": {
          "description": "The kind of the Data Share. Possible values are `CopyBased` and `InPlace`. Changing this forces a new Data Share to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Data Share. Changing this forces a new Data Share to be created.\n",
          "type": "string"
        },
        "snapshotSchedule": {
          "$ref": "#/types/azure:datashare/ShareSnapshotSchedule:ShareSnapshotSchedule",
          "description": "A `snapshot_schedule` block as defined below.\n"
        },
        "terms": {
          "description": "The terms of the Data Share.\n",
          "type": "string"
        }
      },
      "properties": {
        "accountId": {
          "description": "The ID of the Data Share account in which the Data Share is created. Changing this forces a new Data Share to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The Data Share's description.\n",
          "type": "string"
        },
        "kind": {
          "description": "The kind of the Data Share. Possible values are `CopyBased` and `InPlace`. Changing this forces a new Data Share to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Data Share. Changing this forces a new Data Share to be created.\n",
          "type": "string"
        },
        "snapshotSchedule": {
          "$ref": "#/types/azure:datashare/ShareSnapshotSchedule:ShareSnapshotSchedule",
          "description": "A `snapshot_schedule` block as defined below.\n"
        },
        "terms": {
          "description": "The terms of the Data Share.\n",
          "type": "string"
        }
      },
      "required": [
        "accountId",
        "kind",
        "name"
      ],
      "requiredInputs": [
        "accountId",
        "kind"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Share resources.\n",
        "properties": {
          "accountId": {
            "description": "The ID of the Data Share account in which the Data Share is created. Changing this forces a new Data Share to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The Data Share's description.\n",
            "type": "string"
          },
          "kind": {
            "description": "The kind of the Data Share. Possible values are `CopyBased` and `InPlace`. Changing this forces a new Data Share to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Data Share. Changing this forces a new Data Share to be created.\n",
            "type": "string"
          },
          "snapshotSchedule": {
            "$ref": "#/types/azure:datashare/ShareSnapshotSchedule:ShareSnapshotSchedule",
            "description": "A `snapshot_schedule` block as defined below.\n"
          },
          "terms": {
            "description": "The terms of the Data Share.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:desktopvirtualization/application:Application": {
      "description": "Manages a Virtual Desktop Application.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst pooledbreadthfirst = new azure.desktopvirtualization.HostPool(\"pooledbreadthfirst\", {\n    location: example.location,\n    resourceGroupName: example.name,\n    type: \"Pooled\",\n    loadBalancerType: \"BreadthFirst\",\n});\nconst personalautomatic = new azure.desktopvirtualization.HostPool(\"personalautomatic\", {\n    location: example.location,\n    resourceGroupName: example.name,\n    type: \"Personal\",\n    personalDesktopAssignmentType: \"Automatic\",\n});\nconst remoteapp = new azure.desktopvirtualization.ApplicationGroup(\"remoteapp\", {\n    location: example.location,\n    resourceGroupName: example.name,\n    type: \"RemoteApp\",\n    hostPoolId: pooledbreadthfirst.id,\n    friendlyName: \"TestAppGroup\",\n    description: \"Acceptance Test: An application group\",\n});\nconst chrome = new azure.desktopvirtualization.Application(\"chrome\", {\n    applicationGroupId: remoteapp.id,\n    friendlyName: \"Google Chrome\",\n    description: \"Chromium based web browser\",\n    path: \"C:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n    commandLineArgumentPolicy: \"DoNotAllow\",\n    commandLineArguments: \"--incognito\",\n    showInPortal: false,\n    iconPath: \"C:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n    iconIndex: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\npooledbreadthfirst = azure.desktopvirtualization.HostPool(\"pooledbreadthfirst\",\n    location=example.location,\n    resource_group_name=example.name,\n    type=\"Pooled\",\n    load_balancer_type=\"BreadthFirst\")\npersonalautomatic = azure.desktopvirtualization.HostPool(\"personalautomatic\",\n    location=example.location,\n    resource_group_name=example.name,\n    type=\"Personal\",\n    personal_desktop_assignment_type=\"Automatic\")\nremoteapp = azure.desktopvirtualization.ApplicationGroup(\"remoteapp\",\n    location=example.location,\n    resource_group_name=example.name,\n    type=\"RemoteApp\",\n    host_pool_id=pooledbreadthfirst.id,\n    friendly_name=\"TestAppGroup\",\n    description=\"Acceptance Test: An application group\")\nchrome = azure.desktopvirtualization.Application(\"chrome\",\n    application_group_id=remoteapp.id,\n    friendly_name=\"Google Chrome\",\n    description=\"Chromium based web browser\",\n    path=\"C:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n    command_line_argument_policy=\"DoNotAllow\",\n    command_line_arguments=\"--incognito\",\n    show_in_portal=False,\n    icon_path=\"C:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n    icon_index=0)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var pooledbreadthfirst = new Azure.DesktopVirtualization.HostPool(\"pooledbreadthfirst\", new Azure.DesktopVirtualization.HostPoolArgs\n        {\n            Location = example.Location,\n            ResourceGroupName = example.Name,\n            Type = \"Pooled\",\n            LoadBalancerType = \"BreadthFirst\",\n        });\n        var personalautomatic = new Azure.DesktopVirtualization.HostPool(\"personalautomatic\", new Azure.DesktopVirtualization.HostPoolArgs\n        {\n            Location = example.Location,\n            ResourceGroupName = example.Name,\n            Type = \"Personal\",\n            PersonalDesktopAssignmentType = \"Automatic\",\n        });\n        var remoteapp = new Azure.DesktopVirtualization.ApplicationGroup(\"remoteapp\", new Azure.DesktopVirtualization.ApplicationGroupArgs\n        {\n            Location = example.Location,\n            ResourceGroupName = example.Name,\n            Type = \"RemoteApp\",\n            HostPoolId = pooledbreadthfirst.Id,\n            FriendlyName = \"TestAppGroup\",\n            Description = \"Acceptance Test: An application group\",\n        });\n        var chrome = new Azure.DesktopVirtualization.Application(\"chrome\", new Azure.DesktopVirtualization.ApplicationArgs\n        {\n            ApplicationGroupId = remoteapp.Id,\n            FriendlyName = \"Google Chrome\",\n            Description = \"Chromium based web browser\",\n            Path = \"C:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n            CommandLineArgumentPolicy = \"DoNotAllow\",\n            CommandLineArguments = \"--incognito\",\n            ShowInPortal = false,\n            IconPath = \"C:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n            IconIndex = 0,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/desktopvirtualization\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpooledbreadthfirst, err := desktopvirtualization.NewHostPool(ctx, \"pooledbreadthfirst\", \u0026desktopvirtualization.HostPoolArgs{\n\t\t\tLocation:          example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tType:              pulumi.String(\"Pooled\"),\n\t\t\tLoadBalancerType:  pulumi.String(\"BreadthFirst\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = desktopvirtualization.NewHostPool(ctx, \"personalautomatic\", \u0026desktopvirtualization.HostPoolArgs{\n\t\t\tLocation:                      example.Location,\n\t\t\tResourceGroupName:             example.Name,\n\t\t\tType:                          pulumi.String(\"Personal\"),\n\t\t\tPersonalDesktopAssignmentType: pulumi.String(\"Automatic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tremoteapp, err := desktopvirtualization.NewApplicationGroup(ctx, \"remoteapp\", \u0026desktopvirtualization.ApplicationGroupArgs{\n\t\t\tLocation:          example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tType:              pulumi.String(\"RemoteApp\"),\n\t\t\tHostPoolId:        pooledbreadthfirst.ID(),\n\t\t\tFriendlyName:      pulumi.String(\"TestAppGroup\"),\n\t\t\tDescription:       pulumi.String(\"Acceptance Test: An application group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = desktopvirtualization.NewApplication(ctx, \"chrome\", \u0026desktopvirtualization.ApplicationArgs{\n\t\t\tApplicationGroupId:        remoteapp.ID(),\n\t\t\tFriendlyName:              pulumi.String(\"Google Chrome\"),\n\t\t\tDescription:               pulumi.String(\"Chromium based web browser\"),\n\t\t\tPath:                      pulumi.String(\"C:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\"),\n\t\t\tCommandLineArgumentPolicy: pulumi.String(\"DoNotAllow\"),\n\t\t\tCommandLineArguments:      pulumi.String(\"--incognito\"),\n\t\t\tShowInPortal:              pulumi.Bool(false),\n\t\t\tIconPath:                  pulumi.String(\"C:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\"),\n\t\t\tIconIndex:                 pulumi.Int(0),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Desktop Application can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:desktopvirtualization/application:Application example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/myapplicationgroup/applications/myapplication\n```\n\n ",
      "inputProperties": {
        "applicationGroupId": {
          "description": "Resource ID for a Virtual Desktop Application Group to associate with the\nVirtual Desktop Application. Changing the ID forces a new resource to be created.\n",
          "type": "string"
        },
        "commandLineArgumentPolicy": {
          "description": "Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. Possible values include: `DoNotAllow`, `Allow`, `Require`.\n",
          "type": "string"
        },
        "commandLineArguments": {
          "description": "Command Line Arguments for Virtual Desktop Application.\n",
          "type": "string"
        },
        "description": {
          "description": "Option to set a description for the Virtual Desktop Application.\n",
          "type": "string"
        },
        "friendlyName": {
          "description": "Option to set a friendly name for the Virtual Desktop Application.\n",
          "type": "string"
        },
        "iconIndex": {
          "description": "The index of the icon you wish to use.\n",
          "type": "integer"
        },
        "iconPath": {
          "description": "Specifies the path for an icon which will be used for this Virtual Desktop Application.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Virtual Desktop Application. Changing the name forces a new resource to be created.\n",
          "type": "string"
        },
        "path": {
          "description": "The file path location of the app on the Virtual Desktop OS.\n",
          "type": "string"
        },
        "showInPortal": {
          "description": "Specifies whether to show the RemoteApp program in the RD Web Access server.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "applicationGroupId": {
          "description": "Resource ID for a Virtual Desktop Application Group to associate with the\nVirtual Desktop Application. Changing the ID forces a new resource to be created.\n",
          "type": "string"
        },
        "commandLineArgumentPolicy": {
          "description": "Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. Possible values include: `DoNotAllow`, `Allow`, `Require`.\n",
          "type": "string"
        },
        "commandLineArguments": {
          "description": "Command Line Arguments for Virtual Desktop Application.\n",
          "type": "string"
        },
        "description": {
          "description": "Option to set a description for the Virtual Desktop Application.\n",
          "type": "string"
        },
        "friendlyName": {
          "description": "Option to set a friendly name for the Virtual Desktop Application.\n",
          "type": "string"
        },
        "iconIndex": {
          "description": "The index of the icon you wish to use.\n",
          "type": "integer"
        },
        "iconPath": {
          "description": "Specifies the path for an icon which will be used for this Virtual Desktop Application.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Virtual Desktop Application. Changing the name forces a new resource to be created.\n",
          "type": "string"
        },
        "path": {
          "description": "The file path location of the app on the Virtual Desktop OS.\n",
          "type": "string"
        },
        "showInPortal": {
          "description": "Specifies whether to show the RemoteApp program in the RD Web Access server.\n",
          "type": "boolean"
        }
      },
      "required": [
        "applicationGroupId",
        "commandLineArgumentPolicy",
        "friendlyName",
        "iconPath",
        "name",
        "path"
      ],
      "requiredInputs": [
        "applicationGroupId",
        "commandLineArgumentPolicy",
        "path"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Application resources.\n",
        "properties": {
          "applicationGroupId": {
            "description": "Resource ID for a Virtual Desktop Application Group to associate with the\nVirtual Desktop Application. Changing the ID forces a new resource to be created.\n",
            "type": "string"
          },
          "commandLineArgumentPolicy": {
            "description": "Specifies whether this published application can be launched with command line arguments provided by the client, command line arguments specified at publish time, or no command line arguments at all. Possible values include: `DoNotAllow`, `Allow`, `Require`.\n",
            "type": "string"
          },
          "commandLineArguments": {
            "description": "Command Line Arguments for Virtual Desktop Application.\n",
            "type": "string"
          },
          "description": {
            "description": "Option to set a description for the Virtual Desktop Application.\n",
            "type": "string"
          },
          "friendlyName": {
            "description": "Option to set a friendly name for the Virtual Desktop Application.\n",
            "type": "string"
          },
          "iconIndex": {
            "description": "The index of the icon you wish to use.\n",
            "type": "integer"
          },
          "iconPath": {
            "description": "Specifies the path for an icon which will be used for this Virtual Desktop Application.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Virtual Desktop Application. Changing the name forces a new resource to be created.\n",
            "type": "string"
          },
          "path": {
            "description": "The file path location of the app on the Virtual Desktop OS.\n",
            "type": "string"
          },
          "showInPortal": {
            "description": "Specifies whether to show the RemoteApp program in the RD Web Access server.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:desktopvirtualization/applicationGroup:ApplicationGroup": {
      "description": "Manages a Virtual Desktop Application Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst pooledbreadthfirst = new azure.desktopvirtualization.HostPool(\"pooledbreadthfirst\", {\n    location: example.location,\n    resourceGroupName: example.name,\n    type: \"Pooled\",\n    loadBalancerType: \"BreadthFirst\",\n});\nconst personalautomatic = new azure.desktopvirtualization.HostPool(\"personalautomatic\", {\n    location: example.location,\n    resourceGroupName: example.name,\n    type: \"Personal\",\n    personalDesktopAssignmentType: \"Automatic\",\n});\nconst remoteapp = new azure.desktopvirtualization.ApplicationGroup(\"remoteapp\", {\n    location: example.location,\n    resourceGroupName: example.name,\n    type: \"RemoteApp\",\n    hostPoolId: pooledbreadthfirst.id,\n    friendlyName: \"TestAppGroup\",\n    description: \"Acceptance Test: An application group\",\n});\nconst desktopapp = new azure.desktopvirtualization.ApplicationGroup(\"desktopapp\", {\n    location: example.location,\n    resourceGroupName: example.name,\n    type: \"Desktop\",\n    hostPoolId: personalautomatic.id,\n    friendlyName: \"TestAppGroup\",\n    description: \"Acceptance Test: An application group\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\npooledbreadthfirst = azure.desktopvirtualization.HostPool(\"pooledbreadthfirst\",\n    location=example.location,\n    resource_group_name=example.name,\n    type=\"Pooled\",\n    load_balancer_type=\"BreadthFirst\")\npersonalautomatic = azure.desktopvirtualization.HostPool(\"personalautomatic\",\n    location=example.location,\n    resource_group_name=example.name,\n    type=\"Personal\",\n    personal_desktop_assignment_type=\"Automatic\")\nremoteapp = azure.desktopvirtualization.ApplicationGroup(\"remoteapp\",\n    location=example.location,\n    resource_group_name=example.name,\n    type=\"RemoteApp\",\n    host_pool_id=pooledbreadthfirst.id,\n    friendly_name=\"TestAppGroup\",\n    description=\"Acceptance Test: An application group\")\ndesktopapp = azure.desktopvirtualization.ApplicationGroup(\"desktopapp\",\n    location=example.location,\n    resource_group_name=example.name,\n    type=\"Desktop\",\n    host_pool_id=personalautomatic.id,\n    friendly_name=\"TestAppGroup\",\n    description=\"Acceptance Test: An application group\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var pooledbreadthfirst = new Azure.DesktopVirtualization.HostPool(\"pooledbreadthfirst\", new Azure.DesktopVirtualization.HostPoolArgs\n        {\n            Location = example.Location,\n            ResourceGroupName = example.Name,\n            Type = \"Pooled\",\n            LoadBalancerType = \"BreadthFirst\",\n        });\n        var personalautomatic = new Azure.DesktopVirtualization.HostPool(\"personalautomatic\", new Azure.DesktopVirtualization.HostPoolArgs\n        {\n            Location = example.Location,\n            ResourceGroupName = example.Name,\n            Type = \"Personal\",\n            PersonalDesktopAssignmentType = \"Automatic\",\n        });\n        var remoteapp = new Azure.DesktopVirtualization.ApplicationGroup(\"remoteapp\", new Azure.DesktopVirtualization.ApplicationGroupArgs\n        {\n            Location = example.Location,\n            ResourceGroupName = example.Name,\n            Type = \"RemoteApp\",\n            HostPoolId = pooledbreadthfirst.Id,\n            FriendlyName = \"TestAppGroup\",\n            Description = \"Acceptance Test: An application group\",\n        });\n        var desktopapp = new Azure.DesktopVirtualization.ApplicationGroup(\"desktopapp\", new Azure.DesktopVirtualization.ApplicationGroupArgs\n        {\n            Location = example.Location,\n            ResourceGroupName = example.Name,\n            Type = \"Desktop\",\n            HostPoolId = personalautomatic.Id,\n            FriendlyName = \"TestAppGroup\",\n            Description = \"Acceptance Test: An application group\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/desktopvirtualization\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpooledbreadthfirst, err := desktopvirtualization.NewHostPool(ctx, \"pooledbreadthfirst\", \u0026desktopvirtualization.HostPoolArgs{\n\t\t\tLocation:          example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tType:              pulumi.String(\"Pooled\"),\n\t\t\tLoadBalancerType:  pulumi.String(\"BreadthFirst\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpersonalautomatic, err := desktopvirtualization.NewHostPool(ctx, \"personalautomatic\", \u0026desktopvirtualization.HostPoolArgs{\n\t\t\tLocation:                      example.Location,\n\t\t\tResourceGroupName:             example.Name,\n\t\t\tType:                          pulumi.String(\"Personal\"),\n\t\t\tPersonalDesktopAssignmentType: pulumi.String(\"Automatic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = desktopvirtualization.NewApplicationGroup(ctx, \"remoteapp\", \u0026desktopvirtualization.ApplicationGroupArgs{\n\t\t\tLocation:          example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tType:              pulumi.String(\"RemoteApp\"),\n\t\t\tHostPoolId:        pooledbreadthfirst.ID(),\n\t\t\tFriendlyName:      pulumi.String(\"TestAppGroup\"),\n\t\t\tDescription:       pulumi.String(\"Acceptance Test: An application group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = desktopvirtualization.NewApplicationGroup(ctx, \"desktopapp\", \u0026desktopvirtualization.ApplicationGroupArgs{\n\t\t\tLocation:          example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tType:              pulumi.String(\"Desktop\"),\n\t\t\tHostPoolId:        personalautomatic.ID(),\n\t\t\tFriendlyName:      pulumi.String(\"TestAppGroup\"),\n\t\t\tDescription:       pulumi.String(\"Acceptance Test: An application 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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Desktop Application Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:desktopvirtualization/applicationGroup:ApplicationGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/myapplicationgroup\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "Option to set a description for the Virtual Desktop Application Group.\n",
          "type": "string"
        },
        "friendlyName": {
          "description": "Option to set a friendly name for the Virtual Desktop Application Group.\n",
          "type": "string"
        },
        "hostPoolId": {
          "description": "Resource ID for a Virtual Desktop Host Pool to associate with the\nVirtual Desktop Application Group.\n",
          "type": "string"
        },
        "location": {
          "description": "The location/region where the Virtual Desktop Application Group is\nlocated. Changing the location/region forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Virtual Desktop Application Group. Changing the name forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the Virtual Desktop Application Group. Changing the resource group name forces\na new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "type": {
          "description": "Type of Virtual Desktop Application Group.\nValid options are `RemoteApp` or `Desktop` application groups.\n",
          "type": "string"
        }
      },
      "properties": {
        "description": {
          "description": "Option to set a description for the Virtual Desktop Application Group.\n",
          "type": "string"
        },
        "friendlyName": {
          "description": "Option to set a friendly name for the Virtual Desktop Application Group.\n",
          "type": "string"
        },
        "hostPoolId": {
          "description": "Resource ID for a Virtual Desktop Host Pool to associate with the\nVirtual Desktop Application Group.\n",
          "type": "string"
        },
        "location": {
          "description": "The location/region where the Virtual Desktop Application Group is\nlocated. Changing the location/region forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Virtual Desktop Application Group. Changing the name forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the Virtual Desktop Application Group. Changing the resource group name forces\na new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "type": {
          "description": "Type of Virtual Desktop Application Group.\nValid options are `RemoteApp` or `Desktop` application groups.\n",
          "type": "string"
        }
      },
      "required": [
        "hostPoolId",
        "location",
        "name",
        "resourceGroupName",
        "type"
      ],
      "requiredInputs": [
        "hostPoolId",
        "resourceGroupName",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApplicationGroup resources.\n",
        "properties": {
          "description": {
            "description": "Option to set a description for the Virtual Desktop Application Group.\n",
            "type": "string"
          },
          "friendlyName": {
            "description": "Option to set a friendly name for the Virtual Desktop Application Group.\n",
            "type": "string"
          },
          "hostPoolId": {
            "description": "Resource ID for a Virtual Desktop Host Pool to associate with the\nVirtual Desktop Application Group.\n",
            "type": "string"
          },
          "location": {
            "description": "The location/region where the Virtual Desktop Application Group is\nlocated. Changing the location/region forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Virtual Desktop Application Group. Changing the name forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the Virtual Desktop Application Group. Changing the resource group name forces\na new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "type": {
            "description": "Type of Virtual Desktop Application Group.\nValid options are `RemoteApp` or `Desktop` application groups.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:desktopvirtualization/hostPool:HostPool": {
      "description": "Manages a Virtual Desktop Host Pool.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleHostPool = new azure.desktopvirtualization.HostPool(\"exampleHostPool\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    friendlyName: \"pooleddepthfirst\",\n    validateEnvironment: true,\n    startVmOnConnect: true,\n    customRdpProperties: \"audiocapturemode:i:1;audiomode:i:0;\",\n    description: \"Acceptance Test: A pooled host pool - pooleddepthfirst\",\n    type: \"Pooled\",\n    maximumSessionsAllowed: 50,\n    loadBalancerType: \"DepthFirst\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_host_pool = azure.desktopvirtualization.HostPool(\"exampleHostPool\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    friendly_name=\"pooleddepthfirst\",\n    validate_environment=True,\n    start_vm_on_connect=True,\n    custom_rdp_properties=\"audiocapturemode:i:1;audiomode:i:0;\",\n    description=\"Acceptance Test: A pooled host pool - pooleddepthfirst\",\n    type=\"Pooled\",\n    maximum_sessions_allowed=50,\n    load_balancer_type=\"DepthFirst\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleHostPool = new Azure.DesktopVirtualization.HostPool(\"exampleHostPool\", new Azure.DesktopVirtualization.HostPoolArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            FriendlyName = \"pooleddepthfirst\",\n            ValidateEnvironment = true,\n            StartVmOnConnect = true,\n            CustomRdpProperties = \"audiocapturemode:i:1;audiomode:i:0;\",\n            Description = \"Acceptance Test: A pooled host pool - pooleddepthfirst\",\n            Type = \"Pooled\",\n            MaximumSessionsAllowed = 50,\n            LoadBalancerType = \"DepthFirst\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/desktopvirtualization\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = desktopvirtualization.NewHostPool(ctx, \"exampleHostPool\", \u0026desktopvirtualization.HostPoolArgs{\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tFriendlyName:           pulumi.String(\"pooleddepthfirst\"),\n\t\t\tValidateEnvironment:    pulumi.Bool(true),\n\t\t\tStartVmOnConnect:       pulumi.Bool(true),\n\t\t\tCustomRdpProperties:    pulumi.String(\"audiocapturemode:i:1;audiomode:i:0;\"),\n\t\t\tDescription:            pulumi.String(\"Acceptance Test: A pooled host pool - pooleddepthfirst\"),\n\t\t\tType:                   pulumi.String(\"Pooled\"),\n\t\t\tMaximumSessionsAllowed: pulumi.Int(50),\n\t\t\tLoadBalancerType:       pulumi.String(\"DepthFirst\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Desktop Host Pools can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:desktopvirtualization/hostPool:HostPool example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myGroup1/providers/Microsoft.DesktopVirtualization/hostpools/myhostpool\n```\n\n ",
      "inputProperties": {
        "customRdpProperties": {
          "description": "A valid custom RDP properties string for the Virtual Desktop Host Pool, available properties can be [found in this article](https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/rdp-files).\n",
          "type": "string"
        },
        "description": {
          "description": "A description for the Virtual Desktop Host Pool.\n",
          "type": "string"
        },
        "friendlyName": {
          "description": "A friendly name for the Virtual Desktop Host Pool.\n",
          "type": "string"
        },
        "loadBalancerType": {
          "description": "`BreadthFirst` load balancing distributes new user sessions across all available session hosts in the host pool.\n`DepthFirst` load balancing distributes new user sessions to an available session host with the highest number of connections but has not reached its maximum session limit threshold.\n`Persistent` should be used if the host pool type is `Personal`\n",
          "type": "string"
        },
        "location": {
          "description": "The location/region where the Virtual Desktop Host Pool is\nlocated. Changing the location/region forces a new resource to be created.\n",
          "type": "string"
        },
        "maximumSessionsAllowed": {
          "description": "A valid integer value from 0 to 999999 for the maximum number of users that have concurrent sessions on a session host.\nShould only be set if the `type` of your Virtual Desktop Host Pool is `Pooled`.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name of the Virtual Desktop Host Pool. Changing the name\nforces a new resource to be created.\n",
          "type": "string"
        },
        "personalDesktopAssignmentType": {
          "description": "`Automatic` assignment – The service will select an available host and assign it to an user.\n`Direct` Assignment – Admin selects a specific host to assign to an user.\n",
          "type": "string"
        },
        "preferredAppGroupType": {
          "description": "Option to specify the preferred Application Group type for the Virtual Desktop Host Pool.\nValid options are `None`, `Desktop` or `RailApplications`. Default is `None`.\n",
          "type": "string"
        },
        "registrationInfo": {
          "$ref": "#/types/azure:desktopvirtualization/HostPoolRegistrationInfo:HostPoolRegistrationInfo",
          "description": "A `registration_info` block which is documented below. Specifies configuration on the registration information of the Virtual Desktop Host Pool.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the Virtual Desktop Host Pool. Changing the resource group name forces\na new resource to be created.\n",
          "type": "string"
        },
        "startVmOnConnect": {
          "description": "Enables or disables the Start VM on Connection Feature. Defaults to `false`.\n",
          "type": "boolean"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "type": {
          "description": "The type of the Virtual Desktop Host Pool. Valid options are\n`Personal` or `Pooled`. Changing the type forces a new resource to be created.\n",
          "type": "string"
        },
        "validateEnvironment": {
          "description": "Allows you to test service changes before they are deployed to production. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "customRdpProperties": {
          "description": "A valid custom RDP properties string for the Virtual Desktop Host Pool, available properties can be [found in this article](https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/rdp-files).\n",
          "type": "string"
        },
        "description": {
          "description": "A description for the Virtual Desktop Host Pool.\n",
          "type": "string"
        },
        "friendlyName": {
          "description": "A friendly name for the Virtual Desktop Host Pool.\n",
          "type": "string"
        },
        "loadBalancerType": {
          "description": "`BreadthFirst` load balancing distributes new user sessions across all available session hosts in the host pool.\n`DepthFirst` load balancing distributes new user sessions to an available session host with the highest number of connections but has not reached its maximum session limit threshold.\n`Persistent` should be used if the host pool type is `Personal`\n",
          "type": "string"
        },
        "location": {
          "description": "The location/region where the Virtual Desktop Host Pool is\nlocated. Changing the location/region forces a new resource to be created.\n",
          "type": "string"
        },
        "maximumSessionsAllowed": {
          "description": "A valid integer value from 0 to 999999 for the maximum number of users that have concurrent sessions on a session host.\nShould only be set if the `type` of your Virtual Desktop Host Pool is `Pooled`.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name of the Virtual Desktop Host Pool. Changing the name\nforces a new resource to be created.\n",
          "type": "string"
        },
        "personalDesktopAssignmentType": {
          "description": "`Automatic` assignment – The service will select an available host and assign it to an user.\n`Direct` Assignment – Admin selects a specific host to assign to an user.\n",
          "type": "string"
        },
        "preferredAppGroupType": {
          "description": "Option to specify the preferred Application Group type for the Virtual Desktop Host Pool.\nValid options are `None`, `Desktop` or `RailApplications`. Default is `None`.\n",
          "type": "string"
        },
        "registrationInfo": {
          "$ref": "#/types/azure:desktopvirtualization/HostPoolRegistrationInfo:HostPoolRegistrationInfo",
          "description": "A `registration_info` block which is documented below. Specifies configuration on the registration information of the Virtual Desktop Host Pool.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the Virtual Desktop Host Pool. Changing the resource group name forces\na new resource to be created.\n",
          "type": "string"
        },
        "startVmOnConnect": {
          "description": "Enables or disables the Start VM on Connection Feature. Defaults to `false`.\n",
          "type": "boolean"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "type": {
          "description": "The type of the Virtual Desktop Host Pool. Valid options are\n`Personal` or `Pooled`. Changing the type forces a new resource to be created.\n",
          "type": "string"
        },
        "validateEnvironment": {
          "description": "Allows you to test service changes before they are deployed to production. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "loadBalancerType",
        "location",
        "name",
        "resourceGroupName",
        "type"
      ],
      "requiredInputs": [
        "loadBalancerType",
        "resourceGroupName",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering HostPool resources.\n",
        "properties": {
          "customRdpProperties": {
            "description": "A valid custom RDP properties string for the Virtual Desktop Host Pool, available properties can be [found in this article](https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/rdp-files).\n",
            "type": "string"
          },
          "description": {
            "description": "A description for the Virtual Desktop Host Pool.\n",
            "type": "string"
          },
          "friendlyName": {
            "description": "A friendly name for the Virtual Desktop Host Pool.\n",
            "type": "string"
          },
          "loadBalancerType": {
            "description": "`BreadthFirst` load balancing distributes new user sessions across all available session hosts in the host pool.\n`DepthFirst` load balancing distributes new user sessions to an available session host with the highest number of connections but has not reached its maximum session limit threshold.\n`Persistent` should be used if the host pool type is `Personal`\n",
            "type": "string"
          },
          "location": {
            "description": "The location/region where the Virtual Desktop Host Pool is\nlocated. Changing the location/region forces a new resource to be created.\n",
            "type": "string"
          },
          "maximumSessionsAllowed": {
            "description": "A valid integer value from 0 to 999999 for the maximum number of users that have concurrent sessions on a session host.\nShould only be set if the `type` of your Virtual Desktop Host Pool is `Pooled`.\n",
            "type": "integer"
          },
          "name": {
            "description": "The name of the Virtual Desktop Host Pool. Changing the name\nforces a new resource to be created.\n",
            "type": "string"
          },
          "personalDesktopAssignmentType": {
            "description": "`Automatic` assignment – The service will select an available host and assign it to an user.\n`Direct` Assignment – Admin selects a specific host to assign to an user.\n",
            "type": "string"
          },
          "preferredAppGroupType": {
            "description": "Option to specify the preferred Application Group type for the Virtual Desktop Host Pool.\nValid options are `None`, `Desktop` or `RailApplications`. Default is `None`.\n",
            "type": "string"
          },
          "registrationInfo": {
            "$ref": "#/types/azure:desktopvirtualization/HostPoolRegistrationInfo:HostPoolRegistrationInfo",
            "description": "A `registration_info` block which is documented below. Specifies configuration on the registration information of the Virtual Desktop Host Pool.\n"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the Virtual Desktop Host Pool. Changing the resource group name forces\na new resource to be created.\n",
            "type": "string"
          },
          "startVmOnConnect": {
            "description": "Enables or disables the Start VM on Connection Feature. Defaults to `false`.\n",
            "type": "boolean"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "type": {
            "description": "The type of the Virtual Desktop Host Pool. Valid options are\n`Personal` or `Pooled`. Changing the type forces a new resource to be created.\n",
            "type": "string"
          },
          "validateEnvironment": {
            "description": "Allows you to test service changes before they are deployed to production. Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:desktopvirtualization/workspace:Workspace": {
      "description": "Manages a Virtual Desktop Workspace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst workspace = new azure.desktopvirtualization.Workspace(\"workspace\", {\n    location: example.location,\n    resourceGroupName: example.name,\n    friendlyName: \"FriendlyName\",\n    description: \"A description of my workspace\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\nworkspace = azure.desktopvirtualization.Workspace(\"workspace\",\n    location=example.location,\n    resource_group_name=example.name,\n    friendly_name=\"FriendlyName\",\n    description=\"A description of my workspace\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var workspace = new Azure.DesktopVirtualization.Workspace(\"workspace\", new Azure.DesktopVirtualization.WorkspaceArgs\n        {\n            Location = example.Location,\n            ResourceGroupName = example.Name,\n            FriendlyName = \"FriendlyName\",\n            Description = \"A description of my workspace\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/desktopvirtualization\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = desktopvirtualization.NewWorkspace(ctx, \"workspace\", \u0026desktopvirtualization.WorkspaceArgs{\n\t\t\tLocation:          example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tFriendlyName:      pulumi.String(\"FriendlyName\"),\n\t\t\tDescription:       pulumi.String(\"A description of my workspace\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Desktop Workspaces can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:desktopvirtualization/workspace:Workspace example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myGroup1/providers/Microsoft.DesktopVirtualization/workspaces/myworkspace\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "A description for the Virtual Desktop Workspace.\n",
          "type": "string"
        },
        "friendlyName": {
          "description": "A friendly name for the Virtual Desktop Workspace.\n",
          "type": "string"
        },
        "location": {
          "description": "The location/region where the Virtual Desktop Workspace is located. Changing the location/region forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Virtual Desktop Workspace. Changing the name\nforces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the Virtual Desktop Workspace. Changing the resource group name forces\na new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "description": {
          "description": "A description for the Virtual Desktop Workspace.\n",
          "type": "string"
        },
        "friendlyName": {
          "description": "A friendly name for the Virtual Desktop Workspace.\n",
          "type": "string"
        },
        "location": {
          "description": "The location/region where the Virtual Desktop Workspace is located. Changing the location/region forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Virtual Desktop Workspace. Changing the name\nforces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the Virtual Desktop Workspace. Changing the resource group name forces\na new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Workspace resources.\n",
        "properties": {
          "description": {
            "description": "A description for the Virtual Desktop Workspace.\n",
            "type": "string"
          },
          "friendlyName": {
            "description": "A friendly name for the Virtual Desktop Workspace.\n",
            "type": "string"
          },
          "location": {
            "description": "The location/region where the Virtual Desktop Workspace is located. Changing the location/region forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Virtual Desktop Workspace. Changing the name\nforces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the Virtual Desktop Workspace. Changing the resource group name forces\na new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:desktopvirtualization/workspaceApplicationGroupAssociation:WorkspaceApplicationGroupAssociation": {
      "description": "Manages a Virtual Desktop Workspace Application Group Association.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst pooledbreadthfirst = new azure.desktopvirtualization.HostPool(\"pooledbreadthfirst\", {\n    location: example.location,\n    resourceGroupName: example.name,\n    type: \"Pooled\",\n    loadBalancerType: \"BreadthFirst\",\n});\nconst remoteapp = new azure.desktopvirtualization.ApplicationGroup(\"remoteapp\", {\n    location: example.location,\n    resourceGroupName: example.name,\n    type: \"RemoteApp\",\n    hostPoolId: pooledbreadthfirst.id,\n});\nconst workspace = new azure.desktopvirtualization.Workspace(\"workspace\", {\n    location: example.location,\n    resourceGroupName: example.name,\n});\nconst workspaceremoteapp = new azure.desktopvirtualization.WorkspaceApplicationGroupAssociation(\"workspaceremoteapp\", {\n    workspaceId: workspace.id,\n    applicationGroupId: remoteapp.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\npooledbreadthfirst = azure.desktopvirtualization.HostPool(\"pooledbreadthfirst\",\n    location=example.location,\n    resource_group_name=example.name,\n    type=\"Pooled\",\n    load_balancer_type=\"BreadthFirst\")\nremoteapp = azure.desktopvirtualization.ApplicationGroup(\"remoteapp\",\n    location=example.location,\n    resource_group_name=example.name,\n    type=\"RemoteApp\",\n    host_pool_id=pooledbreadthfirst.id)\nworkspace = azure.desktopvirtualization.Workspace(\"workspace\",\n    location=example.location,\n    resource_group_name=example.name)\nworkspaceremoteapp = azure.desktopvirtualization.WorkspaceApplicationGroupAssociation(\"workspaceremoteapp\",\n    workspace_id=workspace.id,\n    application_group_id=remoteapp.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var pooledbreadthfirst = new Azure.DesktopVirtualization.HostPool(\"pooledbreadthfirst\", new Azure.DesktopVirtualization.HostPoolArgs\n        {\n            Location = example.Location,\n            ResourceGroupName = example.Name,\n            Type = \"Pooled\",\n            LoadBalancerType = \"BreadthFirst\",\n        });\n        var remoteapp = new Azure.DesktopVirtualization.ApplicationGroup(\"remoteapp\", new Azure.DesktopVirtualization.ApplicationGroupArgs\n        {\n            Location = example.Location,\n            ResourceGroupName = example.Name,\n            Type = \"RemoteApp\",\n            HostPoolId = pooledbreadthfirst.Id,\n        });\n        var workspace = new Azure.DesktopVirtualization.Workspace(\"workspace\", new Azure.DesktopVirtualization.WorkspaceArgs\n        {\n            Location = example.Location,\n            ResourceGroupName = example.Name,\n        });\n        var workspaceremoteapp = new Azure.DesktopVirtualization.WorkspaceApplicationGroupAssociation(\"workspaceremoteapp\", new Azure.DesktopVirtualization.WorkspaceApplicationGroupAssociationArgs\n        {\n            WorkspaceId = workspace.Id,\n            ApplicationGroupId = remoteapp.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/desktopvirtualization\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpooledbreadthfirst, err := desktopvirtualization.NewHostPool(ctx, \"pooledbreadthfirst\", \u0026desktopvirtualization.HostPoolArgs{\n\t\t\tLocation:          example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tType:              pulumi.String(\"Pooled\"),\n\t\t\tLoadBalancerType:  pulumi.String(\"BreadthFirst\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tremoteapp, err := desktopvirtualization.NewApplicationGroup(ctx, \"remoteapp\", \u0026desktopvirtualization.ApplicationGroupArgs{\n\t\t\tLocation:          example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tType:              pulumi.String(\"RemoteApp\"),\n\t\t\tHostPoolId:        pooledbreadthfirst.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tworkspace, err := desktopvirtualization.NewWorkspace(ctx, \"workspace\", \u0026desktopvirtualization.WorkspaceArgs{\n\t\t\tLocation:          example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = desktopvirtualization.NewWorkspaceApplicationGroupAssociation(ctx, \"workspaceremoteapp\", \u0026desktopvirtualization.WorkspaceApplicationGroupAssociationArgs{\n\t\t\tWorkspaceId:        workspace.ID(),\n\t\t\tApplicationGroupId: remoteapp.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAssociations between Virtual Desktop Workspaces and Virtual Desktop Application Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:desktopvirtualization/workspaceApplicationGroupAssociation:WorkspaceApplicationGroupAssociation association1 \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myGroup1/providers/Microsoft.DesktopVirtualization/workspaces/myworkspace|/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/myapplicationgroup\"\n```\n\n ",
      "inputProperties": {
        "applicationGroupId": {
          "description": "The resource ID for the Virtual Desktop Application Group.\n",
          "type": "string"
        },
        "workspaceId": {
          "description": "The resource ID for the Virtual Desktop Workspace.\n",
          "type": "string"
        }
      },
      "properties": {
        "applicationGroupId": {
          "description": "The resource ID for the Virtual Desktop Application Group.\n",
          "type": "string"
        },
        "workspaceId": {
          "description": "The resource ID for the Virtual Desktop Workspace.\n",
          "type": "string"
        }
      },
      "required": [
        "applicationGroupId",
        "workspaceId"
      ],
      "requiredInputs": [
        "applicationGroupId",
        "workspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WorkspaceApplicationGroupAssociation resources.\n",
        "properties": {
          "applicationGroupId": {
            "description": "The resource ID for the Virtual Desktop Application Group.\n",
            "type": "string"
          },
          "workspaceId": {
            "description": "The resource ID for the Virtual Desktop Workspace.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:devspace/controller:Controller": {
      "description": "Manages a DevSpace Controller.\n\n\u003e **NOTE:** Microsoft will be retiring Azure Dev Spaces on 31 October 2023, please see the product [documentation](https://azure.microsoft.com/en-us/updates/azure-dev-spaces-is-retiring-on-31-october-2023/) for more information.\n\n!\u003e **NOTE:** The Azure API no longer allows provisioning new DevSpace Controllers - as such this resource exists only to allow existing users to continue managing these in the provider at this time.\n\n\n## Import\n\nDevSpace Controller's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:devspace/controller:Controller controller1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DevSpaces/controllers/controller1Name\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported location where the DevSpace Controller should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the DevSpace Controller. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the DevSpace Controller resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this DevSpace Controller. Possible values are `S1`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "targetContainerHostCredentialsBase64": {
          "description": "Base64 encoding of `kube_config_raw` of Azure Kubernetes Service cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "targetContainerHostResourceId": {
          "description": "The resource id of Azure Kubernetes Service cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "dataPlaneFqdn": {
          "description": "DNS name for accessing DataPlane services.\n",
          "type": "string"
        },
        "hostSuffix": {
          "description": "The host suffix for the DevSpace Controller.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported location where the DevSpace Controller should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the DevSpace Controller. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the DevSpace Controller resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this DevSpace Controller. Possible values are `S1`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "targetContainerHostCredentialsBase64": {
          "description": "Base64 encoding of `kube_config_raw` of Azure Kubernetes Service cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "targetContainerHostResourceId": {
          "description": "The resource id of Azure Kubernetes Service cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "dataPlaneFqdn",
        "hostSuffix",
        "location",
        "name",
        "resourceGroupName",
        "skuName",
        "targetContainerHostCredentialsBase64",
        "targetContainerHostResourceId"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "skuName",
        "targetContainerHostCredentialsBase64",
        "targetContainerHostResourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Controller resources.\n",
        "properties": {
          "dataPlaneFqdn": {
            "description": "DNS name for accessing DataPlane services.\n",
            "type": "string"
          },
          "hostSuffix": {
            "description": "The host suffix for the DevSpace Controller.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported location where the DevSpace Controller should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the DevSpace Controller. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group under which the DevSpace Controller resource has to be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "Specifies the SKU Name for this DevSpace Controller. Possible values are `S1`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "targetContainerHostCredentialsBase64": {
            "description": "Base64 encoding of `kube_config_raw` of Azure Kubernetes Service cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "targetContainerHostResourceId": {
            "description": "The resource id of Azure Kubernetes Service cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:devtest/globalVMShutdownSchedule:GlobalVMShutdownSchedule": {
      "description": "Manages automated shutdown schedules for Azure VMs that are not within an Azure DevTest Lab. While this is part of the DevTest Labs service in Azure,\nthis resource applies only to standard VMs, not DevTest Lab VMs. To manage automated shutdown schedules for DevTest Lab VMs, reference the\n`azure.devtest.Schedule` resource\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"testconfiguration1\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleLinuxVirtualMachine = new azure.compute.LinuxVirtualMachine(\"exampleLinuxVirtualMachine\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    networkInterfaceIds: [exampleNetworkInterface.id],\n    size: \"Standard_B2s\",\n    sourceImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04-LTS\",\n        version: \"latest\",\n    },\n    osDisk: {\n        name: `myosdisk-%d`,\n        caching: \"ReadWrite\",\n        managedDiskType: \"Standard_LRS\",\n    },\n    adminUsername: \"testadmin\",\n    adminPassword: \"Password1234!\",\n    disablePasswordAuthentication: false,\n});\nconst exampleGlobalVMShutdownSchedule = new azure.devtest.GlobalVMShutdownSchedule(\"exampleGlobalVMShutdownSchedule\", {\n    virtualMachineId: azurerm_virtual_machine.example.id,\n    location: exampleResourceGroup.location,\n    enabled: true,\n    dailyRecurrenceTime: \"1100\",\n    timezone: \"Pacific Standard Time\",\n    notificationSettings: {\n        enabled: true,\n        timeInMinutes: \"60\",\n        webhookUrl: \"https://sample-webhook-url.example.com\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"testconfiguration1\",\n        subnet_id=example_subnet.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nexample_linux_virtual_machine = azure.compute.LinuxVirtualMachine(\"exampleLinuxVirtualMachine\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    network_interface_ids=[example_network_interface.id],\n    size=\"Standard_B2s\",\n    source_image_reference=azure.compute.LinuxVirtualMachineSourceImageReferenceArgs(\n        publisher=\"Canonical\",\n        offer=\"UbuntuServer\",\n        sku=\"16.04-LTS\",\n        version=\"latest\",\n    ),\n    os_disk=azure.compute.LinuxVirtualMachineOsDiskArgs(\n        name=\"myosdisk-%d\",\n        caching=\"ReadWrite\",\n        managed_disk_type=\"Standard_LRS\",\n    ),\n    admin_username=\"testadmin\",\n    admin_password=\"Password1234!\",\n    disable_password_authentication=False)\nexample_global_vm_shutdown_schedule = azure.devtest.GlobalVMShutdownSchedule(\"exampleGlobalVMShutdownSchedule\",\n    virtual_machine_id=azurerm_virtual_machine[\"example\"][\"id\"],\n    location=example_resource_group.location,\n    enabled=True,\n    daily_recurrence_time=\"1100\",\n    timezone=\"Pacific Standard Time\",\n    notification_settings=azure.devtest.GlobalVMShutdownScheduleNotificationSettingsArgs(\n        enabled=True,\n        time_in_minutes=60,\n        webhook_url=\"https://sample-webhook-url.example.com\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"testconfiguration1\",\n                    SubnetId = exampleSubnet.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var exampleLinuxVirtualMachine = new Azure.Compute.LinuxVirtualMachine(\"exampleLinuxVirtualMachine\", new Azure.Compute.LinuxVirtualMachineArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            NetworkInterfaceIds = \n            {\n                exampleNetworkInterface.Id,\n            },\n            Size = \"Standard_B2s\",\n            SourceImageReference = new Azure.Compute.Inputs.LinuxVirtualMachineSourceImageReferenceArgs\n            {\n                Publisher = \"Canonical\",\n                Offer = \"UbuntuServer\",\n                Sku = \"16.04-LTS\",\n                Version = \"latest\",\n            },\n            OsDisk = new Azure.Compute.Inputs.LinuxVirtualMachineOsDiskArgs\n            {\n                Name = \"myosdisk-%d\",\n                Caching = \"ReadWrite\",\n                ManagedDiskType = \"Standard_LRS\",\n            },\n            AdminUsername = \"testadmin\",\n            AdminPassword = \"Password1234!\",\n            DisablePasswordAuthentication = false,\n        });\n        var exampleGlobalVMShutdownSchedule = new Azure.DevTest.GlobalVMShutdownSchedule(\"exampleGlobalVMShutdownSchedule\", new Azure.DevTest.GlobalVMShutdownScheduleArgs\n        {\n            VirtualMachineId = azurerm_virtual_machine.Example.Id,\n            Location = exampleResourceGroup.Location,\n            Enabled = true,\n            DailyRecurrenceTime = \"1100\",\n            Timezone = \"Pacific Standard Time\",\n            NotificationSettings = new Azure.DevTest.Inputs.GlobalVMShutdownScheduleNotificationSettingsArgs\n            {\n                Enabled = true,\n                TimeInMinutes = 60,\n                WebhookUrl = \"https://sample-webhook-url.example.com\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/devtest\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkInterface, err := network.NewNetworkInterface(ctx, \"exampleNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"testconfiguration1\"),\n\t\t\t\t\tSubnetId:                   exampleSubnet.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\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 = compute.NewLinuxVirtualMachine(ctx, \"exampleLinuxVirtualMachine\", \u0026compute.LinuxVirtualMachineArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNetworkInterfaceIds: pulumi.StringArray{\n\t\t\t\texampleNetworkInterface.ID(),\n\t\t\t},\n\t\t\tSize: pulumi.String(\"Standard_B2s\"),\n\t\t\tSourceImageReference: \u0026compute.LinuxVirtualMachineSourceImageReferenceArgs{\n\t\t\t\tPublisher: pulumi.String(\"Canonical\"),\n\t\t\t\tOffer:     pulumi.String(\"UbuntuServer\"),\n\t\t\t\tSku:       pulumi.String(\"16.04-LTS\"),\n\t\t\t\tVersion:   pulumi.String(\"latest\"),\n\t\t\t},\n\t\t\tOsDisk: \u0026compute.LinuxVirtualMachineOsDiskArgs{\n\t\t\t\tName:            pulumi.String(fmt.Sprintf(\"%v%v%v\", \"myosdisk-\", \"%\", \"d\")),\n\t\t\t\tCaching:         pulumi.String(\"ReadWrite\"),\n\t\t\t\tManagedDiskType: \"Standard_LRS\",\n\t\t\t},\n\t\t\tAdminUsername:                 pulumi.String(\"testadmin\"),\n\t\t\tAdminPassword:                 pulumi.String(\"Password1234!\"),\n\t\t\tDisablePasswordAuthentication: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = devtest.NewGlobalVMShutdownSchedule(ctx, \"exampleGlobalVMShutdownSchedule\", \u0026devtest.GlobalVMShutdownScheduleArgs{\n\t\t\tVirtualMachineId:    pulumi.Any(azurerm_virtual_machine.Example.Id),\n\t\t\tLocation:            exampleResourceGroup.Location,\n\t\t\tEnabled:             pulumi.Bool(true),\n\t\t\tDailyRecurrenceTime: pulumi.String(\"1100\"),\n\t\t\tTimezone:            pulumi.String(\"Pacific Standard Time\"),\n\t\t\tNotificationSettings: \u0026devtest.GlobalVMShutdownScheduleNotificationSettingsArgs{\n\t\t\t\tEnabled:       pulumi.Bool(true),\n\t\t\t\tTimeInMinutes: pulumi.Int(60),\n\t\t\t\tWebhookUrl:    pulumi.String(\"https://sample-webhook-url.example.com\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAn existing Dev Test Global Shutdown Schedule can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:devtest/globalVMShutdownSchedule:GlobalVMShutdownSchedule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-rg/providers/Microsoft.DevTestLab/schedules/shutdown-computevm-SampleVM\n```\n\n The name of the resource within the `resource id` will always follow the format `shutdown-computevm-\u003cVM Name\u003e` where `\u003cVM Name\u003e` is replaced by the name of the target Virtual Machine ",
      "inputProperties": {
        "dailyRecurrenceTime": {
          "description": "The time each day when the schedule takes effect. Must match the format HHmm where HH is 00-23 and mm is 00-59 (e.g. 0930, 2300, etc.)\n",
          "type": "string"
        },
        "enabled": {
          "description": "Whether to enable the schedule. Possible values are `true` and `false`. Defaults to `true`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "The location where the schedule is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notificationSettings": {
          "$ref": "#/types/azure:devtest/GlobalVMShutdownScheduleNotificationSettings:GlobalVMShutdownScheduleNotificationSettings"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "timezone": {
          "description": "The time zone ID (e.g. Pacific Standard time). Refer to this guide for a [full list of accepted time zone names](https://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/).\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "The resource ID of the target ARM-based Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "dailyRecurrenceTime": {
          "description": "The time each day when the schedule takes effect. Must match the format HHmm where HH is 00-23 and mm is 00-59 (e.g. 0930, 2300, etc.)\n",
          "type": "string"
        },
        "enabled": {
          "description": "Whether to enable the schedule. Possible values are `true` and `false`. Defaults to `true`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "The location where the schedule is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notificationSettings": {
          "$ref": "#/types/azure:devtest/GlobalVMShutdownScheduleNotificationSettings:GlobalVMShutdownScheduleNotificationSettings"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "timezone": {
          "description": "The time zone ID (e.g. Pacific Standard time). Refer to this guide for a [full list of accepted time zone names](https://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/).\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "The resource ID of the target ARM-based Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "dailyRecurrenceTime",
        "location",
        "notificationSettings",
        "timezone",
        "virtualMachineId"
      ],
      "requiredInputs": [
        "dailyRecurrenceTime",
        "notificationSettings",
        "timezone",
        "virtualMachineId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GlobalVMShutdownSchedule resources.\n",
        "properties": {
          "dailyRecurrenceTime": {
            "description": "The time each day when the schedule takes effect. Must match the format HHmm where HH is 00-23 and mm is 00-59 (e.g. 0930, 2300, etc.)\n",
            "type": "string"
          },
          "enabled": {
            "description": "Whether to enable the schedule. Possible values are `true` and `false`. Defaults to `true`.\n",
            "type": "boolean"
          },
          "location": {
            "description": "The location where the schedule is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "notificationSettings": {
            "$ref": "#/types/azure:devtest/GlobalVMShutdownScheduleNotificationSettings:GlobalVMShutdownScheduleNotificationSettings"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "timezone": {
            "description": "The time zone ID (e.g. Pacific Standard time). Refer to this guide for a [full list of accepted time zone names](https://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/).\n",
            "type": "string"
          },
          "virtualMachineId": {
            "description": "The resource ID of the target ARM-based Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:devtest/lab:Lab": {
      "description": "Manages a Dev Test Lab.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleLab = new azure.devtest.Lab(\"exampleLab\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tags: {\n        Sydney: \"Australia\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_lab = azure.devtest.Lab(\"exampleLab\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tags={\n        \"Sydney\": \"Australia\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleLab = new Azure.DevTest.Lab(\"exampleLab\", new Azure.DevTest.LabArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Tags = \n            {\n                { \"Sydney\", \"Australia\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/devtest\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = devtest.NewLab(ctx, \"exampleLab\", \u0026devtest.LabArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Sydney\": pulumi.String(\"Australia\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDev Test Labs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:devtest/lab:Lab lab1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DevTestLab/labs/lab1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the Dev Test Lab should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Dev Test Lab. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the Dev Test Lab resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageType": {
          "description": "The type of storage used by the Dev Test Lab. Possible values are `Standard` and `Premium`. Defaults to `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "artifactsStorageAccountId": {
          "description": "The ID of the Storage Account used for Artifact Storage.\n",
          "type": "string"
        },
        "defaultPremiumStorageAccountId": {
          "description": "The ID of the Default Premium Storage Account for this Dev Test Lab.\n",
          "type": "string"
        },
        "defaultStorageAccountId": {
          "description": "The ID of the Default Storage Account for this Dev Test Lab.\n",
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key used for this Dev Test Lab.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the Dev Test Lab should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Dev Test Lab. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "premiumDataDiskStorageAccountId": {
          "description": "The ID of the Storage Account used for Storage of Premium Data Disk.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the Dev Test Lab resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageType": {
          "description": "The type of storage used by the Dev Test Lab. Possible values are `Standard` and `Premium`. Defaults to `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "uniqueIdentifier": {
          "description": "The unique immutable identifier of the Dev Test Lab.\n",
          "type": "string"
        }
      },
      "required": [
        "artifactsStorageAccountId",
        "defaultPremiumStorageAccountId",
        "defaultStorageAccountId",
        "keyVaultId",
        "location",
        "name",
        "premiumDataDiskStorageAccountId",
        "resourceGroupName",
        "uniqueIdentifier"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Lab resources.\n",
        "properties": {
          "artifactsStorageAccountId": {
            "description": "The ID of the Storage Account used for Artifact Storage.\n",
            "type": "string"
          },
          "defaultPremiumStorageAccountId": {
            "description": "The ID of the Default Premium Storage Account for this Dev Test Lab.\n",
            "type": "string"
          },
          "defaultStorageAccountId": {
            "description": "The ID of the Default Storage Account for this Dev Test Lab.\n",
            "type": "string"
          },
          "keyVaultId": {
            "description": "The ID of the Key used for this Dev Test Lab.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the Dev Test Lab should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Dev Test Lab. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "premiumDataDiskStorageAccountId": {
            "description": "The ID of the Storage Account used for Storage of Premium Data Disk.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group under which the Dev Test Lab resource has to be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageType": {
            "description": "The type of storage used by the Dev Test Lab. Possible values are `Standard` and `Premium`. Defaults to `Premium`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "uniqueIdentifier": {
            "description": "The unique immutable identifier of the Dev Test Lab.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:devtest/linuxVirtualMachine:LinuxVirtualMachine": {
      "description": "Manages a Linux Virtual Machine within a Dev Test Lab.\n\n\n## Import\n\nDev Test Linux Virtual Machines can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:devtest/linuxVirtualMachine:LinuxVirtualMachine machine1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DevTestLab/labs/lab1/virtualmachines/machine1\n```\n\n ",
      "inputProperties": {
        "allowClaim": {
          "description": "Can this Virtual Machine be claimed by users? Defaults to `true`.\n",
          "type": "boolean"
        },
        "disallowPublicIpAddress": {
          "description": "Should the Virtual Machine be created without a Public IP Address? Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "galleryImageReference": {
          "$ref": "#/types/azure:devtest/LinuxVirtualMachineGalleryImageReference:LinuxVirtualMachineGalleryImageReference",
          "description": "A `gallery_image_reference` block as defined below.\n"
        },
        "inboundNatRules": {
          "description": "One or more `inbound_nat_rule` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:devtest/LinuxVirtualMachineInboundNatRule:LinuxVirtualMachineInboundNatRule"
          },
          "type": "array"
        },
        "labName": {
          "description": "Specifies the name of the Dev Test Lab in which the Virtual Machine should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "labSubnetName": {
          "description": "The name of a Subnet within the Dev Test Virtual Network where this machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "labVirtualNetworkId": {
          "description": "The ID of the Dev Test Virtual Network where this Virtual Machine should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the Dev Test Lab exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Dev Test Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notes": {
          "description": "Any notes about the Virtual Machine.\n",
          "type": "string"
        },
        "password": {
          "description": "The Password associated with the `username` used to login to this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Dev Test Lab resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "size": {
          "description": "The Machine Size to use for this Virtual Machine, such as `Standard_F2`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sshKey": {
          "description": "The SSH Key associated with the `username` used to login to this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageType": {
          "description": "The type of Storage to use on this Virtual Machine. Possible values are `Standard` and `Premium`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "username": {
          "description": "The Username associated with the local administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "allowClaim": {
          "description": "Can this Virtual Machine be claimed by users? Defaults to `true`.\n",
          "type": "boolean"
        },
        "disallowPublicIpAddress": {
          "description": "Should the Virtual Machine be created without a Public IP Address? Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "fqdn": {
          "description": "The FQDN of the Virtual Machine.\n",
          "type": "string"
        },
        "galleryImageReference": {
          "$ref": "#/types/azure:devtest/LinuxVirtualMachineGalleryImageReference:LinuxVirtualMachineGalleryImageReference",
          "description": "A `gallery_image_reference` block as defined below.\n"
        },
        "inboundNatRules": {
          "description": "One or more `inbound_nat_rule` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:devtest/LinuxVirtualMachineInboundNatRule:LinuxVirtualMachineInboundNatRule"
          },
          "type": "array"
        },
        "labName": {
          "description": "Specifies the name of the Dev Test Lab in which the Virtual Machine should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "labSubnetName": {
          "description": "The name of a Subnet within the Dev Test Virtual Network where this machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "labVirtualNetworkId": {
          "description": "The ID of the Dev Test Virtual Network where this Virtual Machine should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the Dev Test Lab exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Dev Test Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notes": {
          "description": "Any notes about the Virtual Machine.\n",
          "type": "string"
        },
        "password": {
          "description": "The Password associated with the `username` used to login to this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Dev Test Lab resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "size": {
          "description": "The Machine Size to use for this Virtual Machine, such as `Standard_F2`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sshKey": {
          "description": "The SSH Key associated with the `username` used to login to this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageType": {
          "description": "The type of Storage to use on this Virtual Machine. Possible values are `Standard` and `Premium`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "uniqueIdentifier": {
          "description": "The unique immutable identifier of the Virtual Machine.\n",
          "type": "string"
        },
        "username": {
          "description": "The Username associated with the local administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "galleryImageReference",
        "labName",
        "labSubnetName",
        "labVirtualNetworkId",
        "location",
        "name",
        "resourceGroupName",
        "size",
        "storageType",
        "uniqueIdentifier",
        "username"
      ],
      "requiredInputs": [
        "galleryImageReference",
        "labName",
        "labSubnetName",
        "labVirtualNetworkId",
        "resourceGroupName",
        "size",
        "storageType",
        "username"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinuxVirtualMachine resources.\n",
        "properties": {
          "allowClaim": {
            "description": "Can this Virtual Machine be claimed by users? Defaults to `true`.\n",
            "type": "boolean"
          },
          "disallowPublicIpAddress": {
            "description": "Should the Virtual Machine be created without a Public IP Address? Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "fqdn": {
            "description": "The FQDN of the Virtual Machine.\n",
            "type": "string"
          },
          "galleryImageReference": {
            "$ref": "#/types/azure:devtest/LinuxVirtualMachineGalleryImageReference:LinuxVirtualMachineGalleryImageReference",
            "description": "A `gallery_image_reference` block as defined below.\n"
          },
          "inboundNatRules": {
            "description": "One or more `inbound_nat_rule` blocks as defined below. Changing this forces a new resource to be created.\n",
            "items": {
              "$ref": "#/types/azure:devtest/LinuxVirtualMachineInboundNatRule:LinuxVirtualMachineInboundNatRule"
            },
            "type": "array"
          },
          "labName": {
            "description": "Specifies the name of the Dev Test Lab in which the Virtual Machine should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "labSubnetName": {
            "description": "The name of a Subnet within the Dev Test Virtual Network where this machine should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "labVirtualNetworkId": {
            "description": "The ID of the Dev Test Virtual Network where this Virtual Machine should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the Dev Test Lab exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Dev Test Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "notes": {
            "description": "Any notes about the Virtual Machine.\n",
            "type": "string"
          },
          "password": {
            "description": "The Password associated with the `username` used to login to this Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Dev Test Lab resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "size": {
            "description": "The Machine Size to use for this Virtual Machine, such as `Standard_F2`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sshKey": {
            "description": "The SSH Key associated with the `username` used to login to this Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageType": {
            "description": "The type of Storage to use on this Virtual Machine. Possible values are `Standard` and `Premium`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "uniqueIdentifier": {
            "description": "The unique immutable identifier of the Virtual Machine.\n",
            "type": "string"
          },
          "username": {
            "description": "The Username associated with the local administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:devtest/policy:Policy": {
      "description": "Manages a Policy within a Dev Test Policy Set.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleLab = new azure.devtest.Lab(\"exampleLab\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tags: {\n        Sydney: \"Australia\",\n    },\n});\nconst examplePolicy = new azure.devtest.Policy(\"examplePolicy\", {\n    policySetName: \"default\",\n    labName: exampleLab.name,\n    resourceGroupName: exampleResourceGroup.name,\n    factData: \"\",\n    threshold: \"999\",\n    evaluatorType: \"MaxValuePolicy\",\n    tags: {\n        Acceptance: \"Test\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_lab = azure.devtest.Lab(\"exampleLab\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tags={\n        \"Sydney\": \"Australia\",\n    })\nexample_policy = azure.devtest.Policy(\"examplePolicy\",\n    policy_set_name=\"default\",\n    lab_name=example_lab.name,\n    resource_group_name=example_resource_group.name,\n    fact_data=\"\",\n    threshold=\"999\",\n    evaluator_type=\"MaxValuePolicy\",\n    tags={\n        \"Acceptance\": \"Test\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleLab = new Azure.DevTest.Lab(\"exampleLab\", new Azure.DevTest.LabArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Tags = \n            {\n                { \"Sydney\", \"Australia\" },\n            },\n        });\n        var examplePolicy = new Azure.DevTest.Policy(\"examplePolicy\", new Azure.DevTest.PolicyArgs\n        {\n            PolicySetName = \"default\",\n            LabName = exampleLab.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            FactData = \"\",\n            Threshold = \"999\",\n            EvaluatorType = \"MaxValuePolicy\",\n            Tags = \n            {\n                { \"Acceptance\", \"Test\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/devtest\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLab, err := devtest.NewLab(ctx, \"exampleLab\", \u0026devtest.LabArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Sydney\": pulumi.String(\"Australia\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = devtest.NewPolicy(ctx, \"examplePolicy\", \u0026devtest.PolicyArgs{\n\t\t\tPolicySetName:     pulumi.String(\"default\"),\n\t\t\tLabName:           exampleLab.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tFactData:          pulumi.String(\"\"),\n\t\t\tThreshold:         pulumi.String(\"999\"),\n\t\t\tEvaluatorType:     pulumi.String(\"MaxValuePolicy\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Acceptance\": pulumi.String(\"Test\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDev Test Policies can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:devtest/policy:Policy policy1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DevTestLab/labs/lab1/policysets/default/policies/policy1\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "A description for the Policy.\n",
          "type": "string"
        },
        "evaluatorType": {
          "description": "The Evaluation Type used for this Policy. Possible values include: 'AllowedValuesPolicy', 'MaxValuePolicy'. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "factData": {
          "description": "The Fact Data for this Policy.\n",
          "type": "string"
        },
        "labName": {
          "description": "Specifies the name of the Dev Test Lab in which the Policy should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Dev Test Policy. Possible values are `GalleryImage`, `LabPremiumVmCount`, `LabTargetCost`, `LabVmCount`, `LabVmSize`, `UserOwnedLabPremiumVmCount`, `UserOwnedLabVmCount` and `UserOwnedLabVmCountInSubnet`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "policySetName": {
          "description": "Specifies the name of the Policy Set within the Dev Test Lab where this policy should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Dev Test Lab resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "threshold": {
          "description": "The Threshold for this Policy.\n",
          "type": "string"
        }
      },
      "properties": {
        "description": {
          "description": "A description for the Policy.\n",
          "type": "string"
        },
        "evaluatorType": {
          "description": "The Evaluation Type used for this Policy. Possible values include: 'AllowedValuesPolicy', 'MaxValuePolicy'. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "factData": {
          "description": "The Fact Data for this Policy.\n",
          "type": "string"
        },
        "labName": {
          "description": "Specifies the name of the Dev Test Lab in which the Policy should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Dev Test Policy. Possible values are `GalleryImage`, `LabPremiumVmCount`, `LabTargetCost`, `LabVmCount`, `LabVmSize`, `UserOwnedLabPremiumVmCount`, `UserOwnedLabVmCount` and `UserOwnedLabVmCountInSubnet`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "policySetName": {
          "description": "Specifies the name of the Policy Set within the Dev Test Lab where this policy should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Dev Test Lab resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "threshold": {
          "description": "The Threshold for this Policy.\n",
          "type": "string"
        }
      },
      "required": [
        "evaluatorType",
        "labName",
        "name",
        "policySetName",
        "resourceGroupName",
        "threshold"
      ],
      "requiredInputs": [
        "evaluatorType",
        "labName",
        "policySetName",
        "resourceGroupName",
        "threshold"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Policy resources.\n",
        "properties": {
          "description": {
            "description": "A description for the Policy.\n",
            "type": "string"
          },
          "evaluatorType": {
            "description": "The Evaluation Type used for this Policy. Possible values include: 'AllowedValuesPolicy', 'MaxValuePolicy'. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "factData": {
            "description": "The Fact Data for this Policy.\n",
            "type": "string"
          },
          "labName": {
            "description": "Specifies the name of the Dev Test Lab in which the Policy should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Dev Test Policy. Possible values are `GalleryImage`, `LabPremiumVmCount`, `LabTargetCost`, `LabVmCount`, `LabVmSize`, `UserOwnedLabPremiumVmCount`, `UserOwnedLabVmCount` and `UserOwnedLabVmCountInSubnet`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "policySetName": {
            "description": "Specifies the name of the Policy Set within the Dev Test Lab where this policy should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Dev Test Lab resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "threshold": {
            "description": "The Threshold for this Policy.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:devtest/schedule:Schedule": {
      "description": "Manages automated startup and shutdown schedules for Azure Dev Test Lab.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleLab = new azure.devtest.Lab(\"exampleLab\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSchedule = new azure.devtest.Schedule(\"exampleSchedule\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    labName: exampleLab.name,\n    weeklyRecurrence: {\n        time: \"1100\",\n        weekDays: [\n            \"Monday\",\n            \"Tuesday\",\n        ],\n    },\n    timeZoneId: \"Pacific Standard Time\",\n    taskType: \"LabVmsStartupTask\",\n    notificationSettings: {},\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_lab = azure.devtest.Lab(\"exampleLab\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_schedule = azure.devtest.Schedule(\"exampleSchedule\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    lab_name=example_lab.name,\n    weekly_recurrence=azure.devtest.ScheduleWeeklyRecurrenceArgs(\n        time=\"1100\",\n        week_days=[\n            \"Monday\",\n            \"Tuesday\",\n        ],\n    ),\n    time_zone_id=\"Pacific Standard Time\",\n    task_type=\"LabVmsStartupTask\",\n    notification_settings=azure.devtest.ScheduleNotificationSettingsArgs(),\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleLab = new Azure.DevTest.Lab(\"exampleLab\", new Azure.DevTest.LabArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSchedule = new Azure.DevTest.Schedule(\"exampleSchedule\", new Azure.DevTest.ScheduleArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            LabName = exampleLab.Name,\n            WeeklyRecurrence = new Azure.DevTest.Inputs.ScheduleWeeklyRecurrenceArgs\n            {\n                Time = \"1100\",\n                WeekDays = \n                {\n                    \"Monday\",\n                    \"Tuesday\",\n                },\n            },\n            TimeZoneId = \"Pacific Standard Time\",\n            TaskType = \"LabVmsStartupTask\",\n            NotificationSettings = ,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/devtest\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLab, err := devtest.NewLab(ctx, \"exampleLab\", \u0026devtest.LabArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = devtest.NewSchedule(ctx, \"exampleSchedule\", \u0026devtest.ScheduleArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLabName:           exampleLab.Name,\n\t\t\tWeeklyRecurrence: \u0026devtest.ScheduleWeeklyRecurrenceArgs{\n\t\t\t\tTime: pulumi.String(\"1100\"),\n\t\t\t\tWeekDays: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Monday\"),\n\t\t\t\t\tpulumi.String(\"Tuesday\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTimeZoneId:           pulumi.String(\"Pacific Standard Time\"),\n\t\t\tTaskType:             pulumi.String(\"LabVmsStartupTask\"),\n\t\t\tNotificationSettings: nil,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDevTest Schedule's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:devtest/schedule:Schedule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DevTestLab/labs/myDevTestLab/schedules/labvmautostart\n```\n\n ",
      "inputProperties": {
        "dailyRecurrence": {
          "$ref": "#/types/azure:devtest/ScheduleDailyRecurrence:ScheduleDailyRecurrence"
        },
        "hourlyRecurrence": {
          "$ref": "#/types/azure:devtest/ScheduleHourlyRecurrence:ScheduleHourlyRecurrence"
        },
        "labName": {
          "description": "The name of the dev test lab. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The location where the schedule is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the dev test lab schedule. Valid value for name depends on the `task_type`. For instance for task_type `LabVmsStartupTask` the name needs to be `LabVmAutoStart`.\n",
          "type": "string"
        },
        "notificationSettings": {
          "$ref": "#/types/azure:devtest/ScheduleNotificationSettings:ScheduleNotificationSettings"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the dev test lab schedule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "The status of this schedule. Possible values are `Enabled` and `Disabled`. Defaults to `Disabled`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "taskType": {
          "description": "The task type of the schedule. Possible values include `LabVmsShutdownTask` and `LabVmAutoStart`.\n",
          "type": "string"
        },
        "timeZoneId": {
          "description": "The time zone ID (e.g. Pacific Standard time).\n",
          "type": "string"
        },
        "weeklyRecurrence": {
          "$ref": "#/types/azure:devtest/ScheduleWeeklyRecurrence:ScheduleWeeklyRecurrence"
        }
      },
      "properties": {
        "dailyRecurrence": {
          "$ref": "#/types/azure:devtest/ScheduleDailyRecurrence:ScheduleDailyRecurrence"
        },
        "hourlyRecurrence": {
          "$ref": "#/types/azure:devtest/ScheduleHourlyRecurrence:ScheduleHourlyRecurrence"
        },
        "labName": {
          "description": "The name of the dev test lab. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The location where the schedule is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the dev test lab schedule. Valid value for name depends on the `task_type`. For instance for task_type `LabVmsStartupTask` the name needs to be `LabVmAutoStart`.\n",
          "type": "string"
        },
        "notificationSettings": {
          "$ref": "#/types/azure:devtest/ScheduleNotificationSettings:ScheduleNotificationSettings"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the dev test lab schedule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "The status of this schedule. Possible values are `Enabled` and `Disabled`. Defaults to `Disabled`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "taskType": {
          "description": "The task type of the schedule. Possible values include `LabVmsShutdownTask` and `LabVmAutoStart`.\n",
          "type": "string"
        },
        "timeZoneId": {
          "description": "The time zone ID (e.g. Pacific Standard time).\n",
          "type": "string"
        },
        "weeklyRecurrence": {
          "$ref": "#/types/azure:devtest/ScheduleWeeklyRecurrence:ScheduleWeeklyRecurrence"
        }
      },
      "required": [
        "labName",
        "location",
        "name",
        "notificationSettings",
        "resourceGroupName",
        "taskType",
        "timeZoneId"
      ],
      "requiredInputs": [
        "labName",
        "notificationSettings",
        "resourceGroupName",
        "taskType",
        "timeZoneId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Schedule resources.\n",
        "properties": {
          "dailyRecurrence": {
            "$ref": "#/types/azure:devtest/ScheduleDailyRecurrence:ScheduleDailyRecurrence"
          },
          "hourlyRecurrence": {
            "$ref": "#/types/azure:devtest/ScheduleHourlyRecurrence:ScheduleHourlyRecurrence"
          },
          "labName": {
            "description": "The name of the dev test lab. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "The location where the schedule is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the dev test lab schedule. Valid value for name depends on the `task_type`. For instance for task_type `LabVmsStartupTask` the name needs to be `LabVmAutoStart`.\n",
            "type": "string"
          },
          "notificationSettings": {
            "$ref": "#/types/azure:devtest/ScheduleNotificationSettings:ScheduleNotificationSettings"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the dev test lab schedule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "status": {
            "description": "The status of this schedule. Possible values are `Enabled` and `Disabled`. Defaults to `Disabled`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "taskType": {
            "description": "The task type of the schedule. Possible values include `LabVmsShutdownTask` and `LabVmAutoStart`.\n",
            "type": "string"
          },
          "timeZoneId": {
            "description": "The time zone ID (e.g. Pacific Standard time).\n",
            "type": "string"
          },
          "weeklyRecurrence": {
            "$ref": "#/types/azure:devtest/ScheduleWeeklyRecurrence:ScheduleWeeklyRecurrence"
          }
        },
        "type": "object"
      }
    },
    "azure:devtest/virtualNetwork:VirtualNetwork": {
      "description": "Manages a Virtual Network within a DevTest Lab.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleLab = new azure.devtest.Lab(\"exampleLab\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tags: {\n        Sydney: \"Australia\",\n    },\n});\nconst exampleVirtualNetwork = new azure.devtest.VirtualNetwork(\"exampleVirtualNetwork\", {\n    labName: exampleLab.name,\n    resourceGroupName: exampleResourceGroup.name,\n    subnet: {\n        usePublicIpAddress: \"Allow\",\n        useInVirtualMachineCreation: \"Allow\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_lab = azure.devtest.Lab(\"exampleLab\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tags={\n        \"Sydney\": \"Australia\",\n    })\nexample_virtual_network = azure.devtest.VirtualNetwork(\"exampleVirtualNetwork\",\n    lab_name=example_lab.name,\n    resource_group_name=example_resource_group.name,\n    subnet=azure.devtest.VirtualNetworkSubnetArgs(\n        use_public_ip_address=\"Allow\",\n        use_in_virtual_machine_creation=\"Allow\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleLab = new Azure.DevTest.Lab(\"exampleLab\", new Azure.DevTest.LabArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Tags = \n            {\n                { \"Sydney\", \"Australia\" },\n            },\n        });\n        var exampleVirtualNetwork = new Azure.DevTest.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.DevTest.VirtualNetworkArgs\n        {\n            LabName = exampleLab.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Subnet = new Azure.DevTest.Inputs.VirtualNetworkSubnetArgs\n            {\n                UsePublicIpAddress = \"Allow\",\n                UseInVirtualMachineCreation = \"Allow\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/devtest\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLab, err := devtest.NewLab(ctx, \"exampleLab\", \u0026devtest.LabArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Sydney\": pulumi.String(\"Australia\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = devtest.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026devtest.VirtualNetworkArgs{\n\t\t\tLabName:           exampleLab.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSubnet: \u0026devtest.VirtualNetworkSubnetArgs{\n\t\t\t\tUsePublicIpAddress:          pulumi.String(\"Allow\"),\n\t\t\t\tUseInVirtualMachineCreation: pulumi.String(\"Allow\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDevTest Virtual Networks can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:devtest/virtualNetwork:VirtualNetwork network1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DevTestLab/labs/lab1/virtualnetworks/network1\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "A description for the Virtual Network.\n",
          "type": "string"
        },
        "labName": {
          "description": "Specifies the name of the Dev Test Lab in which the Virtual Network should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Dev Test Virtual Network. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Dev Test Lab resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnet": {
          "$ref": "#/types/azure:devtest/VirtualNetworkSubnet:VirtualNetworkSubnet",
          "description": "A `subnet` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "description": {
          "description": "A description for the Virtual Network.\n",
          "type": "string"
        },
        "labName": {
          "description": "Specifies the name of the Dev Test Lab in which the Virtual Network should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Dev Test Virtual Network. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Dev Test Lab resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnet": {
          "$ref": "#/types/azure:devtest/VirtualNetworkSubnet:VirtualNetworkSubnet",
          "description": "A `subnet` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "uniqueIdentifier": {
          "description": "The unique immutable identifier of the Dev Test Virtual Network.\n",
          "type": "string"
        }
      },
      "required": [
        "labName",
        "name",
        "resourceGroupName",
        "subnet",
        "uniqueIdentifier"
      ],
      "requiredInputs": [
        "labName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualNetwork resources.\n",
        "properties": {
          "description": {
            "description": "A description for the Virtual Network.\n",
            "type": "string"
          },
          "labName": {
            "description": "Specifies the name of the Dev Test Lab in which the Virtual Network should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Dev Test Virtual Network. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Dev Test Lab resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnet": {
            "$ref": "#/types/azure:devtest/VirtualNetworkSubnet:VirtualNetworkSubnet",
            "description": "A `subnet` block as defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "uniqueIdentifier": {
            "description": "The unique immutable identifier of the Dev Test Virtual Network.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:devtest/windowsVirtualMachine:WindowsVirtualMachine": {
      "description": "Manages a Windows Virtual Machine within a Dev Test Lab.\n\n\n## Import\n\nDevTest Windows Virtual Machines can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:devtest/windowsVirtualMachine:WindowsVirtualMachine machine1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DevTestLab/labs/lab1/virtualmachines/machine1\n```\n\n ",
      "inputProperties": {
        "allowClaim": {
          "description": "Can this Virtual Machine be claimed by users? Defaults to `true`.\n",
          "type": "boolean"
        },
        "disallowPublicIpAddress": {
          "description": "Should the Virtual Machine be created without a Public IP Address? Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "galleryImageReference": {
          "$ref": "#/types/azure:devtest/WindowsVirtualMachineGalleryImageReference:WindowsVirtualMachineGalleryImageReference",
          "description": "A `gallery_image_reference` block as defined below.\n"
        },
        "inboundNatRules": {
          "description": "One or more `inbound_nat_rule` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:devtest/WindowsVirtualMachineInboundNatRule:WindowsVirtualMachineInboundNatRule"
          },
          "type": "array"
        },
        "labName": {
          "description": "Specifies the name of the Dev Test Lab in which the Virtual Machine should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "labSubnetName": {
          "description": "The name of a Subnet within the Dev Test Virtual Network where this machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "labVirtualNetworkId": {
          "description": "The ID of the Dev Test Virtual Network where this Virtual Machine should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the Dev Test Lab exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Dev Test Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notes": {
          "description": "Any notes about the Virtual Machine.\n",
          "type": "string"
        },
        "password": {
          "description": "The Password associated with the `username` used to login to this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Dev Test Lab resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "size": {
          "description": "The Machine Size to use for this Virtual Machine, such as `Standard_F2`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageType": {
          "description": "The type of Storage to use on this Virtual Machine. Possible values are `Standard` and `Premium`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "username": {
          "description": "The Username associated with the local administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "allowClaim": {
          "description": "Can this Virtual Machine be claimed by users? Defaults to `true`.\n",
          "type": "boolean"
        },
        "disallowPublicIpAddress": {
          "description": "Should the Virtual Machine be created without a Public IP Address? Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "fqdn": {
          "description": "The FQDN of the Virtual Machine.\n",
          "type": "string"
        },
        "galleryImageReference": {
          "$ref": "#/types/azure:devtest/WindowsVirtualMachineGalleryImageReference:WindowsVirtualMachineGalleryImageReference",
          "description": "A `gallery_image_reference` block as defined below.\n"
        },
        "inboundNatRules": {
          "description": "One or more `inbound_nat_rule` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:devtest/WindowsVirtualMachineInboundNatRule:WindowsVirtualMachineInboundNatRule"
          },
          "type": "array"
        },
        "labName": {
          "description": "Specifies the name of the Dev Test Lab in which the Virtual Machine should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "labSubnetName": {
          "description": "The name of a Subnet within the Dev Test Virtual Network where this machine should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "labVirtualNetworkId": {
          "description": "The ID of the Dev Test Virtual Network where this Virtual Machine should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the Dev Test Lab exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Dev Test Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notes": {
          "description": "Any notes about the Virtual Machine.\n",
          "type": "string"
        },
        "password": {
          "description": "The Password associated with the `username` used to login to this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Dev Test Lab resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "size": {
          "description": "The Machine Size to use for this Virtual Machine, such as `Standard_F2`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageType": {
          "description": "The type of Storage to use on this Virtual Machine. Possible values are `Standard` and `Premium`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "uniqueIdentifier": {
          "description": "The unique immutable identifier of the Virtual Machine.\n",
          "type": "string"
        },
        "username": {
          "description": "The Username associated with the local administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "galleryImageReference",
        "labName",
        "labSubnetName",
        "labVirtualNetworkId",
        "location",
        "name",
        "password",
        "resourceGroupName",
        "size",
        "storageType",
        "uniqueIdentifier",
        "username"
      ],
      "requiredInputs": [
        "galleryImageReference",
        "labName",
        "labSubnetName",
        "labVirtualNetworkId",
        "password",
        "resourceGroupName",
        "size",
        "storageType",
        "username"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering WindowsVirtualMachine resources.\n",
        "properties": {
          "allowClaim": {
            "description": "Can this Virtual Machine be claimed by users? Defaults to `true`.\n",
            "type": "boolean"
          },
          "disallowPublicIpAddress": {
            "description": "Should the Virtual Machine be created without a Public IP Address? Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "fqdn": {
            "description": "The FQDN of the Virtual Machine.\n",
            "type": "string"
          },
          "galleryImageReference": {
            "$ref": "#/types/azure:devtest/WindowsVirtualMachineGalleryImageReference:WindowsVirtualMachineGalleryImageReference",
            "description": "A `gallery_image_reference` block as defined below.\n"
          },
          "inboundNatRules": {
            "description": "One or more `inbound_nat_rule` blocks as defined below. Changing this forces a new resource to be created.\n",
            "items": {
              "$ref": "#/types/azure:devtest/WindowsVirtualMachineInboundNatRule:WindowsVirtualMachineInboundNatRule"
            },
            "type": "array"
          },
          "labName": {
            "description": "Specifies the name of the Dev Test Lab in which the Virtual Machine should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "labSubnetName": {
            "description": "The name of a Subnet within the Dev Test Virtual Network where this machine should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "labVirtualNetworkId": {
            "description": "The ID of the Dev Test Virtual Network where this Virtual Machine should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the Dev Test Lab exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Dev Test Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "notes": {
            "description": "Any notes about the Virtual Machine.\n",
            "type": "string"
          },
          "password": {
            "description": "The Password associated with the `username` used to login to this Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Dev Test Lab resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "size": {
            "description": "The Machine Size to use for this Virtual Machine, such as `Standard_F2`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageType": {
            "description": "The type of Storage to use on this Virtual Machine. Possible values are `Standard` and `Premium`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "uniqueIdentifier": {
            "description": "The unique immutable identifier of the Virtual Machine.\n",
            "type": "string"
          },
          "username": {
            "description": "The Username associated with the local administrator on this Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:digitaltwins/endpointEventGrid:EndpointEventGrid": {
      "description": "Manages a Digital Twins Event Grid Endpoint.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInstance = new azure.digitaltwins.Instance(\"exampleInstance\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleTopic = new azure.eventgrid.Topic(\"exampleTopic\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleEndpointEventGrid = new azure.digitaltwins.EndpointEventGrid(\"exampleEndpointEventGrid\", {\n    digitalTwinsId: exampleInstance.id,\n    eventgridTopicEndpoint: exampleTopic.endpoint,\n    eventgridTopicPrimaryAccessKey: exampleTopic.primaryAccessKey,\n    eventgridTopicSecondaryAccessKey: exampleTopic.secondaryAccessKey,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_instance = azure.digitaltwins.Instance(\"exampleInstance\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_topic = azure.eventgrid.Topic(\"exampleTopic\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_endpoint_event_grid = azure.digitaltwins.EndpointEventGrid(\"exampleEndpointEventGrid\",\n    digital_twins_id=example_instance.id,\n    eventgrid_topic_endpoint=example_topic.endpoint,\n    eventgrid_topic_primary_access_key=example_topic.primary_access_key,\n    eventgrid_topic_secondary_access_key=example_topic.secondary_access_key)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInstance = new Azure.DigitalTwins.Instance(\"exampleInstance\", new Azure.DigitalTwins.InstanceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleTopic = new Azure.EventGrid.Topic(\"exampleTopic\", new Azure.EventGrid.TopicArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleEndpointEventGrid = new Azure.DigitalTwins.EndpointEventGrid(\"exampleEndpointEventGrid\", new Azure.DigitalTwins.EndpointEventGridArgs\n        {\n            DigitalTwinsId = exampleInstance.Id,\n            EventgridTopicEndpoint = exampleTopic.Endpoint,\n            EventgridTopicPrimaryAccessKey = exampleTopic.PrimaryAccessKey,\n            EventgridTopicSecondaryAccessKey = exampleTopic.SecondaryAccessKey,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/digitaltwins\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := digitaltwins.NewInstance(ctx, \"exampleInstance\", \u0026digitaltwins.InstanceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := eventgrid.NewTopic(ctx, \"exampleTopic\", \u0026eventgrid.TopicArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = digitaltwins.NewEndpointEventGrid(ctx, \"exampleEndpointEventGrid\", \u0026digitaltwins.EndpointEventGridArgs{\n\t\t\tDigitalTwinsId:                   exampleInstance.ID(),\n\t\t\tEventgridTopicEndpoint:           exampleTopic.Endpoint,\n\t\t\tEventgridTopicPrimaryAccessKey:   exampleTopic.PrimaryAccessKey,\n\t\t\tEventgridTopicSecondaryAccessKey: exampleTopic.SecondaryAccessKey,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDigital Twins Eventgrid Endpoints can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:digitaltwins/endpointEventGrid:EndpointEventGrid example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DigitalTwins/digitalTwinsInstances/dt1/endpoints/ep1\n```\n\n ",
      "inputProperties": {
        "deadLetterStorageSecret": {
          "description": "The storage secret of the dead-lettering, whose format is `https://\u003cstorageAccountname\u003e.blob.core.windows.net/\u003ccontainerName\u003e?\u003cSASToken\u003e`. When an endpoint can't deliver an event within a certain time period or after trying to deliver the event a certain number of times, it can send the undelivered event to a storage account.\n",
          "type": "string"
        },
        "digitalTwinsId": {
          "description": "The resource ID of the Digital Twins Instance. Changing this forces a new Digital Twins Eventgrid Endpoint to be created.\n",
          "type": "string"
        },
        "eventgridTopicEndpoint": {
          "description": "The endpoint of the Event Grid Topic.\n",
          "type": "string"
        },
        "eventgridTopicPrimaryAccessKey": {
          "description": "The primary access key of the Event Grid Topic.\n",
          "type": "string"
        },
        "eventgridTopicSecondaryAccessKey": {
          "description": "The secondary access key of the Event Grid Topic.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Digital Twins Eventgrid Endpoint. Changing this forces a new Digital Twins Eventgrid Endpoint to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "deadLetterStorageSecret": {
          "description": "The storage secret of the dead-lettering, whose format is `https://\u003cstorageAccountname\u003e.blob.core.windows.net/\u003ccontainerName\u003e?\u003cSASToken\u003e`. When an endpoint can't deliver an event within a certain time period or after trying to deliver the event a certain number of times, it can send the undelivered event to a storage account.\n",
          "type": "string"
        },
        "digitalTwinsId": {
          "description": "The resource ID of the Digital Twins Instance. Changing this forces a new Digital Twins Eventgrid Endpoint to be created.\n",
          "type": "string"
        },
        "eventgridTopicEndpoint": {
          "description": "The endpoint of the Event Grid Topic.\n",
          "type": "string"
        },
        "eventgridTopicPrimaryAccessKey": {
          "description": "The primary access key of the Event Grid Topic.\n",
          "type": "string"
        },
        "eventgridTopicSecondaryAccessKey": {
          "description": "The secondary access key of the Event Grid Topic.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Digital Twins Eventgrid Endpoint. Changing this forces a new Digital Twins Eventgrid Endpoint to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "digitalTwinsId",
        "eventgridTopicEndpoint",
        "eventgridTopicPrimaryAccessKey",
        "eventgridTopicSecondaryAccessKey",
        "name"
      ],
      "requiredInputs": [
        "digitalTwinsId",
        "eventgridTopicEndpoint",
        "eventgridTopicPrimaryAccessKey",
        "eventgridTopicSecondaryAccessKey"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EndpointEventGrid resources.\n",
        "properties": {
          "deadLetterStorageSecret": {
            "description": "The storage secret of the dead-lettering, whose format is `https://\u003cstorageAccountname\u003e.blob.core.windows.net/\u003ccontainerName\u003e?\u003cSASToken\u003e`. When an endpoint can't deliver an event within a certain time period or after trying to deliver the event a certain number of times, it can send the undelivered event to a storage account.\n",
            "type": "string"
          },
          "digitalTwinsId": {
            "description": "The resource ID of the Digital Twins Instance. Changing this forces a new Digital Twins Eventgrid Endpoint to be created.\n",
            "type": "string"
          },
          "eventgridTopicEndpoint": {
            "description": "The endpoint of the Event Grid Topic.\n",
            "type": "string"
          },
          "eventgridTopicPrimaryAccessKey": {
            "description": "The primary access key of the Event Grid Topic.\n",
            "type": "string"
          },
          "eventgridTopicSecondaryAccessKey": {
            "description": "The secondary access key of the Event Grid Topic.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Digital Twins Eventgrid Endpoint. Changing this forces a new Digital Twins Eventgrid Endpoint to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:digitaltwins/endpointEventHub:EndpointEventHub": {
      "description": "Manages a Digital Twins Event Hub Endpoint.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInstance = new azure.digitaltwins.Instance(\"exampleInstance\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleEventHubNamespace = new azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n});\nconst exampleEventHub = new azure.eventhub.EventHub(\"exampleEventHub\", {\n    namespaceName: exampleEventHubNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    partitionCount: 2,\n    messageRetention: 1,\n});\nconst exampleAuthorizationRule = new azure.eventhub.AuthorizationRule(\"exampleAuthorizationRule\", {\n    namespaceName: exampleEventHubNamespace.name,\n    eventhubName: exampleEventHub.name,\n    resourceGroupName: exampleResourceGroup.name,\n    listen: false,\n    send: true,\n    manage: false,\n});\nconst exampleEndpointEventHub = new azure.digitaltwins.EndpointEventHub(\"exampleEndpointEventHub\", {\n    digitalTwinsId: exampleInstance.id,\n    eventhubPrimaryConnectionString: exampleAuthorizationRule.primaryConnectionString,\n    eventhubSecondaryConnectionString: exampleAuthorizationRule.secondaryConnectionString,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_instance = azure.digitaltwins.Instance(\"exampleInstance\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_event_hub_namespace = azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\")\nexample_event_hub = azure.eventhub.EventHub(\"exampleEventHub\",\n    namespace_name=example_event_hub_namespace.name,\n    resource_group_name=example_resource_group.name,\n    partition_count=2,\n    message_retention=1)\nexample_authorization_rule = azure.eventhub.AuthorizationRule(\"exampleAuthorizationRule\",\n    namespace_name=example_event_hub_namespace.name,\n    eventhub_name=example_event_hub.name,\n    resource_group_name=example_resource_group.name,\n    listen=False,\n    send=True,\n    manage=False)\nexample_endpoint_event_hub = azure.digitaltwins.EndpointEventHub(\"exampleEndpointEventHub\",\n    digital_twins_id=example_instance.id,\n    eventhub_primary_connection_string=example_authorization_rule.primary_connection_string,\n    eventhub_secondary_connection_string=example_authorization_rule.secondary_connection_string)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInstance = new Azure.DigitalTwins.Instance(\"exampleInstance\", new Azure.DigitalTwins.InstanceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"exampleEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n        });\n        var exampleEventHub = new Azure.EventHub.EventHub(\"exampleEventHub\", new Azure.EventHub.EventHubArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PartitionCount = 2,\n            MessageRetention = 1,\n        });\n        var exampleAuthorizationRule = new Azure.EventHub.AuthorizationRule(\"exampleAuthorizationRule\", new Azure.EventHub.AuthorizationRuleArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            EventhubName = exampleEventHub.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Listen = false,\n            Send = true,\n            Manage = false,\n        });\n        var exampleEndpointEventHub = new Azure.DigitalTwins.EndpointEventHub(\"exampleEndpointEventHub\", new Azure.DigitalTwins.EndpointEventHubArgs\n        {\n            DigitalTwinsId = exampleInstance.Id,\n            EventhubPrimaryConnectionString = exampleAuthorizationRule.PrimaryConnectionString,\n            EventhubSecondaryConnectionString = exampleAuthorizationRule.SecondaryConnectionString,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/digitaltwins\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := digitaltwins.NewInstance(ctx, \"exampleInstance\", \u0026digitaltwins.InstanceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHubNamespace, err := eventhub.NewEventHubNamespace(ctx, \"exampleEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHub, err := eventhub.NewEventHub(ctx, \"exampleEventHub\", \u0026eventhub.EventHubArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPartitionCount:    pulumi.Int(2),\n\t\t\tMessageRetention:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAuthorizationRule, err := eventhub.NewAuthorizationRule(ctx, \"exampleAuthorizationRule\", \u0026eventhub.AuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tEventhubName:      exampleEventHub.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tListen:            pulumi.Bool(false),\n\t\t\tSend:              pulumi.Bool(true),\n\t\t\tManage:            pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = digitaltwins.NewEndpointEventHub(ctx, \"exampleEndpointEventHub\", \u0026digitaltwins.EndpointEventHubArgs{\n\t\t\tDigitalTwinsId:                    exampleInstance.ID(),\n\t\t\tEventhubPrimaryConnectionString:   exampleAuthorizationRule.PrimaryConnectionString,\n\t\t\tEventhubSecondaryConnectionString: exampleAuthorizationRule.SecondaryConnectionString,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDigital Twins Eventhub Endpoints can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:digitaltwins/endpointEventHub:EndpointEventHub example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DigitalTwins/digitalTwinsInstances/dt1/endpoints/ep1\n```\n\n ",
      "inputProperties": {
        "deadLetterStorageSecret": {
          "description": "The storage secret of the dead-lettering, whose format is `https://\u003cstorageAccountname\u003e.blob.core.windows.net/\u003ccontainerName\u003e?\u003cSASToken\u003e`. When an endpoint can't deliver an event within a certain time period or after trying to deliver the event a certain number of times, it can send the undelivered event to a storage account.\n",
          "type": "string"
        },
        "digitalTwinsId": {
          "description": "The resource ID of the Digital Twins Instance. Changing this forces a new Digital Twins Event Hub Endpoint to be created.\n",
          "type": "string"
        },
        "eventhubPrimaryConnectionString": {
          "description": "The primary connection string of the Event Hub Authorization Rule with a minimum of `send` permission.\n",
          "type": "string"
        },
        "eventhubSecondaryConnectionString": {
          "description": "The secondary connection string of the Event Hub Authorization Rule with a minimum of `send` permission.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Digital Twins Event Hub Endpoint. Changing this forces a new Digital Twins Event Hub Endpoint to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "deadLetterStorageSecret": {
          "description": "The storage secret of the dead-lettering, whose format is `https://\u003cstorageAccountname\u003e.blob.core.windows.net/\u003ccontainerName\u003e?\u003cSASToken\u003e`. When an endpoint can't deliver an event within a certain time period or after trying to deliver the event a certain number of times, it can send the undelivered event to a storage account.\n",
          "type": "string"
        },
        "digitalTwinsId": {
          "description": "The resource ID of the Digital Twins Instance. Changing this forces a new Digital Twins Event Hub Endpoint to be created.\n",
          "type": "string"
        },
        "eventhubPrimaryConnectionString": {
          "description": "The primary connection string of the Event Hub Authorization Rule with a minimum of `send` permission.\n",
          "type": "string"
        },
        "eventhubSecondaryConnectionString": {
          "description": "The secondary connection string of the Event Hub Authorization Rule with a minimum of `send` permission.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Digital Twins Event Hub Endpoint. Changing this forces a new Digital Twins Event Hub Endpoint to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "digitalTwinsId",
        "eventhubPrimaryConnectionString",
        "eventhubSecondaryConnectionString",
        "name"
      ],
      "requiredInputs": [
        "digitalTwinsId",
        "eventhubPrimaryConnectionString",
        "eventhubSecondaryConnectionString"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EndpointEventHub resources.\n",
        "properties": {
          "deadLetterStorageSecret": {
            "description": "The storage secret of the dead-lettering, whose format is `https://\u003cstorageAccountname\u003e.blob.core.windows.net/\u003ccontainerName\u003e?\u003cSASToken\u003e`. When an endpoint can't deliver an event within a certain time period or after trying to deliver the event a certain number of times, it can send the undelivered event to a storage account.\n",
            "type": "string"
          },
          "digitalTwinsId": {
            "description": "The resource ID of the Digital Twins Instance. Changing this forces a new Digital Twins Event Hub Endpoint to be created.\n",
            "type": "string"
          },
          "eventhubPrimaryConnectionString": {
            "description": "The primary connection string of the Event Hub Authorization Rule with a minimum of `send` permission.\n",
            "type": "string"
          },
          "eventhubSecondaryConnectionString": {
            "description": "The secondary connection string of the Event Hub Authorization Rule with a minimum of `send` permission.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Digital Twins Event Hub Endpoint. Changing this forces a new Digital Twins Event Hub Endpoint to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:digitaltwins/endpointServicebus:EndpointServicebus": {
      "description": "Manages a Digital Twins Service Bus Endpoint.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInstance = new azure.digitaltwins.Instance(\"exampleInstance\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n});\nconst exampleTopic = new azure.servicebus.Topic(\"exampleTopic\", {\n    namespaceName: exampleNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleTopicAuthorizationRule = new azure.servicebus.TopicAuthorizationRule(\"exampleTopicAuthorizationRule\", {\n    namespaceName: exampleNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    topicName: exampleTopic.name,\n    listen: false,\n    send: true,\n    manage: false,\n});\nconst exampleEndpointServicebus = new azure.digitaltwins.EndpointServicebus(\"exampleEndpointServicebus\", {\n    digitalTwinsId: exampleInstance.id,\n    servicebusPrimaryConnectionString: exampleTopicAuthorizationRule.primaryConnectionString,\n    servicebusSecondaryConnectionString: exampleTopicAuthorizationRule.secondaryConnectionString,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_instance = azure.digitaltwins.Instance(\"exampleInstance\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\")\nexample_topic = azure.servicebus.Topic(\"exampleTopic\",\n    namespace_name=example_namespace.name,\n    resource_group_name=example_resource_group.name)\nexample_topic_authorization_rule = azure.servicebus.TopicAuthorizationRule(\"exampleTopicAuthorizationRule\",\n    namespace_name=example_namespace.name,\n    resource_group_name=example_resource_group.name,\n    topic_name=example_topic.name,\n    listen=False,\n    send=True,\n    manage=False)\nexample_endpoint_servicebus = azure.digitaltwins.EndpointServicebus(\"exampleEndpointServicebus\",\n    digital_twins_id=example_instance.id,\n    servicebus_primary_connection_string=example_topic_authorization_rule.primary_connection_string,\n    servicebus_secondary_connection_string=example_topic_authorization_rule.secondary_connection_string)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInstance = new Azure.DigitalTwins.Instance(\"exampleInstance\", new Azure.DigitalTwins.InstanceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n        });\n        var exampleTopic = new Azure.ServiceBus.Topic(\"exampleTopic\", new Azure.ServiceBus.TopicArgs\n        {\n            NamespaceName = exampleNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleTopicAuthorizationRule = new Azure.ServiceBus.TopicAuthorizationRule(\"exampleTopicAuthorizationRule\", new Azure.ServiceBus.TopicAuthorizationRuleArgs\n        {\n            NamespaceName = exampleNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TopicName = exampleTopic.Name,\n            Listen = false,\n            Send = true,\n            Manage = false,\n        });\n        var exampleEndpointServicebus = new Azure.DigitalTwins.EndpointServicebus(\"exampleEndpointServicebus\", new Azure.DigitalTwins.EndpointServicebusArgs\n        {\n            DigitalTwinsId = exampleInstance.Id,\n            ServicebusPrimaryConnectionString = exampleTopicAuthorizationRule.PrimaryConnectionString,\n            ServicebusSecondaryConnectionString = exampleTopicAuthorizationRule.SecondaryConnectionString,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/digitaltwins\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := digitaltwins.NewInstance(ctx, \"exampleInstance\", \u0026digitaltwins.InstanceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := servicebus.NewTopic(ctx, \"exampleTopic\", \u0026servicebus.TopicArgs{\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopicAuthorizationRule, err := servicebus.NewTopicAuthorizationRule(ctx, \"exampleTopicAuthorizationRule\", \u0026servicebus.TopicAuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTopicName:         exampleTopic.Name,\n\t\t\tListen:            pulumi.Bool(false),\n\t\t\tSend:              pulumi.Bool(true),\n\t\t\tManage:            pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = digitaltwins.NewEndpointServicebus(ctx, \"exampleEndpointServicebus\", \u0026digitaltwins.EndpointServicebusArgs{\n\t\t\tDigitalTwinsId:                      exampleInstance.ID(),\n\t\t\tServicebusPrimaryConnectionString:   exampleTopicAuthorizationRule.PrimaryConnectionString,\n\t\t\tServicebusSecondaryConnectionString: exampleTopicAuthorizationRule.SecondaryConnectionString,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDigital Twins Service Bus Endpoints can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:digitaltwins/endpointServicebus:EndpointServicebus example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DigitalTwins/digitalTwinsInstances/dt1/endpoints/ep1\n```\n\n ",
      "inputProperties": {
        "deadLetterStorageSecret": {
          "description": "The storage secret of the dead-lettering, whose format is `https://\u003cstorageAccountname\u003e.blob.core.windows.net/\u003ccontainerName\u003e?\u003cSASToken\u003e`. When an endpoint can't deliver an event within a certain time period or after trying to deliver the event a certain number of times, it can send the undelivered event to a storage account.\n",
          "type": "string"
        },
        "digitalTwinsId": {
          "description": "The ID of the Digital Twins Instance. Changing this forces a new Digital Twins Service Bus Endpoint to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Digital Twins Service Bus Endpoint. Changing this forces a new Digital Twins Service Bus Endpoint to be created.\n",
          "type": "string"
        },
        "servicebusPrimaryConnectionString": {
          "description": "The primary connection string of the Service Bus Topic Authorization Rule with a minimum of `send` permission. .\n",
          "type": "string"
        },
        "servicebusSecondaryConnectionString": {
          "description": "The secondary connection string of the Service Bus Topic Authorization Rule with a minimum of `send` permission.\n",
          "type": "string"
        }
      },
      "properties": {
        "deadLetterStorageSecret": {
          "description": "The storage secret of the dead-lettering, whose format is `https://\u003cstorageAccountname\u003e.blob.core.windows.net/\u003ccontainerName\u003e?\u003cSASToken\u003e`. When an endpoint can't deliver an event within a certain time period or after trying to deliver the event a certain number of times, it can send the undelivered event to a storage account.\n",
          "type": "string"
        },
        "digitalTwinsId": {
          "description": "The ID of the Digital Twins Instance. Changing this forces a new Digital Twins Service Bus Endpoint to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Digital Twins Service Bus Endpoint. Changing this forces a new Digital Twins Service Bus Endpoint to be created.\n",
          "type": "string"
        },
        "servicebusPrimaryConnectionString": {
          "description": "The primary connection string of the Service Bus Topic Authorization Rule with a minimum of `send` permission. .\n",
          "type": "string"
        },
        "servicebusSecondaryConnectionString": {
          "description": "The secondary connection string of the Service Bus Topic Authorization Rule with a minimum of `send` permission.\n",
          "type": "string"
        }
      },
      "required": [
        "digitalTwinsId",
        "name",
        "servicebusPrimaryConnectionString",
        "servicebusSecondaryConnectionString"
      ],
      "requiredInputs": [
        "digitalTwinsId",
        "servicebusPrimaryConnectionString",
        "servicebusSecondaryConnectionString"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EndpointServicebus resources.\n",
        "properties": {
          "deadLetterStorageSecret": {
            "description": "The storage secret of the dead-lettering, whose format is `https://\u003cstorageAccountname\u003e.blob.core.windows.net/\u003ccontainerName\u003e?\u003cSASToken\u003e`. When an endpoint can't deliver an event within a certain time period or after trying to deliver the event a certain number of times, it can send the undelivered event to a storage account.\n",
            "type": "string"
          },
          "digitalTwinsId": {
            "description": "The ID of the Digital Twins Instance. Changing this forces a new Digital Twins Service Bus Endpoint to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Digital Twins Service Bus Endpoint. Changing this forces a new Digital Twins Service Bus Endpoint to be created.\n",
            "type": "string"
          },
          "servicebusPrimaryConnectionString": {
            "description": "The primary connection string of the Service Bus Topic Authorization Rule with a minimum of `send` permission. .\n",
            "type": "string"
          },
          "servicebusSecondaryConnectionString": {
            "description": "The secondary connection string of the Service Bus Topic Authorization Rule with a minimum of `send` permission.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:digitaltwins/instance:Instance": {
      "description": "Manages a Digital Twins instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInstance = new azure.digitaltwins.Instance(\"exampleInstance\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_instance = azure.digitaltwins.Instance(\"exampleInstance\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInstance = new Azure.DigitalTwins.Instance(\"exampleInstance\", new Azure.DigitalTwins.InstanceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Tags = \n            {\n                { \"foo\", \"bar\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/digitaltwins\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = digitaltwins.NewInstance(ctx, \"exampleInstance\", \u0026digitaltwins.InstanceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDigital Twins instances can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:digitaltwins/instance:Instance example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DigitalTwins/digitalTwinsInstances/dt1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The Azure Region where the Digital Twins instance should exist. Changing this forces a new Digital Twins instance to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Digital Twins instance. Changing this forces a new Digital Twins instance to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Digital Twins instance should exist. Changing this forces a new Digital Twins instance to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Digital Twins instance.\n",
          "type": "object"
        }
      },
      "properties": {
        "hostName": {
          "description": "The Api endpoint to work with this Digital Twins instance.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Digital Twins instance should exist. Changing this forces a new Digital Twins instance to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Digital Twins instance. Changing this forces a new Digital Twins instance to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Digital Twins instance should exist. Changing this forces a new Digital Twins instance to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Digital Twins instance.\n",
          "type": "object"
        }
      },
      "required": [
        "hostName",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Instance resources.\n",
        "properties": {
          "hostName": {
            "description": "The Api endpoint to work with this Digital Twins instance.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Digital Twins instance should exist. Changing this forces a new Digital Twins instance to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Digital Twins instance. Changing this forces a new Digital Twins instance to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Digital Twins instance should exist. Changing this forces a new Digital Twins instance to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Digital Twins instance.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:dns/aRecord:ARecord": {
      "description": "Enables you to manage DNS A Records within Azure DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.dns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst exampleARecord = new azure.dns.ARecord(\"exampleARecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    records: [\"10.0.180.17\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.dns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_a_record = azure.dns.ARecord(\"exampleARecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    records=[\"10.0.180.17\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.Dns.Zone(\"exampleZone\", new Azure.Dns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleARecord = new Azure.Dns.ARecord(\"exampleARecord\", new Azure.Dns.ARecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            Records = \n            {\n                \"10.0.180.17\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := dns.NewZone(ctx, \"exampleZone\", \u0026dns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewARecord(ctx, \"exampleARecord\", \u0026dns.ARecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.180.17\"),\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\n{{% /example %}}\n{{% example %}}\n### Alias Record)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.dns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Dynamic\",\n    ipVersion: \"IPv4\",\n});\nconst exampleARecord = new azure.dns.ARecord(\"exampleARecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    targetResourceId: examplePublicIp.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.dns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Dynamic\",\n    ip_version=\"IPv4\")\nexample_a_record = azure.dns.ARecord(\"exampleARecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    target_resource_id=example_public_ip.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.Dns.Zone(\"exampleZone\", new Azure.Dns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Dynamic\",\n            IpVersion = \"IPv4\",\n        });\n        var exampleARecord = new Azure.Dns.ARecord(\"exampleARecord\", new Azure.Dns.ARecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            TargetResourceId = examplePublicIp.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := dns.NewZone(ctx, \"exampleZone\", \u0026dns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Dynamic\"),\n\t\t\tIpVersion:         pulumi.String(\"IPv4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewARecord(ctx, \"exampleARecord\", \u0026dns.ARecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tTargetResourceId:  examplePublicIp.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dns/aRecord:ARecord example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/dnszones/zone1/A/myrecord1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS A Record.\n",
          "type": "string"
        },
        "records": {
          "description": "List of IPv4 Addresses. Conflicts with `target_resource_id`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "targetResourceId": {
          "description": "The Azure resource id of the target object. Conflicts with `records`\n",
          "type": "string"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS A Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS A Record.\n",
          "type": "string"
        },
        "records": {
          "description": "List of IPv4 Addresses. Conflicts with `target_resource_id`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "targetResourceId": {
          "description": "The Azure resource id of the target object. Conflicts with `records`\n",
          "type": "string"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ARecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS A Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS A Record.\n",
            "type": "string"
          },
          "records": {
            "description": "List of IPv4 Addresses. Conflicts with `target_resource_id`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "targetResourceId": {
            "description": "The Azure resource id of the target object. Conflicts with `records`\n",
            "type": "string"
          },
          "ttl": {
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dns/aaaaRecord:AaaaRecord": {
      "description": "Enables you to manage DNS AAAA Records within Azure DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.dns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst exampleAaaaRecord = new azure.dns.AaaaRecord(\"exampleAaaaRecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    records: [\"2001:db8::1:0:0:1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.dns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_aaaa_record = azure.dns.AaaaRecord(\"exampleAaaaRecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    records=[\"2001:db8::1:0:0:1\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.Dns.Zone(\"exampleZone\", new Azure.Dns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleAaaaRecord = new Azure.Dns.AaaaRecord(\"exampleAaaaRecord\", new Azure.Dns.AaaaRecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            Records = \n            {\n                \"2001:db8::1:0:0:1\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := dns.NewZone(ctx, \"exampleZone\", \u0026dns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewAaaaRecord(ctx, \"exampleAaaaRecord\", \u0026dns.AaaaRecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2001:db8::1:0:0:1\"),\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\n{{% /example %}}\n{{% example %}}\n### Alias Record)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.dns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Dynamic\",\n    ipVersion: \"IPv6\",\n});\nconst exampleAaaaRecord = new azure.dns.AaaaRecord(\"exampleAaaaRecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    targetResourceId: examplePublicIp.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.dns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Dynamic\",\n    ip_version=\"IPv6\")\nexample_aaaa_record = azure.dns.AaaaRecord(\"exampleAaaaRecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    target_resource_id=example_public_ip.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.Dns.Zone(\"exampleZone\", new Azure.Dns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Dynamic\",\n            IpVersion = \"IPv6\",\n        });\n        var exampleAaaaRecord = new Azure.Dns.AaaaRecord(\"exampleAaaaRecord\", new Azure.Dns.AaaaRecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            TargetResourceId = examplePublicIp.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := dns.NewZone(ctx, \"exampleZone\", \u0026dns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Dynamic\"),\n\t\t\tIpVersion:         pulumi.String(\"IPv6\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewAaaaRecord(ctx, \"exampleAaaaRecord\", \u0026dns.AaaaRecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tTargetResourceId:  examplePublicIp.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAAAA records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dns/aaaaRecord:AaaaRecord example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/dnszones/zone1/AAAA/myrecord1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS AAAA Record.\n",
          "type": "string"
        },
        "records": {
          "description": "List of IPv6 Addresses. Conflicts with `target_resource_id`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "targetResourceId": {
          "description": "The Azure resource id of the target object. Conflicts with `records`\n",
          "type": "string"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS AAAA Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS AAAA Record.\n",
          "type": "string"
        },
        "records": {
          "description": "List of IPv6 Addresses. Conflicts with `target_resource_id`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "targetResourceId": {
          "description": "The Azure resource id of the target object. Conflicts with `records`\n",
          "type": "string"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AaaaRecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS AAAA Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS AAAA Record.\n",
            "type": "string"
          },
          "records": {
            "description": "List of IPv6 Addresses. Conflicts with `target_resource_id`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "targetResourceId": {
            "description": "The Azure resource id of the target object. Conflicts with `records`\n",
            "type": "string"
          },
          "ttl": {
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dns/cNameRecord:CNameRecord": {
      "description": "Enables you to manage DNS CNAME Records within Azure DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.dns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst exampleCNameRecord = new azure.dns.CNameRecord(\"exampleCNameRecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    record: \"contoso.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.dns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_c_name_record = azure.dns.CNameRecord(\"exampleCNameRecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    record=\"contoso.com\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.Dns.Zone(\"exampleZone\", new Azure.Dns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleCNameRecord = new Azure.Dns.CNameRecord(\"exampleCNameRecord\", new Azure.Dns.CNameRecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            Record = \"contoso.com\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := dns.NewZone(ctx, \"exampleZone\", \u0026dns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewCNameRecord(ctx, \"exampleCNameRecord\", \u0026dns.CNameRecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecord:            pulumi.String(\"contoso.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\n{{% /example %}}\n{{% example %}}\n### Alias Record)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.dns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst target = new azure.dns.CNameRecord(\"target\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    record: \"contoso.com\",\n});\nconst exampleCNameRecord = new azure.dns.CNameRecord(\"exampleCNameRecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    targetResourceId: target.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.dns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\ntarget = azure.dns.CNameRecord(\"target\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    record=\"contoso.com\")\nexample_c_name_record = azure.dns.CNameRecord(\"exampleCNameRecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    target_resource_id=target.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.Dns.Zone(\"exampleZone\", new Azure.Dns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var target = new Azure.Dns.CNameRecord(\"target\", new Azure.Dns.CNameRecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            Record = \"contoso.com\",\n        });\n        var exampleCNameRecord = new Azure.Dns.CNameRecord(\"exampleCNameRecord\", new Azure.Dns.CNameRecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            TargetResourceId = target.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := dns.NewZone(ctx, \"exampleZone\", \u0026dns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttarget, err := dns.NewCNameRecord(ctx, \"target\", \u0026dns.CNameRecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecord:            pulumi.String(\"contoso.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewCNameRecord(ctx, \"exampleCNameRecord\", \u0026dns.CNameRecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tTargetResourceId:  target.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCNAME records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dns/cNameRecord:CNameRecord example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/dnszones/zone1/CNAME/myrecord1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS CNAME Record.\n",
          "type": "string"
        },
        "record": {
          "description": "The target of the CNAME.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "targetResourceId": {
          "description": "The Azure resource id of the target object. Conflicts with `records`\n",
          "type": "string"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS CName Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS CNAME Record.\n",
          "type": "string"
        },
        "record": {
          "description": "The target of the CNAME.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "targetResourceId": {
          "description": "The Azure resource id of the target object. Conflicts with `records`\n",
          "type": "string"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CNameRecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS CName Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS CNAME Record.\n",
            "type": "string"
          },
          "record": {
            "description": "The target of the CNAME.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "targetResourceId": {
            "description": "The Azure resource id of the target object. Conflicts with `records`\n",
            "type": "string"
          },
          "ttl": {
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dns/caaRecord:CaaRecord": {
      "description": "Enables you to manage DNS CAA Records within Azure DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.dns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst exampleCaaRecord = new azure.dns.CaaRecord(\"exampleCaaRecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    records: [\n        {\n            flags: 0,\n            tag: \"issue\",\n            value: \"example.com\",\n        },\n        {\n            flags: 0,\n            tag: \"issue\",\n            value: \"example.net\",\n        },\n        {\n            flags: 0,\n            tag: \"issuewild\",\n            value: \";\",\n        },\n        {\n            flags: 0,\n            tag: \"iodef\",\n            value: \"mailto:user@nonexisting.tld\",\n        },\n    ],\n    tags: {\n        Environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.dns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_caa_record = azure.dns.CaaRecord(\"exampleCaaRecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    records=[\n        azure.dns.CaaRecordRecordArgs(\n            flags=0,\n            tag=\"issue\",\n            value=\"example.com\",\n        ),\n        azure.dns.CaaRecordRecordArgs(\n            flags=0,\n            tag=\"issue\",\n            value=\"example.net\",\n        ),\n        azure.dns.CaaRecordRecordArgs(\n            flags=0,\n            tag=\"issuewild\",\n            value=\";\",\n        ),\n        azure.dns.CaaRecordRecordArgs(\n            flags=0,\n            tag=\"iodef\",\n            value=\"mailto:user@nonexisting.tld\",\n        ),\n    ],\n    tags={\n        \"Environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.Dns.Zone(\"exampleZone\", new Azure.Dns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleCaaRecord = new Azure.Dns.CaaRecord(\"exampleCaaRecord\", new Azure.Dns.CaaRecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            Records = \n            {\n                new Azure.Dns.Inputs.CaaRecordRecordArgs\n                {\n                    Flags = 0,\n                    Tag = \"issue\",\n                    Value = \"example.com\",\n                },\n                new Azure.Dns.Inputs.CaaRecordRecordArgs\n                {\n                    Flags = 0,\n                    Tag = \"issue\",\n                    Value = \"example.net\",\n                },\n                new Azure.Dns.Inputs.CaaRecordRecordArgs\n                {\n                    Flags = 0,\n                    Tag = \"issuewild\",\n                    Value = \";\",\n                },\n                new Azure.Dns.Inputs.CaaRecordRecordArgs\n                {\n                    Flags = 0,\n                    Tag = \"iodef\",\n                    Value = \"mailto:user@nonexisting.tld\",\n                },\n            },\n            Tags = \n            {\n                { \"Environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := dns.NewZone(ctx, \"exampleZone\", \u0026dns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewCaaRecord(ctx, \"exampleCaaRecord\", \u0026dns.CaaRecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecords: dns.CaaRecordRecordArray{\n\t\t\t\t\u0026dns.CaaRecordRecordArgs{\n\t\t\t\t\tFlags: pulumi.Int(0),\n\t\t\t\t\tTag:   pulumi.String(\"issue\"),\n\t\t\t\t\tValue: pulumi.String(\"example.com\"),\n\t\t\t\t},\n\t\t\t\t\u0026dns.CaaRecordRecordArgs{\n\t\t\t\t\tFlags: pulumi.Int(0),\n\t\t\t\t\tTag:   pulumi.String(\"issue\"),\n\t\t\t\t\tValue: pulumi.String(\"example.net\"),\n\t\t\t\t},\n\t\t\t\t\u0026dns.CaaRecordRecordArgs{\n\t\t\t\t\tFlags: pulumi.Int(0),\n\t\t\t\t\tTag:   pulumi.String(\"issuewild\"),\n\t\t\t\t\tValue: pulumi.String(\";\"),\n\t\t\t\t},\n\t\t\t\t\u0026dns.CaaRecordRecordArgs{\n\t\t\t\t\tFlags: pulumi.Int(0),\n\t\t\t\t\tTag:   pulumi.String(\"iodef\"),\n\t\t\t\t\tValue: pulumi.String(\"mailto:user@nonexisting.tld\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCAA records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dns/caaRecord:CaaRecord example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/dnszones/zone1/CAA/myrecord1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS CAA Record. If you are creating the record in the apex of the zone use `\"@\"` as the name.\n",
          "type": "string"
        },
        "records": {
          "description": "A list of values that make up the CAA record. Each `record` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:dns/CaaRecordRecord:CaaRecordRecord"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS CAA Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS CAA Record. If you are creating the record in the apex of the zone use `\"@\"` as the name.\n",
          "type": "string"
        },
        "records": {
          "description": "A list of values that make up the CAA record. Each `record` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:dns/CaaRecordRecord:CaaRecordRecord"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CaaRecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS CAA Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS CAA Record. If you are creating the record in the apex of the zone use `\"@\"` as the name.\n",
            "type": "string"
          },
          "records": {
            "description": "A list of values that make up the CAA record. Each `record` block supports fields documented below.\n",
            "items": {
              "$ref": "#/types/azure:dns/CaaRecordRecord:CaaRecordRecord"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "ttl": {
            "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dns/mxRecord:MxRecord": {
      "description": "Enables you to manage DNS MX Records within Azure DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.dns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst exampleMxRecord = new azure.dns.MxRecord(\"exampleMxRecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    records: [\n        {\n            preference: 10,\n            exchange: \"mail1.contoso.com\",\n        },\n        {\n            preference: 20,\n            exchange: \"mail2.contoso.com\",\n        },\n    ],\n    tags: {\n        Environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.dns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_mx_record = azure.dns.MxRecord(\"exampleMxRecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    records=[\n        azure.dns.MxRecordRecordArgs(\n            preference=\"10\",\n            exchange=\"mail1.contoso.com\",\n        ),\n        azure.dns.MxRecordRecordArgs(\n            preference=\"20\",\n            exchange=\"mail2.contoso.com\",\n        ),\n    ],\n    tags={\n        \"Environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.Dns.Zone(\"exampleZone\", new Azure.Dns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleMxRecord = new Azure.Dns.MxRecord(\"exampleMxRecord\", new Azure.Dns.MxRecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            Records = \n            {\n                new Azure.Dns.Inputs.MxRecordRecordArgs\n                {\n                    Preference = \"10\",\n                    Exchange = \"mail1.contoso.com\",\n                },\n                new Azure.Dns.Inputs.MxRecordRecordArgs\n                {\n                    Preference = \"20\",\n                    Exchange = \"mail2.contoso.com\",\n                },\n            },\n            Tags = \n            {\n                { \"Environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := dns.NewZone(ctx, \"exampleZone\", \u0026dns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewMxRecord(ctx, \"exampleMxRecord\", \u0026dns.MxRecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecords: dns.MxRecordRecordArray{\n\t\t\t\t\u0026dns.MxRecordRecordArgs{\n\t\t\t\t\tPreference: pulumi.String(\"10\"),\n\t\t\t\t\tExchange:   pulumi.String(\"mail1.contoso.com\"),\n\t\t\t\t},\n\t\t\t\t\u0026dns.MxRecordRecordArgs{\n\t\t\t\t\tPreference: pulumi.String(\"20\"),\n\t\t\t\t\tExchange:   pulumi.String(\"mail2.contoso.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMX records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dns/mxRecord:MxRecord example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/dnszones/zone1/MX/myrecord1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS MX Record. Defaults to `@` (root). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "records": {
          "description": "A list of values that make up the MX record. Each `record` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:dns/MxRecordRecord:MxRecordRecord"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS MX Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS MX Record. Defaults to `@` (root). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "records": {
          "description": "A list of values that make up the MX record. Each `record` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:dns/MxRecordRecord:MxRecordRecord"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MxRecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS MX Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS MX Record. Defaults to `@` (root). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "records": {
            "description": "A list of values that make up the MX record. Each `record` block supports fields documented below.\n",
            "items": {
              "$ref": "#/types/azure:dns/MxRecordRecord:MxRecordRecord"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "ttl": {
            "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dns/nsRecord:NsRecord": {
      "description": "Enables you to manage DNS NS Records within Azure DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.dns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst exampleNsRecord = new azure.dns.NsRecord(\"exampleNsRecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    records: [\n        \"ns1.contoso.com\",\n        \"ns2.contoso.com\",\n    ],\n    tags: {\n        Environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.dns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_ns_record = azure.dns.NsRecord(\"exampleNsRecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    records=[\n        \"ns1.contoso.com\",\n        \"ns2.contoso.com\",\n    ],\n    tags={\n        \"Environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.Dns.Zone(\"exampleZone\", new Azure.Dns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleNsRecord = new Azure.Dns.NsRecord(\"exampleNsRecord\", new Azure.Dns.NsRecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            Records = \n            {\n                \"ns1.contoso.com\",\n                \"ns2.contoso.com\",\n            },\n            Tags = \n            {\n                { \"Environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := dns.NewZone(ctx, \"exampleZone\", \u0026dns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewNsRecord(ctx, \"exampleNsRecord\", \u0026dns.NsRecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ns1.contoso.com\"),\n\t\t\t\tpulumi.String(\"ns2.contoso.com\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNS records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dns/nsRecord:NsRecord example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/dnszones/zone1/NS/myrecord1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS NS Record.\n",
          "type": "string"
        },
        "records": {
          "description": "A list of values that make up the NS record.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS NS Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS NS Record.\n",
          "type": "string"
        },
        "records": {
          "description": "A list of values that make up the NS record.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NsRecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS NS Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS NS Record.\n",
            "type": "string"
          },
          "records": {
            "description": "A list of values that make up the NS record.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "ttl": {
            "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dns/ptrRecord:PtrRecord": {
      "description": "Enables you to manage DNS PTR Records within Azure DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.dns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst examplePtrRecord = new azure.dns.PtrRecord(\"examplePtrRecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    records: [\"yourdomain.com\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.dns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_ptr_record = azure.dns.PtrRecord(\"examplePtrRecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    records=[\"yourdomain.com\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.Dns.Zone(\"exampleZone\", new Azure.Dns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var examplePtrRecord = new Azure.Dns.PtrRecord(\"examplePtrRecord\", new Azure.Dns.PtrRecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            Records = \n            {\n                \"yourdomain.com\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := dns.NewZone(ctx, \"exampleZone\", \u0026dns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewPtrRecord(ctx, \"examplePtrRecord\", \u0026dns.PtrRecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"yourdomain.com\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPTR records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dns/ptrRecord:PtrRecord example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/dnszones/zone1/PTR/myrecord1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS PTR Record.\n",
          "type": "string"
        },
        "records": {
          "description": "List of Fully Qualified Domain Names.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS PTR Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS PTR Record.\n",
          "type": "string"
        },
        "records": {
          "description": "List of Fully Qualified Domain Names.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering PtrRecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS PTR Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS PTR Record.\n",
            "type": "string"
          },
          "records": {
            "description": "List of Fully Qualified Domain Names.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "ttl": {
            "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dns/srvRecord:SrvRecord": {
      "description": "Enables you to manage DNS SRV Records within Azure DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.dns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst exampleSrvRecord = new azure.dns.SrvRecord(\"exampleSrvRecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    records: [{\n        priority: 1,\n        weight: 5,\n        port: 8080,\n        target: \"target1.contoso.com\",\n    }],\n    tags: {\n        Environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.dns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_srv_record = azure.dns.SrvRecord(\"exampleSrvRecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    records=[azure.dns.SrvRecordRecordArgs(\n        priority=1,\n        weight=5,\n        port=8080,\n        target=\"target1.contoso.com\",\n    )],\n    tags={\n        \"Environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.Dns.Zone(\"exampleZone\", new Azure.Dns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSrvRecord = new Azure.Dns.SrvRecord(\"exampleSrvRecord\", new Azure.Dns.SrvRecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            Records = \n            {\n                new Azure.Dns.Inputs.SrvRecordRecordArgs\n                {\n                    Priority = 1,\n                    Weight = 5,\n                    Port = 8080,\n                    Target = \"target1.contoso.com\",\n                },\n            },\n            Tags = \n            {\n                { \"Environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := dns.NewZone(ctx, \"exampleZone\", \u0026dns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewSrvRecord(ctx, \"exampleSrvRecord\", \u0026dns.SrvRecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecords: dns.SrvRecordRecordArray{\n\t\t\t\t\u0026dns.SrvRecordRecordArgs{\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tWeight:   pulumi.Int(5),\n\t\t\t\t\tPort:     pulumi.Int(8080),\n\t\t\t\t\tTarget:   pulumi.String(\"target1.contoso.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSRV records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dns/srvRecord:SrvRecord example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/dnszones/zone1/SRV/myrecord1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS SRV Record.\n",
          "type": "string"
        },
        "records": {
          "description": "A list of values that make up the SRV record. Each `record` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:dns/SrvRecordRecord:SrvRecordRecord"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS SRV Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS SRV Record.\n",
          "type": "string"
        },
        "records": {
          "description": "A list of values that make up the SRV record. Each `record` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:dns/SrvRecordRecord:SrvRecordRecord"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SrvRecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS SRV Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS SRV Record.\n",
            "type": "string"
          },
          "records": {
            "description": "A list of values that make up the SRV record. Each `record` block supports fields documented below.\n",
            "items": {
              "$ref": "#/types/azure:dns/SrvRecordRecord:SrvRecordRecord"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "ttl": {
            "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dns/txtRecord:TxtRecord": {
      "description": "Enables you to manage DNS TXT Records within Azure DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.dns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst exampleTxtRecord = new azure.dns.TxtRecord(\"exampleTxtRecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    records: [\n        {\n            value: \"google-site-authenticator\",\n        },\n        {\n            value: \"more site information here\",\n        },\n    ],\n    tags: {\n        Environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.dns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_txt_record = azure.dns.TxtRecord(\"exampleTxtRecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    records=[\n        azure.dns.TxtRecordRecordArgs(\n            value=\"google-site-authenticator\",\n        ),\n        azure.dns.TxtRecordRecordArgs(\n            value=\"more site information here\",\n        ),\n    ],\n    tags={\n        \"Environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.Dns.Zone(\"exampleZone\", new Azure.Dns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleTxtRecord = new Azure.Dns.TxtRecord(\"exampleTxtRecord\", new Azure.Dns.TxtRecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            Records = \n            {\n                new Azure.Dns.Inputs.TxtRecordRecordArgs\n                {\n                    Value = \"google-site-authenticator\",\n                },\n                new Azure.Dns.Inputs.TxtRecordRecordArgs\n                {\n                    Value = \"more site information here\",\n                },\n            },\n            Tags = \n            {\n                { \"Environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := dns.NewZone(ctx, \"exampleZone\", \u0026dns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewTxtRecord(ctx, \"exampleTxtRecord\", \u0026dns.TxtRecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecords: dns.TxtRecordRecordArray{\n\t\t\t\t\u0026dns.TxtRecordRecordArgs{\n\t\t\t\t\tValue: pulumi.String(\"google-site-authenticator\"),\n\t\t\t\t},\n\t\t\t\t\u0026dns.TxtRecordRecordArgs{\n\t\t\t\t\tValue: pulumi.String(\"more site information here\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nTXT records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dns/txtRecord:TxtRecord example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/dnszones/zone1/TXT/myrecord1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS TXT Record.\n",
          "type": "string"
        },
        "records": {
          "description": "A list of values that make up the txt record. Each `record` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:dns/TxtRecordRecord:TxtRecordRecord"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS TXT Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS TXT Record.\n",
          "type": "string"
        },
        "records": {
          "description": "A list of values that make up the txt record. Each `record` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:dns/TxtRecordRecord:TxtRecordRecord"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TxtRecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS TXT Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS TXT Record.\n",
            "type": "string"
          },
          "records": {
            "description": "A list of values that make up the txt record. Each `record` block supports fields documented below.\n",
            "items": {
              "$ref": "#/types/azure:dns/TxtRecordRecord:TxtRecordRecord"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "ttl": {
            "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the DNS Zone where the DNS Zone (parent resource) exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:dns/zone:Zone": {
      "description": "Enables you to manage DNS zones within Azure DNS. These zones are hosted on Azure's name servers to which you can delegate the zone from the parent domain.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst example_public = new azure.dns.Zone(\"example-public\", {resourceGroupName: example.name});\nconst example_private = new azure.privatedns.Zone(\"example-private\", {resourceGroupName: example.name});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\nexample_public = azure.dns.Zone(\"example-public\", resource_group_name=example.name)\nexample_private = azure.privatedns.Zone(\"example-private\", resource_group_name=example.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var example_public = new Azure.Dns.Zone(\"example-public\", new Azure.Dns.ZoneArgs\n        {\n            ResourceGroupName = example.Name,\n        });\n        var example_private = new Azure.PrivateDns.Zone(\"example-private\", new Azure.PrivateDns.ZoneArgs\n        {\n            ResourceGroupName = example.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/dns\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatedns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewZone(ctx, \"example_public\", \u0026dns.ZoneArgs{\n\t\t\tResourceGroupName: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatedns.NewZone(ctx, \"example_private\", \u0026privatedns.ZoneArgs{\n\t\t\tResourceGroupName: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDNS Zones can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:dns/zone:Zone zone1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/dnszones/zone1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS Zone. Must be a valid domain name.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "soaRecord": {
          "$ref": "#/types/azure:dns/ZoneSoaRecord:ZoneSoaRecord",
          "description": "An `soa_record` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Record Set.\n",
          "type": "object"
        }
      },
      "properties": {
        "maxNumberOfRecordSets": {
          "description": "(Optional) Maximum number of Records in the zone. Defaults to `1000`.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name of the DNS Zone. Must be a valid domain name.\n",
          "type": "string"
        },
        "nameServers": {
          "description": "(Optional) A list of values that make up the NS record for the zone.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "numberOfRecordSets": {
          "description": "(Optional) The number of records already in the zone.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "soaRecord": {
          "$ref": "#/types/azure:dns/ZoneSoaRecord:ZoneSoaRecord",
          "description": "An `soa_record` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Record Set.\n",
          "type": "object"
        }
      },
      "required": [
        "maxNumberOfRecordSets",
        "name",
        "nameServers",
        "numberOfRecordSets",
        "resourceGroupName",
        "soaRecord"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Zone resources.\n",
        "properties": {
          "maxNumberOfRecordSets": {
            "description": "(Optional) Maximum number of Records in the zone. Defaults to `1000`.\n",
            "type": "integer"
          },
          "name": {
            "description": "The name of the DNS Zone. Must be a valid domain name.\n",
            "type": "string"
          },
          "nameServers": {
            "description": "(Optional) A list of values that make up the NS record for the zone.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "numberOfRecordSets": {
            "description": "(Optional) The number of records already in the zone.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "soaRecord": {
            "$ref": "#/types/azure:dns/ZoneSoaRecord:ZoneSoaRecord",
            "description": "An `soa_record` block as defined below. Changing this forces a new resource to be created.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Record Set.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:domainservices/replicaSet:ReplicaSet": {
      "description": "Manages a Replica Set for an Active Directory Domain Service.\n\n\n## Import\n\nDomain Service Replica Sets can be imported using the resource ID of the parent Domain Service and the Replica Set ID, e.g.\n\n```sh\n $ pulumi import azure:domainservices/replicaSet:ReplicaSet example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.AAD/domainServices/instance1/replicaSets/00000000-0000-0000-0000-000000000000\n```\n\n ",
      "inputProperties": {
        "domainServiceId": {
          "description": "The ID of the Domain Service for which to create this Replica Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure location where this Replica Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet in which to place this Replica Set.\n",
          "type": "string"
        }
      },
      "properties": {
        "domainControllerIpAddresses": {
          "description": "A list of subnet IP addresses for the domain controllers in this Replica Set, typically two.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "domainServiceId": {
          "description": "The ID of the Domain Service for which to create this Replica Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "externalAccessIpAddress": {
          "description": "The publicly routable IP address for the domain controllers in this Replica Set.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure location where this Replica Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceStatus": {
          "description": "The current service status for the replica set.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet in which to place this Replica Set.\n",
          "type": "string"
        }
      },
      "required": [
        "domainControllerIpAddresses",
        "domainServiceId",
        "externalAccessIpAddress",
        "location",
        "serviceStatus",
        "subnetId"
      ],
      "requiredInputs": [
        "domainServiceId",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ReplicaSet resources.\n",
        "properties": {
          "domainControllerIpAddresses": {
            "description": "A list of subnet IP addresses for the domain controllers in this Replica Set, typically two.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "domainServiceId": {
            "description": "The ID of the Domain Service for which to create this Replica Set. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "externalAccessIpAddress": {
            "description": "The publicly routable IP address for the domain controllers in this Replica Set.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure location where this Replica Set should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serviceStatus": {
            "description": "The current service status for the replica set.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the subnet in which to place this Replica Set.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:domainservices/service:Service": {
      "description": "\n\n\n## Import\n\nDomain Services can be imported using the resource ID, together with the Replica Set ID that you wish to designate as the initial replica set, e.g.\n\n```sh\n $ pulumi import azure:domainservices/service:Service example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.AAD/domainServices/instance1/initialReplicaSetId/00000000-0000-0000-0000-000000000000\n```\n\n ",
      "inputProperties": {
        "domainName": {
          "description": "The Active Directory domain to use. See [official documentation](https://docs.microsoft.com/en-us/azure/active-directory-domain-services/tutorial-create-instance#create-a-managed-domain) for constraints and recommendations.\n",
          "type": "string"
        },
        "filteredSyncEnabled": {
          "description": "Whether to enable group-based filtered sync (also called scoped synchronisation). Defaults to `false`.\n",
          "type": "boolean"
        },
        "initialReplicaSet": {
          "$ref": "#/types/azure:domainservices/ServiceInitialReplicaSet:ServiceInitialReplicaSet",
          "description": "An `initial_replica_set` block as defined below. The initial replica set inherits the same location as the Domain Service resource.\n"
        },
        "location": {
          "description": "The Azure location where the Domain Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The display name for your managed Active Directory Domain Service resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notifications": {
          "$ref": "#/types/azure:domainservices/ServiceNotifications:ServiceNotifications",
          "description": "A `notifications` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Domain Service should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secureLdap": {
          "$ref": "#/types/azure:domainservices/ServiceSecureLdap:ServiceSecureLdap",
          "description": "A `secure_ldap` block as defined below.\n"
        },
        "security": {
          "$ref": "#/types/azure:domainservices/ServiceSecurity:ServiceSecurity",
          "description": "A `security` block as defined below.\n"
        },
        "sku": {
          "description": "The SKU to use when provisioning the Domain Service resource. One of `Standard`, `Enterprise` or `Premium`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "deploymentId": {
          "description": "A unique ID for the managed domain deployment.\n",
          "type": "string"
        },
        "domainName": {
          "description": "The Active Directory domain to use. See [official documentation](https://docs.microsoft.com/en-us/azure/active-directory-domain-services/tutorial-create-instance#create-a-managed-domain) for constraints and recommendations.\n",
          "type": "string"
        },
        "filteredSyncEnabled": {
          "description": "Whether to enable group-based filtered sync (also called scoped synchronisation). Defaults to `false`.\n",
          "type": "boolean"
        },
        "initialReplicaSet": {
          "$ref": "#/types/azure:domainservices/ServiceInitialReplicaSet:ServiceInitialReplicaSet",
          "description": "An `initial_replica_set` block as defined below. The initial replica set inherits the same location as the Domain Service resource.\n"
        },
        "location": {
          "description": "The Azure location where the Domain Service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The display name for your managed Active Directory Domain Service resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notifications": {
          "$ref": "#/types/azure:domainservices/ServiceNotifications:ServiceNotifications",
          "description": "A `notifications` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Domain Service should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceId": {
          "description": "The Azure resource ID for the domain service.\n",
          "type": "string"
        },
        "secureLdap": {
          "$ref": "#/types/azure:domainservices/ServiceSecureLdap:ServiceSecureLdap",
          "description": "A `secure_ldap` block as defined below.\n"
        },
        "security": {
          "$ref": "#/types/azure:domainservices/ServiceSecurity:ServiceSecurity",
          "description": "A `security` block as defined below.\n"
        },
        "sku": {
          "description": "The SKU to use when provisioning the Domain Service resource. One of `Standard`, `Enterprise` or `Premium`.\n",
          "type": "string"
        },
        "syncOwner": {
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "type": "object"
        },
        "tenantId": {
          "type": "string"
        },
        "version": {
          "type": "integer"
        }
      },
      "required": [
        "deploymentId",
        "domainName",
        "initialReplicaSet",
        "location",
        "name",
        "notifications",
        "resourceGroupName",
        "resourceId",
        "secureLdap",
        "security",
        "sku",
        "syncOwner",
        "tenantId",
        "version"
      ],
      "requiredInputs": [
        "domainName",
        "initialReplicaSet",
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Service resources.\n",
        "properties": {
          "deploymentId": {
            "description": "A unique ID for the managed domain deployment.\n",
            "type": "string"
          },
          "domainName": {
            "description": "The Active Directory domain to use. See [official documentation](https://docs.microsoft.com/en-us/azure/active-directory-domain-services/tutorial-create-instance#create-a-managed-domain) for constraints and recommendations.\n",
            "type": "string"
          },
          "filteredSyncEnabled": {
            "description": "Whether to enable group-based filtered sync (also called scoped synchronisation). Defaults to `false`.\n",
            "type": "boolean"
          },
          "initialReplicaSet": {
            "$ref": "#/types/azure:domainservices/ServiceInitialReplicaSet:ServiceInitialReplicaSet",
            "description": "An `initial_replica_set` block as defined below. The initial replica set inherits the same location as the Domain Service resource.\n"
          },
          "location": {
            "description": "The Azure location where the Domain Service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The display name for your managed Active Directory Domain Service resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "notifications": {
            "$ref": "#/types/azure:domainservices/ServiceNotifications:ServiceNotifications",
            "description": "A `notifications` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Domain Service should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceId": {
            "description": "The Azure resource ID for the domain service.\n",
            "type": "string"
          },
          "secureLdap": {
            "$ref": "#/types/azure:domainservices/ServiceSecureLdap:ServiceSecureLdap",
            "description": "A `secure_ldap` block as defined below.\n"
          },
          "security": {
            "$ref": "#/types/azure:domainservices/ServiceSecurity:ServiceSecurity",
            "description": "A `security` block as defined below.\n"
          },
          "sku": {
            "description": "The SKU to use when provisioning the Domain Service resource. One of `Standard`, `Enterprise` or `Premium`.\n",
            "type": "string"
          },
          "syncOwner": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "tenantId": {
            "type": "string"
          },
          "version": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:eventgrid/domain:Domain": {
      "aliases": [
        {
          "type": "azure:eventhub/domain:Domain"
        }
      ],
      "description": "Manages an EventGrid Domain\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleDomain = new azure.eventgrid.Domain(\"exampleDomain\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_domain = azure.eventgrid.Domain(\"exampleDomain\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleDomain = new Azure.EventGrid.Domain(\"exampleDomain\", new Azure.EventGrid.DomainArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventgrid.NewDomain(ctx, \"exampleDomain\", \u0026eventgrid.DomainArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventGrid Domains can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventgrid/domain:Domain domain1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventGrid/domains/domain1\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:eventgrid/DomainIdentity:DomainIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "inboundIpRules": {
          "description": "One or more `inbound_ip_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/DomainInboundIpRule:DomainInboundIpRule"
          },
          "type": "array"
        },
        "inputMappingDefaultValues": {
          "$ref": "#/types/azure:eventgrid/DomainInputMappingDefaultValues:DomainInputMappingDefaultValues",
          "description": "A `input_mapping_default_values` block as defined below.\n"
        },
        "inputMappingFields": {
          "$ref": "#/types/azure:eventgrid/DomainInputMappingFields:DomainInputMappingFields",
          "description": "A `input_mapping_fields` block as defined below.\n"
        },
        "inputSchema": {
          "description": "Specifies the schema in which incoming events will be published to this domain. Allowed values are `CloudEventSchemaV1_0`, `CustomEventSchema`, or `EventGridSchema`. Defaults to `eventgridschema`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventGrid Domain resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventGrid Domain exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "endpoint": {
          "description": "The Endpoint associated with the EventGrid Domain.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:eventgrid/DomainIdentity:DomainIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "inboundIpRules": {
          "description": "One or more `inbound_ip_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/DomainInboundIpRule:DomainInboundIpRule"
          },
          "type": "array"
        },
        "inputMappingDefaultValues": {
          "$ref": "#/types/azure:eventgrid/DomainInputMappingDefaultValues:DomainInputMappingDefaultValues",
          "description": "A `input_mapping_default_values` block as defined below.\n"
        },
        "inputMappingFields": {
          "$ref": "#/types/azure:eventgrid/DomainInputMappingFields:DomainInputMappingFields",
          "description": "A `input_mapping_fields` block as defined below.\n"
        },
        "inputSchema": {
          "description": "Specifies the schema in which incoming events will be published to this domain. Allowed values are `CloudEventSchemaV1_0`, `CustomEventSchema`, or `EventGridSchema`. Defaults to `eventgridschema`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventGrid Domain resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryAccessKey": {
          "description": "The Primary Shared Access Key associated with the EventGrid Domain.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventGrid Domain exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryAccessKey": {
          "description": "The Secondary Shared Access Key associated with the EventGrid Domain.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "endpoint",
        "location",
        "name",
        "primaryAccessKey",
        "resourceGroupName",
        "secondaryAccessKey"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Domain resources.\n",
        "properties": {
          "endpoint": {
            "description": "The Endpoint associated with the EventGrid Domain.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:eventgrid/DomainIdentity:DomainIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "inboundIpRules": {
            "description": "One or more `inbound_ip_rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:eventgrid/DomainInboundIpRule:DomainInboundIpRule"
            },
            "type": "array"
          },
          "inputMappingDefaultValues": {
            "$ref": "#/types/azure:eventgrid/DomainInputMappingDefaultValues:DomainInputMappingDefaultValues",
            "description": "A `input_mapping_default_values` block as defined below.\n"
          },
          "inputMappingFields": {
            "$ref": "#/types/azure:eventgrid/DomainInputMappingFields:DomainInputMappingFields",
            "description": "A `input_mapping_fields` block as defined below.\n"
          },
          "inputSchema": {
            "description": "Specifies the schema in which incoming events will be published to this domain. Allowed values are `CloudEventSchemaV1_0`, `CustomEventSchema`, or `EventGridSchema`. Defaults to `eventgridschema`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the EventGrid Domain resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The Primary Shared Access Key associated with the EventGrid Domain.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventGrid Domain exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The Secondary Shared Access Key associated with the EventGrid Domain.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:eventgrid/domainTopic:DomainTopic": {
      "description": "Manages an EventGrid Domain Topic\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleDomain = new azure.eventgrid.Domain(\"exampleDomain\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tags: {\n        environment: \"Production\",\n    },\n});\nconst exampleDomainTopic = new azure.eventgrid.DomainTopic(\"exampleDomainTopic\", {\n    domainName: exampleDomain.name,\n    resourceGroupName: exampleResourceGroup.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_domain = azure.eventgrid.Domain(\"exampleDomain\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tags={\n        \"environment\": \"Production\",\n    })\nexample_domain_topic = azure.eventgrid.DomainTopic(\"exampleDomainTopic\",\n    domain_name=example_domain.name,\n    resource_group_name=example_resource_group.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleDomain = new Azure.EventGrid.Domain(\"exampleDomain\", new Azure.EventGrid.DomainArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n        var exampleDomainTopic = new Azure.EventGrid.DomainTopic(\"exampleDomainTopic\", new Azure.EventGrid.DomainTopicArgs\n        {\n            DomainName = exampleDomain.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDomain, err := eventgrid.NewDomain(ctx, \"exampleDomain\", \u0026eventgrid.DomainArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventgrid.NewDomainTopic(ctx, \"exampleDomainTopic\", \u0026eventgrid.DomainTopicArgs{\n\t\t\tDomainName:        exampleDomain.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventGrid Domain Topics can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventgrid/domainTopic:DomainTopic topic1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventGrid/domains/domain1/topics/topic1\n```\n\n ",
      "inputProperties": {
        "domainName": {
          "description": "Specifies the name of the EventGrid Domain. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventGrid Domain Topic resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventGrid Domain exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "domainName": {
          "description": "Specifies the name of the EventGrid Domain. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventGrid Domain Topic resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventGrid Domain exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "domainName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "domainName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DomainTopic resources.\n",
        "properties": {
          "domainName": {
            "description": "Specifies the name of the EventGrid Domain. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the EventGrid Domain Topic resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventGrid Domain exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:eventgrid/eventSubscription:EventSubscription": {
      "aliases": [
        {
          "type": "azure:eventhub/eventSubscription:EventSubscription"
        }
      ],
      "description": "Manages an EventGrid Event Subscription\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst defaultResourceGroup = new azure.core.ResourceGroup(\"defaultResourceGroup\", {location: \"West Europe\"});\nconst defaultAccount = new azure.storage.Account(\"defaultAccount\", {\n    resourceGroupName: defaultResourceGroup.name,\n    location: defaultResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    tags: {\n        environment: \"staging\",\n    },\n});\nconst defaultQueue = new azure.storage.Queue(\"defaultQueue\", {storageAccountName: defaultAccount.name});\nconst defaultEventSubscription = new azure.eventgrid.EventSubscription(\"defaultEventSubscription\", {\n    scope: defaultResourceGroup.id,\n    storageQueueEndpoint: {\n        storageAccountId: defaultAccount.id,\n        queueName: defaultQueue.name,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ndefault_resource_group = azure.core.ResourceGroup(\"defaultResourceGroup\", location=\"West Europe\")\ndefault_account = azure.storage.Account(\"defaultAccount\",\n    resource_group_name=default_resource_group.name,\n    location=default_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    tags={\n        \"environment\": \"staging\",\n    })\ndefault_queue = azure.storage.Queue(\"defaultQueue\", storage_account_name=default_account.name)\ndefault_event_subscription = azure.eventgrid.EventSubscription(\"defaultEventSubscription\",\n    scope=default_resource_group.id,\n    storage_queue_endpoint=azure.eventgrid.EventSubscriptionStorageQueueEndpointArgs(\n        storage_account_id=default_account.id,\n        queue_name=default_queue.name,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var defaultResourceGroup = new Azure.Core.ResourceGroup(\"defaultResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var defaultAccount = new Azure.Storage.Account(\"defaultAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = defaultResourceGroup.Name,\n            Location = defaultResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n        var defaultQueue = new Azure.Storage.Queue(\"defaultQueue\", new Azure.Storage.QueueArgs\n        {\n            StorageAccountName = defaultAccount.Name,\n        });\n        var defaultEventSubscription = new Azure.EventGrid.EventSubscription(\"defaultEventSubscription\", new Azure.EventGrid.EventSubscriptionArgs\n        {\n            Scope = defaultResourceGroup.Id,\n            StorageQueueEndpoint = new Azure.EventGrid.Inputs.EventSubscriptionStorageQueueEndpointArgs\n            {\n                StorageAccountId = defaultAccount.Id,\n                QueueName = defaultQueue.Name,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultResourceGroup, err := core.NewResourceGroup(ctx, \"defaultResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAccount, err := storage.NewAccount(ctx, \"defaultAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      defaultResourceGroup.Name,\n\t\t\tLocation:               defaultResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultQueue, err := storage.NewQueue(ctx, \"defaultQueue\", \u0026storage.QueueArgs{\n\t\t\tStorageAccountName: defaultAccount.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventgrid.NewEventSubscription(ctx, \"defaultEventSubscription\", \u0026eventgrid.EventSubscriptionArgs{\n\t\t\tScope: defaultResourceGroup.ID(),\n\t\t\tStorageQueueEndpoint: \u0026eventgrid.EventSubscriptionStorageQueueEndpointArgs{\n\t\t\t\tStorageAccountId: defaultAccount.ID(),\n\t\t\t\tQueueName:        defaultQueue.Name,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventGrid Event Subscription's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventgrid/eventSubscription:EventSubscription eventSubscription1\n```\n\n /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventGrid/topics/topic1/providers/Microsoft.EventGrid/eventSubscriptions/eventSubscription1 ",
      "inputProperties": {
        "advancedFilter": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilter:EventSubscriptionAdvancedFilter",
          "description": "A `advanced_filter` block as defined below.\n"
        },
        "advancedFilteringOnArraysEnabled": {
          "description": "Specifies whether advanced filters should be evaluated against an array of values instead of expecting a singular value. Defaults to `false`.\n",
          "type": "boolean"
        },
        "azureFunctionEndpoint": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionAzureFunctionEndpoint:EventSubscriptionAzureFunctionEndpoint",
          "description": "An `azure_function_endpoint` block as defined below.\n"
        },
        "deadLetterIdentity": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionDeadLetterIdentity:EventSubscriptionDeadLetterIdentity",
          "description": "A `dead_letter_identity` block as defined below.\n"
        },
        "deliveryIdentity": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionDeliveryIdentity:EventSubscriptionDeliveryIdentity",
          "description": "A `delivery_identity` block as defined below.\n"
        },
        "eventDeliverySchema": {
          "description": "Specifies the event delivery schema for the event subscription. Possible values include: `EventGridSchema`, `CloudEventSchemaV1_0`, `CustomInputSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventhubEndpoint": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionEventhubEndpoint:EventSubscriptionEventhubEndpoint",
          "deprecationMessage": "Deprecated in favour of `eventhub_endpoint_id`",
          "description": "A `eventhub_endpoint` block as defined below.\n"
        },
        "eventhubEndpointId": {
          "description": "Specifies the id where the Event Hub is located.\n",
          "type": "string"
        },
        "expirationTimeUtc": {
          "description": "Specifies the expiration time of the event subscription (Datetime Format `RFC 3339`).\n",
          "type": "string"
        },
        "hybridConnectionEndpoint": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionHybridConnectionEndpoint:EventSubscriptionHybridConnectionEndpoint",
          "deprecationMessage": "Deprecated in favour of `hybrid_connection_endpoint_id`",
          "description": "A `hybrid_connection_endpoint` block as defined below.\n"
        },
        "hybridConnectionEndpointId": {
          "description": "Specifies the id where the Hybrid Connection is located.\n",
          "type": "string"
        },
        "includedEventTypes": {
          "description": "A list of applicable event types that need to be part of the event subscription.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "labels": {
          "description": "A list of labels to assign to the event subscription.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the EventGrid Event Subscription resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retryPolicy": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionRetryPolicy:EventSubscriptionRetryPolicy",
          "description": "A `retry_policy` block as defined below.\n"
        },
        "scope": {
          "description": "Specifies the scope at which the EventGrid Event Subscription should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceBusQueueEndpointId": {
          "description": "Specifies the id where the Service Bus Queue is located.\n",
          "type": "string"
        },
        "serviceBusTopicEndpointId": {
          "description": "Specifies the id where the Service Bus Topic is located.\n",
          "type": "string"
        },
        "storageBlobDeadLetterDestination": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionStorageBlobDeadLetterDestination:EventSubscriptionStorageBlobDeadLetterDestination",
          "description": "A `storage_blob_dead_letter_destination` block as defined below.\n"
        },
        "storageQueueEndpoint": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionStorageQueueEndpoint:EventSubscriptionStorageQueueEndpoint",
          "description": "A `storage_queue_endpoint` block as defined below.\n"
        },
        "subjectFilter": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionSubjectFilter:EventSubscriptionSubjectFilter",
          "description": "A `subject_filter` block as defined below.\n"
        },
        "topicName": {
          "deprecationMessage": "This field has been updated to readonly field since Apr 25, 2019 so no longer has any affect and will be removed in version 3.0 of the provider.",
          "description": "(Optional/ **Deprecated) Specifies the name of the topic to associate with the event subscription.\n",
          "type": "string"
        },
        "webhookEndpoint": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionWebhookEndpoint:EventSubscriptionWebhookEndpoint",
          "description": "A `webhook_endpoint` block as defined below.\n"
        }
      },
      "properties": {
        "advancedFilter": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilter:EventSubscriptionAdvancedFilter",
          "description": "A `advanced_filter` block as defined below.\n"
        },
        "advancedFilteringOnArraysEnabled": {
          "description": "Specifies whether advanced filters should be evaluated against an array of values instead of expecting a singular value. Defaults to `false`.\n",
          "type": "boolean"
        },
        "azureFunctionEndpoint": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionAzureFunctionEndpoint:EventSubscriptionAzureFunctionEndpoint",
          "description": "An `azure_function_endpoint` block as defined below.\n"
        },
        "deadLetterIdentity": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionDeadLetterIdentity:EventSubscriptionDeadLetterIdentity",
          "description": "A `dead_letter_identity` block as defined below.\n"
        },
        "deliveryIdentity": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionDeliveryIdentity:EventSubscriptionDeliveryIdentity",
          "description": "A `delivery_identity` block as defined below.\n"
        },
        "eventDeliverySchema": {
          "description": "Specifies the event delivery schema for the event subscription. Possible values include: `EventGridSchema`, `CloudEventSchemaV1_0`, `CustomInputSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventhubEndpoint": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionEventhubEndpoint:EventSubscriptionEventhubEndpoint",
          "deprecationMessage": "Deprecated in favour of `eventhub_endpoint_id`",
          "description": "A `eventhub_endpoint` block as defined below.\n"
        },
        "eventhubEndpointId": {
          "description": "Specifies the id where the Event Hub is located.\n",
          "type": "string"
        },
        "expirationTimeUtc": {
          "description": "Specifies the expiration time of the event subscription (Datetime Format `RFC 3339`).\n",
          "type": "string"
        },
        "hybridConnectionEndpoint": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionHybridConnectionEndpoint:EventSubscriptionHybridConnectionEndpoint",
          "deprecationMessage": "Deprecated in favour of `hybrid_connection_endpoint_id`",
          "description": "A `hybrid_connection_endpoint` block as defined below.\n"
        },
        "hybridConnectionEndpointId": {
          "description": "Specifies the id where the Hybrid Connection is located.\n",
          "type": "string"
        },
        "includedEventTypes": {
          "description": "A list of applicable event types that need to be part of the event subscription.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "labels": {
          "description": "A list of labels to assign to the event subscription.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the EventGrid Event Subscription resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retryPolicy": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionRetryPolicy:EventSubscriptionRetryPolicy",
          "description": "A `retry_policy` block as defined below.\n"
        },
        "scope": {
          "description": "Specifies the scope at which the EventGrid Event Subscription should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceBusQueueEndpointId": {
          "description": "Specifies the id where the Service Bus Queue is located.\n",
          "type": "string"
        },
        "serviceBusTopicEndpointId": {
          "description": "Specifies the id where the Service Bus Topic is located.\n",
          "type": "string"
        },
        "storageBlobDeadLetterDestination": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionStorageBlobDeadLetterDestination:EventSubscriptionStorageBlobDeadLetterDestination",
          "description": "A `storage_blob_dead_letter_destination` block as defined below.\n"
        },
        "storageQueueEndpoint": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionStorageQueueEndpoint:EventSubscriptionStorageQueueEndpoint",
          "description": "A `storage_queue_endpoint` block as defined below.\n"
        },
        "subjectFilter": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionSubjectFilter:EventSubscriptionSubjectFilter",
          "description": "A `subject_filter` block as defined below.\n"
        },
        "topicName": {
          "deprecationMessage": "This field has been updated to readonly field since Apr 25, 2019 so no longer has any affect and will be removed in version 3.0 of the provider.",
          "description": "(Optional/ **Deprecated) Specifies the name of the topic to associate with the event subscription.\n",
          "type": "string"
        },
        "webhookEndpoint": {
          "$ref": "#/types/azure:eventgrid/EventSubscriptionWebhookEndpoint:EventSubscriptionWebhookEndpoint",
          "description": "A `webhook_endpoint` block as defined below.\n"
        }
      },
      "required": [
        "eventhubEndpoint",
        "eventhubEndpointId",
        "hybridConnectionEndpoint",
        "hybridConnectionEndpointId",
        "includedEventTypes",
        "name",
        "retryPolicy",
        "scope",
        "topicName"
      ],
      "requiredInputs": [
        "scope"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EventSubscription resources.\n",
        "properties": {
          "advancedFilter": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilter:EventSubscriptionAdvancedFilter",
            "description": "A `advanced_filter` block as defined below.\n"
          },
          "advancedFilteringOnArraysEnabled": {
            "description": "Specifies whether advanced filters should be evaluated against an array of values instead of expecting a singular value. Defaults to `false`.\n",
            "type": "boolean"
          },
          "azureFunctionEndpoint": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAzureFunctionEndpoint:EventSubscriptionAzureFunctionEndpoint",
            "description": "An `azure_function_endpoint` block as defined below.\n"
          },
          "deadLetterIdentity": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionDeadLetterIdentity:EventSubscriptionDeadLetterIdentity",
            "description": "A `dead_letter_identity` block as defined below.\n"
          },
          "deliveryIdentity": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionDeliveryIdentity:EventSubscriptionDeliveryIdentity",
            "description": "A `delivery_identity` block as defined below.\n"
          },
          "eventDeliverySchema": {
            "description": "Specifies the event delivery schema for the event subscription. Possible values include: `EventGridSchema`, `CloudEventSchemaV1_0`, `CustomInputSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "eventhubEndpoint": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionEventhubEndpoint:EventSubscriptionEventhubEndpoint",
            "deprecationMessage": "Deprecated in favour of `eventhub_endpoint_id`",
            "description": "A `eventhub_endpoint` block as defined below.\n"
          },
          "eventhubEndpointId": {
            "description": "Specifies the id where the Event Hub is located.\n",
            "type": "string"
          },
          "expirationTimeUtc": {
            "description": "Specifies the expiration time of the event subscription (Datetime Format `RFC 3339`).\n",
            "type": "string"
          },
          "hybridConnectionEndpoint": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionHybridConnectionEndpoint:EventSubscriptionHybridConnectionEndpoint",
            "deprecationMessage": "Deprecated in favour of `hybrid_connection_endpoint_id`",
            "description": "A `hybrid_connection_endpoint` block as defined below.\n"
          },
          "hybridConnectionEndpointId": {
            "description": "Specifies the id where the Hybrid Connection is located.\n",
            "type": "string"
          },
          "includedEventTypes": {
            "description": "A list of applicable event types that need to be part of the event subscription.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "labels": {
            "description": "A list of labels to assign to the event subscription.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "Specifies the name of the EventGrid Event Subscription resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "retryPolicy": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionRetryPolicy:EventSubscriptionRetryPolicy",
            "description": "A `retry_policy` block as defined below.\n"
          },
          "scope": {
            "description": "Specifies the scope at which the EventGrid Event Subscription should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serviceBusQueueEndpointId": {
            "description": "Specifies the id where the Service Bus Queue is located.\n",
            "type": "string"
          },
          "serviceBusTopicEndpointId": {
            "description": "Specifies the id where the Service Bus Topic is located.\n",
            "type": "string"
          },
          "storageBlobDeadLetterDestination": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionStorageBlobDeadLetterDestination:EventSubscriptionStorageBlobDeadLetterDestination",
            "description": "A `storage_blob_dead_letter_destination` block as defined below.\n"
          },
          "storageQueueEndpoint": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionStorageQueueEndpoint:EventSubscriptionStorageQueueEndpoint",
            "description": "A `storage_queue_endpoint` block as defined below.\n"
          },
          "subjectFilter": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionSubjectFilter:EventSubscriptionSubjectFilter",
            "description": "A `subject_filter` block as defined below.\n"
          },
          "topicName": {
            "deprecationMessage": "This field has been updated to readonly field since Apr 25, 2019 so no longer has any affect and will be removed in version 3.0 of the provider.",
            "description": "(Optional/ **Deprecated) Specifies the name of the topic to associate with the event subscription.\n",
            "type": "string"
          },
          "webhookEndpoint": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionWebhookEndpoint:EventSubscriptionWebhookEndpoint",
            "description": "A `webhook_endpoint` block as defined below.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:eventgrid/getSystemTopic:getSystemTopic": {
      "deprecationMessage": "azure.eventgrid.getSystemTopic has been deprecated in favor of azure.eventgrid.SystemTopic",
      "description": "Manages an Event Grid System Topic.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    tags: {\n        environment: \"staging\",\n    },\n});\nconst exampleSystemTopic = new azure.eventgrid.SystemTopic(\"exampleSystemTopic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sourceArmResourceId: exampleAccount.id,\n    topicType: \"Microsoft.Storage.StorageAccounts\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    tags={\n        \"environment\": \"staging\",\n    })\nexample_system_topic = azure.eventgrid.SystemTopic(\"exampleSystemTopic\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    source_arm_resource_id=example_account.id,\n    topic_type=\"Microsoft.Storage.StorageAccounts\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n        var exampleSystemTopic = new Azure.EventGrid.SystemTopic(\"exampleSystemTopic\", new Azure.EventGrid.SystemTopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            SourceArmResourceId = exampleAccount.Id,\n            TopicType = \"Microsoft.Storage.StorageAccounts\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventgrid.NewSystemTopic(ctx, \"exampleSystemTopic\", \u0026eventgrid.SystemTopicArgs{\n\t\t\tResourceGroupName:   exampleResourceGroup.Name,\n\t\t\tLocation:            exampleResourceGroup.Location,\n\t\t\tSourceArmResourceId: exampleAccount.ID(),\n\t\t\tTopicType:           pulumi.String(\"Microsoft.Storage.StorageAccounts\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEvent Grid System Topic can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventgrid/getSystemTopic:getSystemTopic example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventGrid/systemTopics/systemTopic1\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:eventgrid/getSystemTopicIdentity:getSystemTopicIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Event Grid System Topic should exist. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Event Grid System Topic. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Event Grid System Topic should exist. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "sourceArmResourceId": {
          "description": "The ID of the Event Grid System Topic ARM Source. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Event Grid System Topic.\n",
          "type": "object"
        },
        "topicType": {
          "description": "The Topic Type of the Event Grid System Topic. Possible values are: `Microsoft.AppConfiguration.ConfigurationStores`, `Microsoft.Communication.CommunicationServices`\n, `Microsoft.ContainerRegistry.Registries`, `Microsoft.Devices.IoTHubs`, `Microsoft.EventGrid.Domains`, `Microsoft.EventGrid.Topics`, `Microsoft.Eventhub.Namespaces`, `Microsoft.KeyVault.vaults`, `Microsoft.MachineLearningServices.Workspaces`, `Microsoft.Maps.Accounts`, `Microsoft.Media.MediaServices`, `Microsoft.Resources.ResourceGroups`, `Microsoft.Resources.Subscriptions`, `Microsoft.ServiceBus.Namespaces`, `Microsoft.SignalRService.SignalR`, `Microsoft.Storage.StorageAccounts`, `Microsoft.Web.ServerFarms` and `Microsoft.Web.Sites`. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "identity": {
          "$ref": "#/types/azure:eventgrid/getSystemTopicIdentity:getSystemTopicIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Event Grid System Topic should exist. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "metricArmResourceId": {
          "description": "The Metric ARM Resource ID of the Event Grid System Topic.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Event Grid System Topic. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Event Grid System Topic should exist. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "sourceArmResourceId": {
          "description": "The ID of the Event Grid System Topic ARM Source. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Event Grid System Topic.\n",
          "type": "object"
        },
        "topicType": {
          "description": "The Topic Type of the Event Grid System Topic. Possible values are: `Microsoft.AppConfiguration.ConfigurationStores`, `Microsoft.Communication.CommunicationServices`\n, `Microsoft.ContainerRegistry.Registries`, `Microsoft.Devices.IoTHubs`, `Microsoft.EventGrid.Domains`, `Microsoft.EventGrid.Topics`, `Microsoft.Eventhub.Namespaces`, `Microsoft.KeyVault.vaults`, `Microsoft.MachineLearningServices.Workspaces`, `Microsoft.Maps.Accounts`, `Microsoft.Media.MediaServices`, `Microsoft.Resources.ResourceGroups`, `Microsoft.Resources.Subscriptions`, `Microsoft.ServiceBus.Namespaces`, `Microsoft.SignalRService.SignalR`, `Microsoft.Storage.StorageAccounts`, `Microsoft.Web.ServerFarms` and `Microsoft.Web.Sites`. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "metricArmResourceId",
        "name",
        "resourceGroupName",
        "sourceArmResourceId",
        "topicType"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sourceArmResourceId",
        "topicType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering getSystemTopic resources.\n",
        "properties": {
          "identity": {
            "$ref": "#/types/azure:eventgrid/getSystemTopicIdentity:getSystemTopicIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "location": {
            "description": "The Azure Region where the Event Grid System Topic should exist. Changing this forces a new Event Grid System Topic to be created.\n",
            "type": "string"
          },
          "metricArmResourceId": {
            "description": "The Metric ARM Resource ID of the Event Grid System Topic.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Event Grid System Topic. Changing this forces a new Event Grid System Topic to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Event Grid System Topic should exist. Changing this forces a new Event Grid System Topic to be created.\n",
            "type": "string"
          },
          "sourceArmResourceId": {
            "description": "The ID of the Event Grid System Topic ARM Source. Changing this forces a new Event Grid System Topic to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Event Grid System Topic.\n",
            "type": "object"
          },
          "topicType": {
            "description": "The Topic Type of the Event Grid System Topic. Possible values are: `Microsoft.AppConfiguration.ConfigurationStores`, `Microsoft.Communication.CommunicationServices`\n, `Microsoft.ContainerRegistry.Registries`, `Microsoft.Devices.IoTHubs`, `Microsoft.EventGrid.Domains`, `Microsoft.EventGrid.Topics`, `Microsoft.Eventhub.Namespaces`, `Microsoft.KeyVault.vaults`, `Microsoft.MachineLearningServices.Workspaces`, `Microsoft.Maps.Accounts`, `Microsoft.Media.MediaServices`, `Microsoft.Resources.ResourceGroups`, `Microsoft.Resources.Subscriptions`, `Microsoft.ServiceBus.Namespaces`, `Microsoft.SignalRService.SignalR`, `Microsoft.Storage.StorageAccounts`, `Microsoft.Web.ServerFarms` and `Microsoft.Web.Sites`. Changing this forces a new Event Grid System Topic to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:eventgrid/systemTopic:SystemTopic": {
      "aliases": [
        {
          "type": "azure:eventgrid/getSystemTopic:getSystemTopic"
        }
      ],
      "description": "Manages an Event Grid System Topic.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    tags: {\n        environment: \"staging\",\n    },\n});\nconst exampleSystemTopic = new azure.eventgrid.SystemTopic(\"exampleSystemTopic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sourceArmResourceId: exampleAccount.id,\n    topicType: \"Microsoft.Storage.StorageAccounts\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    tags={\n        \"environment\": \"staging\",\n    })\nexample_system_topic = azure.eventgrid.SystemTopic(\"exampleSystemTopic\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    source_arm_resource_id=example_account.id,\n    topic_type=\"Microsoft.Storage.StorageAccounts\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n        var exampleSystemTopic = new Azure.EventGrid.SystemTopic(\"exampleSystemTopic\", new Azure.EventGrid.SystemTopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            SourceArmResourceId = exampleAccount.Id,\n            TopicType = \"Microsoft.Storage.StorageAccounts\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventgrid.NewSystemTopic(ctx, \"exampleSystemTopic\", \u0026eventgrid.SystemTopicArgs{\n\t\t\tResourceGroupName:   exampleResourceGroup.Name,\n\t\t\tLocation:            exampleResourceGroup.Location,\n\t\t\tSourceArmResourceId: exampleAccount.ID(),\n\t\t\tTopicType:           pulumi.String(\"Microsoft.Storage.StorageAccounts\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEvent Grid System Topic can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventgrid/systemTopic:SystemTopic example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventGrid/systemTopics/systemTopic1\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:eventgrid/SystemTopicIdentity:SystemTopicIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Event Grid System Topic should exist. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Event Grid System Topic. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Event Grid System Topic should exist. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "sourceArmResourceId": {
          "description": "The ID of the Event Grid System Topic ARM Source. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Event Grid System Topic.\n",
          "type": "object"
        },
        "topicType": {
          "description": "The Topic Type of the Event Grid System Topic. Possible values are: `Microsoft.AppConfiguration.ConfigurationStores`, `Microsoft.Communication.CommunicationServices`\n, `Microsoft.ContainerRegistry.Registries`, `Microsoft.Devices.IoTHubs`, `Microsoft.EventGrid.Domains`, `Microsoft.EventGrid.Topics`, `Microsoft.Eventhub.Namespaces`, `Microsoft.KeyVault.vaults`, `Microsoft.MachineLearningServices.Workspaces`, `Microsoft.Maps.Accounts`, `Microsoft.Media.MediaServices`, `Microsoft.Resources.ResourceGroups`, `Microsoft.Resources.Subscriptions`, `Microsoft.ServiceBus.Namespaces`, `Microsoft.SignalRService.SignalR`, `Microsoft.Storage.StorageAccounts`, `Microsoft.Web.ServerFarms` and `Microsoft.Web.Sites`. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "identity": {
          "$ref": "#/types/azure:eventgrid/SystemTopicIdentity:SystemTopicIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Event Grid System Topic should exist. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "metricArmResourceId": {
          "description": "The Metric ARM Resource ID of the Event Grid System Topic.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Event Grid System Topic. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Event Grid System Topic should exist. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "sourceArmResourceId": {
          "description": "The ID of the Event Grid System Topic ARM Source. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Event Grid System Topic.\n",
          "type": "object"
        },
        "topicType": {
          "description": "The Topic Type of the Event Grid System Topic. Possible values are: `Microsoft.AppConfiguration.ConfigurationStores`, `Microsoft.Communication.CommunicationServices`\n, `Microsoft.ContainerRegistry.Registries`, `Microsoft.Devices.IoTHubs`, `Microsoft.EventGrid.Domains`, `Microsoft.EventGrid.Topics`, `Microsoft.Eventhub.Namespaces`, `Microsoft.KeyVault.vaults`, `Microsoft.MachineLearningServices.Workspaces`, `Microsoft.Maps.Accounts`, `Microsoft.Media.MediaServices`, `Microsoft.Resources.ResourceGroups`, `Microsoft.Resources.Subscriptions`, `Microsoft.ServiceBus.Namespaces`, `Microsoft.SignalRService.SignalR`, `Microsoft.Storage.StorageAccounts`, `Microsoft.Web.ServerFarms` and `Microsoft.Web.Sites`. Changing this forces a new Event Grid System Topic to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "metricArmResourceId",
        "name",
        "resourceGroupName",
        "sourceArmResourceId",
        "topicType"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sourceArmResourceId",
        "topicType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SystemTopic resources.\n",
        "properties": {
          "identity": {
            "$ref": "#/types/azure:eventgrid/SystemTopicIdentity:SystemTopicIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "location": {
            "description": "The Azure Region where the Event Grid System Topic should exist. Changing this forces a new Event Grid System Topic to be created.\n",
            "type": "string"
          },
          "metricArmResourceId": {
            "description": "The Metric ARM Resource ID of the Event Grid System Topic.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Event Grid System Topic. Changing this forces a new Event Grid System Topic to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Event Grid System Topic should exist. Changing this forces a new Event Grid System Topic to be created.\n",
            "type": "string"
          },
          "sourceArmResourceId": {
            "description": "The ID of the Event Grid System Topic ARM Source. Changing this forces a new Event Grid System Topic to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Event Grid System Topic.\n",
            "type": "object"
          },
          "topicType": {
            "description": "The Topic Type of the Event Grid System Topic. Possible values are: `Microsoft.AppConfiguration.ConfigurationStores`, `Microsoft.Communication.CommunicationServices`\n, `Microsoft.ContainerRegistry.Registries`, `Microsoft.Devices.IoTHubs`, `Microsoft.EventGrid.Domains`, `Microsoft.EventGrid.Topics`, `Microsoft.Eventhub.Namespaces`, `Microsoft.KeyVault.vaults`, `Microsoft.MachineLearningServices.Workspaces`, `Microsoft.Maps.Accounts`, `Microsoft.Media.MediaServices`, `Microsoft.Resources.ResourceGroups`, `Microsoft.Resources.Subscriptions`, `Microsoft.ServiceBus.Namespaces`, `Microsoft.SignalRService.SignalR`, `Microsoft.Storage.StorageAccounts`, `Microsoft.Web.ServerFarms` and `Microsoft.Web.Sites`. Changing this forces a new Event Grid System Topic to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:eventgrid/systemTopicEventSubscription:SystemTopicEventSubscription": {
      "description": "Manages an EventGrid System Topic Event Subscription.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    tags: {\n        environment: \"staging\",\n    },\n});\nconst exampleQueue = new azure.storage.Queue(\"exampleQueue\", {storageAccountName: exampleAccount.name});\nconst exampleSystemTopic = new azure.eventgrid.SystemTopic(\"exampleSystemTopic\", {\n    location: \"Global\",\n    resourceGroupName: exampleResourceGroup.name,\n    sourceArmResourceId: exampleResourceGroup.id,\n    topicType: \"Microsoft.Resources.ResourceGroups\",\n});\nconst exampleSystemTopicEventSubscription = new azure.eventgrid.SystemTopicEventSubscription(\"exampleSystemTopicEventSubscription\", {\n    systemTopic: azurerm_system_topic.example.name,\n    resourceGroupName: exampleResourceGroup.name,\n    storageQueueEndpoint: {\n        storageAccountId: exampleAccount.id,\n        queueName: exampleQueue.name,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    tags={\n        \"environment\": \"staging\",\n    })\nexample_queue = azure.storage.Queue(\"exampleQueue\", storage_account_name=example_account.name)\nexample_system_topic = azure.eventgrid.SystemTopic(\"exampleSystemTopic\",\n    location=\"Global\",\n    resource_group_name=example_resource_group.name,\n    source_arm_resource_id=example_resource_group.id,\n    topic_type=\"Microsoft.Resources.ResourceGroups\")\nexample_system_topic_event_subscription = azure.eventgrid.SystemTopicEventSubscription(\"exampleSystemTopicEventSubscription\",\n    system_topic=azurerm_system_topic[\"example\"][\"name\"],\n    resource_group_name=example_resource_group.name,\n    storage_queue_endpoint=azure.eventgrid.SystemTopicEventSubscriptionStorageQueueEndpointArgs(\n        storage_account_id=example_account.id,\n        queue_name=example_queue.name,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n        var exampleQueue = new Azure.Storage.Queue(\"exampleQueue\", new Azure.Storage.QueueArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n        });\n        var exampleSystemTopic = new Azure.EventGrid.SystemTopic(\"exampleSystemTopic\", new Azure.EventGrid.SystemTopicArgs\n        {\n            Location = \"Global\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            SourceArmResourceId = exampleResourceGroup.Id,\n            TopicType = \"Microsoft.Resources.ResourceGroups\",\n        });\n        var exampleSystemTopicEventSubscription = new Azure.EventGrid.SystemTopicEventSubscription(\"exampleSystemTopicEventSubscription\", new Azure.EventGrid.SystemTopicEventSubscriptionArgs\n        {\n            SystemTopic = azurerm_system_topic.Example.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageQueueEndpoint = new Azure.EventGrid.Inputs.SystemTopicEventSubscriptionStorageQueueEndpointArgs\n            {\n                StorageAccountId = exampleAccount.Id,\n                QueueName = exampleQueue.Name,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleQueue, err := storage.NewQueue(ctx, \"exampleQueue\", \u0026storage.QueueArgs{\n\t\t\tStorageAccountName: exampleAccount.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventgrid.NewSystemTopic(ctx, \"exampleSystemTopic\", \u0026eventgrid.SystemTopicArgs{\n\t\t\tLocation:            pulumi.String(\"Global\"),\n\t\t\tResourceGroupName:   exampleResourceGroup.Name,\n\t\t\tSourceArmResourceId: exampleResourceGroup.ID(),\n\t\t\tTopicType:           pulumi.String(\"Microsoft.Resources.ResourceGroups\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventgrid.NewSystemTopicEventSubscription(ctx, \"exampleSystemTopicEventSubscription\", \u0026eventgrid.SystemTopicEventSubscriptionArgs{\n\t\t\tSystemTopic:       pulumi.Any(azurerm_system_topic.Example.Name),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageQueueEndpoint: \u0026eventgrid.SystemTopicEventSubscriptionStorageQueueEndpointArgs{\n\t\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t\t\tQueueName:        exampleQueue.Name,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventGrid System Topic Event Subscriptions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventgrid/systemTopicEventSubscription:SystemTopicEventSubscription example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/systemTopics/topic1/eventSubscriptions/subscription1\n```\n\n ",
      "inputProperties": {
        "advancedFilter": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilter:SystemTopicEventSubscriptionAdvancedFilter",
          "description": "A `advanced_filter` block as defined below.\n"
        },
        "advancedFilteringOnArraysEnabled": {
          "description": "Specifies whether advanced filters should be evaluated against an array of values instead of expecting a singular value. Defaults to `false`.\n",
          "type": "boolean"
        },
        "azureFunctionEndpoint": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAzureFunctionEndpoint:SystemTopicEventSubscriptionAzureFunctionEndpoint",
          "description": "An `azure_function_endpoint` block as defined below.\n"
        },
        "deadLetterIdentity": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionDeadLetterIdentity:SystemTopicEventSubscriptionDeadLetterIdentity",
          "description": "A `dead_letter_identity` block as defined below.\n"
        },
        "deliveryIdentity": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionDeliveryIdentity:SystemTopicEventSubscriptionDeliveryIdentity",
          "description": "A `delivery_identity` block as defined below.\n"
        },
        "eventDeliverySchema": {
          "description": "Specifies the event delivery schema for the event subscription. Possible values include: `EventGridSchema`, `CloudEventSchemaV1_0`, `CustomInputSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventhubEndpointId": {
          "description": "Specifies the id where the Event Hub is located.\n",
          "type": "string"
        },
        "expirationTimeUtc": {
          "description": "Specifies the expiration time of the event subscription (Datetime Format `RFC 3339`).\n",
          "type": "string"
        },
        "hybridConnectionEndpointId": {
          "description": "Specifies the id where the Hybrid Connection is located.\n",
          "type": "string"
        },
        "includedEventTypes": {
          "description": "A list of applicable event types that need to be part of the event subscription.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "labels": {
          "description": "A list of labels to assign to the event subscription.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this Event Subscription. Changing this forces a new Event Subscription to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the System Topic exists. Changing this forces a new Event Subscription to be created.\n",
          "type": "string"
        },
        "retryPolicy": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionRetryPolicy:SystemTopicEventSubscriptionRetryPolicy",
          "description": "A `retry_policy` block as defined below.\n"
        },
        "serviceBusQueueEndpointId": {
          "description": "Specifies the id where the Service Bus Queue is located.\n",
          "type": "string"
        },
        "serviceBusTopicEndpointId": {
          "description": "Specifies the id where the Service Bus Topic is located.\n",
          "type": "string"
        },
        "storageBlobDeadLetterDestination": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionStorageBlobDeadLetterDestination:SystemTopicEventSubscriptionStorageBlobDeadLetterDestination",
          "description": "A `storage_blob_dead_letter_destination` block as defined below.\n"
        },
        "storageQueueEndpoint": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionStorageQueueEndpoint:SystemTopicEventSubscriptionStorageQueueEndpoint",
          "description": "A `storage_queue_endpoint` block as defined below.\n"
        },
        "subjectFilter": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionSubjectFilter:SystemTopicEventSubscriptionSubjectFilter",
          "description": "A `subject_filter` block as defined below.\n"
        },
        "systemTopic": {
          "description": "The System Topic where the Event Subscription should be created in. Changing this forces a new Event Subscription to be created.\n",
          "type": "string"
        },
        "webhookEndpoint": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionWebhookEndpoint:SystemTopicEventSubscriptionWebhookEndpoint",
          "description": "A `webhook_endpoint` block as defined below.\n"
        }
      },
      "properties": {
        "advancedFilter": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilter:SystemTopicEventSubscriptionAdvancedFilter",
          "description": "A `advanced_filter` block as defined below.\n"
        },
        "advancedFilteringOnArraysEnabled": {
          "description": "Specifies whether advanced filters should be evaluated against an array of values instead of expecting a singular value. Defaults to `false`.\n",
          "type": "boolean"
        },
        "azureFunctionEndpoint": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAzureFunctionEndpoint:SystemTopicEventSubscriptionAzureFunctionEndpoint",
          "description": "An `azure_function_endpoint` block as defined below.\n"
        },
        "deadLetterIdentity": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionDeadLetterIdentity:SystemTopicEventSubscriptionDeadLetterIdentity",
          "description": "A `dead_letter_identity` block as defined below.\n"
        },
        "deliveryIdentity": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionDeliveryIdentity:SystemTopicEventSubscriptionDeliveryIdentity",
          "description": "A `delivery_identity` block as defined below.\n"
        },
        "eventDeliverySchema": {
          "description": "Specifies the event delivery schema for the event subscription. Possible values include: `EventGridSchema`, `CloudEventSchemaV1_0`, `CustomInputSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventhubEndpointId": {
          "description": "Specifies the id where the Event Hub is located.\n",
          "type": "string"
        },
        "expirationTimeUtc": {
          "description": "Specifies the expiration time of the event subscription (Datetime Format `RFC 3339`).\n",
          "type": "string"
        },
        "hybridConnectionEndpointId": {
          "description": "Specifies the id where the Hybrid Connection is located.\n",
          "type": "string"
        },
        "includedEventTypes": {
          "description": "A list of applicable event types that need to be part of the event subscription.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "labels": {
          "description": "A list of labels to assign to the event subscription.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this Event Subscription. Changing this forces a new Event Subscription to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the System Topic exists. Changing this forces a new Event Subscription to be created.\n",
          "type": "string"
        },
        "retryPolicy": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionRetryPolicy:SystemTopicEventSubscriptionRetryPolicy",
          "description": "A `retry_policy` block as defined below.\n"
        },
        "serviceBusQueueEndpointId": {
          "description": "Specifies the id where the Service Bus Queue is located.\n",
          "type": "string"
        },
        "serviceBusTopicEndpointId": {
          "description": "Specifies the id where the Service Bus Topic is located.\n",
          "type": "string"
        },
        "storageBlobDeadLetterDestination": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionStorageBlobDeadLetterDestination:SystemTopicEventSubscriptionStorageBlobDeadLetterDestination",
          "description": "A `storage_blob_dead_letter_destination` block as defined below.\n"
        },
        "storageQueueEndpoint": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionStorageQueueEndpoint:SystemTopicEventSubscriptionStorageQueueEndpoint",
          "description": "A `storage_queue_endpoint` block as defined below.\n"
        },
        "subjectFilter": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionSubjectFilter:SystemTopicEventSubscriptionSubjectFilter",
          "description": "A `subject_filter` block as defined below.\n"
        },
        "systemTopic": {
          "description": "The System Topic where the Event Subscription should be created in. Changing this forces a new Event Subscription to be created.\n",
          "type": "string"
        },
        "webhookEndpoint": {
          "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionWebhookEndpoint:SystemTopicEventSubscriptionWebhookEndpoint",
          "description": "A `webhook_endpoint` block as defined below.\n"
        }
      },
      "required": [
        "eventhubEndpointId",
        "hybridConnectionEndpointId",
        "includedEventTypes",
        "name",
        "resourceGroupName",
        "retryPolicy",
        "systemTopic"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "systemTopic"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SystemTopicEventSubscription resources.\n",
        "properties": {
          "advancedFilter": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilter:SystemTopicEventSubscriptionAdvancedFilter",
            "description": "A `advanced_filter` block as defined below.\n"
          },
          "advancedFilteringOnArraysEnabled": {
            "description": "Specifies whether advanced filters should be evaluated against an array of values instead of expecting a singular value. Defaults to `false`.\n",
            "type": "boolean"
          },
          "azureFunctionEndpoint": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAzureFunctionEndpoint:SystemTopicEventSubscriptionAzureFunctionEndpoint",
            "description": "An `azure_function_endpoint` block as defined below.\n"
          },
          "deadLetterIdentity": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionDeadLetterIdentity:SystemTopicEventSubscriptionDeadLetterIdentity",
            "description": "A `dead_letter_identity` block as defined below.\n"
          },
          "deliveryIdentity": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionDeliveryIdentity:SystemTopicEventSubscriptionDeliveryIdentity",
            "description": "A `delivery_identity` block as defined below.\n"
          },
          "eventDeliverySchema": {
            "description": "Specifies the event delivery schema for the event subscription. Possible values include: `EventGridSchema`, `CloudEventSchemaV1_0`, `CustomInputSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "eventhubEndpointId": {
            "description": "Specifies the id where the Event Hub is located.\n",
            "type": "string"
          },
          "expirationTimeUtc": {
            "description": "Specifies the expiration time of the event subscription (Datetime Format `RFC 3339`).\n",
            "type": "string"
          },
          "hybridConnectionEndpointId": {
            "description": "Specifies the id where the Hybrid Connection is located.\n",
            "type": "string"
          },
          "includedEventTypes": {
            "description": "A list of applicable event types that need to be part of the event subscription.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "labels": {
            "description": "A list of labels to assign to the event subscription.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name which should be used for this Event Subscription. Changing this forces a new Event Subscription to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the System Topic exists. Changing this forces a new Event Subscription to be created.\n",
            "type": "string"
          },
          "retryPolicy": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionRetryPolicy:SystemTopicEventSubscriptionRetryPolicy",
            "description": "A `retry_policy` block as defined below.\n"
          },
          "serviceBusQueueEndpointId": {
            "description": "Specifies the id where the Service Bus Queue is located.\n",
            "type": "string"
          },
          "serviceBusTopicEndpointId": {
            "description": "Specifies the id where the Service Bus Topic is located.\n",
            "type": "string"
          },
          "storageBlobDeadLetterDestination": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionStorageBlobDeadLetterDestination:SystemTopicEventSubscriptionStorageBlobDeadLetterDestination",
            "description": "A `storage_blob_dead_letter_destination` block as defined below.\n"
          },
          "storageQueueEndpoint": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionStorageQueueEndpoint:SystemTopicEventSubscriptionStorageQueueEndpoint",
            "description": "A `storage_queue_endpoint` block as defined below.\n"
          },
          "subjectFilter": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionSubjectFilter:SystemTopicEventSubscriptionSubjectFilter",
            "description": "A `subject_filter` block as defined below.\n"
          },
          "systemTopic": {
            "description": "The System Topic where the Event Subscription should be created in. Changing this forces a new Event Subscription to be created.\n",
            "type": "string"
          },
          "webhookEndpoint": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionWebhookEndpoint:SystemTopicEventSubscriptionWebhookEndpoint",
            "description": "A `webhook_endpoint` block as defined below.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:eventgrid/topic:Topic": {
      "aliases": [
        {
          "type": "azure:eventhub/eventGridTopic:EventGridTopic"
        }
      ],
      "description": "Manages an EventGrid Topic\n\n\u003e **Note:** at this time EventGrid Topic's are only available in a limited number of regions.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleTopic = new azure.eventgrid.Topic(\"exampleTopic\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_topic = azure.eventgrid.Topic(\"exampleTopic\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleTopic = new Azure.EventGrid.Topic(\"exampleTopic\", new Azure.EventGrid.TopicArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventgrid.NewTopic(ctx, \"exampleTopic\", \u0026eventgrid.TopicArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventGrid Topic's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventgrid/topic:Topic topic1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventGrid/topics/topic1\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:eventgrid/TopicIdentity:TopicIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "inboundIpRules": {
          "description": "One or more `inbound_ip_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/TopicInboundIpRule:TopicInboundIpRule"
          },
          "type": "array"
        },
        "inputMappingDefaultValues": {
          "$ref": "#/types/azure:eventgrid/TopicInputMappingDefaultValues:TopicInputMappingDefaultValues",
          "description": "A `input_mapping_default_values` block as defined below.\n"
        },
        "inputMappingFields": {
          "$ref": "#/types/azure:eventgrid/TopicInputMappingFields:TopicInputMappingFields",
          "description": "A `input_mapping_fields` block as defined below.\n"
        },
        "inputSchema": {
          "description": "Specifies the schema in which incoming events will be published to this domain. Allowed values are `CloudEventSchemaV1_0`, `CustomEventSchema`, or `EventGridSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventGrid Topic resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventGrid Topic exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "endpoint": {
          "description": "The Endpoint associated with the EventGrid Topic.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:eventgrid/TopicIdentity:TopicIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "inboundIpRules": {
          "description": "One or more `inbound_ip_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/TopicInboundIpRule:TopicInboundIpRule"
          },
          "type": "array"
        },
        "inputMappingDefaultValues": {
          "$ref": "#/types/azure:eventgrid/TopicInputMappingDefaultValues:TopicInputMappingDefaultValues",
          "description": "A `input_mapping_default_values` block as defined below.\n"
        },
        "inputMappingFields": {
          "$ref": "#/types/azure:eventgrid/TopicInputMappingFields:TopicInputMappingFields",
          "description": "A `input_mapping_fields` block as defined below.\n"
        },
        "inputSchema": {
          "description": "Specifies the schema in which incoming events will be published to this domain. Allowed values are `CloudEventSchemaV1_0`, `CustomEventSchema`, or `EventGridSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventGrid Topic resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryAccessKey": {
          "description": "The Primary Shared Access Key associated with the EventGrid Topic.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventGrid Topic exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryAccessKey": {
          "description": "The Secondary Shared Access Key associated with the EventGrid Topic.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "endpoint",
        "location",
        "name",
        "primaryAccessKey",
        "resourceGroupName",
        "secondaryAccessKey"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Topic resources.\n",
        "properties": {
          "endpoint": {
            "description": "The Endpoint associated with the EventGrid Topic.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:eventgrid/TopicIdentity:TopicIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "inboundIpRules": {
            "description": "One or more `inbound_ip_rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:eventgrid/TopicInboundIpRule:TopicInboundIpRule"
            },
            "type": "array"
          },
          "inputMappingDefaultValues": {
            "$ref": "#/types/azure:eventgrid/TopicInputMappingDefaultValues:TopicInputMappingDefaultValues",
            "description": "A `input_mapping_default_values` block as defined below.\n"
          },
          "inputMappingFields": {
            "$ref": "#/types/azure:eventgrid/TopicInputMappingFields:TopicInputMappingFields",
            "description": "A `input_mapping_fields` block as defined below.\n"
          },
          "inputSchema": {
            "description": "Specifies the schema in which incoming events will be published to this domain. Allowed values are `CloudEventSchemaV1_0`, `CustomEventSchema`, or `EventGridSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the EventGrid Topic resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The Primary Shared Access Key associated with the EventGrid Topic.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventGrid Topic exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The Secondary Shared Access Key associated with the EventGrid Topic.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/authorizationRule:AuthorizationRule": {
      "aliases": [
        {
          "type": "azure:eventhub/eventHubAuthorizationRule:EventHubAuthorizationRule"
        }
      ],
      "description": "Manages a Event Hubs authorization Rule within an Event Hub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleEventHubNamespace = new azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Basic\",\n    capacity: 2,\n    tags: {\n        environment: \"Production\",\n    },\n});\nconst exampleEventHub = new azure.eventhub.EventHub(\"exampleEventHub\", {\n    namespaceName: exampleEventHubNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    partitionCount: 2,\n    messageRetention: 2,\n});\nconst exampleAuthorizationRule = new azure.eventhub.AuthorizationRule(\"exampleAuthorizationRule\", {\n    namespaceName: exampleEventHubNamespace.name,\n    eventhubName: exampleEventHub.name,\n    resourceGroupName: exampleResourceGroup.name,\n    listen: true,\n    send: false,\n    manage: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_event_hub_namespace = azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    sku=\"Basic\",\n    capacity=2,\n    tags={\n        \"environment\": \"Production\",\n    })\nexample_event_hub = azure.eventhub.EventHub(\"exampleEventHub\",\n    namespace_name=example_event_hub_namespace.name,\n    resource_group_name=example_resource_group.name,\n    partition_count=2,\n    message_retention=2)\nexample_authorization_rule = azure.eventhub.AuthorizationRule(\"exampleAuthorizationRule\",\n    namespace_name=example_event_hub_namespace.name,\n    eventhub_name=example_event_hub.name,\n    resource_group_name=example_resource_group.name,\n    listen=True,\n    send=False,\n    manage=False)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"exampleEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Basic\",\n            Capacity = 2,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n        var exampleEventHub = new Azure.EventHub.EventHub(\"exampleEventHub\", new Azure.EventHub.EventHubArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PartitionCount = 2,\n            MessageRetention = 2,\n        });\n        var exampleAuthorizationRule = new Azure.EventHub.AuthorizationRule(\"exampleAuthorizationRule\", new Azure.EventHub.AuthorizationRuleArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            EventhubName = exampleEventHub.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Listen = true,\n            Send = false,\n            Manage = false,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHubNamespace, err := eventhub.NewEventHubNamespace(ctx, \"exampleEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Basic\"),\n\t\t\tCapacity:          pulumi.Int(2),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHub, err := eventhub.NewEventHub(ctx, \"exampleEventHub\", \u0026eventhub.EventHubArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPartitionCount:    pulumi.Int(2),\n\t\t\tMessageRetention:  pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventhub.NewAuthorizationRule(ctx, \"exampleAuthorizationRule\", \u0026eventhub.AuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tEventhubName:      exampleEventHub.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tListen:            pulumi.Bool(true),\n\t\t\tSend:              pulumi.Bool(false),\n\t\t\tManage:            pulumi.Bool(false),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventHub Authorization Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/authorizationRule:AuthorizationRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventHub/namespaces/namespace1/eventhubs/eventhub1/authorizationRules/rule1\n```\n\n ",
      "inputProperties": {
        "eventhubName": {
          "description": "Specifies the name of the EventHub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "listen": {
          "description": "Does this Authorization Rule have permissions to Listen to the Event Hub? Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Does this Authorization Rule have permissions to Manage to the Event Hub? When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the EventHub Authorization Rule resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the grandparent EventHub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventHub Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "send": {
          "description": "Does this Authorization Rule have permissions to Send to the Event Hub? Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "eventhubName": {
          "description": "Specifies the name of the EventHub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "listen": {
          "description": "Does this Authorization Rule have permissions to Listen to the Event Hub? Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Does this Authorization Rule have permissions to Manage to the Event Hub? When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the EventHub Authorization Rule resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the grandparent EventHub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The Primary Connection String for the Event Hubs authorization Rule.\n",
          "type": "string"
        },
        "primaryConnectionStringAlias": {
          "description": "The alias of the Primary Connection String for the Event Hubs authorization Rule, which is generated when disaster recovery is enabled.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The Primary Key for the Event Hubs authorization Rule.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventHub Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The Secondary Connection String for the Event Hubs Authorization Rule.\n",
          "type": "string"
        },
        "secondaryConnectionStringAlias": {
          "description": "The alias of the Secondary Connection String for the Event Hubs Authorization Rule, which is generated when disaster recovery is enabled.\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The Secondary Key for the Event Hubs Authorization Rule.\n",
          "type": "string"
        },
        "send": {
          "description": "Does this Authorization Rule have permissions to Send to the Event Hub? Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "eventhubName",
        "name",
        "namespaceName",
        "primaryConnectionString",
        "primaryConnectionStringAlias",
        "primaryKey",
        "resourceGroupName",
        "secondaryConnectionString",
        "secondaryConnectionStringAlias",
        "secondaryKey"
      ],
      "requiredInputs": [
        "eventhubName",
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AuthorizationRule resources.\n",
        "properties": {
          "eventhubName": {
            "description": "Specifies the name of the EventHub. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "listen": {
            "description": "Does this Authorization Rule have permissions to Listen to the Event Hub? Defaults to `false`.\n",
            "type": "boolean"
          },
          "manage": {
            "description": "Does this Authorization Rule have permissions to Manage to the Event Hub? When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the EventHub Authorization Rule resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the grandparent EventHub Namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the Event Hubs authorization Rule.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias of the Primary Connection String for the Event Hubs authorization Rule, which is generated when disaster recovery is enabled.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the Event Hubs authorization Rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventHub Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the Event Hubs Authorization Rule.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias of the Secondary Connection String for the Event Hubs Authorization Rule, which is generated when disaster recovery is enabled.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the Event Hubs Authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "description": "Does this Authorization Rule have permissions to Send to the Event Hub? Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/cluster:Cluster": {
      "description": "Manages an EventHub Cluster\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst test = new azure.eventhub.Cluster(\"test\", {\n    resourceGroupName: azurerm_resource_group.test.name,\n    location: azurerm_resource_group.test.location,\n    skuName: \"Dedicated_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\ntest = azure.eventhub.Cluster(\"test\",\n    resource_group_name=azurerm_resource_group[\"test\"][\"name\"],\n    location=azurerm_resource_group[\"test\"][\"location\"],\n    sku_name=\"Dedicated_1\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var test = new Azure.EventHub.Cluster(\"test\", new Azure.EventHub.ClusterArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n            Location = azurerm_resource_group.Test.Location,\n            SkuName = \"Dedicated_1\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventhub.NewCluster(ctx, \"test\", \u0026eventhub.ClusterArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_resource_group.Test.Name),\n\t\t\tLocation:          pulumi.Any(azurerm_resource_group.Test.Location),\n\t\t\tSkuName:           pulumi.String(\"Dedicated_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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventHub Cluster's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/cluster:Cluster cluster1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventHub/clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventHub Cluster resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventHub Cluster exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The sku name of the EventHub Cluster. The only supported value at this time is `Dedicated_1`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventHub Cluster resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventHub Cluster exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The sku name of the EventHub Cluster. The only supported value at this time is `Dedicated_1`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "skuName"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Cluster resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the EventHub Cluster resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventHub Cluster exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The sku name of the EventHub Cluster. The only supported value at this time is `Dedicated_1`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/consumerGroup:ConsumerGroup": {
      "aliases": [
        {
          "type": "azure:eventhub/eventHubConsumerGroup:EventHubConsumerGroup"
        }
      ],
      "description": "Manages a Event Hubs Consumer Group as a nested resource within an Event Hub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleEventHubNamespace = new azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Basic\",\n    capacity: 2,\n    tags: {\n        environment: \"Production\",\n    },\n});\nconst exampleEventHub = new azure.eventhub.EventHub(\"exampleEventHub\", {\n    namespaceName: exampleEventHubNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    partitionCount: 2,\n    messageRetention: 2,\n});\nconst exampleConsumerGroup = new azure.eventhub.ConsumerGroup(\"exampleConsumerGroup\", {\n    namespaceName: exampleEventHubNamespace.name,\n    eventhubName: exampleEventHub.name,\n    resourceGroupName: exampleResourceGroup.name,\n    userMetadata: \"some-meta-data\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_event_hub_namespace = azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    sku=\"Basic\",\n    capacity=2,\n    tags={\n        \"environment\": \"Production\",\n    })\nexample_event_hub = azure.eventhub.EventHub(\"exampleEventHub\",\n    namespace_name=example_event_hub_namespace.name,\n    resource_group_name=example_resource_group.name,\n    partition_count=2,\n    message_retention=2)\nexample_consumer_group = azure.eventhub.ConsumerGroup(\"exampleConsumerGroup\",\n    namespace_name=example_event_hub_namespace.name,\n    eventhub_name=example_event_hub.name,\n    resource_group_name=example_resource_group.name,\n    user_metadata=\"some-meta-data\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"exampleEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Basic\",\n            Capacity = 2,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n        var exampleEventHub = new Azure.EventHub.EventHub(\"exampleEventHub\", new Azure.EventHub.EventHubArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PartitionCount = 2,\n            MessageRetention = 2,\n        });\n        var exampleConsumerGroup = new Azure.EventHub.ConsumerGroup(\"exampleConsumerGroup\", new Azure.EventHub.ConsumerGroupArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            EventhubName = exampleEventHub.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            UserMetadata = \"some-meta-data\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHubNamespace, err := eventhub.NewEventHubNamespace(ctx, \"exampleEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Basic\"),\n\t\t\tCapacity:          pulumi.Int(2),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHub, err := eventhub.NewEventHub(ctx, \"exampleEventHub\", \u0026eventhub.EventHubArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPartitionCount:    pulumi.Int(2),\n\t\t\tMessageRetention:  pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventhub.NewConsumerGroup(ctx, \"exampleConsumerGroup\", \u0026eventhub.ConsumerGroupArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tEventhubName:      exampleEventHub.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tUserMetadata:      pulumi.String(\"some-meta-data\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventHub Consumer Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/consumerGroup:ConsumerGroup consumerGroup1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventHub/namespaces/namespace1/eventhubs/eventhub1/consumergroups/consumerGroup1\n```\n\n ",
      "inputProperties": {
        "eventhubName": {
          "description": "Specifies the name of the EventHub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventHub Consumer Group resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the grandparent EventHub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventHub Consumer Group's grandparent Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "userMetadata": {
          "description": "Specifies the user metadata.\n",
          "type": "string"
        }
      },
      "properties": {
        "eventhubName": {
          "description": "Specifies the name of the EventHub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventHub Consumer Group resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the grandparent EventHub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventHub Consumer Group's grandparent Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "userMetadata": {
          "description": "Specifies the user metadata.\n",
          "type": "string"
        }
      },
      "required": [
        "eventhubName",
        "name",
        "namespaceName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "eventhubName",
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ConsumerGroup resources.\n",
        "properties": {
          "eventhubName": {
            "description": "Specifies the name of the EventHub. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the EventHub Consumer Group resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the grandparent EventHub Namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventHub Consumer Group's grandparent Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "userMetadata": {
            "description": "Specifies the user metadata.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/domain:Domain": {
      "deprecationMessage": "azure.eventhub.Domain has been deprecated in favor of azure.eventgrid.Domain",
      "description": "Manages an EventGrid Domain\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleDomain = new azure.eventgrid.Domain(\"exampleDomain\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_domain = azure.eventgrid.Domain(\"exampleDomain\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleDomain = new Azure.EventGrid.Domain(\"exampleDomain\", new Azure.EventGrid.DomainArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventgrid.NewDomain(ctx, \"exampleDomain\", \u0026eventgrid.DomainArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventGrid Domains can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/domain:Domain domain1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventGrid/domains/domain1\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:eventhub/DomainIdentity:DomainIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "inboundIpRules": {
          "description": "One or more `inbound_ip_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/DomainInboundIpRule:DomainInboundIpRule"
          },
          "type": "array"
        },
        "inputMappingDefaultValues": {
          "$ref": "#/types/azure:eventhub/DomainInputMappingDefaultValues:DomainInputMappingDefaultValues",
          "description": "A `input_mapping_default_values` block as defined below.\n"
        },
        "inputMappingFields": {
          "$ref": "#/types/azure:eventhub/DomainInputMappingFields:DomainInputMappingFields",
          "description": "A `input_mapping_fields` block as defined below.\n"
        },
        "inputSchema": {
          "description": "Specifies the schema in which incoming events will be published to this domain. Allowed values are `CloudEventSchemaV1_0`, `CustomEventSchema`, or `EventGridSchema`. Defaults to `eventgridschema`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventGrid Domain resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventGrid Domain exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "endpoint": {
          "description": "The Endpoint associated with the EventGrid Domain.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:eventhub/DomainIdentity:DomainIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "inboundIpRules": {
          "description": "One or more `inbound_ip_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/DomainInboundIpRule:DomainInboundIpRule"
          },
          "type": "array"
        },
        "inputMappingDefaultValues": {
          "$ref": "#/types/azure:eventhub/DomainInputMappingDefaultValues:DomainInputMappingDefaultValues",
          "description": "A `input_mapping_default_values` block as defined below.\n"
        },
        "inputMappingFields": {
          "$ref": "#/types/azure:eventhub/DomainInputMappingFields:DomainInputMappingFields",
          "description": "A `input_mapping_fields` block as defined below.\n"
        },
        "inputSchema": {
          "description": "Specifies the schema in which incoming events will be published to this domain. Allowed values are `CloudEventSchemaV1_0`, `CustomEventSchema`, or `EventGridSchema`. Defaults to `eventgridschema`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventGrid Domain resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryAccessKey": {
          "description": "The Primary Shared Access Key associated with the EventGrid Domain.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventGrid Domain exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryAccessKey": {
          "description": "The Secondary Shared Access Key associated with the EventGrid Domain.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "endpoint",
        "location",
        "name",
        "primaryAccessKey",
        "resourceGroupName",
        "secondaryAccessKey"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Domain resources.\n",
        "properties": {
          "endpoint": {
            "description": "The Endpoint associated with the EventGrid Domain.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:eventhub/DomainIdentity:DomainIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "inboundIpRules": {
            "description": "One or more `inbound_ip_rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:eventhub/DomainInboundIpRule:DomainInboundIpRule"
            },
            "type": "array"
          },
          "inputMappingDefaultValues": {
            "$ref": "#/types/azure:eventhub/DomainInputMappingDefaultValues:DomainInputMappingDefaultValues",
            "description": "A `input_mapping_default_values` block as defined below.\n"
          },
          "inputMappingFields": {
            "$ref": "#/types/azure:eventhub/DomainInputMappingFields:DomainInputMappingFields",
            "description": "A `input_mapping_fields` block as defined below.\n"
          },
          "inputSchema": {
            "description": "Specifies the schema in which incoming events will be published to this domain. Allowed values are `CloudEventSchemaV1_0`, `CustomEventSchema`, or `EventGridSchema`. Defaults to `eventgridschema`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the EventGrid Domain resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The Primary Shared Access Key associated with the EventGrid Domain.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventGrid Domain exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The Secondary Shared Access Key associated with the EventGrid Domain.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/eventGridTopic:EventGridTopic": {
      "deprecationMessage": "azure.eventhub.EventGridTopic has been deprecated in favor of azure.eventgrid.Topic",
      "description": "Manages an EventGrid Topic\n\n\u003e **Note:** at this time EventGrid Topic's are only available in a limited number of regions.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleTopic = new azure.eventgrid.Topic(\"exampleTopic\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_topic = azure.eventgrid.Topic(\"exampleTopic\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleTopic = new Azure.EventGrid.Topic(\"exampleTopic\", new Azure.EventGrid.TopicArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventgrid.NewTopic(ctx, \"exampleTopic\", \u0026eventgrid.TopicArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventGrid Topic's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/eventGridTopic:EventGridTopic topic1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventGrid/topics/topic1\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:eventhub/EventGridTopicIdentity:EventGridTopicIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "inboundIpRules": {
          "description": "One or more `inbound_ip_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventGridTopicInboundIpRule:EventGridTopicInboundIpRule"
          },
          "type": "array"
        },
        "inputMappingDefaultValues": {
          "$ref": "#/types/azure:eventhub/EventGridTopicInputMappingDefaultValues:EventGridTopicInputMappingDefaultValues",
          "description": "A `input_mapping_default_values` block as defined below.\n"
        },
        "inputMappingFields": {
          "$ref": "#/types/azure:eventhub/EventGridTopicInputMappingFields:EventGridTopicInputMappingFields",
          "description": "A `input_mapping_fields` block as defined below.\n"
        },
        "inputSchema": {
          "description": "Specifies the schema in which incoming events will be published to this domain. Allowed values are `CloudEventSchemaV1_0`, `CustomEventSchema`, or `EventGridSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventGrid Topic resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventGrid Topic exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "endpoint": {
          "description": "The Endpoint associated with the EventGrid Topic.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:eventhub/EventGridTopicIdentity:EventGridTopicIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "inboundIpRules": {
          "description": "One or more `inbound_ip_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventGridTopicInboundIpRule:EventGridTopicInboundIpRule"
          },
          "type": "array"
        },
        "inputMappingDefaultValues": {
          "$ref": "#/types/azure:eventhub/EventGridTopicInputMappingDefaultValues:EventGridTopicInputMappingDefaultValues",
          "description": "A `input_mapping_default_values` block as defined below.\n"
        },
        "inputMappingFields": {
          "$ref": "#/types/azure:eventhub/EventGridTopicInputMappingFields:EventGridTopicInputMappingFields",
          "description": "A `input_mapping_fields` block as defined below.\n"
        },
        "inputSchema": {
          "description": "Specifies the schema in which incoming events will be published to this domain. Allowed values are `CloudEventSchemaV1_0`, `CustomEventSchema`, or `EventGridSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventGrid Topic resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryAccessKey": {
          "description": "The Primary Shared Access Key associated with the EventGrid Topic.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventGrid Topic exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryAccessKey": {
          "description": "The Secondary Shared Access Key associated with the EventGrid Topic.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "endpoint",
        "location",
        "name",
        "primaryAccessKey",
        "resourceGroupName",
        "secondaryAccessKey"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EventGridTopic resources.\n",
        "properties": {
          "endpoint": {
            "description": "The Endpoint associated with the EventGrid Topic.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:eventhub/EventGridTopicIdentity:EventGridTopicIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "inboundIpRules": {
            "description": "One or more `inbound_ip_rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:eventhub/EventGridTopicInboundIpRule:EventGridTopicInboundIpRule"
            },
            "type": "array"
          },
          "inputMappingDefaultValues": {
            "$ref": "#/types/azure:eventhub/EventGridTopicInputMappingDefaultValues:EventGridTopicInputMappingDefaultValues",
            "description": "A `input_mapping_default_values` block as defined below.\n"
          },
          "inputMappingFields": {
            "$ref": "#/types/azure:eventhub/EventGridTopicInputMappingFields:EventGridTopicInputMappingFields",
            "description": "A `input_mapping_fields` block as defined below.\n"
          },
          "inputSchema": {
            "description": "Specifies the schema in which incoming events will be published to this domain. Allowed values are `CloudEventSchemaV1_0`, `CustomEventSchema`, or `EventGridSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the EventGrid Topic resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The Primary Shared Access Key associated with the EventGrid Topic.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventGrid Topic exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The Secondary Shared Access Key associated with the EventGrid Topic.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/eventHub:EventHub": {
      "description": "Manages a Event Hubs as a nested resource within a Event Hubs namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleEventHubNamespace = new azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    capacity: 1,\n    tags: {\n        environment: \"Production\",\n    },\n});\nconst exampleEventHub = new azure.eventhub.EventHub(\"exampleEventHub\", {\n    namespaceName: exampleEventHubNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    partitionCount: 2,\n    messageRetention: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_event_hub_namespace = azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    capacity=1,\n    tags={\n        \"environment\": \"Production\",\n    })\nexample_event_hub = azure.eventhub.EventHub(\"exampleEventHub\",\n    namespace_name=example_event_hub_namespace.name,\n    resource_group_name=example_resource_group.name,\n    partition_count=2,\n    message_retention=1)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"exampleEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Capacity = 1,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n        var exampleEventHub = new Azure.EventHub.EventHub(\"exampleEventHub\", new Azure.EventHub.EventHubArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PartitionCount = 2,\n            MessageRetention = 1,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHubNamespace, err := eventhub.NewEventHubNamespace(ctx, \"exampleEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tCapacity:          pulumi.Int(1),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventhub.NewEventHub(ctx, \"exampleEventHub\", \u0026eventhub.EventHubArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPartitionCount:    pulumi.Int(2),\n\t\t\tMessageRetention:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventHubs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/eventHub:EventHub eventhub1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventHub/namespaces/namespace1/eventhubs/eventhub1\n```\n\n ",
      "inputProperties": {
        "captureDescription": {
          "$ref": "#/types/azure:eventhub/EventHubCaptureDescription:EventHubCaptureDescription",
          "description": "A `capture_description` block as defined below.\n"
        },
        "messageRetention": {
          "description": "Specifies the number of days to retain the events for this Event Hub.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the EventHub resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the EventHub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partitionCount": {
          "description": "Specifies the current number of shards on the Event Hub. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventHub's parent Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "Specifies the status of the Event Hub resource. Possible values are `Active`, `Disabled` and `SendDisabled`. Defaults to `Active`.\n",
          "type": "string"
        }
      },
      "properties": {
        "captureDescription": {
          "$ref": "#/types/azure:eventhub/EventHubCaptureDescription:EventHubCaptureDescription",
          "description": "A `capture_description` block as defined below.\n"
        },
        "messageRetention": {
          "description": "Specifies the number of days to retain the events for this Event Hub.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the EventHub resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the EventHub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partitionCount": {
          "description": "Specifies the current number of shards on the Event Hub. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "partitionIds": {
          "description": "The identifiers for partitions created for Event Hubs.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventHub's parent Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "Specifies the status of the Event Hub resource. Possible values are `Active`, `Disabled` and `SendDisabled`. Defaults to `Active`.\n",
          "type": "string"
        }
      },
      "required": [
        "messageRetention",
        "name",
        "namespaceName",
        "partitionCount",
        "partitionIds",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "messageRetention",
        "namespaceName",
        "partitionCount",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EventHub resources.\n",
        "properties": {
          "captureDescription": {
            "$ref": "#/types/azure:eventhub/EventHubCaptureDescription:EventHubCaptureDescription",
            "description": "A `capture_description` block as defined below.\n"
          },
          "messageRetention": {
            "description": "Specifies the number of days to retain the events for this Event Hub.\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the EventHub resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the EventHub Namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "partitionCount": {
            "description": "Specifies the current number of shards on the Event Hub. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "partitionIds": {
            "description": "The identifiers for partitions created for Event Hubs.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventHub's parent Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "status": {
            "description": "Specifies the status of the Event Hub resource. Possible values are `Active`, `Disabled` and `SendDisabled`. Defaults to `Active`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/eventHubAuthorizationRule:EventHubAuthorizationRule": {
      "deprecationMessage": "azure.eventhub.EventHubAuthorizationRule has been deprecated in favor of azure.eventhub.AuthorizationRule",
      "description": "Manages a Event Hubs authorization Rule within an Event Hub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleEventHubNamespace = new azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Basic\",\n    capacity: 2,\n    tags: {\n        environment: \"Production\",\n    },\n});\nconst exampleEventHub = new azure.eventhub.EventHub(\"exampleEventHub\", {\n    namespaceName: exampleEventHubNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    partitionCount: 2,\n    messageRetention: 2,\n});\nconst exampleAuthorizationRule = new azure.eventhub.AuthorizationRule(\"exampleAuthorizationRule\", {\n    namespaceName: exampleEventHubNamespace.name,\n    eventhubName: exampleEventHub.name,\n    resourceGroupName: exampleResourceGroup.name,\n    listen: true,\n    send: false,\n    manage: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_event_hub_namespace = azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    sku=\"Basic\",\n    capacity=2,\n    tags={\n        \"environment\": \"Production\",\n    })\nexample_event_hub = azure.eventhub.EventHub(\"exampleEventHub\",\n    namespace_name=example_event_hub_namespace.name,\n    resource_group_name=example_resource_group.name,\n    partition_count=2,\n    message_retention=2)\nexample_authorization_rule = azure.eventhub.AuthorizationRule(\"exampleAuthorizationRule\",\n    namespace_name=example_event_hub_namespace.name,\n    eventhub_name=example_event_hub.name,\n    resource_group_name=example_resource_group.name,\n    listen=True,\n    send=False,\n    manage=False)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"exampleEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Basic\",\n            Capacity = 2,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n        var exampleEventHub = new Azure.EventHub.EventHub(\"exampleEventHub\", new Azure.EventHub.EventHubArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PartitionCount = 2,\n            MessageRetention = 2,\n        });\n        var exampleAuthorizationRule = new Azure.EventHub.AuthorizationRule(\"exampleAuthorizationRule\", new Azure.EventHub.AuthorizationRuleArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            EventhubName = exampleEventHub.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Listen = true,\n            Send = false,\n            Manage = false,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHubNamespace, err := eventhub.NewEventHubNamespace(ctx, \"exampleEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Basic\"),\n\t\t\tCapacity:          pulumi.Int(2),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHub, err := eventhub.NewEventHub(ctx, \"exampleEventHub\", \u0026eventhub.EventHubArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPartitionCount:    pulumi.Int(2),\n\t\t\tMessageRetention:  pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventhub.NewAuthorizationRule(ctx, \"exampleAuthorizationRule\", \u0026eventhub.AuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tEventhubName:      exampleEventHub.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tListen:            pulumi.Bool(true),\n\t\t\tSend:              pulumi.Bool(false),\n\t\t\tManage:            pulumi.Bool(false),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventHub Authorization Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/eventHubAuthorizationRule:EventHubAuthorizationRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventHub/namespaces/namespace1/eventhubs/eventhub1/authorizationRules/rule1\n```\n\n ",
      "inputProperties": {
        "eventhubName": {
          "description": "Specifies the name of the EventHub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "listen": {
          "description": "Does this Authorization Rule have permissions to Listen to the Event Hub? Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Does this Authorization Rule have permissions to Manage to the Event Hub? When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the EventHub Authorization Rule resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the grandparent EventHub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventHub Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "send": {
          "description": "Does this Authorization Rule have permissions to Send to the Event Hub? Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "eventhubName": {
          "description": "Specifies the name of the EventHub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "listen": {
          "description": "Does this Authorization Rule have permissions to Listen to the Event Hub? Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Does this Authorization Rule have permissions to Manage to the Event Hub? When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the EventHub Authorization Rule resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the grandparent EventHub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The Primary Connection String for the Event Hubs authorization Rule.\n",
          "type": "string"
        },
        "primaryConnectionStringAlias": {
          "description": "The alias of the Primary Connection String for the Event Hubs authorization Rule, which is generated when disaster recovery is enabled.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The Primary Key for the Event Hubs authorization Rule.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventHub Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The Secondary Connection String for the Event Hubs Authorization Rule.\n",
          "type": "string"
        },
        "secondaryConnectionStringAlias": {
          "description": "The alias of the Secondary Connection String for the Event Hubs Authorization Rule, which is generated when disaster recovery is enabled.\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The Secondary Key for the Event Hubs Authorization Rule.\n",
          "type": "string"
        },
        "send": {
          "description": "Does this Authorization Rule have permissions to Send to the Event Hub? Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "eventhubName",
        "name",
        "namespaceName",
        "primaryConnectionString",
        "primaryConnectionStringAlias",
        "primaryKey",
        "resourceGroupName",
        "secondaryConnectionString",
        "secondaryConnectionStringAlias",
        "secondaryKey"
      ],
      "requiredInputs": [
        "eventhubName",
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EventHubAuthorizationRule resources.\n",
        "properties": {
          "eventhubName": {
            "description": "Specifies the name of the EventHub. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "listen": {
            "description": "Does this Authorization Rule have permissions to Listen to the Event Hub? Defaults to `false`.\n",
            "type": "boolean"
          },
          "manage": {
            "description": "Does this Authorization Rule have permissions to Manage to the Event Hub? When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the EventHub Authorization Rule resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the grandparent EventHub Namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the Event Hubs authorization Rule.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias of the Primary Connection String for the Event Hubs authorization Rule, which is generated when disaster recovery is enabled.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the Event Hubs authorization Rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventHub Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the Event Hubs Authorization Rule.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias of the Secondary Connection String for the Event Hubs Authorization Rule, which is generated when disaster recovery is enabled.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the Event Hubs Authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "description": "Does this Authorization Rule have permissions to Send to the Event Hub? Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/eventHubConsumerGroup:EventHubConsumerGroup": {
      "deprecationMessage": "azure.eventhub.EventHubConsumerGroup has been deprecated in favor of azure.eventhub.ConsumerGroup",
      "description": "Manages a Event Hubs Consumer Group as a nested resource within an Event Hub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleEventHubNamespace = new azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Basic\",\n    capacity: 2,\n    tags: {\n        environment: \"Production\",\n    },\n});\nconst exampleEventHub = new azure.eventhub.EventHub(\"exampleEventHub\", {\n    namespaceName: exampleEventHubNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    partitionCount: 2,\n    messageRetention: 2,\n});\nconst exampleConsumerGroup = new azure.eventhub.ConsumerGroup(\"exampleConsumerGroup\", {\n    namespaceName: exampleEventHubNamespace.name,\n    eventhubName: exampleEventHub.name,\n    resourceGroupName: exampleResourceGroup.name,\n    userMetadata: \"some-meta-data\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_event_hub_namespace = azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    sku=\"Basic\",\n    capacity=2,\n    tags={\n        \"environment\": \"Production\",\n    })\nexample_event_hub = azure.eventhub.EventHub(\"exampleEventHub\",\n    namespace_name=example_event_hub_namespace.name,\n    resource_group_name=example_resource_group.name,\n    partition_count=2,\n    message_retention=2)\nexample_consumer_group = azure.eventhub.ConsumerGroup(\"exampleConsumerGroup\",\n    namespace_name=example_event_hub_namespace.name,\n    eventhub_name=example_event_hub.name,\n    resource_group_name=example_resource_group.name,\n    user_metadata=\"some-meta-data\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"exampleEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Basic\",\n            Capacity = 2,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n        var exampleEventHub = new Azure.EventHub.EventHub(\"exampleEventHub\", new Azure.EventHub.EventHubArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PartitionCount = 2,\n            MessageRetention = 2,\n        });\n        var exampleConsumerGroup = new Azure.EventHub.ConsumerGroup(\"exampleConsumerGroup\", new Azure.EventHub.ConsumerGroupArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            EventhubName = exampleEventHub.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            UserMetadata = \"some-meta-data\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHubNamespace, err := eventhub.NewEventHubNamespace(ctx, \"exampleEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Basic\"),\n\t\t\tCapacity:          pulumi.Int(2),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHub, err := eventhub.NewEventHub(ctx, \"exampleEventHub\", \u0026eventhub.EventHubArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPartitionCount:    pulumi.Int(2),\n\t\t\tMessageRetention:  pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventhub.NewConsumerGroup(ctx, \"exampleConsumerGroup\", \u0026eventhub.ConsumerGroupArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tEventhubName:      exampleEventHub.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tUserMetadata:      pulumi.String(\"some-meta-data\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventHub Consumer Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/eventHubConsumerGroup:EventHubConsumerGroup consumerGroup1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventHub/namespaces/namespace1/eventhubs/eventhub1/consumergroups/consumerGroup1\n```\n\n ",
      "inputProperties": {
        "eventhubName": {
          "description": "Specifies the name of the EventHub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventHub Consumer Group resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the grandparent EventHub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventHub Consumer Group's grandparent Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "userMetadata": {
          "description": "Specifies the user metadata.\n",
          "type": "string"
        }
      },
      "properties": {
        "eventhubName": {
          "description": "Specifies the name of the EventHub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the EventHub Consumer Group resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the grandparent EventHub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventHub Consumer Group's grandparent Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "userMetadata": {
          "description": "Specifies the user metadata.\n",
          "type": "string"
        }
      },
      "required": [
        "eventhubName",
        "name",
        "namespaceName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "eventhubName",
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EventHubConsumerGroup resources.\n",
        "properties": {
          "eventhubName": {
            "description": "Specifies the name of the EventHub. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the EventHub Consumer Group resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the grandparent EventHub Namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventHub Consumer Group's grandparent Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "userMetadata": {
            "description": "Specifies the user metadata.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/eventHubNamespace:EventHubNamespace": {
      "description": "Manages an EventHub Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleEventHubNamespace = new azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    capacity: 2,\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_event_hub_namespace = azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    capacity=2,\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"exampleEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Capacity = 2,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventhub.NewEventHubNamespace(ctx, \"exampleEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tCapacity:          pulumi.Int(2),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventHub Namespaces can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/eventHubNamespace:EventHubNamespace namespace1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventHub/namespaces/namespace1\n```\n\n ",
      "inputProperties": {
        "autoInflateEnabled": {
          "description": "Is Auto Inflate enabled for the EventHub Namespace?\n",
          "type": "boolean"
        },
        "capacity": {
          "description": "Specifies the Capacity / Throughput Units for a `Standard` SKU namespace. Default capacity has a maximum of `20`, but can be increased in blocks of 20 on a committed purchase basis.\n",
          "type": "integer"
        },
        "dedicatedClusterId": {
          "description": "Specifies the ID of the EventHub Dedicated Cluster where this Namespace should created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:eventhub/EventHubNamespaceIdentity:EventHubNamespaceIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maximumThroughputUnits": {
          "description": "Specifies the maximum number of throughput units when Auto Inflate is Enabled. Valid values range from `1` - `20`.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the EventHub Namespace resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkRulesets": {
          "$ref": "#/types/azure:eventhub/EventHubNamespaceNetworkRulesets:EventHubNamespaceNetworkRulesets",
          "description": "A `network_rulesets` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "Defines which tier to use. Valid options are `Basic`, `Standard`, and `Premium`. Please not that setting this field to `Premium` will force the creation of a new resource and also requires setting `zone_redundant` to true.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zoneRedundant": {
          "description": "Specifies if the EventHub Namespace should be Zone Redundant (created across Availability Zones). Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "autoInflateEnabled": {
          "description": "Is Auto Inflate enabled for the EventHub Namespace?\n",
          "type": "boolean"
        },
        "capacity": {
          "description": "Specifies the Capacity / Throughput Units for a `Standard` SKU namespace. Default capacity has a maximum of `20`, but can be increased in blocks of 20 on a committed purchase basis.\n",
          "type": "integer"
        },
        "dedicatedClusterId": {
          "description": "Specifies the ID of the EventHub Dedicated Cluster where this Namespace should created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "defaultPrimaryConnectionString": {
          "description": "The primary connection string for the authorization\nrule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "defaultPrimaryConnectionStringAlias": {
          "description": "The alias of the primary connection string for the authorization\nrule `RootManageSharedAccessKey`, which is generated when disaster recovery is enabled.\n",
          "type": "string"
        },
        "defaultPrimaryKey": {
          "description": "The primary access key for the authorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "defaultSecondaryConnectionString": {
          "description": "The secondary connection string for the\nauthorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "defaultSecondaryConnectionStringAlias": {
          "description": "The alias of the secondary connection string for the\nauthorization rule `RootManageSharedAccessKey`, which is generated when disaster recovery is enabled.\n",
          "type": "string"
        },
        "defaultSecondaryKey": {
          "description": "The secondary access key for the authorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:eventhub/EventHubNamespaceIdentity:EventHubNamespaceIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maximumThroughputUnits": {
          "description": "Specifies the maximum number of throughput units when Auto Inflate is Enabled. Valid values range from `1` - `20`.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the EventHub Namespace resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkRulesets": {
          "$ref": "#/types/azure:eventhub/EventHubNamespaceNetworkRulesets:EventHubNamespaceNetworkRulesets",
          "description": "A `network_rulesets` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "Defines which tier to use. Valid options are `Basic`, `Standard`, and `Premium`. Please not that setting this field to `Premium` will force the creation of a new resource and also requires setting `zone_redundant` to true.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zoneRedundant": {
          "description": "Specifies if the EventHub Namespace should be Zone Redundant (created across Availability Zones). Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "defaultPrimaryConnectionString",
        "defaultPrimaryConnectionStringAlias",
        "defaultPrimaryKey",
        "defaultSecondaryConnectionString",
        "defaultSecondaryConnectionStringAlias",
        "defaultSecondaryKey",
        "location",
        "maximumThroughputUnits",
        "name",
        "networkRulesets",
        "resourceGroupName",
        "sku"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EventHubNamespace resources.\n",
        "properties": {
          "autoInflateEnabled": {
            "description": "Is Auto Inflate enabled for the EventHub Namespace?\n",
            "type": "boolean"
          },
          "capacity": {
            "description": "Specifies the Capacity / Throughput Units for a `Standard` SKU namespace. Default capacity has a maximum of `20`, but can be increased in blocks of 20 on a committed purchase basis.\n",
            "type": "integer"
          },
          "dedicatedClusterId": {
            "description": "Specifies the ID of the EventHub Dedicated Cluster where this Namespace should created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "defaultPrimaryConnectionString": {
            "description": "The primary connection string for the authorization\nrule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultPrimaryConnectionStringAlias": {
            "description": "The alias of the primary connection string for the authorization\nrule `RootManageSharedAccessKey`, which is generated when disaster recovery is enabled.\n",
            "type": "string"
          },
          "defaultPrimaryKey": {
            "description": "The primary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryConnectionString": {
            "description": "The secondary connection string for the\nauthorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryConnectionStringAlias": {
            "description": "The alias of the secondary connection string for the\nauthorization rule `RootManageSharedAccessKey`, which is generated when disaster recovery is enabled.\n",
            "type": "string"
          },
          "defaultSecondaryKey": {
            "description": "The secondary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:eventhub/EventHubNamespaceIdentity:EventHubNamespaceIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maximumThroughputUnits": {
            "description": "Specifies the maximum number of throughput units when Auto Inflate is Enabled. Valid values range from `1` - `20`.\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the EventHub Namespace resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkRulesets": {
            "$ref": "#/types/azure:eventhub/EventHubNamespaceNetworkRulesets:EventHubNamespaceNetworkRulesets",
            "description": "A `network_rulesets` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sku": {
            "description": "Defines which tier to use. Valid options are `Basic`, `Standard`, and `Premium`. Please not that setting this field to `Premium` will force the creation of a new resource and also requires setting `zone_redundant` to true.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "zoneRedundant": {
            "description": "Specifies if the EventHub Namespace should be Zone Redundant (created across Availability Zones). Changing this forces a new resource to be created. Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/eventHubNamespaceAuthorizationRule:EventHubNamespaceAuthorizationRule": {
      "description": "Manages an Authorization Rule for an Event Hub Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleEventHubNamespace = new azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Basic\",\n    capacity: 2,\n    tags: {\n        environment: \"Production\",\n    },\n});\nconst exampleEventHubNamespaceAuthorizationRule = new azure.eventhub.EventHubNamespaceAuthorizationRule(\"exampleEventHubNamespaceAuthorizationRule\", {\n    namespaceName: exampleEventHubNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    listen: true,\n    send: false,\n    manage: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_event_hub_namespace = azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Basic\",\n    capacity=2,\n    tags={\n        \"environment\": \"Production\",\n    })\nexample_event_hub_namespace_authorization_rule = azure.eventhub.EventHubNamespaceAuthorizationRule(\"exampleEventHubNamespaceAuthorizationRule\",\n    namespace_name=example_event_hub_namespace.name,\n    resource_group_name=example_resource_group.name,\n    listen=True,\n    send=False,\n    manage=False)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"exampleEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Basic\",\n            Capacity = 2,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n        var exampleEventHubNamespaceAuthorizationRule = new Azure.EventHub.EventHubNamespaceAuthorizationRule(\"exampleEventHubNamespaceAuthorizationRule\", new Azure.EventHub.EventHubNamespaceAuthorizationRuleArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Listen = true,\n            Send = false,\n            Manage = false,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHubNamespace, err := eventhub.NewEventHubNamespace(ctx, \"exampleEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Basic\"),\n\t\t\tCapacity:          pulumi.Int(2),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventhub.NewEventHubNamespaceAuthorizationRule(ctx, \"exampleEventHubNamespaceAuthorizationRule\", \u0026eventhub.EventHubNamespaceAuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tListen:            pulumi.Bool(true),\n\t\t\tSend:              pulumi.Bool(false),\n\t\t\tManage:            pulumi.Bool(false),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventHub Namespace Authorization Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/eventHubNamespaceAuthorizationRule:EventHubNamespaceAuthorizationRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventHub/namespaces/namespace1/authorizationRules/rule1\n```\n\n ",
      "inputProperties": {
        "listen": {
          "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Authorization Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the EventHub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventHub Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "send": {
          "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "listen": {
          "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Authorization Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the EventHub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The Primary Connection String for the Authorization Rule.\n",
          "type": "string"
        },
        "primaryConnectionStringAlias": {
          "description": "The alias of the Primary Connection String for the Authorization Rule, which is generated when disaster recovery is enabled.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The Primary Key for the Authorization Rule.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the EventHub Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The Secondary Connection String for the Authorization Rule.\n",
          "type": "string"
        },
        "secondaryConnectionStringAlias": {
          "description": "The alias of the Secondary Connection String for the Authorization Rule, which is generated when disaster recovery is enabled.\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The Secondary Key for the Authorization Rule.\n",
          "type": "string"
        },
        "send": {
          "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "namespaceName",
        "primaryConnectionString",
        "primaryConnectionStringAlias",
        "primaryKey",
        "resourceGroupName",
        "secondaryConnectionString",
        "secondaryConnectionStringAlias",
        "secondaryKey"
      ],
      "requiredInputs": [
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EventHubNamespaceAuthorizationRule resources.\n",
        "properties": {
          "listen": {
            "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
            "type": "boolean"
          },
          "manage": {
            "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the Authorization Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the EventHub Namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the Authorization Rule.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias of the Primary Connection String for the Authorization Rule, which is generated when disaster recovery is enabled.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the Authorization Rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the EventHub Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the Authorization Rule.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias of the Secondary Connection String for the Authorization Rule, which is generated when disaster recovery is enabled.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the Authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/eventSubscription:EventSubscription": {
      "deprecationMessage": "azure.eventhub.EventSubscription has been deprecated in favor of azure.eventgrid.EventSubscription",
      "description": "Manages an EventGrid Event Subscription\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst defaultResourceGroup = new azure.core.ResourceGroup(\"defaultResourceGroup\", {location: \"West Europe\"});\nconst defaultAccount = new azure.storage.Account(\"defaultAccount\", {\n    resourceGroupName: defaultResourceGroup.name,\n    location: defaultResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    tags: {\n        environment: \"staging\",\n    },\n});\nconst defaultQueue = new azure.storage.Queue(\"defaultQueue\", {storageAccountName: defaultAccount.name});\nconst defaultEventSubscription = new azure.eventgrid.EventSubscription(\"defaultEventSubscription\", {\n    scope: defaultResourceGroup.id,\n    storageQueueEndpoint: {\n        storageAccountId: defaultAccount.id,\n        queueName: defaultQueue.name,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ndefault_resource_group = azure.core.ResourceGroup(\"defaultResourceGroup\", location=\"West Europe\")\ndefault_account = azure.storage.Account(\"defaultAccount\",\n    resource_group_name=default_resource_group.name,\n    location=default_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    tags={\n        \"environment\": \"staging\",\n    })\ndefault_queue = azure.storage.Queue(\"defaultQueue\", storage_account_name=default_account.name)\ndefault_event_subscription = azure.eventgrid.EventSubscription(\"defaultEventSubscription\",\n    scope=default_resource_group.id,\n    storage_queue_endpoint=azure.eventgrid.EventSubscriptionStorageQueueEndpointArgs(\n        storage_account_id=default_account.id,\n        queue_name=default_queue.name,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var defaultResourceGroup = new Azure.Core.ResourceGroup(\"defaultResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var defaultAccount = new Azure.Storage.Account(\"defaultAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = defaultResourceGroup.Name,\n            Location = defaultResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n        var defaultQueue = new Azure.Storage.Queue(\"defaultQueue\", new Azure.Storage.QueueArgs\n        {\n            StorageAccountName = defaultAccount.Name,\n        });\n        var defaultEventSubscription = new Azure.EventGrid.EventSubscription(\"defaultEventSubscription\", new Azure.EventGrid.EventSubscriptionArgs\n        {\n            Scope = defaultResourceGroup.Id,\n            StorageQueueEndpoint = new Azure.EventGrid.Inputs.EventSubscriptionStorageQueueEndpointArgs\n            {\n                StorageAccountId = defaultAccount.Id,\n                QueueName = defaultQueue.Name,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultResourceGroup, err := core.NewResourceGroup(ctx, \"defaultResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAccount, err := storage.NewAccount(ctx, \"defaultAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      defaultResourceGroup.Name,\n\t\t\tLocation:               defaultResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultQueue, err := storage.NewQueue(ctx, \"defaultQueue\", \u0026storage.QueueArgs{\n\t\t\tStorageAccountName: defaultAccount.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventgrid.NewEventSubscription(ctx, \"defaultEventSubscription\", \u0026eventgrid.EventSubscriptionArgs{\n\t\t\tScope: defaultResourceGroup.ID(),\n\t\t\tStorageQueueEndpoint: \u0026eventgrid.EventSubscriptionStorageQueueEndpointArgs{\n\t\t\t\tStorageAccountId: defaultAccount.ID(),\n\t\t\t\tQueueName:        defaultQueue.Name,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventGrid Event Subscription's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/eventSubscription:EventSubscription eventSubscription1\n```\n\n /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventGrid/topics/topic1/providers/Microsoft.EventGrid/eventSubscriptions/eventSubscription1 ",
      "inputProperties": {
        "advancedFilter": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilter:EventSubscriptionAdvancedFilter",
          "description": "A `advanced_filter` block as defined below.\n"
        },
        "advancedFilteringOnArraysEnabled": {
          "description": "Specifies whether advanced filters should be evaluated against an array of values instead of expecting a singular value. Defaults to `false`.\n",
          "type": "boolean"
        },
        "azureFunctionEndpoint": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionAzureFunctionEndpoint:EventSubscriptionAzureFunctionEndpoint",
          "description": "An `azure_function_endpoint` block as defined below.\n"
        },
        "deadLetterIdentity": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionDeadLetterIdentity:EventSubscriptionDeadLetterIdentity",
          "description": "A `dead_letter_identity` block as defined below.\n"
        },
        "deliveryIdentity": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionDeliveryIdentity:EventSubscriptionDeliveryIdentity",
          "description": "A `delivery_identity` block as defined below.\n"
        },
        "eventDeliverySchema": {
          "description": "Specifies the event delivery schema for the event subscription. Possible values include: `EventGridSchema`, `CloudEventSchemaV1_0`, `CustomInputSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventhubEndpoint": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionEventhubEndpoint:EventSubscriptionEventhubEndpoint",
          "deprecationMessage": "Deprecated in favour of `eventhub_endpoint_id`",
          "description": "A `eventhub_endpoint` block as defined below.\n"
        },
        "eventhubEndpointId": {
          "description": "Specifies the id where the Event Hub is located.\n",
          "type": "string"
        },
        "expirationTimeUtc": {
          "description": "Specifies the expiration time of the event subscription (Datetime Format `RFC 3339`).\n",
          "type": "string"
        },
        "hybridConnectionEndpoint": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionHybridConnectionEndpoint:EventSubscriptionHybridConnectionEndpoint",
          "deprecationMessage": "Deprecated in favour of `hybrid_connection_endpoint_id`",
          "description": "A `hybrid_connection_endpoint` block as defined below.\n"
        },
        "hybridConnectionEndpointId": {
          "description": "Specifies the id where the Hybrid Connection is located.\n",
          "type": "string"
        },
        "includedEventTypes": {
          "description": "A list of applicable event types that need to be part of the event subscription.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "labels": {
          "description": "A list of labels to assign to the event subscription.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the EventGrid Event Subscription resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retryPolicy": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionRetryPolicy:EventSubscriptionRetryPolicy",
          "description": "A `retry_policy` block as defined below.\n"
        },
        "scope": {
          "description": "Specifies the scope at which the EventGrid Event Subscription should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceBusQueueEndpointId": {
          "description": "Specifies the id where the Service Bus Queue is located.\n",
          "type": "string"
        },
        "serviceBusTopicEndpointId": {
          "description": "Specifies the id where the Service Bus Topic is located.\n",
          "type": "string"
        },
        "storageBlobDeadLetterDestination": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionStorageBlobDeadLetterDestination:EventSubscriptionStorageBlobDeadLetterDestination",
          "description": "A `storage_blob_dead_letter_destination` block as defined below.\n"
        },
        "storageQueueEndpoint": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionStorageQueueEndpoint:EventSubscriptionStorageQueueEndpoint",
          "description": "A `storage_queue_endpoint` block as defined below.\n"
        },
        "subjectFilter": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionSubjectFilter:EventSubscriptionSubjectFilter",
          "description": "A `subject_filter` block as defined below.\n"
        },
        "topicName": {
          "deprecationMessage": "This field has been updated to readonly field since Apr 25, 2019 so no longer has any affect and will be removed in version 3.0 of the provider.",
          "description": "(Optional/ **Deprecated) Specifies the name of the topic to associate with the event subscription.\n",
          "type": "string"
        },
        "webhookEndpoint": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionWebhookEndpoint:EventSubscriptionWebhookEndpoint",
          "description": "A `webhook_endpoint` block as defined below.\n"
        }
      },
      "properties": {
        "advancedFilter": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilter:EventSubscriptionAdvancedFilter",
          "description": "A `advanced_filter` block as defined below.\n"
        },
        "advancedFilteringOnArraysEnabled": {
          "description": "Specifies whether advanced filters should be evaluated against an array of values instead of expecting a singular value. Defaults to `false`.\n",
          "type": "boolean"
        },
        "azureFunctionEndpoint": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionAzureFunctionEndpoint:EventSubscriptionAzureFunctionEndpoint",
          "description": "An `azure_function_endpoint` block as defined below.\n"
        },
        "deadLetterIdentity": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionDeadLetterIdentity:EventSubscriptionDeadLetterIdentity",
          "description": "A `dead_letter_identity` block as defined below.\n"
        },
        "deliveryIdentity": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionDeliveryIdentity:EventSubscriptionDeliveryIdentity",
          "description": "A `delivery_identity` block as defined below.\n"
        },
        "eventDeliverySchema": {
          "description": "Specifies the event delivery schema for the event subscription. Possible values include: `EventGridSchema`, `CloudEventSchemaV1_0`, `CustomInputSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventhubEndpoint": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionEventhubEndpoint:EventSubscriptionEventhubEndpoint",
          "deprecationMessage": "Deprecated in favour of `eventhub_endpoint_id`",
          "description": "A `eventhub_endpoint` block as defined below.\n"
        },
        "eventhubEndpointId": {
          "description": "Specifies the id where the Event Hub is located.\n",
          "type": "string"
        },
        "expirationTimeUtc": {
          "description": "Specifies the expiration time of the event subscription (Datetime Format `RFC 3339`).\n",
          "type": "string"
        },
        "hybridConnectionEndpoint": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionHybridConnectionEndpoint:EventSubscriptionHybridConnectionEndpoint",
          "deprecationMessage": "Deprecated in favour of `hybrid_connection_endpoint_id`",
          "description": "A `hybrid_connection_endpoint` block as defined below.\n"
        },
        "hybridConnectionEndpointId": {
          "description": "Specifies the id where the Hybrid Connection is located.\n",
          "type": "string"
        },
        "includedEventTypes": {
          "description": "A list of applicable event types that need to be part of the event subscription.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "labels": {
          "description": "A list of labels to assign to the event subscription.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the EventGrid Event Subscription resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retryPolicy": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionRetryPolicy:EventSubscriptionRetryPolicy",
          "description": "A `retry_policy` block as defined below.\n"
        },
        "scope": {
          "description": "Specifies the scope at which the EventGrid Event Subscription should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceBusQueueEndpointId": {
          "description": "Specifies the id where the Service Bus Queue is located.\n",
          "type": "string"
        },
        "serviceBusTopicEndpointId": {
          "description": "Specifies the id where the Service Bus Topic is located.\n",
          "type": "string"
        },
        "storageBlobDeadLetterDestination": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionStorageBlobDeadLetterDestination:EventSubscriptionStorageBlobDeadLetterDestination",
          "description": "A `storage_blob_dead_letter_destination` block as defined below.\n"
        },
        "storageQueueEndpoint": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionStorageQueueEndpoint:EventSubscriptionStorageQueueEndpoint",
          "description": "A `storage_queue_endpoint` block as defined below.\n"
        },
        "subjectFilter": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionSubjectFilter:EventSubscriptionSubjectFilter",
          "description": "A `subject_filter` block as defined below.\n"
        },
        "topicName": {
          "deprecationMessage": "This field has been updated to readonly field since Apr 25, 2019 so no longer has any affect and will be removed in version 3.0 of the provider.",
          "description": "(Optional/ **Deprecated) Specifies the name of the topic to associate with the event subscription.\n",
          "type": "string"
        },
        "webhookEndpoint": {
          "$ref": "#/types/azure:eventhub/EventSubscriptionWebhookEndpoint:EventSubscriptionWebhookEndpoint",
          "description": "A `webhook_endpoint` block as defined below.\n"
        }
      },
      "required": [
        "eventhubEndpoint",
        "eventhubEndpointId",
        "hybridConnectionEndpoint",
        "hybridConnectionEndpointId",
        "includedEventTypes",
        "name",
        "retryPolicy",
        "scope",
        "topicName"
      ],
      "requiredInputs": [
        "scope"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EventSubscription resources.\n",
        "properties": {
          "advancedFilter": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilter:EventSubscriptionAdvancedFilter",
            "description": "A `advanced_filter` block as defined below.\n"
          },
          "advancedFilteringOnArraysEnabled": {
            "description": "Specifies whether advanced filters should be evaluated against an array of values instead of expecting a singular value. Defaults to `false`.\n",
            "type": "boolean"
          },
          "azureFunctionEndpoint": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAzureFunctionEndpoint:EventSubscriptionAzureFunctionEndpoint",
            "description": "An `azure_function_endpoint` block as defined below.\n"
          },
          "deadLetterIdentity": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionDeadLetterIdentity:EventSubscriptionDeadLetterIdentity",
            "description": "A `dead_letter_identity` block as defined below.\n"
          },
          "deliveryIdentity": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionDeliveryIdentity:EventSubscriptionDeliveryIdentity",
            "description": "A `delivery_identity` block as defined below.\n"
          },
          "eventDeliverySchema": {
            "description": "Specifies the event delivery schema for the event subscription. Possible values include: `EventGridSchema`, `CloudEventSchemaV1_0`, `CustomInputSchema`. Defaults to `EventGridSchema`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "eventhubEndpoint": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionEventhubEndpoint:EventSubscriptionEventhubEndpoint",
            "deprecationMessage": "Deprecated in favour of `eventhub_endpoint_id`",
            "description": "A `eventhub_endpoint` block as defined below.\n"
          },
          "eventhubEndpointId": {
            "description": "Specifies the id where the Event Hub is located.\n",
            "type": "string"
          },
          "expirationTimeUtc": {
            "description": "Specifies the expiration time of the event subscription (Datetime Format `RFC 3339`).\n",
            "type": "string"
          },
          "hybridConnectionEndpoint": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionHybridConnectionEndpoint:EventSubscriptionHybridConnectionEndpoint",
            "deprecationMessage": "Deprecated in favour of `hybrid_connection_endpoint_id`",
            "description": "A `hybrid_connection_endpoint` block as defined below.\n"
          },
          "hybridConnectionEndpointId": {
            "description": "Specifies the id where the Hybrid Connection is located.\n",
            "type": "string"
          },
          "includedEventTypes": {
            "description": "A list of applicable event types that need to be part of the event subscription.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "labels": {
            "description": "A list of labels to assign to the event subscription.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "Specifies the name of the EventGrid Event Subscription resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "retryPolicy": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionRetryPolicy:EventSubscriptionRetryPolicy",
            "description": "A `retry_policy` block as defined below.\n"
          },
          "scope": {
            "description": "Specifies the scope at which the EventGrid Event Subscription should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serviceBusQueueEndpointId": {
            "description": "Specifies the id where the Service Bus Queue is located.\n",
            "type": "string"
          },
          "serviceBusTopicEndpointId": {
            "description": "Specifies the id where the Service Bus Topic is located.\n",
            "type": "string"
          },
          "storageBlobDeadLetterDestination": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionStorageBlobDeadLetterDestination:EventSubscriptionStorageBlobDeadLetterDestination",
            "description": "A `storage_blob_dead_letter_destination` block as defined below.\n"
          },
          "storageQueueEndpoint": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionStorageQueueEndpoint:EventSubscriptionStorageQueueEndpoint",
            "description": "A `storage_queue_endpoint` block as defined below.\n"
          },
          "subjectFilter": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionSubjectFilter:EventSubscriptionSubjectFilter",
            "description": "A `subject_filter` block as defined below.\n"
          },
          "topicName": {
            "deprecationMessage": "This field has been updated to readonly field since Apr 25, 2019 so no longer has any affect and will be removed in version 3.0 of the provider.",
            "description": "(Optional/ **Deprecated) Specifies the name of the topic to associate with the event subscription.\n",
            "type": "string"
          },
          "webhookEndpoint": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionWebhookEndpoint:EventSubscriptionWebhookEndpoint",
            "description": "A `webhook_endpoint` block as defined below.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/eventhubNamespaceDisasterRecoveryConfig:EventhubNamespaceDisasterRecoveryConfig": {
      "description": "Manages an Disaster Recovery Config for an Event Hub Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst primary = new azure.eventhub.EventHubNamespace(\"primary\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n});\nconst secondary = new azure.eventhub.EventHubNamespace(\"secondary\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n});\nconst exampleEventhubNamespaceDisasterRecoveryConfig = new azure.eventhub.EventhubNamespaceDisasterRecoveryConfig(\"exampleEventhubNamespaceDisasterRecoveryConfig\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: primary.name,\n    partnerNamespaceId: secondary.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nprimary = azure.eventhub.EventHubNamespace(\"primary\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\")\nsecondary = azure.eventhub.EventHubNamespace(\"secondary\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\")\nexample_eventhub_namespace_disaster_recovery_config = azure.eventhub.EventhubNamespaceDisasterRecoveryConfig(\"exampleEventhubNamespaceDisasterRecoveryConfig\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=primary.name,\n    partner_namespace_id=secondary.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var primary = new Azure.EventHub.EventHubNamespace(\"primary\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n        });\n        var secondary = new Azure.EventHub.EventHubNamespace(\"secondary\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n        });\n        var exampleEventhubNamespaceDisasterRecoveryConfig = new Azure.EventHub.EventhubNamespaceDisasterRecoveryConfig(\"exampleEventhubNamespaceDisasterRecoveryConfig\", new Azure.EventHub.EventhubNamespaceDisasterRecoveryConfigArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = primary.Name,\n            PartnerNamespaceId = secondary.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprimary, err := eventhub.NewEventHubNamespace(ctx, \"primary\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecondary, err := eventhub.NewEventHubNamespace(ctx, \"secondary\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventhub.NewEventhubNamespaceDisasterRecoveryConfig(ctx, \"exampleEventhubNamespaceDisasterRecoveryConfig\", \u0026eventhub.EventhubNamespaceDisasterRecoveryConfigArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tNamespaceName:      primary.Name,\n\t\t\tPartnerNamespaceId: secondary.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventHubs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/eventhubNamespaceDisasterRecoveryConfig:EventhubNamespaceDisasterRecoveryConfig config1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventHub/namespaces/namespace1/disasterRecoveryConfigs/config1\n```\n\n ",
      "inputProperties": {
        "alternateName": {
          "deprecationMessage": "This property has been deprecated and will be removed in v3.0 of the provider as any DRC created with an alternate name cannot be deleted and the service is not going to change this. Please see: https://github.com/Azure/azure-sdk-for-go/issues/5893",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Disaster Recovery Config. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the primary EventHub Namespace to replicate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partnerNamespaceId": {
          "description": "The ID of the EventHub Namespace to replicate to.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Disaster Recovery Config exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "alternateName": {
          "deprecationMessage": "This property has been deprecated and will be removed in v3.0 of the provider as any DRC created with an alternate name cannot be deleted and the service is not going to change this. Please see: https://github.com/Azure/azure-sdk-for-go/issues/5893",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Disaster Recovery Config. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the primary EventHub Namespace to replicate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partnerNamespaceId": {
          "description": "The ID of the EventHub Namespace to replicate to.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Disaster Recovery Config exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "namespaceName",
        "partnerNamespaceId",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "namespaceName",
        "partnerNamespaceId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EventhubNamespaceDisasterRecoveryConfig resources.\n",
        "properties": {
          "alternateName": {
            "deprecationMessage": "This property has been deprecated and will be removed in v3.0 of the provider as any DRC created with an alternate name cannot be deleted and the service is not going to change this. Please see: https://github.com/Azure/azure-sdk-for-go/issues/5893",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Disaster Recovery Config. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the primary EventHub Namespace to replicate. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "partnerNamespaceId": {
            "description": "The ID of the EventHub Namespace to replicate to.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Disaster Recovery Config exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/namespace:Namespace": {
      "deprecationMessage": "azure.eventhub.Namespace has been deprecated in favor of azure.servicebus.Namespace",
      "description": "Manages a ServiceBus Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nService Bus Namespace can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/namespace:Namespace example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.servicebus/namespaces/sbns1\n```\n\n ",
      "inputProperties": {
        "capacity": {
          "description": "Specifies the capacity. When `sku` is `Premium`, capacity can be `1`, `2`, `4`, `8` or `16`. When `sku` is `Basic` or `Standard`, capacity can be `0` only.\n",
          "type": "integer"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Namespace resource . Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the namespace.\n",
          "type": "string"
        },
        "sku": {
          "description": "Defines which tier to use. Options are basic, standard or premium. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zoneRedundant": {
          "description": "Whether or not this resource is zone redundant. `sku` needs to be `Premium`. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "capacity": {
          "description": "Specifies the capacity. When `sku` is `Premium`, capacity can be `1`, `2`, `4`, `8` or `16`. When `sku` is `Basic` or `Standard`, capacity can be `0` only.\n",
          "type": "integer"
        },
        "defaultPrimaryConnectionString": {
          "description": "The primary connection string for the authorization\nrule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "defaultPrimaryKey": {
          "description": "The primary access key for the authorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "defaultSecondaryConnectionString": {
          "description": "The secondary connection string for the\nauthorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "defaultSecondaryKey": {
          "description": "The secondary access key for the authorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Namespace resource . Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the namespace.\n",
          "type": "string"
        },
        "sku": {
          "description": "Defines which tier to use. Options are basic, standard or premium. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zoneRedundant": {
          "description": "Whether or not this resource is zone redundant. `sku` needs to be `Premium`. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "defaultPrimaryConnectionString",
        "defaultPrimaryKey",
        "defaultSecondaryConnectionString",
        "defaultSecondaryKey",
        "location",
        "name",
        "resourceGroupName",
        "sku"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Namespace resources.\n",
        "properties": {
          "capacity": {
            "description": "Specifies the capacity. When `sku` is `Premium`, capacity can be `1`, `2`, `4`, `8` or `16`. When `sku` is `Basic` or `Standard`, capacity can be `0` only.\n",
            "type": "integer"
          },
          "defaultPrimaryConnectionString": {
            "description": "The primary connection string for the authorization\nrule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultPrimaryKey": {
            "description": "The primary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryConnectionString": {
            "description": "The secondary connection string for the\nauthorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryKey": {
            "description": "The secondary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the ServiceBus Namespace resource . Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the namespace.\n",
            "type": "string"
          },
          "sku": {
            "description": "Defines which tier to use. Options are basic, standard or premium. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "zoneRedundant": {
            "description": "Whether or not this resource is zone redundant. `sku` needs to be `Premium`. Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/namespaceAuthorizationRule:NamespaceAuthorizationRule": {
      "deprecationMessage": "azure.eventhub.NamespaceAuthorizationRule has been deprecated in favor of azure.servicebus.NamespaceAuthorizationRule",
      "description": "Manages a ServiceBus Namespace authorization Rule within a ServiceBus.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West US\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleNamespaceAuthorizationRule = new azure.servicebus.NamespaceAuthorizationRule(\"exampleNamespaceAuthorizationRule\", {\n    namespaceName: exampleNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    listen: true,\n    send: true,\n    manage: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West US\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_namespace_authorization_rule = azure.servicebus.NamespaceAuthorizationRule(\"exampleNamespaceAuthorizationRule\",\n    namespace_name=example_namespace.name,\n    resource_group_name=example_resource_group.name,\n    listen=True,\n    send=True,\n    manage=False)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West US\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleNamespaceAuthorizationRule = new Azure.ServiceBus.NamespaceAuthorizationRule(\"exampleNamespaceAuthorizationRule\", new Azure.ServiceBus.NamespaceAuthorizationRuleArgs\n        {\n            NamespaceName = exampleNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Listen = true,\n            Send = true,\n            Manage = false,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewNamespaceAuthorizationRule(ctx, \"exampleNamespaceAuthorizationRule\", \u0026servicebus.NamespaceAuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tListen:            pulumi.Bool(true),\n\t\t\tSend:              pulumi.Bool(true),\n\t\t\tManage:            pulumi.Bool(false),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nServiceBus Namespace authorization rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/namespaceAuthorizationRule:NamespaceAuthorizationRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ServiceBus/namespaces/namespace1/AuthorizationRules/rule1\n```\n\n ",
      "inputProperties": {
        "listen": {
          "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Namespace Authorization Rule resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the ServiceBus Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "send": {
          "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "listen": {
          "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Namespace Authorization Rule resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the ServiceBus Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The Primary Connection String for the ServiceBus Namespace authorization Rule.\n",
          "type": "string"
        },
        "primaryConnectionStringAlias": {
          "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The Primary Key for the ServiceBus Namespace authorization Rule.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The Secondary Connection String for the ServiceBus Namespace authorization Rule.\n",
          "type": "string"
        },
        "secondaryConnectionStringAlias": {
          "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The Secondary Key for the ServiceBus Namespace authorization Rule.\n",
          "type": "string"
        },
        "send": {
          "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "namespaceName",
        "primaryConnectionString",
        "primaryConnectionStringAlias",
        "primaryKey",
        "resourceGroupName",
        "secondaryConnectionString",
        "secondaryConnectionStringAlias",
        "secondaryKey"
      ],
      "requiredInputs": [
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NamespaceAuthorizationRule resources.\n",
        "properties": {
          "listen": {
            "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
            "type": "boolean"
          },
          "manage": {
            "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the ServiceBus Namespace Authorization Rule resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the ServiceBus Namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the ServiceBus Namespace authorization Rule.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the ServiceBus Namespace authorization Rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the ServiceBus Namespace authorization Rule.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the ServiceBus Namespace authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/namespaceCustomerManagedKey:NamespaceCustomerManagedKey": {
      "description": "Manages a Customer Managed Key for a EventHub Namespace.\n\n\n## Import\n\nCustomer Managed Keys for a EventHub Namespace can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/namespaceCustomerManagedKey:NamespaceCustomerManagedKey example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventHub/namespaces/namespace1\n```\n\n ",
      "inputProperties": {
        "eventhubNamespaceId": {
          "description": "The ID of the EventHub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "keyVaultKeyIds": {
          "description": "The list of keys of Key Vault.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "eventhubNamespaceId": {
          "description": "The ID of the EventHub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "keyVaultKeyIds": {
          "description": "The list of keys of Key Vault.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "eventhubNamespaceId",
        "keyVaultKeyIds"
      ],
      "requiredInputs": [
        "eventhubNamespaceId",
        "keyVaultKeyIds"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NamespaceCustomerManagedKey resources.\n",
        "properties": {
          "eventhubNamespaceId": {
            "description": "The ID of the EventHub Namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "keyVaultKeyIds": {
            "description": "The list of keys of Key Vault.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/queue:Queue": {
      "deprecationMessage": "azure.eventhub.Queue has been deprecated in favor of azure.servicebus.Queue",
      "description": "Manages a ServiceBus Queue.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleQueue = new azure.servicebus.Queue(\"exampleQueue\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_queue = azure.servicebus.Queue(\"exampleQueue\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleQueue = new Azure.ServiceBus.Queue(\"exampleQueue\", new Azure.ServiceBus.QueueArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewQueue(ctx, \"exampleQueue\", \u0026servicebus.QueueArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nService Bus Queue can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/queue:Queue example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.servicebus/namespaces/sbns1/queues/snqueue1\n```\n\n ",
      "inputProperties": {
        "autoDeleteOnIdle": {
          "description": "The ISO 8601 timespan duration of the idle interval after which the Queue is automatically deleted, minimum of 5 minutes.\n",
          "type": "string"
        },
        "deadLetteringOnMessageExpiration": {
          "description": "Boolean flag which controls whether the Queue has dead letter support when a message expires. Defaults to `false`.\n",
          "type": "boolean"
        },
        "defaultMessageTtl": {
          "description": "The ISO 8601 timespan duration of the TTL of messages sent to this queue. This is the default value used when TTL is not set on message itself.\n",
          "type": "string"
        },
        "duplicateDetectionHistoryTimeWindow": {
          "description": "The ISO 8601 timespan duration during which duplicates can be detected. Defaults to 10 minutes (`PT10M`).\n",
          "type": "string"
        },
        "enableBatchedOperations": {
          "description": "Boolean flag which controls whether server-side batched operations are enabled. Defaults to `true`.\n",
          "type": "boolean"
        },
        "enableExpress": {
          "description": "Boolean flag which controls whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `false`.\n",
          "type": "boolean"
        },
        "enablePartitioning": {
          "description": "Boolean flag which controls whether to enable the queue to be partitioned across multiple message brokers. Changing this forces a new resource to be created. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `true`.\n",
          "type": "boolean"
        },
        "forwardDeadLetteredMessagesTo": {
          "description": "The name of a Queue or Topic to automatically forward dead lettered messages to.\n",
          "type": "string"
        },
        "forwardTo": {
          "description": "The name of a Queue or Topic to automatically forward messages to. Please [see the documentation](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-auto-forwarding) for more information.\n",
          "type": "string"
        },
        "lockDuration": {
          "description": "The ISO 8601 timespan duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. Maximum value is 5 minutes. Defaults to 1 minute (`PT1M`).\n",
          "type": "string"
        },
        "maxDeliveryCount": {
          "description": "Integer value which controls when a message is automatically dead lettered. Defaults to `10`.\n",
          "type": "integer"
        },
        "maxSizeInMegabytes": {
          "description": "Integer value which controls the size of memory allocated for the queue. For supported values see the \"Queue or topic size\" section of [Service Bus Quotas](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas). Defaults to `1024`.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Queue resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace to create this queue in. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "requiresDuplicateDetection": {
          "description": "Boolean flag which controls whether the Queue requires duplicate detection. Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        },
        "requiresSession": {
          "description": "Boolean flag which controls whether the Queue requires sessions. This will allow ordered handling of unbounded sequences of related messages. With sessions enabled a queue can guarantee first-in-first-out delivery of messages. Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "The status of the Queue. Possible values are `Active`, `Creating`, `Deleting`, `Disabled`, `ReceiveDisabled`, `Renaming`, `SendDisabled`, `Unknown`. Note that `Restoring` is not accepted. Defaults to `Active`.\n",
          "type": "string"
        }
      },
      "properties": {
        "autoDeleteOnIdle": {
          "description": "The ISO 8601 timespan duration of the idle interval after which the Queue is automatically deleted, minimum of 5 minutes.\n",
          "type": "string"
        },
        "deadLetteringOnMessageExpiration": {
          "description": "Boolean flag which controls whether the Queue has dead letter support when a message expires. Defaults to `false`.\n",
          "type": "boolean"
        },
        "defaultMessageTtl": {
          "description": "The ISO 8601 timespan duration of the TTL of messages sent to this queue. This is the default value used when TTL is not set on message itself.\n",
          "type": "string"
        },
        "duplicateDetectionHistoryTimeWindow": {
          "description": "The ISO 8601 timespan duration during which duplicates can be detected. Defaults to 10 minutes (`PT10M`).\n",
          "type": "string"
        },
        "enableBatchedOperations": {
          "description": "Boolean flag which controls whether server-side batched operations are enabled. Defaults to `true`.\n",
          "type": "boolean"
        },
        "enableExpress": {
          "description": "Boolean flag which controls whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `false`.\n",
          "type": "boolean"
        },
        "enablePartitioning": {
          "description": "Boolean flag which controls whether to enable the queue to be partitioned across multiple message brokers. Changing this forces a new resource to be created. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `true`.\n",
          "type": "boolean"
        },
        "forwardDeadLetteredMessagesTo": {
          "description": "The name of a Queue or Topic to automatically forward dead lettered messages to.\n",
          "type": "string"
        },
        "forwardTo": {
          "description": "The name of a Queue or Topic to automatically forward messages to. Please [see the documentation](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-auto-forwarding) for more information.\n",
          "type": "string"
        },
        "lockDuration": {
          "description": "The ISO 8601 timespan duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. Maximum value is 5 minutes. Defaults to 1 minute (`PT1M`).\n",
          "type": "string"
        },
        "maxDeliveryCount": {
          "description": "Integer value which controls when a message is automatically dead lettered. Defaults to `10`.\n",
          "type": "integer"
        },
        "maxSizeInMegabytes": {
          "description": "Integer value which controls the size of memory allocated for the queue. For supported values see the \"Queue or topic size\" section of [Service Bus Quotas](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas). Defaults to `1024`.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Queue resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace to create this queue in. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "requiresDuplicateDetection": {
          "description": "Boolean flag which controls whether the Queue requires duplicate detection. Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        },
        "requiresSession": {
          "description": "Boolean flag which controls whether the Queue requires sessions. This will allow ordered handling of unbounded sequences of related messages. With sessions enabled a queue can guarantee first-in-first-out delivery of messages. Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "The status of the Queue. Possible values are `Active`, `Creating`, `Deleting`, `Disabled`, `ReceiveDisabled`, `Renaming`, `SendDisabled`, `Unknown`. Note that `Restoring` is not accepted. Defaults to `Active`.\n",
          "type": "string"
        }
      },
      "required": [
        "autoDeleteOnIdle",
        "defaultMessageTtl",
        "duplicateDetectionHistoryTimeWindow",
        "lockDuration",
        "maxSizeInMegabytes",
        "name",
        "namespaceName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Queue resources.\n",
        "properties": {
          "autoDeleteOnIdle": {
            "description": "The ISO 8601 timespan duration of the idle interval after which the Queue is automatically deleted, minimum of 5 minutes.\n",
            "type": "string"
          },
          "deadLetteringOnMessageExpiration": {
            "description": "Boolean flag which controls whether the Queue has dead letter support when a message expires. Defaults to `false`.\n",
            "type": "boolean"
          },
          "defaultMessageTtl": {
            "description": "The ISO 8601 timespan duration of the TTL of messages sent to this queue. This is the default value used when TTL is not set on message itself.\n",
            "type": "string"
          },
          "duplicateDetectionHistoryTimeWindow": {
            "description": "The ISO 8601 timespan duration during which duplicates can be detected. Defaults to 10 minutes (`PT10M`).\n",
            "type": "string"
          },
          "enableBatchedOperations": {
            "description": "Boolean flag which controls whether server-side batched operations are enabled. Defaults to `true`.\n",
            "type": "boolean"
          },
          "enableExpress": {
            "description": "Boolean flag which controls whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `false`.\n",
            "type": "boolean"
          },
          "enablePartitioning": {
            "description": "Boolean flag which controls whether to enable the queue to be partitioned across multiple message brokers. Changing this forces a new resource to be created. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `true`.\n",
            "type": "boolean"
          },
          "forwardDeadLetteredMessagesTo": {
            "description": "The name of a Queue or Topic to automatically forward dead lettered messages to.\n",
            "type": "string"
          },
          "forwardTo": {
            "description": "The name of a Queue or Topic to automatically forward messages to. Please [see the documentation](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-auto-forwarding) for more information.\n",
            "type": "string"
          },
          "lockDuration": {
            "description": "The ISO 8601 timespan duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. Maximum value is 5 minutes. Defaults to 1 minute (`PT1M`).\n",
            "type": "string"
          },
          "maxDeliveryCount": {
            "description": "Integer value which controls when a message is automatically dead lettered. Defaults to `10`.\n",
            "type": "integer"
          },
          "maxSizeInMegabytes": {
            "description": "Integer value which controls the size of memory allocated for the queue. For supported values see the \"Queue or topic size\" section of [Service Bus Quotas](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas). Defaults to `1024`.\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the ServiceBus Queue resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the ServiceBus Namespace to create this queue in. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "requiresDuplicateDetection": {
            "description": "Boolean flag which controls whether the Queue requires duplicate detection. Changing this forces a new resource to be created. Defaults to `false`.\n",
            "type": "boolean"
          },
          "requiresSession": {
            "description": "Boolean flag which controls whether the Queue requires sessions. This will allow ordered handling of unbounded sequences of related messages. With sessions enabled a queue can guarantee first-in-first-out delivery of messages. Changing this forces a new resource to be created. Defaults to `false`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "status": {
            "description": "The status of the Queue. Possible values are `Active`, `Creating`, `Deleting`, `Disabled`, `ReceiveDisabled`, `Renaming`, `SendDisabled`, `Unknown`. Note that `Restoring` is not accepted. Defaults to `Active`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/queueAuthorizationRule:QueueAuthorizationRule": {
      "deprecationMessage": "azure.eventhub.QueueAuthorizationRule has been deprecated in favor of azure.servicebus.QueueAuthorizationRule",
      "description": "Manages an Authorization Rule for a ServiceBus Queue.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West US\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleQueue = new azure.servicebus.Queue(\"exampleQueue\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\nconst exampleQueueAuthorizationRule = new azure.servicebus.QueueAuthorizationRule(\"exampleQueueAuthorizationRule\", {\n    namespaceName: exampleNamespace.name,\n    queueName: exampleQueue.name,\n    resourceGroupName: exampleResourceGroup.name,\n    listen: true,\n    send: true,\n    manage: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West US\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_queue = azure.servicebus.Queue(\"exampleQueue\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\nexample_queue_authorization_rule = azure.servicebus.QueueAuthorizationRule(\"exampleQueueAuthorizationRule\",\n    namespace_name=example_namespace.name,\n    queue_name=example_queue.name,\n    resource_group_name=example_resource_group.name,\n    listen=True,\n    send=True,\n    manage=False)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West US\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleQueue = new Azure.ServiceBus.Queue(\"exampleQueue\", new Azure.ServiceBus.QueueArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n        var exampleQueueAuthorizationRule = new Azure.ServiceBus.QueueAuthorizationRule(\"exampleQueueAuthorizationRule\", new Azure.ServiceBus.QueueAuthorizationRuleArgs\n        {\n            NamespaceName = exampleNamespace.Name,\n            QueueName = exampleQueue.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Listen = true,\n            Send = true,\n            Manage = false,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleQueue, err := servicebus.NewQueue(ctx, \"exampleQueue\", \u0026servicebus.QueueArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewQueueAuthorizationRule(ctx, \"exampleQueueAuthorizationRule\", \u0026servicebus.QueueAuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tQueueName:         exampleQueue.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tListen:            pulumi.Bool(true),\n\t\t\tSend:              pulumi.Bool(true),\n\t\t\tManage:            pulumi.Bool(false),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nServiceBus Queue Authorization Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/queueAuthorizationRule:QueueAuthorizationRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ServiceBus/namespaces/namespace1/queues/queue1/authorizationRules/rule1\n```\n\n ",
      "inputProperties": {
        "listen": {
          "description": "Does this Authorization Rule have Listen permissions to the ServiceBus Queue? Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Does this Authorization Rule have Manage permissions to the ServiceBus Queue? When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Authorization Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the ServiceBus Namespace in which the Queue exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "queueName": {
          "description": "Specifies the name of the ServiceBus Queue. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "send": {
          "description": "Does this Authorization Rule have Send permissions to the ServiceBus Queue? Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "listen": {
          "description": "Does this Authorization Rule have Listen permissions to the ServiceBus Queue? Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Does this Authorization Rule have Manage permissions to the ServiceBus Queue? When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Authorization Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the ServiceBus Namespace in which the Queue exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The Primary Connection String for the Authorization Rule.\n",
          "type": "string"
        },
        "primaryConnectionStringAlias": {
          "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The Primary Key for the Authorization Rule.\n",
          "type": "string"
        },
        "queueName": {
          "description": "Specifies the name of the ServiceBus Queue. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The Secondary Connection String for the Authorization Rule.\n",
          "type": "string"
        },
        "secondaryConnectionStringAlias": {
          "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The Secondary Key for the Authorization Rule.\n",
          "type": "string"
        },
        "send": {
          "description": "Does this Authorization Rule have Send permissions to the ServiceBus Queue? Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "namespaceName",
        "primaryConnectionString",
        "primaryConnectionStringAlias",
        "primaryKey",
        "queueName",
        "resourceGroupName",
        "secondaryConnectionString",
        "secondaryConnectionStringAlias",
        "secondaryKey"
      ],
      "requiredInputs": [
        "namespaceName",
        "queueName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering QueueAuthorizationRule resources.\n",
        "properties": {
          "listen": {
            "description": "Does this Authorization Rule have Listen permissions to the ServiceBus Queue? Defaults to `false`.\n",
            "type": "boolean"
          },
          "manage": {
            "description": "Does this Authorization Rule have Manage permissions to the ServiceBus Queue? When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the Authorization Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the ServiceBus Namespace in which the Queue exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the Authorization Rule.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the Authorization Rule.\n",
            "type": "string"
          },
          "queueName": {
            "description": "Specifies the name of the ServiceBus Queue. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the Authorization Rule.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the Authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "description": "Does this Authorization Rule have Send permissions to the ServiceBus Queue? Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/subscription:Subscription": {
      "deprecationMessage": "azure.eventhub.Subscription has been deprecated in favor of azure.servicebus.Subscription",
      "description": "Manages a ServiceBus Subscription.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleTopic = new azure.servicebus.Topic(\"exampleTopic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\nconst exampleSubscription = new azure.servicebus.Subscription(\"exampleSubscription\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    topicName: exampleTopic.name,\n    maxDeliveryCount: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_topic = azure.servicebus.Topic(\"exampleTopic\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\nexample_subscription = azure.servicebus.Subscription(\"exampleSubscription\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    topic_name=example_topic.name,\n    max_delivery_count=1)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleTopic = new Azure.ServiceBus.Topic(\"exampleTopic\", new Azure.ServiceBus.TopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n        var exampleSubscription = new Azure.ServiceBus.Subscription(\"exampleSubscription\", new Azure.ServiceBus.SubscriptionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            TopicName = exampleTopic.Name,\n            MaxDeliveryCount = 1,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := servicebus.NewTopic(ctx, \"exampleTopic\", \u0026servicebus.TopicArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewSubscription(ctx, \"exampleSubscription\", \u0026servicebus.SubscriptionArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tTopicName:         exampleTopic.Name,\n\t\t\tMaxDeliveryCount:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nService Bus Subscriptions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/subscription:Subscription example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.servicebus/namespaces/sbns1/topics/sntopic1/subscriptions/sbsub1\n```\n\n ",
      "inputProperties": {
        "autoDeleteOnIdle": {
          "description": "The idle interval after which the topic is automatically deleted as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). The minimum duration is `5` minutes or `P5M`.\n",
          "type": "string"
        },
        "deadLetteringOnFilterEvaluationError": {
          "description": "Boolean flag which controls whether the Subscription has dead letter support on filter evaluation exceptions. Defaults to `true`.\n",
          "type": "boolean"
        },
        "deadLetteringOnMessageExpiration": {
          "description": "Boolean flag which controls whether the Subscription has dead letter support when a message expires. Defaults to `false`.\n",
          "type": "boolean"
        },
        "defaultMessageTtl": {
          "description": "The Default message timespan to live as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.\n",
          "type": "string"
        },
        "enableBatchedOperations": {
          "description": "Boolean flag which controls whether the Subscription supports batched operations. Defaults to `false`.\n",
          "type": "boolean"
        },
        "forwardDeadLetteredMessagesTo": {
          "description": "The name of a Queue or Topic to automatically forward Dead Letter messages to.\n",
          "type": "string"
        },
        "forwardTo": {
          "description": "The name of a Queue or Topic to automatically forward messages to.\n",
          "type": "string"
        },
        "lockDuration": {
          "description": "The lock duration for the subscription as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). The default value is `1` minute or `P1M`.\n",
          "type": "string"
        },
        "maxDeliveryCount": {
          "description": "The maximum number of deliveries.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Subscription resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace to create this Subscription in. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "requiresSession": {
          "description": "Boolean flag which controls whether this Subscription supports the concept of a session. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "The status of the Subscription. Possible values are `Active`,`ReceiveDisabled`, or `Disabled`. Defaults to `Active`.\n",
          "type": "string"
        },
        "topicName": {
          "description": "The name of the ServiceBus Topic to create this Subscription in. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "autoDeleteOnIdle": {
          "description": "The idle interval after which the topic is automatically deleted as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). The minimum duration is `5` minutes or `P5M`.\n",
          "type": "string"
        },
        "deadLetteringOnFilterEvaluationError": {
          "description": "Boolean flag which controls whether the Subscription has dead letter support on filter evaluation exceptions. Defaults to `true`.\n",
          "type": "boolean"
        },
        "deadLetteringOnMessageExpiration": {
          "description": "Boolean flag which controls whether the Subscription has dead letter support when a message expires. Defaults to `false`.\n",
          "type": "boolean"
        },
        "defaultMessageTtl": {
          "description": "The Default message timespan to live as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.\n",
          "type": "string"
        },
        "enableBatchedOperations": {
          "description": "Boolean flag which controls whether the Subscription supports batched operations. Defaults to `false`.\n",
          "type": "boolean"
        },
        "forwardDeadLetteredMessagesTo": {
          "description": "The name of a Queue or Topic to automatically forward Dead Letter messages to.\n",
          "type": "string"
        },
        "forwardTo": {
          "description": "The name of a Queue or Topic to automatically forward messages to.\n",
          "type": "string"
        },
        "lockDuration": {
          "description": "The lock duration for the subscription as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). The default value is `1` minute or `P1M`.\n",
          "type": "string"
        },
        "maxDeliveryCount": {
          "description": "The maximum number of deliveries.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Subscription resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace to create this Subscription in. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "requiresSession": {
          "description": "Boolean flag which controls whether this Subscription supports the concept of a session. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "The status of the Subscription. Possible values are `Active`,`ReceiveDisabled`, or `Disabled`. Defaults to `Active`.\n",
          "type": "string"
        },
        "topicName": {
          "description": "The name of the ServiceBus Topic to create this Subscription in. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "autoDeleteOnIdle",
        "defaultMessageTtl",
        "lockDuration",
        "maxDeliveryCount",
        "name",
        "namespaceName",
        "resourceGroupName",
        "topicName"
      ],
      "requiredInputs": [
        "maxDeliveryCount",
        "namespaceName",
        "resourceGroupName",
        "topicName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Subscription resources.\n",
        "properties": {
          "autoDeleteOnIdle": {
            "description": "The idle interval after which the topic is automatically deleted as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). The minimum duration is `5` minutes or `P5M`.\n",
            "type": "string"
          },
          "deadLetteringOnFilterEvaluationError": {
            "description": "Boolean flag which controls whether the Subscription has dead letter support on filter evaluation exceptions. Defaults to `true`.\n",
            "type": "boolean"
          },
          "deadLetteringOnMessageExpiration": {
            "description": "Boolean flag which controls whether the Subscription has dead letter support when a message expires. Defaults to `false`.\n",
            "type": "boolean"
          },
          "defaultMessageTtl": {
            "description": "The Default message timespan to live as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.\n",
            "type": "string"
          },
          "enableBatchedOperations": {
            "description": "Boolean flag which controls whether the Subscription supports batched operations. Defaults to `false`.\n",
            "type": "boolean"
          },
          "forwardDeadLetteredMessagesTo": {
            "description": "The name of a Queue or Topic to automatically forward Dead Letter messages to.\n",
            "type": "string"
          },
          "forwardTo": {
            "description": "The name of a Queue or Topic to automatically forward messages to.\n",
            "type": "string"
          },
          "lockDuration": {
            "description": "The lock duration for the subscription as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). The default value is `1` minute or `P1M`.\n",
            "type": "string"
          },
          "maxDeliveryCount": {
            "description": "The maximum number of deliveries.\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the ServiceBus Subscription resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the ServiceBus Namespace to create this Subscription in. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "requiresSession": {
            "description": "Boolean flag which controls whether this Subscription supports the concept of a session. Defaults to `false`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "status": {
            "description": "The status of the Subscription. Possible values are `Active`,`ReceiveDisabled`, or `Disabled`. Defaults to `Active`.\n",
            "type": "string"
          },
          "topicName": {
            "description": "The name of the ServiceBus Topic to create this Subscription in. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/subscriptionRule:SubscriptionRule": {
      "deprecationMessage": "azure.eventhub.SubscriptionRule has been deprecated in favor of azure.servicebus.SubscriptionRule",
      "description": "Manages a ServiceBus Subscription Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### SQL Filter)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleTopic = new azure.servicebus.Topic(\"exampleTopic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\nconst exampleSubscription = new azure.servicebus.Subscription(\"exampleSubscription\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    topicName: exampleTopic.name,\n    maxDeliveryCount: 1,\n});\nconst exampleSubscriptionRule = new azure.servicebus.SubscriptionRule(\"exampleSubscriptionRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    topicName: exampleTopic.name,\n    subscriptionName: exampleSubscription.name,\n    filterType: \"SqlFilter\",\n    sqlFilter: \"colour = 'red'\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_topic = azure.servicebus.Topic(\"exampleTopic\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\nexample_subscription = azure.servicebus.Subscription(\"exampleSubscription\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    topic_name=example_topic.name,\n    max_delivery_count=1)\nexample_subscription_rule = azure.servicebus.SubscriptionRule(\"exampleSubscriptionRule\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    topic_name=example_topic.name,\n    subscription_name=example_subscription.name,\n    filter_type=\"SqlFilter\",\n    sql_filter=\"colour = 'red'\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleTopic = new Azure.ServiceBus.Topic(\"exampleTopic\", new Azure.ServiceBus.TopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n        var exampleSubscription = new Azure.ServiceBus.Subscription(\"exampleSubscription\", new Azure.ServiceBus.SubscriptionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            TopicName = exampleTopic.Name,\n            MaxDeliveryCount = 1,\n        });\n        var exampleSubscriptionRule = new Azure.ServiceBus.SubscriptionRule(\"exampleSubscriptionRule\", new Azure.ServiceBus.SubscriptionRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            TopicName = exampleTopic.Name,\n            SubscriptionName = exampleSubscription.Name,\n            FilterType = \"SqlFilter\",\n            SqlFilter = \"colour = 'red'\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := servicebus.NewTopic(ctx, \"exampleTopic\", \u0026servicebus.TopicArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubscription, err := servicebus.NewSubscription(ctx, \"exampleSubscription\", \u0026servicebus.SubscriptionArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tTopicName:         exampleTopic.Name,\n\t\t\tMaxDeliveryCount:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewSubscriptionRule(ctx, \"exampleSubscriptionRule\", \u0026servicebus.SubscriptionRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tTopicName:         exampleTopic.Name,\n\t\t\tSubscriptionName:  exampleSubscription.Name,\n\t\t\tFilterType:        pulumi.String(\"SqlFilter\"),\n\t\t\tSqlFilter:         pulumi.String(\"colour = 'red'\"),\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\n{{% /example %}}\n{{% example %}}\n### Correlation Filter)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleTopic = new azure.servicebus.Topic(\"exampleTopic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\nconst exampleSubscription = new azure.servicebus.Subscription(\"exampleSubscription\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    topicName: exampleTopic.name,\n    maxDeliveryCount: 1,\n});\nconst exampleSubscriptionRule = new azure.servicebus.SubscriptionRule(\"exampleSubscriptionRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    topicName: exampleTopic.name,\n    subscriptionName: exampleSubscription.name,\n    filterType: \"CorrelationFilter\",\n    correlationFilter: {\n        correlationId: \"high\",\n        label: \"red\",\n        properties: {\n            customProperty: \"value\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_topic = azure.servicebus.Topic(\"exampleTopic\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\nexample_subscription = azure.servicebus.Subscription(\"exampleSubscription\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    topic_name=example_topic.name,\n    max_delivery_count=1)\nexample_subscription_rule = azure.servicebus.SubscriptionRule(\"exampleSubscriptionRule\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    topic_name=example_topic.name,\n    subscription_name=example_subscription.name,\n    filter_type=\"CorrelationFilter\",\n    correlation_filter=azure.servicebus.SubscriptionRuleCorrelationFilterArgs(\n        correlation_id=\"high\",\n        label=\"red\",\n        properties={\n            \"customProperty\": \"value\",\n        },\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleTopic = new Azure.ServiceBus.Topic(\"exampleTopic\", new Azure.ServiceBus.TopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n        var exampleSubscription = new Azure.ServiceBus.Subscription(\"exampleSubscription\", new Azure.ServiceBus.SubscriptionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            TopicName = exampleTopic.Name,\n            MaxDeliveryCount = 1,\n        });\n        var exampleSubscriptionRule = new Azure.ServiceBus.SubscriptionRule(\"exampleSubscriptionRule\", new Azure.ServiceBus.SubscriptionRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            TopicName = exampleTopic.Name,\n            SubscriptionName = exampleSubscription.Name,\n            FilterType = \"CorrelationFilter\",\n            CorrelationFilter = new Azure.ServiceBus.Inputs.SubscriptionRuleCorrelationFilterArgs\n            {\n                CorrelationId = \"high\",\n                Label = \"red\",\n                Properties = \n                {\n                    { \"customProperty\", \"value\" },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := servicebus.NewTopic(ctx, \"exampleTopic\", \u0026servicebus.TopicArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubscription, err := servicebus.NewSubscription(ctx, \"exampleSubscription\", \u0026servicebus.SubscriptionArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tTopicName:         exampleTopic.Name,\n\t\t\tMaxDeliveryCount:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewSubscriptionRule(ctx, \"exampleSubscriptionRule\", \u0026servicebus.SubscriptionRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tTopicName:         exampleTopic.Name,\n\t\t\tSubscriptionName:  exampleSubscription.Name,\n\t\t\tFilterType:        pulumi.String(\"CorrelationFilter\"),\n\t\t\tCorrelationFilter: \u0026servicebus.SubscriptionRuleCorrelationFilterArgs{\n\t\t\t\tCorrelationId: pulumi.String(\"high\"),\n\t\t\t\tLabel:         pulumi.String(\"red\"),\n\t\t\t\tProperties: pulumi.StringMap{\n\t\t\t\t\t\"customProperty\": pulumi.String(\"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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nService Bus Subscription Rule can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/subscriptionRule:SubscriptionRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.servicebus/namespaces/sbns1/topics/sntopic1/subscriptions/sbsub1/rules/sbrule1\n```\n\n ",
      "inputProperties": {
        "action": {
          "description": "Represents set of actions written in SQL language-based syntax that is performed against a BrokeredMessage.\n",
          "type": "string"
        },
        "correlationFilter": {
          "$ref": "#/types/azure:eventhub/SubscriptionRuleCorrelationFilter:SubscriptionRuleCorrelationFilter",
          "description": "A `correlation_filter` block as documented below to be evaluated against a BrokeredMessage. Required when `filter_type` is set to `CorrelationFilter`.\n"
        },
        "filterType": {
          "description": "Type of filter to be applied to a BrokeredMessage. Possible values are `SqlFilter` and `CorrelationFilter`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Subscription Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace in which the ServiceBus Topic exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sqlFilter": {
          "description": "Represents a filter written in SQL language-based syntax that to be evaluated against a BrokeredMessage. Required when `filter_type` is set to `SqlFilter`.\n",
          "type": "string"
        },
        "subscriptionName": {
          "description": "The name of the ServiceBus Subscription in which this Rule should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "topicName": {
          "description": "The name of the ServiceBus Topic in which the ServiceBus Subscription exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "action": {
          "description": "Represents set of actions written in SQL language-based syntax that is performed against a BrokeredMessage.\n",
          "type": "string"
        },
        "correlationFilter": {
          "$ref": "#/types/azure:eventhub/SubscriptionRuleCorrelationFilter:SubscriptionRuleCorrelationFilter",
          "description": "A `correlation_filter` block as documented below to be evaluated against a BrokeredMessage. Required when `filter_type` is set to `CorrelationFilter`.\n"
        },
        "filterType": {
          "description": "Type of filter to be applied to a BrokeredMessage. Possible values are `SqlFilter` and `CorrelationFilter`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Subscription Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace in which the ServiceBus Topic exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sqlFilter": {
          "description": "Represents a filter written in SQL language-based syntax that to be evaluated against a BrokeredMessage. Required when `filter_type` is set to `SqlFilter`.\n",
          "type": "string"
        },
        "subscriptionName": {
          "description": "The name of the ServiceBus Subscription in which this Rule should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "topicName": {
          "description": "The name of the ServiceBus Topic in which the ServiceBus Subscription exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "filterType",
        "name",
        "namespaceName",
        "resourceGroupName",
        "subscriptionName",
        "topicName"
      ],
      "requiredInputs": [
        "filterType",
        "namespaceName",
        "resourceGroupName",
        "subscriptionName",
        "topicName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SubscriptionRule resources.\n",
        "properties": {
          "action": {
            "description": "Represents set of actions written in SQL language-based syntax that is performed against a BrokeredMessage.\n",
            "type": "string"
          },
          "correlationFilter": {
            "$ref": "#/types/azure:eventhub/SubscriptionRuleCorrelationFilter:SubscriptionRuleCorrelationFilter",
            "description": "A `correlation_filter` block as documented below to be evaluated against a BrokeredMessage. Required when `filter_type` is set to `CorrelationFilter`.\n"
          },
          "filterType": {
            "description": "Type of filter to be applied to a BrokeredMessage. Possible values are `SqlFilter` and `CorrelationFilter`.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the ServiceBus Subscription Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the ServiceBus Namespace in which the ServiceBus Topic exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sqlFilter": {
            "description": "Represents a filter written in SQL language-based syntax that to be evaluated against a BrokeredMessage. Required when `filter_type` is set to `SqlFilter`.\n",
            "type": "string"
          },
          "subscriptionName": {
            "description": "The name of the ServiceBus Subscription in which this Rule should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "topicName": {
            "description": "The name of the ServiceBus Topic in which the ServiceBus Subscription exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/topic:Topic": {
      "deprecationMessage": "azure.eventhub.Topic has been deprecated in favor of azure.servicebus.Topic",
      "description": "Manages a ServiceBus Topic.\n\n**Note** Topics can only be created in Namespaces with an SKU of `standard` or higher.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleTopic = new azure.servicebus.Topic(\"exampleTopic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_topic = azure.servicebus.Topic(\"exampleTopic\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleTopic = new Azure.ServiceBus.Topic(\"exampleTopic\", new Azure.ServiceBus.TopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewTopic(ctx, \"exampleTopic\", \u0026servicebus.TopicArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nService Bus Topics can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/topic:Topic example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.servicebus/namespaces/sbns1/topics/sntopic1\n```\n\n ",
      "inputProperties": {
        "autoDeleteOnIdle": {
          "description": "The ISO 8601 timespan duration of the idle interval after which the\nTopic is automatically deleted, minimum of 5 minutes.\n",
          "type": "string"
        },
        "defaultMessageTtl": {
          "description": "The ISO 8601 timespan duration of TTL of messages sent to this topic if no\nTTL value is set on the message itself.\n",
          "type": "string"
        },
        "duplicateDetectionHistoryTimeWindow": {
          "description": "The ISO 8601 timespan duration during which\nduplicates can be detected. Defaults to 10 minutes. (`PT10M`)\n",
          "type": "string"
        },
        "enableBatchedOperations": {
          "description": "Boolean flag which controls if server-side\nbatched operations are enabled. Defaults to false.\n",
          "type": "boolean"
        },
        "enableExpress": {
          "description": "Boolean flag which controls whether Express Entities\nare enabled. An express topic holds a message in memory temporarily before writing\nit to persistent storage. Defaults to false.\n",
          "type": "boolean"
        },
        "enablePartitioning": {
          "description": "Boolean flag which controls whether to enable\nthe topic to be partitioned across multiple message brokers. Defaults to false.\nChanging this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "maxSizeInMegabytes": {
          "description": "Integer value which controls the size of\nmemory allocated for the topic. For supported values see the \"Queue/topic size\"\nsection of [this document](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas).\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Topic resource. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace to create\nthis topic in. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "requiresDuplicateDetection": {
          "description": "Boolean flag which controls whether\nthe Topic requires duplicate detection. Defaults to false. Changing this forces\na new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "The Status of the Service Bus Topic. Acceptable values are `Active` or `Disabled`. Defaults to `Active`.\n",
          "type": "string"
        },
        "supportOrdering": {
          "description": "Boolean flag which controls whether the Topic\nsupports ordering. Defaults to false.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "autoDeleteOnIdle": {
          "description": "The ISO 8601 timespan duration of the idle interval after which the\nTopic is automatically deleted, minimum of 5 minutes.\n",
          "type": "string"
        },
        "defaultMessageTtl": {
          "description": "The ISO 8601 timespan duration of TTL of messages sent to this topic if no\nTTL value is set on the message itself.\n",
          "type": "string"
        },
        "duplicateDetectionHistoryTimeWindow": {
          "description": "The ISO 8601 timespan duration during which\nduplicates can be detected. Defaults to 10 minutes. (`PT10M`)\n",
          "type": "string"
        },
        "enableBatchedOperations": {
          "description": "Boolean flag which controls if server-side\nbatched operations are enabled. Defaults to false.\n",
          "type": "boolean"
        },
        "enableExpress": {
          "description": "Boolean flag which controls whether Express Entities\nare enabled. An express topic holds a message in memory temporarily before writing\nit to persistent storage. Defaults to false.\n",
          "type": "boolean"
        },
        "enablePartitioning": {
          "description": "Boolean flag which controls whether to enable\nthe topic to be partitioned across multiple message brokers. Defaults to false.\nChanging this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "maxSizeInMegabytes": {
          "description": "Integer value which controls the size of\nmemory allocated for the topic. For supported values see the \"Queue/topic size\"\nsection of [this document](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas).\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Topic resource. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace to create\nthis topic in. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "requiresDuplicateDetection": {
          "description": "Boolean flag which controls whether\nthe Topic requires duplicate detection. Defaults to false. Changing this forces\na new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "The Status of the Service Bus Topic. Acceptable values are `Active` or `Disabled`. Defaults to `Active`.\n",
          "type": "string"
        },
        "supportOrdering": {
          "description": "Boolean flag which controls whether the Topic\nsupports ordering. Defaults to false.\n",
          "type": "boolean"
        }
      },
      "required": [
        "autoDeleteOnIdle",
        "defaultMessageTtl",
        "duplicateDetectionHistoryTimeWindow",
        "maxSizeInMegabytes",
        "name",
        "namespaceName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Topic resources.\n",
        "properties": {
          "autoDeleteOnIdle": {
            "description": "The ISO 8601 timespan duration of the idle interval after which the\nTopic is automatically deleted, minimum of 5 minutes.\n",
            "type": "string"
          },
          "defaultMessageTtl": {
            "description": "The ISO 8601 timespan duration of TTL of messages sent to this topic if no\nTTL value is set on the message itself.\n",
            "type": "string"
          },
          "duplicateDetectionHistoryTimeWindow": {
            "description": "The ISO 8601 timespan duration during which\nduplicates can be detected. Defaults to 10 minutes. (`PT10M`)\n",
            "type": "string"
          },
          "enableBatchedOperations": {
            "description": "Boolean flag which controls if server-side\nbatched operations are enabled. Defaults to false.\n",
            "type": "boolean"
          },
          "enableExpress": {
            "description": "Boolean flag which controls whether Express Entities\nare enabled. An express topic holds a message in memory temporarily before writing\nit to persistent storage. Defaults to false.\n",
            "type": "boolean"
          },
          "enablePartitioning": {
            "description": "Boolean flag which controls whether to enable\nthe topic to be partitioned across multiple message brokers. Defaults to false.\nChanging this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "maxSizeInMegabytes": {
            "description": "Integer value which controls the size of\nmemory allocated for the topic. For supported values see the \"Queue/topic size\"\nsection of [this document](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas).\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the ServiceBus Topic resource. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the ServiceBus Namespace to create\nthis topic in. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "requiresDuplicateDetection": {
            "description": "Boolean flag which controls whether\nthe Topic requires duplicate detection. Defaults to false. Changing this forces\na new resource to be created.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "status": {
            "description": "The Status of the Service Bus Topic. Acceptable values are `Active` or `Disabled`. Defaults to `Active`.\n",
            "type": "string"
          },
          "supportOrdering": {
            "description": "Boolean flag which controls whether the Topic\nsupports ordering. Defaults to false.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:eventhub/topicAuthorizationRule:TopicAuthorizationRule": {
      "deprecationMessage": "azure.eventhub.TopicAuthorizationRule has been deprecated in favor of azure.servicebus.TopicAuthorizationRule",
      "description": "Manages a ServiceBus Topic authorization Rule within a ServiceBus Topic.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleTopic = new azure.servicebus.Topic(\"exampleTopic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n});\nconst exampleTopicAuthorizationRule = new azure.servicebus.TopicAuthorizationRule(\"exampleTopicAuthorizationRule\", {\n    namespaceName: exampleNamespace.name,\n    topicName: exampleTopic.name,\n    resourceGroupName: exampleResourceGroup.name,\n    listen: true,\n    send: false,\n    manage: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_topic = azure.servicebus.Topic(\"exampleTopic\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name)\nexample_topic_authorization_rule = azure.servicebus.TopicAuthorizationRule(\"exampleTopicAuthorizationRule\",\n    namespace_name=example_namespace.name,\n    topic_name=example_topic.name,\n    resource_group_name=example_resource_group.name,\n    listen=True,\n    send=False,\n    manage=False)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleTopic = new Azure.ServiceBus.Topic(\"exampleTopic\", new Azure.ServiceBus.TopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n        });\n        var exampleTopicAuthorizationRule = new Azure.ServiceBus.TopicAuthorizationRule(\"exampleTopicAuthorizationRule\", new Azure.ServiceBus.TopicAuthorizationRuleArgs\n        {\n            NamespaceName = exampleNamespace.Name,\n            TopicName = exampleTopic.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Listen = true,\n            Send = false,\n            Manage = false,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := servicebus.NewTopic(ctx, \"exampleTopic\", \u0026servicebus.TopicArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewTopicAuthorizationRule(ctx, \"exampleTopicAuthorizationRule\", \u0026servicebus.TopicAuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tTopicName:         exampleTopic.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tListen:            pulumi.Bool(true),\n\t\t\tSend:              pulumi.Bool(false),\n\t\t\tManage:            pulumi.Bool(false),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nServiceBus Topic authorization rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:eventhub/topicAuthorizationRule:TopicAuthorizationRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ServiceBus/namespaces/namespace1/topics/topic1/authorizationRules/rule1\n```\n\n ",
      "inputProperties": {
        "listen": {
          "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Topic Authorization Rule resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the ServiceBus Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "send": {
          "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "topicName": {
          "description": "Specifies the name of the ServiceBus Topic. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "listen": {
          "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Topic Authorization Rule resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the ServiceBus Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The Primary Connection String for the ServiceBus Topic authorization Rule.\n",
          "type": "string"
        },
        "primaryConnectionStringAlias": {
          "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The Primary Key for the ServiceBus Topic authorization Rule.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The Secondary Connection String for the ServiceBus Topic authorization Rule.\n",
          "type": "string"
        },
        "secondaryConnectionStringAlias": {
          "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The Secondary Key for the ServiceBus Topic authorization Rule.\n",
          "type": "string"
        },
        "send": {
          "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "topicName": {
          "description": "Specifies the name of the ServiceBus Topic. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "namespaceName",
        "primaryConnectionString",
        "primaryConnectionStringAlias",
        "primaryKey",
        "resourceGroupName",
        "secondaryConnectionString",
        "secondaryConnectionStringAlias",
        "secondaryKey",
        "topicName"
      ],
      "requiredInputs": [
        "namespaceName",
        "resourceGroupName",
        "topicName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TopicAuthorizationRule resources.\n",
        "properties": {
          "listen": {
            "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
            "type": "boolean"
          },
          "manage": {
            "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the ServiceBus Topic Authorization Rule resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the ServiceBus Namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the ServiceBus Topic authorization Rule.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the ServiceBus Topic authorization Rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the ServiceBus Topic authorization Rule.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the ServiceBus Topic authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
            "type": "boolean"
          },
          "topicName": {
            "description": "Specifies the name of the ServiceBus Topic. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:frontdoor/customHttpsConfiguration:CustomHttpsConfiguration": {
      "description": "\n\n\n## Import\n\nFront Door Custom Https Configurations can be imported using the `resource id` of the Front Door Custom Https Configuration, e.g.\n\n```sh\n $ pulumi import azure:frontdoor/customHttpsConfiguration:CustomHttpsConfiguration example_custom_https_1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/frontDoors/frontdoor1/customHttpsConfiguration/endpoint1\n```\n\n ",
      "inputProperties": {
        "customHttpsConfiguration": {
          "$ref": "#/types/azure:frontdoor/CustomHttpsConfigurationCustomHttpsConfiguration:CustomHttpsConfigurationCustomHttpsConfiguration",
          "description": "A `custom_https_configuration` block as defined below.\n",
          "language": {
            "csharp": {
              "name": "CustomHttpsConfigurationConfig"
            }
          }
        },
        "customHttpsProvisioningEnabled": {
          "description": "Should the HTTPS protocol be enabled for this custom domain associated with the Front Door?\n",
          "type": "boolean"
        },
        "frontendEndpointId": {
          "description": "The ID of the FrontDoor Frontend Endpoint which this configuration refers to.\n",
          "type": "string"
        }
      },
      "properties": {
        "customHttpsConfiguration": {
          "$ref": "#/types/azure:frontdoor/CustomHttpsConfigurationCustomHttpsConfiguration:CustomHttpsConfigurationCustomHttpsConfiguration",
          "description": "A `custom_https_configuration` block as defined below.\n",
          "language": {
            "csharp": {
              "name": "CustomHttpsConfigurationConfig"
            }
          }
        },
        "customHttpsProvisioningEnabled": {
          "description": "Should the HTTPS protocol be enabled for this custom domain associated with the Front Door?\n",
          "type": "boolean"
        },
        "frontendEndpointId": {
          "description": "The ID of the FrontDoor Frontend Endpoint which this configuration refers to.\n",
          "type": "string"
        }
      },
      "required": [
        "customHttpsProvisioningEnabled",
        "frontendEndpointId"
      ],
      "requiredInputs": [
        "customHttpsProvisioningEnabled",
        "frontendEndpointId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CustomHttpsConfiguration resources.\n",
        "properties": {
          "customHttpsConfiguration": {
            "$ref": "#/types/azure:frontdoor/CustomHttpsConfigurationCustomHttpsConfiguration:CustomHttpsConfigurationCustomHttpsConfiguration",
            "description": "A `custom_https_configuration` block as defined below.\n",
            "language": {
              "csharp": {
                "name": "CustomHttpsConfigurationConfig"
              }
            }
          },
          "customHttpsProvisioningEnabled": {
            "description": "Should the HTTPS protocol be enabled for this custom domain associated with the Front Door?\n",
            "type": "boolean"
          },
          "frontendEndpointId": {
            "description": "The ID of the FrontDoor Frontend Endpoint which this configuration refers to.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:frontdoor/firewallPolicy:FirewallPolicy": {
      "description": "\n\n\n## Import\n\nFrontDoor Web Application Firewall Policy can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:frontdoor/firewallPolicy:FirewallPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/examplefdwafpolicy\n```\n\n ",
      "inputProperties": {
        "customBlockResponseBody": {
          "description": "If a `custom_rule` block's action type is `block`, this is the response body. The body must be specified in base64 encoding.\n",
          "type": "string"
        },
        "customBlockResponseStatusCode": {
          "description": "If a `custom_rule` block's action type is `block`, this is the response status code. Possible values are `200`, `403`, `405`, `406`, or `429`.\n",
          "type": "integer"
        },
        "customRules": {
          "description": "One or more `custom_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FirewallPolicyCustomRule:FirewallPolicyCustomRule"
          },
          "type": "array"
        },
        "enabled": {
          "description": "Is the policy a enabled state or disabled state. Defaults to `true`.\n",
          "type": "boolean"
        },
        "managedRules": {
          "description": "One or more `managed_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FirewallPolicyManagedRule:FirewallPolicyManagedRule"
          },
          "type": "array"
        },
        "mode": {
          "description": "The firewall policy mode. Possible values are `Detection`, `Prevention` and defaults to `Prevention`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "redirectUrl": {
          "description": "If action type is redirect, this field represents redirect URL for the client.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Web Application Firewall Policy.\n",
          "type": "object"
        }
      },
      "properties": {
        "customBlockResponseBody": {
          "description": "If a `custom_rule` block's action type is `block`, this is the response body. The body must be specified in base64 encoding.\n",
          "type": "string"
        },
        "customBlockResponseStatusCode": {
          "description": "If a `custom_rule` block's action type is `block`, this is the response status code. Possible values are `200`, `403`, `405`, `406`, or `429`.\n",
          "type": "integer"
        },
        "customRules": {
          "description": "One or more `custom_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FirewallPolicyCustomRule:FirewallPolicyCustomRule"
          },
          "type": "array"
        },
        "enabled": {
          "description": "Is the policy a enabled state or disabled state. Defaults to `true`.\n",
          "type": "boolean"
        },
        "frontendEndpointIds": {
          "description": "The Frontend Endpoints associated with this Front Door Web Application Firewall policy.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "The Azure Region where this FrontDoor Firewall Policy exists.\n",
          "type": "string"
        },
        "managedRules": {
          "description": "One or more `managed_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FirewallPolicyManagedRule:FirewallPolicyManagedRule"
          },
          "type": "array"
        },
        "mode": {
          "description": "The firewall policy mode. Possible values are `Detection`, `Prevention` and defaults to `Prevention`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "redirectUrl": {
          "description": "If action type is redirect, this field represents redirect URL for the client.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Web Application Firewall Policy.\n",
          "type": "object"
        }
      },
      "required": [
        "frontendEndpointIds",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FirewallPolicy resources.\n",
        "properties": {
          "customBlockResponseBody": {
            "description": "If a `custom_rule` block's action type is `block`, this is the response body. The body must be specified in base64 encoding.\n",
            "type": "string"
          },
          "customBlockResponseStatusCode": {
            "description": "If a `custom_rule` block's action type is `block`, this is the response status code. Possible values are `200`, `403`, `405`, `406`, or `429`.\n",
            "type": "integer"
          },
          "customRules": {
            "description": "One or more `custom_rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:frontdoor/FirewallPolicyCustomRule:FirewallPolicyCustomRule"
            },
            "type": "array"
          },
          "enabled": {
            "description": "Is the policy a enabled state or disabled state. Defaults to `true`.\n",
            "type": "boolean"
          },
          "frontendEndpointIds": {
            "description": "The Frontend Endpoints associated with this Front Door Web Application Firewall policy.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "The Azure Region where this FrontDoor Firewall Policy exists.\n",
            "type": "string"
          },
          "managedRules": {
            "description": "One or more `managed_rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:frontdoor/FirewallPolicyManagedRule:FirewallPolicyManagedRule"
            },
            "type": "array"
          },
          "mode": {
            "description": "The firewall policy mode. Possible values are `Detection`, `Prevention` and defaults to `Prevention`.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the policy. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "redirectUrl": {
            "description": "If action type is redirect, this field represents redirect URL for the client.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Web Application Firewall Policy.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:frontdoor/frontdoor:Frontdoor": {
      "description": "Manages an Azure Front Door instance.\n\nAzure Front Door Service is Microsoft's highly available and scalable web application acceleration platform and global HTTP(s) load balancer. It provides built-in DDoS protection and application layer security and caching. Front Door enables you to build applications that maximize and automate high-availability and performance for your end-users. Use Front Door with Azure services including Web/Mobile Apps, Cloud Services and Virtual Machines – or combine it with on-premises services for hybrid deployments and smooth cloud migration.\n\nBelow are some of the key scenarios that Azure Front Door Service addresses:\n* Use Front Door to improve application scale and availability with instant multi-region failover\n* Use Front Door to improve application performance with SSL offload and routing requests to the fastest available application backend.\n* Use Front Door for application layer security and DDoS protection for your application.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFrontdoor = new azure.frontdoor.Frontdoor(\"exampleFrontdoor\", {\n    resourceGroupName: exampleResourceGroup.name,\n    enforceBackendPoolsCertificateNameCheck: false,\n    routingRules: [{\n        name: \"exampleRoutingRule1\",\n        acceptedProtocols: [\n            \"Http\",\n            \"Https\",\n        ],\n        patternsToMatches: [\"/*\"],\n        frontendEndpoints: [\"exampleFrontendEndpoint1\"],\n        forwardingConfiguration: {\n            forwardingProtocol: \"MatchRequest\",\n            backendPoolName: \"exampleBackendBing\",\n        },\n    }],\n    backendPoolLoadBalancings: [{\n        name: \"exampleLoadBalancingSettings1\",\n    }],\n    backendPoolHealthProbes: [{\n        name: \"exampleHealthProbeSetting1\",\n    }],\n    backendPools: [{\n        name: \"exampleBackendBing\",\n        backends: [{\n            hostHeader: \"www.bing.com\",\n            address: \"www.bing.com\",\n            httpPort: 80,\n            httpsPort: 443,\n        }],\n        loadBalancingName: \"exampleLoadBalancingSettings1\",\n        healthProbeName: \"exampleHealthProbeSetting1\",\n    }],\n    frontendEndpoints: [{\n        name: \"exampleFrontendEndpoint1\",\n        hostName: \"example-FrontDoor.azurefd.net\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_frontdoor = azure.frontdoor.Frontdoor(\"exampleFrontdoor\",\n    resource_group_name=example_resource_group.name,\n    enforce_backend_pools_certificate_name_check=False,\n    routing_rules=[azure.frontdoor.FrontdoorRoutingRuleArgs(\n        name=\"exampleRoutingRule1\",\n        accepted_protocols=[\n            \"Http\",\n            \"Https\",\n        ],\n        patterns_to_matches=[\"/*\"],\n        frontend_endpoints=[\"exampleFrontendEndpoint1\"],\n        forwarding_configuration=azure.frontdoor.FrontdoorRoutingRuleForwardingConfigurationArgs(\n            forwarding_protocol=\"MatchRequest\",\n            backend_pool_name=\"exampleBackendBing\",\n        ),\n    )],\n    backend_pool_load_balancings=[azure.frontdoor.FrontdoorBackendPoolLoadBalancingArgs(\n        name=\"exampleLoadBalancingSettings1\",\n    )],\n    backend_pool_health_probes=[azure.frontdoor.FrontdoorBackendPoolHealthProbeArgs(\n        name=\"exampleHealthProbeSetting1\",\n    )],\n    backend_pools=[azure.frontdoor.FrontdoorBackendPoolArgs(\n        name=\"exampleBackendBing\",\n        backends=[azure.frontdoor.FrontdoorBackendPoolBackendArgs(\n            host_header=\"www.bing.com\",\n            address=\"www.bing.com\",\n            http_port=80,\n            https_port=443,\n        )],\n        load_balancing_name=\"exampleLoadBalancingSettings1\",\n        health_probe_name=\"exampleHealthProbeSetting1\",\n    )],\n    frontend_endpoints=[azure.frontdoor.FrontdoorFrontendEndpointArgs(\n        name=\"exampleFrontendEndpoint1\",\n        host_name=\"example-FrontDoor.azurefd.net\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFrontdoor = new Azure.FrontDoor.Frontdoor(\"exampleFrontdoor\", new Azure.FrontDoor.FrontdoorArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            EnforceBackendPoolsCertificateNameCheck = false,\n            RoutingRules = \n            {\n                new Azure.FrontDoor.Inputs.FrontdoorRoutingRuleArgs\n                {\n                    Name = \"exampleRoutingRule1\",\n                    AcceptedProtocols = \n                    {\n                        \"Http\",\n                        \"Https\",\n                    },\n                    PatternsToMatches = \n                    {\n                        \"/*\",\n                    },\n                    FrontendEndpoints = \n                    {\n                        \"exampleFrontendEndpoint1\",\n                    },\n                    ForwardingConfiguration = new Azure.FrontDoor.Inputs.FrontdoorRoutingRuleForwardingConfigurationArgs\n                    {\n                        ForwardingProtocol = \"MatchRequest\",\n                        BackendPoolName = \"exampleBackendBing\",\n                    },\n                },\n            },\n            BackendPoolLoadBalancings = \n            {\n                new Azure.FrontDoor.Inputs.FrontdoorBackendPoolLoadBalancingArgs\n                {\n                    Name = \"exampleLoadBalancingSettings1\",\n                },\n            },\n            BackendPoolHealthProbes = \n            {\n                new Azure.FrontDoor.Inputs.FrontdoorBackendPoolHealthProbeArgs\n                {\n                    Name = \"exampleHealthProbeSetting1\",\n                },\n            },\n            BackendPools = \n            {\n                new Azure.FrontDoor.Inputs.FrontdoorBackendPoolArgs\n                {\n                    Name = \"exampleBackendBing\",\n                    Backends = \n                    {\n                        new Azure.FrontDoor.Inputs.FrontdoorBackendPoolBackendArgs\n                        {\n                            HostHeader = \"www.bing.com\",\n                            Address = \"www.bing.com\",\n                            HttpPort = 80,\n                            HttpsPort = 443,\n                        },\n                    },\n                    LoadBalancingName = \"exampleLoadBalancingSettings1\",\n                    HealthProbeName = \"exampleHealthProbeSetting1\",\n                },\n            },\n            FrontendEndpoints = \n            {\n                new Azure.FrontDoor.Inputs.FrontdoorFrontendEndpointArgs\n                {\n                    Name = \"exampleFrontendEndpoint1\",\n                    HostName = \"example-FrontDoor.azurefd.net\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/frontdoor\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = frontdoor.NewFrontdoor(ctx, \"exampleFrontdoor\", \u0026frontdoor.FrontdoorArgs{\n\t\t\tResourceGroupName:                       exampleResourceGroup.Name,\n\t\t\tEnforceBackendPoolsCertificateNameCheck: pulumi.Bool(false),\n\t\t\tRoutingRules: frontdoor.FrontdoorRoutingRuleArray{\n\t\t\t\t\u0026frontdoor.FrontdoorRoutingRuleArgs{\n\t\t\t\t\tName: pulumi.String(\"exampleRoutingRule1\"),\n\t\t\t\t\tAcceptedProtocols: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Http\"),\n\t\t\t\t\t\tpulumi.String(\"Https\"),\n\t\t\t\t\t},\n\t\t\t\t\tPatternsToMatches: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFrontendEndpoints: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"exampleFrontendEndpoint1\"),\n\t\t\t\t\t},\n\t\t\t\t\tForwardingConfiguration: \u0026frontdoor.FrontdoorRoutingRuleForwardingConfigurationArgs{\n\t\t\t\t\t\tForwardingProtocol: pulumi.String(\"MatchRequest\"),\n\t\t\t\t\t\tBackendPoolName:    pulumi.String(\"exampleBackendBing\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackendPoolLoadBalancings: frontdoor.FrontdoorBackendPoolLoadBalancingArray{\n\t\t\t\t\u0026frontdoor.FrontdoorBackendPoolLoadBalancingArgs{\n\t\t\t\t\tName: pulumi.String(\"exampleLoadBalancingSettings1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackendPoolHealthProbes: frontdoor.FrontdoorBackendPoolHealthProbeArray{\n\t\t\t\t\u0026frontdoor.FrontdoorBackendPoolHealthProbeArgs{\n\t\t\t\t\tName: pulumi.String(\"exampleHealthProbeSetting1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackendPools: frontdoor.FrontdoorBackendPoolArray{\n\t\t\t\t\u0026frontdoor.FrontdoorBackendPoolArgs{\n\t\t\t\t\tName: pulumi.String(\"exampleBackendBing\"),\n\t\t\t\t\tBackends: frontdoor.FrontdoorBackendPoolBackendArray{\n\t\t\t\t\t\t\u0026frontdoor.FrontdoorBackendPoolBackendArgs{\n\t\t\t\t\t\t\tHostHeader: pulumi.String(\"www.bing.com\"),\n\t\t\t\t\t\t\tAddress:    pulumi.String(\"www.bing.com\"),\n\t\t\t\t\t\t\tHttpPort:   pulumi.Int(80),\n\t\t\t\t\t\t\tHttpsPort:  pulumi.Int(443),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLoadBalancingName: pulumi.String(\"exampleLoadBalancingSettings1\"),\n\t\t\t\t\tHealthProbeName:   pulumi.String(\"exampleHealthProbeSetting1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendEndpoints: frontdoor.FrontdoorFrontendEndpointArray{\n\t\t\t\t\u0026frontdoor.FrontdoorFrontendEndpointArgs{\n\t\t\t\t\tName:     pulumi.String(\"exampleFrontendEndpoint1\"),\n\t\t\t\t\tHostName: pulumi.String(\"example-FrontDoor.azurefd.net\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFront Doors can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:frontdoor/frontdoor:Frontdoor example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/mygroup1/providers/Microsoft.Network/frontDoors/frontdoor1\n```\n\n ",
      "inputProperties": {
        "backendPoolHealthProbes": {
          "description": "A `backend_pool_health_probe` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FrontdoorBackendPoolHealthProbe:FrontdoorBackendPoolHealthProbe"
          },
          "type": "array"
        },
        "backendPoolLoadBalancings": {
          "description": "A `backend_pool_load_balancing` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FrontdoorBackendPoolLoadBalancing:FrontdoorBackendPoolLoadBalancing"
          },
          "type": "array"
        },
        "backendPools": {
          "description": "A `backend_pool` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FrontdoorBackendPool:FrontdoorBackendPool"
          },
          "type": "array"
        },
        "backendPoolsSendReceiveTimeoutSeconds": {
          "description": "Specifies the send and receive timeout on forwarding request to the backend. When the timeout is reached, the request fails and returns. Possible values are between `0` - `240`. Defaults to `60`.\n",
          "type": "integer"
        },
        "enforceBackendPoolsCertificateNameCheck": {
          "description": "Enforce certificate name check on `HTTPS` requests to all backend pools, this setting will have no effect on `HTTP` requests. Permitted values are `true` or `false`.\n",
          "type": "boolean"
        },
        "friendlyName": {
          "description": "A friendly name for the Front Door service.\n",
          "type": "string"
        },
        "frontendEndpoints": {
          "description": "A `frontend_endpoint` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FrontdoorFrontendEndpoint:FrontdoorFrontendEndpoint"
          },
          "type": "array"
        },
        "loadBalancerEnabled": {
          "description": "Should the Front Door Load Balancer be Enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "location": {
          "deprecationMessage": "Due to the service's API changing 'location' must now always be set to 'Global' for new resources, however if the Front Door service was created prior 2020/03/10 it may continue to exist in a specific current location",
          "description": "The `location` argument is deprecated and is now always set to `global`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Front Door service. Must be globally unique. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which the Front Door service should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routingRules": {
          "description": "A `routing_rule` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FrontdoorRoutingRule:FrontdoorRoutingRule"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "backendPoolHealthProbes": {
          "description": "A `backend_pool_health_probe` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FrontdoorBackendPoolHealthProbe:FrontdoorBackendPoolHealthProbe"
          },
          "type": "array"
        },
        "backendPoolHealthProbesMap": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map/dictionary of Backend Pool Health Probe Names (key) to the Backend Pool Health Probe ID (value)\n",
          "type": "object"
        },
        "backendPoolLoadBalancingSettingsMap": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map/dictionary of Backend Pool Load Balancing Setting Names (key) to the Backend Pool Load Balancing Setting ID (value)\n",
          "type": "object"
        },
        "backendPoolLoadBalancings": {
          "description": "A `backend_pool_load_balancing` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FrontdoorBackendPoolLoadBalancing:FrontdoorBackendPoolLoadBalancing"
          },
          "type": "array"
        },
        "backendPools": {
          "description": "A `backend_pool` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FrontdoorBackendPool:FrontdoorBackendPool"
          },
          "type": "array"
        },
        "backendPoolsMap": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map/dictionary of Backend Pool Names (key) to the Backend Pool ID (value)\n",
          "type": "object"
        },
        "backendPoolsSendReceiveTimeoutSeconds": {
          "description": "Specifies the send and receive timeout on forwarding request to the backend. When the timeout is reached, the request fails and returns. Possible values are between `0` - `240`. Defaults to `60`.\n",
          "type": "integer"
        },
        "cname": {
          "description": "The host that each frontendEndpoint must CNAME to.\n",
          "type": "string"
        },
        "enforceBackendPoolsCertificateNameCheck": {
          "description": "Enforce certificate name check on `HTTPS` requests to all backend pools, this setting will have no effect on `HTTP` requests. Permitted values are `true` or `false`.\n",
          "type": "boolean"
        },
        "explicitResourceOrders": {
          "items": {
            "$ref": "#/types/azure:frontdoor/FrontdoorExplicitResourceOrder:FrontdoorExplicitResourceOrder"
          },
          "type": "array"
        },
        "friendlyName": {
          "description": "A friendly name for the Front Door service.\n",
          "type": "string"
        },
        "frontendEndpoints": {
          "description": "A `frontend_endpoint` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FrontdoorFrontendEndpoint:FrontdoorFrontendEndpoint"
          },
          "type": "array"
        },
        "frontendEndpointsMap": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The names of the `frontend_endpoint` blocks within this resource to associate with this `routing_rule`.\n",
          "type": "object"
        },
        "headerFrontdoorId": {
          "description": "The unique ID of the Front Door which is embedded into the incoming headers `X-Azure-FDID` attribute and maybe used to filter traffic sent by the Front Door to your backend.\n",
          "type": "string"
        },
        "loadBalancerEnabled": {
          "description": "Should the Front Door Load Balancer be Enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "location": {
          "deprecationMessage": "Due to the service's API changing 'location' must now always be set to 'Global' for new resources, however if the Front Door service was created prior 2020/03/10 it may continue to exist in a specific current location",
          "description": "The `location` argument is deprecated and is now always set to `global`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Front Door service. Must be globally unique. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which the Front Door service should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routingRules": {
          "description": "A `routing_rule` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FrontdoorRoutingRule:FrontdoorRoutingRule"
          },
          "type": "array"
        },
        "routingRulesMap": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map/dictionary of Routing Rule Names (key) to the Routing Rule ID (value)\n",
          "type": "object"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "backendPools",
        "backendPoolHealthProbes",
        "backendPoolHealthProbesMap",
        "backendPoolLoadBalancings",
        "backendPoolLoadBalancingSettingsMap",
        "backendPoolsMap",
        "cname",
        "enforceBackendPoolsCertificateNameCheck",
        "explicitResourceOrders",
        "frontendEndpoints",
        "frontendEndpointsMap",
        "headerFrontdoorId",
        "location",
        "name",
        "resourceGroupName",
        "routingRules",
        "routingRulesMap"
      ],
      "requiredInputs": [
        "backendPools",
        "backendPoolHealthProbes",
        "backendPoolLoadBalancings",
        "enforceBackendPoolsCertificateNameCheck",
        "frontendEndpoints",
        "resourceGroupName",
        "routingRules"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Frontdoor resources.\n",
        "properties": {
          "backendPoolHealthProbes": {
            "description": "A `backend_pool_health_probe` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:frontdoor/FrontdoorBackendPoolHealthProbe:FrontdoorBackendPoolHealthProbe"
            },
            "type": "array"
          },
          "backendPoolHealthProbesMap": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map/dictionary of Backend Pool Health Probe Names (key) to the Backend Pool Health Probe ID (value)\n",
            "type": "object"
          },
          "backendPoolLoadBalancingSettingsMap": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map/dictionary of Backend Pool Load Balancing Setting Names (key) to the Backend Pool Load Balancing Setting ID (value)\n",
            "type": "object"
          },
          "backendPoolLoadBalancings": {
            "description": "A `backend_pool_load_balancing` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:frontdoor/FrontdoorBackendPoolLoadBalancing:FrontdoorBackendPoolLoadBalancing"
            },
            "type": "array"
          },
          "backendPools": {
            "description": "A `backend_pool` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:frontdoor/FrontdoorBackendPool:FrontdoorBackendPool"
            },
            "type": "array"
          },
          "backendPoolsMap": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map/dictionary of Backend Pool Names (key) to the Backend Pool ID (value)\n",
            "type": "object"
          },
          "backendPoolsSendReceiveTimeoutSeconds": {
            "description": "Specifies the send and receive timeout on forwarding request to the backend. When the timeout is reached, the request fails and returns. Possible values are between `0` - `240`. Defaults to `60`.\n",
            "type": "integer"
          },
          "cname": {
            "description": "The host that each frontendEndpoint must CNAME to.\n",
            "type": "string"
          },
          "enforceBackendPoolsCertificateNameCheck": {
            "description": "Enforce certificate name check on `HTTPS` requests to all backend pools, this setting will have no effect on `HTTP` requests. Permitted values are `true` or `false`.\n",
            "type": "boolean"
          },
          "explicitResourceOrders": {
            "items": {
              "$ref": "#/types/azure:frontdoor/FrontdoorExplicitResourceOrder:FrontdoorExplicitResourceOrder"
            },
            "type": "array"
          },
          "friendlyName": {
            "description": "A friendly name for the Front Door service.\n",
            "type": "string"
          },
          "frontendEndpoints": {
            "description": "A `frontend_endpoint` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:frontdoor/FrontdoorFrontendEndpoint:FrontdoorFrontendEndpoint"
            },
            "type": "array"
          },
          "frontendEndpointsMap": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The names of the `frontend_endpoint` blocks within this resource to associate with this `routing_rule`.\n",
            "type": "object"
          },
          "headerFrontdoorId": {
            "description": "The unique ID of the Front Door which is embedded into the incoming headers `X-Azure-FDID` attribute and maybe used to filter traffic sent by the Front Door to your backend.\n",
            "type": "string"
          },
          "loadBalancerEnabled": {
            "description": "Should the Front Door Load Balancer be Enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "location": {
            "deprecationMessage": "Due to the service's API changing 'location' must now always be set to 'Global' for new resources, however if the Front Door service was created prior 2020/03/10 it may continue to exist in a specific current location",
            "description": "The `location` argument is deprecated and is now always set to `global`.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Front Door service. Must be globally unique. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which the Front Door service should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "routingRules": {
            "description": "A `routing_rule` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:frontdoor/FrontdoorRoutingRule:FrontdoorRoutingRule"
            },
            "type": "array"
          },
          "routingRulesMap": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map/dictionary of Routing Rule Names (key) to the Routing Rule ID (value)\n",
            "type": "object"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:hdinsight/hBaseCluster:HBaseCluster": {
      "description": "Manages a HDInsight HBase Cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleHBaseCluster = new azure.hdinsight.HBaseCluster(\"exampleHBaseCluster\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    clusterVersion: \"3.6\",\n    tier: \"Standard\",\n    componentVersion: {\n        hbase: \"1.1\",\n    },\n    gateway: {\n        enabled: true,\n        username: \"acctestusrgw\",\n        password: \"Password123!\",\n    },\n    storageAccounts: [{\n        storageContainerId: exampleContainer.id,\n        storageAccountKey: exampleAccount.primaryAccessKey,\n        isDefault: true,\n    }],\n    roles: {\n        headNode: {\n            vmSize: \"Standard_D3_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n        workerNode: {\n            vmSize: \"Standard_D3_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n            targetInstanceCount: 3,\n        },\n        zookeeperNode: {\n            vmSize: \"Standard_D3_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_h_base_cluster = azure.hdinsight.HBaseCluster(\"exampleHBaseCluster\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cluster_version=\"3.6\",\n    tier=\"Standard\",\n    component_version=azure.hdinsight.HBaseClusterComponentVersionArgs(\n        hbase=\"1.1\",\n    ),\n    gateway=azure.hdinsight.HBaseClusterGatewayArgs(\n        enabled=True,\n        username=\"acctestusrgw\",\n        password=\"Password123!\",\n    ),\n    storage_accounts=[azure.hdinsight.HBaseClusterStorageAccountArgs(\n        storage_container_id=example_container.id,\n        storage_account_key=example_account.primary_access_key,\n        is_default=True,\n    )],\n    roles=azure.hdinsight.HBaseClusterRolesArgs(\n        head_node=azure.hdinsight.HBaseClusterRolesHeadNodeArgs(\n            vm_size=\"Standard_D3_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n        worker_node=azure.hdinsight.HBaseClusterRolesWorkerNodeArgs(\n            vm_size=\"Standard_D3_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n            target_instance_count=3,\n        ),\n        zookeeper_node=azure.hdinsight.HBaseClusterRolesZookeeperNodeArgs(\n            vm_size=\"Standard_D3_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleHBaseCluster = new Azure.HDInsight.HBaseCluster(\"exampleHBaseCluster\", new Azure.HDInsight.HBaseClusterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ClusterVersion = \"3.6\",\n            Tier = \"Standard\",\n            ComponentVersion = new Azure.HDInsight.Inputs.HBaseClusterComponentVersionArgs\n            {\n                Hbase = \"1.1\",\n            },\n            Gateway = new Azure.HDInsight.Inputs.HBaseClusterGatewayArgs\n            {\n                Enabled = true,\n                Username = \"acctestusrgw\",\n                Password = \"Password123!\",\n            },\n            StorageAccounts = \n            {\n                new Azure.HDInsight.Inputs.HBaseClusterStorageAccountArgs\n                {\n                    StorageContainerId = exampleContainer.Id,\n                    StorageAccountKey = exampleAccount.PrimaryAccessKey,\n                    IsDefault = true,\n                },\n            },\n            Roles = new Azure.HDInsight.Inputs.HBaseClusterRolesArgs\n            {\n                HeadNode = new Azure.HDInsight.Inputs.HBaseClusterRolesHeadNodeArgs\n                {\n                    VmSize = \"Standard_D3_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n                WorkerNode = new Azure.HDInsight.Inputs.HBaseClusterRolesWorkerNodeArgs\n                {\n                    VmSize = \"Standard_D3_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                    TargetInstanceCount = 3,\n                },\n                ZookeeperNode = new Azure.HDInsight.Inputs.HBaseClusterRolesZookeeperNodeArgs\n                {\n                    VmSize = \"Standard_D3_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/hdinsight\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hdinsight.NewHBaseCluster(ctx, \"exampleHBaseCluster\", \u0026hdinsight.HBaseClusterArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tClusterVersion:    pulumi.String(\"3.6\"),\n\t\t\tTier:              pulumi.String(\"Standard\"),\n\t\t\tComponentVersion: \u0026hdinsight.HBaseClusterComponentVersionArgs{\n\t\t\t\tHbase: pulumi.String(\"1.1\"),\n\t\t\t},\n\t\t\tGateway: \u0026hdinsight.HBaseClusterGatewayArgs{\n\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\tUsername: pulumi.String(\"acctestusrgw\"),\n\t\t\t\tPassword: pulumi.String(\"Password123!\"),\n\t\t\t},\n\t\t\tStorageAccounts: hdinsight.HBaseClusterStorageAccountArray{\n\t\t\t\t\u0026hdinsight.HBaseClusterStorageAccountArgs{\n\t\t\t\t\tStorageContainerId: exampleContainer.ID(),\n\t\t\t\t\tStorageAccountKey:  exampleAccount.PrimaryAccessKey,\n\t\t\t\t\tIsDefault:          pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRoles: \u0026hdinsight.HBaseClusterRolesArgs{\n\t\t\t\tHeadNode: \u0026hdinsight.HBaseClusterRolesHeadNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_D3_V2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t},\n\t\t\t\tWorkerNode: \u0026hdinsight.HBaseClusterRolesWorkerNodeArgs{\n\t\t\t\t\tVmSize:              pulumi.String(\"Standard_D3_V2\"),\n\t\t\t\t\tUsername:            pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword:            pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t\tTargetInstanceCount: pulumi.Int(3),\n\t\t\t\t},\n\t\t\t\tZookeeperNode: \u0026hdinsight.HBaseClusterRolesZookeeperNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_D3_V2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHDInsight HBase Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:hdinsight/hBaseCluster:HBaseCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.HDInsight/clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "componentVersion": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterComponentVersion:HBaseClusterComponentVersion",
          "description": "A `component_version` block as defined below.\n"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterGateway:HBaseClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight HBase Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metastores": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterMetastores:HBaseClusterMetastores",
          "description": "A `metastores` block as defined below.\n"
        },
        "monitor": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterMonitor:HBaseClusterMonitor",
          "description": "A `monitor` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name for this HDInsight HBase Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight HBase Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterRoles:HBaseClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "securityProfile": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterSecurityProfile:HBaseClusterSecurityProfile",
          "description": "A `security_profile` block as defined below.\n"
        },
        "storageAccountGen2": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterStorageAccountGen2:HBaseClusterStorageAccountGen2",
          "description": "A `storage_account_gen2` block as defined below.\n"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/HBaseClusterStorageAccount:HBaseClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight HBase Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight HBase Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "type": "string"
        }
      },
      "properties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "componentVersion": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterComponentVersion:HBaseClusterComponentVersion",
          "description": "A `component_version` block as defined below.\n"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterGateway:HBaseClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "httpsEndpoint": {
          "description": "The HTTPS Connectivity Endpoint for this HDInsight HBase Cluster.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight HBase Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metastores": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterMetastores:HBaseClusterMetastores",
          "description": "A `metastores` block as defined below.\n"
        },
        "monitor": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterMonitor:HBaseClusterMonitor",
          "description": "A `monitor` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name for this HDInsight HBase Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight HBase Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterRoles:HBaseClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "securityProfile": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterSecurityProfile:HBaseClusterSecurityProfile",
          "description": "A `security_profile` block as defined below.\n"
        },
        "sshEndpoint": {
          "description": "The SSH Connectivity Endpoint for this HDInsight HBase Cluster.\n",
          "type": "string"
        },
        "storageAccountGen2": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterStorageAccountGen2:HBaseClusterStorageAccountGen2",
          "description": "A `storage_account_gen2` block as defined below.\n"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/HBaseClusterStorageAccount:HBaseClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight HBase Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight HBase Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "type": "string"
        }
      },
      "required": [
        "clusterVersion",
        "componentVersion",
        "gateway",
        "httpsEndpoint",
        "location",
        "name",
        "resourceGroupName",
        "roles",
        "sshEndpoint",
        "tier"
      ],
      "requiredInputs": [
        "clusterVersion",
        "componentVersion",
        "gateway",
        "resourceGroupName",
        "roles",
        "tier"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering HBaseCluster resources.\n",
        "properties": {
          "clusterVersion": {
            "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "componentVersion": {
            "$ref": "#/types/azure:hdinsight/HBaseClusterComponentVersion:HBaseClusterComponentVersion",
            "description": "A `component_version` block as defined below.\n"
          },
          "gateway": {
            "$ref": "#/types/azure:hdinsight/HBaseClusterGateway:HBaseClusterGateway",
            "description": "A `gateway` block as defined below.\n"
          },
          "httpsEndpoint": {
            "description": "The HTTPS Connectivity Endpoint for this HDInsight HBase Cluster.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the Azure Region which this HDInsight HBase Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metastores": {
            "$ref": "#/types/azure:hdinsight/HBaseClusterMetastores:HBaseClusterMetastores",
            "description": "A `metastores` block as defined below.\n"
          },
          "monitor": {
            "$ref": "#/types/azure:hdinsight/HBaseClusterMonitor:HBaseClusterMonitor",
            "description": "A `monitor` block as defined below.\n"
          },
          "name": {
            "description": "Specifies the name for this HDInsight HBase Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which this HDInsight HBase Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "roles": {
            "$ref": "#/types/azure:hdinsight/HBaseClusterRoles:HBaseClusterRoles",
            "description": "A `roles` block as defined below.\n"
          },
          "securityProfile": {
            "$ref": "#/types/azure:hdinsight/HBaseClusterSecurityProfile:HBaseClusterSecurityProfile",
            "description": "A `security_profile` block as defined below.\n"
          },
          "sshEndpoint": {
            "description": "The SSH Connectivity Endpoint for this HDInsight HBase Cluster.\n",
            "type": "string"
          },
          "storageAccountGen2": {
            "$ref": "#/types/azure:hdinsight/HBaseClusterStorageAccountGen2:HBaseClusterStorageAccountGen2",
            "description": "A `storage_account_gen2` block as defined below.\n"
          },
          "storageAccounts": {
            "description": "One or more `storage_account` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:hdinsight/HBaseClusterStorageAccount:HBaseClusterStorageAccount"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of Tags which should be assigned to this HDInsight HBase Cluster.\n",
            "type": "object"
          },
          "tier": {
            "description": "Specifies the Tier which should be used for this HDInsight HBase Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tlsMinVersion": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:hdinsight/hadoopCluster:HadoopCluster": {
      "description": "Manages a HDInsight Hadoop Cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleHadoopCluster = new azure.hdinsight.HadoopCluster(\"exampleHadoopCluster\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    clusterVersion: \"3.6\",\n    tier: \"Standard\",\n    componentVersion: {\n        hadoop: \"2.7\",\n    },\n    gateway: {\n        enabled: true,\n        username: \"acctestusrgw\",\n        password: \"PAssword123!\",\n    },\n    storageAccounts: [{\n        storageContainerId: exampleContainer.id,\n        storageAccountKey: exampleAccount.primaryAccessKey,\n        isDefault: true,\n    }],\n    roles: {\n        headNode: {\n            vmSize: \"Standard_D3_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n        workerNode: {\n            vmSize: \"Standard_D4_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n            targetInstanceCount: 3,\n        },\n        zookeeperNode: {\n            vmSize: \"Standard_D3_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_hadoop_cluster = azure.hdinsight.HadoopCluster(\"exampleHadoopCluster\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cluster_version=\"3.6\",\n    tier=\"Standard\",\n    component_version=azure.hdinsight.HadoopClusterComponentVersionArgs(\n        hadoop=\"2.7\",\n    ),\n    gateway=azure.hdinsight.HadoopClusterGatewayArgs(\n        enabled=True,\n        username=\"acctestusrgw\",\n        password=\"PAssword123!\",\n    ),\n    storage_accounts=[azure.hdinsight.HadoopClusterStorageAccountArgs(\n        storage_container_id=example_container.id,\n        storage_account_key=example_account.primary_access_key,\n        is_default=True,\n    )],\n    roles=azure.hdinsight.HadoopClusterRolesArgs(\n        head_node=azure.hdinsight.HadoopClusterRolesHeadNodeArgs(\n            vm_size=\"Standard_D3_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n        worker_node=azure.hdinsight.HadoopClusterRolesWorkerNodeArgs(\n            vm_size=\"Standard_D4_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n            target_instance_count=3,\n        ),\n        zookeeper_node=azure.hdinsight.HadoopClusterRolesZookeeperNodeArgs(\n            vm_size=\"Standard_D3_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleHadoopCluster = new Azure.HDInsight.HadoopCluster(\"exampleHadoopCluster\", new Azure.HDInsight.HadoopClusterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ClusterVersion = \"3.6\",\n            Tier = \"Standard\",\n            ComponentVersion = new Azure.HDInsight.Inputs.HadoopClusterComponentVersionArgs\n            {\n                Hadoop = \"2.7\",\n            },\n            Gateway = new Azure.HDInsight.Inputs.HadoopClusterGatewayArgs\n            {\n                Enabled = true,\n                Username = \"acctestusrgw\",\n                Password = \"PAssword123!\",\n            },\n            StorageAccounts = \n            {\n                new Azure.HDInsight.Inputs.HadoopClusterStorageAccountArgs\n                {\n                    StorageContainerId = exampleContainer.Id,\n                    StorageAccountKey = exampleAccount.PrimaryAccessKey,\n                    IsDefault = true,\n                },\n            },\n            Roles = new Azure.HDInsight.Inputs.HadoopClusterRolesArgs\n            {\n                HeadNode = new Azure.HDInsight.Inputs.HadoopClusterRolesHeadNodeArgs\n                {\n                    VmSize = \"Standard_D3_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n                WorkerNode = new Azure.HDInsight.Inputs.HadoopClusterRolesWorkerNodeArgs\n                {\n                    VmSize = \"Standard_D4_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                    TargetInstanceCount = 3,\n                },\n                ZookeeperNode = new Azure.HDInsight.Inputs.HadoopClusterRolesZookeeperNodeArgs\n                {\n                    VmSize = \"Standard_D3_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/hdinsight\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hdinsight.NewHadoopCluster(ctx, \"exampleHadoopCluster\", \u0026hdinsight.HadoopClusterArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tClusterVersion:    pulumi.String(\"3.6\"),\n\t\t\tTier:              pulumi.String(\"Standard\"),\n\t\t\tComponentVersion: \u0026hdinsight.HadoopClusterComponentVersionArgs{\n\t\t\t\tHadoop: pulumi.String(\"2.7\"),\n\t\t\t},\n\t\t\tGateway: \u0026hdinsight.HadoopClusterGatewayArgs{\n\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\tUsername: pulumi.String(\"acctestusrgw\"),\n\t\t\t\tPassword: pulumi.String(\"PAssword123!\"),\n\t\t\t},\n\t\t\tStorageAccounts: hdinsight.HadoopClusterStorageAccountArray{\n\t\t\t\t\u0026hdinsight.HadoopClusterStorageAccountArgs{\n\t\t\t\t\tStorageContainerId: exampleContainer.ID(),\n\t\t\t\t\tStorageAccountKey:  exampleAccount.PrimaryAccessKey,\n\t\t\t\t\tIsDefault:          pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRoles: \u0026hdinsight.HadoopClusterRolesArgs{\n\t\t\t\tHeadNode: \u0026hdinsight.HadoopClusterRolesHeadNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_D3_V2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t},\n\t\t\t\tWorkerNode: \u0026hdinsight.HadoopClusterRolesWorkerNodeArgs{\n\t\t\t\t\tVmSize:              pulumi.String(\"Standard_D4_V2\"),\n\t\t\t\t\tUsername:            pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword:            pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t\tTargetInstanceCount: pulumi.Int(3),\n\t\t\t\t},\n\t\t\t\tZookeeperNode: \u0026hdinsight.HadoopClusterRolesZookeeperNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_D3_V2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHDInsight Hadoop Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:hdinsight/hadoopCluster:HadoopCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.HDInsight/clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "componentVersion": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterComponentVersion:HadoopClusterComponentVersion",
          "description": "A `component_version` block as defined below.\n"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterGateway:HadoopClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight Hadoop Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metastores": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterMetastores:HadoopClusterMetastores",
          "description": "A `metastores` block as defined below.\n"
        },
        "monitor": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterMonitor:HadoopClusterMonitor",
          "description": "A `monitor` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name for this HDInsight Hadoop Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "network": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterNetwork:HadoopClusterNetwork",
          "description": "A `network` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight Hadoop Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterRoles:HadoopClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "securityProfile": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterSecurityProfile:HadoopClusterSecurityProfile",
          "description": "A `security_profile` block as defined below.\n"
        },
        "storageAccountGen2": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterStorageAccountGen2:HadoopClusterStorageAccountGen2",
          "description": "A `storage_account_gen2` block as defined below.\n"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/HadoopClusterStorageAccount:HadoopClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight Hadoop Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight Hadoop Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "type": "string"
        }
      },
      "properties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "componentVersion": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterComponentVersion:HadoopClusterComponentVersion",
          "description": "A `component_version` block as defined below.\n"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterGateway:HadoopClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "httpsEndpoint": {
          "description": "The HTTPS Connectivity Endpoint for this HDInsight Hadoop Cluster.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight Hadoop Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metastores": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterMetastores:HadoopClusterMetastores",
          "description": "A `metastores` block as defined below.\n"
        },
        "monitor": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterMonitor:HadoopClusterMonitor",
          "description": "A `monitor` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name for this HDInsight Hadoop Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "network": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterNetwork:HadoopClusterNetwork",
          "description": "A `network` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight Hadoop Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterRoles:HadoopClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "securityProfile": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterSecurityProfile:HadoopClusterSecurityProfile",
          "description": "A `security_profile` block as defined below.\n"
        },
        "sshEndpoint": {
          "description": "The SSH Connectivity Endpoint for this HDInsight Hadoop Cluster.\n",
          "type": "string"
        },
        "storageAccountGen2": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterStorageAccountGen2:HadoopClusterStorageAccountGen2",
          "description": "A `storage_account_gen2` block as defined below.\n"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/HadoopClusterStorageAccount:HadoopClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight Hadoop Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight Hadoop Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "type": "string"
        }
      },
      "required": [
        "clusterVersion",
        "componentVersion",
        "gateway",
        "httpsEndpoint",
        "location",
        "name",
        "resourceGroupName",
        "roles",
        "sshEndpoint",
        "tier"
      ],
      "requiredInputs": [
        "clusterVersion",
        "componentVersion",
        "gateway",
        "resourceGroupName",
        "roles",
        "tier"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering HadoopCluster resources.\n",
        "properties": {
          "clusterVersion": {
            "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "componentVersion": {
            "$ref": "#/types/azure:hdinsight/HadoopClusterComponentVersion:HadoopClusterComponentVersion",
            "description": "A `component_version` block as defined below.\n"
          },
          "gateway": {
            "$ref": "#/types/azure:hdinsight/HadoopClusterGateway:HadoopClusterGateway",
            "description": "A `gateway` block as defined below.\n"
          },
          "httpsEndpoint": {
            "description": "The HTTPS Connectivity Endpoint for this HDInsight Hadoop Cluster.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the Azure Region which this HDInsight Hadoop Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metastores": {
            "$ref": "#/types/azure:hdinsight/HadoopClusterMetastores:HadoopClusterMetastores",
            "description": "A `metastores` block as defined below.\n"
          },
          "monitor": {
            "$ref": "#/types/azure:hdinsight/HadoopClusterMonitor:HadoopClusterMonitor",
            "description": "A `monitor` block as defined below.\n"
          },
          "name": {
            "description": "Specifies the name for this HDInsight Hadoop Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "network": {
            "$ref": "#/types/azure:hdinsight/HadoopClusterNetwork:HadoopClusterNetwork",
            "description": "A `network` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which this HDInsight Hadoop Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "roles": {
            "$ref": "#/types/azure:hdinsight/HadoopClusterRoles:HadoopClusterRoles",
            "description": "A `roles` block as defined below.\n"
          },
          "securityProfile": {
            "$ref": "#/types/azure:hdinsight/HadoopClusterSecurityProfile:HadoopClusterSecurityProfile",
            "description": "A `security_profile` block as defined below.\n"
          },
          "sshEndpoint": {
            "description": "The SSH Connectivity Endpoint for this HDInsight Hadoop Cluster.\n",
            "type": "string"
          },
          "storageAccountGen2": {
            "$ref": "#/types/azure:hdinsight/HadoopClusterStorageAccountGen2:HadoopClusterStorageAccountGen2",
            "description": "A `storage_account_gen2` block as defined below.\n"
          },
          "storageAccounts": {
            "description": "One or more `storage_account` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:hdinsight/HadoopClusterStorageAccount:HadoopClusterStorageAccount"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of Tags which should be assigned to this HDInsight Hadoop Cluster.\n",
            "type": "object"
          },
          "tier": {
            "description": "Specifies the Tier which should be used for this HDInsight Hadoop Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tlsMinVersion": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:hdinsight/interactiveQueryCluster:InteractiveQueryCluster": {
      "description": "Manages a HDInsight Interactive Query Cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleInteractiveQueryCluster = new azure.hdinsight.InteractiveQueryCluster(\"exampleInteractiveQueryCluster\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    clusterVersion: \"3.6\",\n    tier: \"Standard\",\n    componentVersion: {\n        interactiveHive: \"2.1\",\n    },\n    gateway: {\n        enabled: true,\n        username: \"acctestusrgw\",\n        password: \"Password!\",\n    },\n    storageAccounts: [{\n        storageContainerId: exampleContainer.id,\n        storageAccountKey: exampleAccount.primaryAccessKey,\n        isDefault: true,\n    }],\n    roles: {\n        headNode: {\n            vmSize: \"Standard_D13_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n        workerNode: {\n            vmSize: \"Standard_D14_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n            targetInstanceCount: 3,\n        },\n        zookeeperNode: {\n            vmSize: \"Standard_A4_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_interactive_query_cluster = azure.hdinsight.InteractiveQueryCluster(\"exampleInteractiveQueryCluster\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cluster_version=\"3.6\",\n    tier=\"Standard\",\n    component_version=azure.hdinsight.InteractiveQueryClusterComponentVersionArgs(\n        interactive_hive=\"2.1\",\n    ),\n    gateway=azure.hdinsight.InteractiveQueryClusterGatewayArgs(\n        enabled=True,\n        username=\"acctestusrgw\",\n        password=\"Password!\",\n    ),\n    storage_accounts=[azure.hdinsight.InteractiveQueryClusterStorageAccountArgs(\n        storage_container_id=example_container.id,\n        storage_account_key=example_account.primary_access_key,\n        is_default=True,\n    )],\n    roles=azure.hdinsight.InteractiveQueryClusterRolesArgs(\n        head_node=azure.hdinsight.InteractiveQueryClusterRolesHeadNodeArgs(\n            vm_size=\"Standard_D13_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n        worker_node=azure.hdinsight.InteractiveQueryClusterRolesWorkerNodeArgs(\n            vm_size=\"Standard_D14_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n            target_instance_count=3,\n        ),\n        zookeeper_node=azure.hdinsight.InteractiveQueryClusterRolesZookeeperNodeArgs(\n            vm_size=\"Standard_A4_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleInteractiveQueryCluster = new Azure.HDInsight.InteractiveQueryCluster(\"exampleInteractiveQueryCluster\", new Azure.HDInsight.InteractiveQueryClusterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ClusterVersion = \"3.6\",\n            Tier = \"Standard\",\n            ComponentVersion = new Azure.HDInsight.Inputs.InteractiveQueryClusterComponentVersionArgs\n            {\n                InteractiveHive = \"2.1\",\n            },\n            Gateway = new Azure.HDInsight.Inputs.InteractiveQueryClusterGatewayArgs\n            {\n                Enabled = true,\n                Username = \"acctestusrgw\",\n                Password = \"Password!\",\n            },\n            StorageAccounts = \n            {\n                new Azure.HDInsight.Inputs.InteractiveQueryClusterStorageAccountArgs\n                {\n                    StorageContainerId = exampleContainer.Id,\n                    StorageAccountKey = exampleAccount.PrimaryAccessKey,\n                    IsDefault = true,\n                },\n            },\n            Roles = new Azure.HDInsight.Inputs.InteractiveQueryClusterRolesArgs\n            {\n                HeadNode = new Azure.HDInsight.Inputs.InteractiveQueryClusterRolesHeadNodeArgs\n                {\n                    VmSize = \"Standard_D13_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n                WorkerNode = new Azure.HDInsight.Inputs.InteractiveQueryClusterRolesWorkerNodeArgs\n                {\n                    VmSize = \"Standard_D14_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                    TargetInstanceCount = 3,\n                },\n                ZookeeperNode = new Azure.HDInsight.Inputs.InteractiveQueryClusterRolesZookeeperNodeArgs\n                {\n                    VmSize = \"Standard_A4_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/hdinsight\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hdinsight.NewInteractiveQueryCluster(ctx, \"exampleInteractiveQueryCluster\", \u0026hdinsight.InteractiveQueryClusterArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tClusterVersion:    pulumi.String(\"3.6\"),\n\t\t\tTier:              pulumi.String(\"Standard\"),\n\t\t\tComponentVersion: \u0026hdinsight.InteractiveQueryClusterComponentVersionArgs{\n\t\t\t\tInteractiveHive: pulumi.String(\"2.1\"),\n\t\t\t},\n\t\t\tGateway: \u0026hdinsight.InteractiveQueryClusterGatewayArgs{\n\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\tUsername: pulumi.String(\"acctestusrgw\"),\n\t\t\t\tPassword: pulumi.String(\"Password!\"),\n\t\t\t},\n\t\t\tStorageAccounts: hdinsight.InteractiveQueryClusterStorageAccountArray{\n\t\t\t\t\u0026hdinsight.InteractiveQueryClusterStorageAccountArgs{\n\t\t\t\t\tStorageContainerId: exampleContainer.ID(),\n\t\t\t\t\tStorageAccountKey:  exampleAccount.PrimaryAccessKey,\n\t\t\t\t\tIsDefault:          pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRoles: \u0026hdinsight.InteractiveQueryClusterRolesArgs{\n\t\t\t\tHeadNode: \u0026hdinsight.InteractiveQueryClusterRolesHeadNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_D13_V2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t},\n\t\t\t\tWorkerNode: \u0026hdinsight.InteractiveQueryClusterRolesWorkerNodeArgs{\n\t\t\t\t\tVmSize:              pulumi.String(\"Standard_D14_V2\"),\n\t\t\t\t\tUsername:            pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword:            pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t\tTargetInstanceCount: pulumi.Int(3),\n\t\t\t\t},\n\t\t\t\tZookeeperNode: \u0026hdinsight.InteractiveQueryClusterRolesZookeeperNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_A4_V2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHDInsight Interactive Query Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:hdinsight/interactiveQueryCluster:InteractiveQueryCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.HDInsight/clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "componentVersion": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterComponentVersion:InteractiveQueryClusterComponentVersion",
          "description": "A `component_version` block as defined below.\n"
        },
        "encryptionInTransitEnabled": {
          "description": "Whether encryption in transit is enabled for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterGateway:InteractiveQueryClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight Interactive Query Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metastores": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterMetastores:InteractiveQueryClusterMetastores",
          "description": "A `metastores` block as defined below.\n"
        },
        "monitor": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterMonitor:InteractiveQueryClusterMonitor",
          "description": "A `monitor` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name for this HDInsight Interactive Query Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "network": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterNetwork:InteractiveQueryClusterNetwork",
          "description": "A `network` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight Interactive Query Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterRoles:InteractiveQueryClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "securityProfile": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterSecurityProfile:InteractiveQueryClusterSecurityProfile",
          "description": "A `security_profile` block as defined below.\n"
        },
        "storageAccountGen2": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterStorageAccountGen2:InteractiveQueryClusterStorageAccountGen2",
          "description": "A `storage_account_gen2` block as defined below.\n"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterStorageAccount:InteractiveQueryClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight Interactive Query Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight Interactive Query Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "type": "string"
        }
      },
      "properties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "componentVersion": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterComponentVersion:InteractiveQueryClusterComponentVersion",
          "description": "A `component_version` block as defined below.\n"
        },
        "encryptionInTransitEnabled": {
          "description": "Whether encryption in transit is enabled for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterGateway:InteractiveQueryClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "httpsEndpoint": {
          "description": "The HTTPS Connectivity Endpoint for this HDInsight Interactive Query Cluster.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight Interactive Query Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metastores": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterMetastores:InteractiveQueryClusterMetastores",
          "description": "A `metastores` block as defined below.\n"
        },
        "monitor": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterMonitor:InteractiveQueryClusterMonitor",
          "description": "A `monitor` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name for this HDInsight Interactive Query Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "network": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterNetwork:InteractiveQueryClusterNetwork",
          "description": "A `network` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight Interactive Query Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterRoles:InteractiveQueryClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "securityProfile": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterSecurityProfile:InteractiveQueryClusterSecurityProfile",
          "description": "A `security_profile` block as defined below.\n"
        },
        "sshEndpoint": {
          "description": "The SSH Connectivity Endpoint for this HDInsight Interactive Query Cluster.\n",
          "type": "string"
        },
        "storageAccountGen2": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterStorageAccountGen2:InteractiveQueryClusterStorageAccountGen2",
          "description": "A `storage_account_gen2` block as defined below.\n"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterStorageAccount:InteractiveQueryClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight Interactive Query Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight Interactive Query Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "type": "string"
        }
      },
      "required": [
        "clusterVersion",
        "componentVersion",
        "encryptionInTransitEnabled",
        "gateway",
        "httpsEndpoint",
        "location",
        "name",
        "resourceGroupName",
        "roles",
        "sshEndpoint",
        "tier"
      ],
      "requiredInputs": [
        "clusterVersion",
        "componentVersion",
        "gateway",
        "resourceGroupName",
        "roles",
        "tier"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering InteractiveQueryCluster resources.\n",
        "properties": {
          "clusterVersion": {
            "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "componentVersion": {
            "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterComponentVersion:InteractiveQueryClusterComponentVersion",
            "description": "A `component_version` block as defined below.\n"
          },
          "encryptionInTransitEnabled": {
            "description": "Whether encryption in transit is enabled for this Cluster. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "gateway": {
            "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterGateway:InteractiveQueryClusterGateway",
            "description": "A `gateway` block as defined below.\n"
          },
          "httpsEndpoint": {
            "description": "The HTTPS Connectivity Endpoint for this HDInsight Interactive Query Cluster.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the Azure Region which this HDInsight Interactive Query Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metastores": {
            "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterMetastores:InteractiveQueryClusterMetastores",
            "description": "A `metastores` block as defined below.\n"
          },
          "monitor": {
            "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterMonitor:InteractiveQueryClusterMonitor",
            "description": "A `monitor` block as defined below.\n"
          },
          "name": {
            "description": "Specifies the name for this HDInsight Interactive Query Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "network": {
            "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterNetwork:InteractiveQueryClusterNetwork",
            "description": "A `network` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which this HDInsight Interactive Query Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "roles": {
            "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterRoles:InteractiveQueryClusterRoles",
            "description": "A `roles` block as defined below.\n"
          },
          "securityProfile": {
            "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterSecurityProfile:InteractiveQueryClusterSecurityProfile",
            "description": "A `security_profile` block as defined below.\n"
          },
          "sshEndpoint": {
            "description": "The SSH Connectivity Endpoint for this HDInsight Interactive Query Cluster.\n",
            "type": "string"
          },
          "storageAccountGen2": {
            "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterStorageAccountGen2:InteractiveQueryClusterStorageAccountGen2",
            "description": "A `storage_account_gen2` block as defined below.\n"
          },
          "storageAccounts": {
            "description": "One or more `storage_account` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterStorageAccount:InteractiveQueryClusterStorageAccount"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of Tags which should be assigned to this HDInsight Interactive Query Cluster.\n",
            "type": "object"
          },
          "tier": {
            "description": "Specifies the Tier which should be used for this HDInsight Interactive Query Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tlsMinVersion": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:hdinsight/kafkaCluster:KafkaCluster": {
      "description": "Manages a HDInsight Kafka Cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleKafkaCluster = new azure.hdinsight.KafkaCluster(\"exampleKafkaCluster\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    clusterVersion: \"4.0\",\n    tier: \"Standard\",\n    componentVersion: {\n        kafka: \"2.1\",\n    },\n    gateway: {\n        enabled: true,\n        username: \"acctestusrgw\",\n        password: \"Password123!\",\n    },\n    storageAccounts: [{\n        storageContainerId: exampleContainer.id,\n        storageAccountKey: exampleAccount.primaryAccessKey,\n        isDefault: true,\n    }],\n    roles: {\n        headNode: {\n            vmSize: \"Standard_D3_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n        workerNode: {\n            vmSize: \"Standard_D3_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n            numberOfDisksPerNode: 3,\n            targetInstanceCount: 3,\n        },\n        zookeeperNode: {\n            vmSize: \"Standard_D3_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_kafka_cluster = azure.hdinsight.KafkaCluster(\"exampleKafkaCluster\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cluster_version=\"4.0\",\n    tier=\"Standard\",\n    component_version=azure.hdinsight.KafkaClusterComponentVersionArgs(\n        kafka=\"2.1\",\n    ),\n    gateway=azure.hdinsight.KafkaClusterGatewayArgs(\n        enabled=True,\n        username=\"acctestusrgw\",\n        password=\"Password123!\",\n    ),\n    storage_accounts=[azure.hdinsight.KafkaClusterStorageAccountArgs(\n        storage_container_id=example_container.id,\n        storage_account_key=example_account.primary_access_key,\n        is_default=True,\n    )],\n    roles=azure.hdinsight.KafkaClusterRolesArgs(\n        head_node=azure.hdinsight.KafkaClusterRolesHeadNodeArgs(\n            vm_size=\"Standard_D3_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n        worker_node=azure.hdinsight.KafkaClusterRolesWorkerNodeArgs(\n            vm_size=\"Standard_D3_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n            number_of_disks_per_node=3,\n            target_instance_count=3,\n        ),\n        zookeeper_node=azure.hdinsight.KafkaClusterRolesZookeeperNodeArgs(\n            vm_size=\"Standard_D3_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleKafkaCluster = new Azure.HDInsight.KafkaCluster(\"exampleKafkaCluster\", new Azure.HDInsight.KafkaClusterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ClusterVersion = \"4.0\",\n            Tier = \"Standard\",\n            ComponentVersion = new Azure.HDInsight.Inputs.KafkaClusterComponentVersionArgs\n            {\n                Kafka = \"2.1\",\n            },\n            Gateway = new Azure.HDInsight.Inputs.KafkaClusterGatewayArgs\n            {\n                Enabled = true,\n                Username = \"acctestusrgw\",\n                Password = \"Password123!\",\n            },\n            StorageAccounts = \n            {\n                new Azure.HDInsight.Inputs.KafkaClusterStorageAccountArgs\n                {\n                    StorageContainerId = exampleContainer.Id,\n                    StorageAccountKey = exampleAccount.PrimaryAccessKey,\n                    IsDefault = true,\n                },\n            },\n            Roles = new Azure.HDInsight.Inputs.KafkaClusterRolesArgs\n            {\n                HeadNode = new Azure.HDInsight.Inputs.KafkaClusterRolesHeadNodeArgs\n                {\n                    VmSize = \"Standard_D3_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n                WorkerNode = new Azure.HDInsight.Inputs.KafkaClusterRolesWorkerNodeArgs\n                {\n                    VmSize = \"Standard_D3_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                    NumberOfDisksPerNode = 3,\n                    TargetInstanceCount = 3,\n                },\n                ZookeeperNode = new Azure.HDInsight.Inputs.KafkaClusterRolesZookeeperNodeArgs\n                {\n                    VmSize = \"Standard_D3_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/hdinsight\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hdinsight.NewKafkaCluster(ctx, \"exampleKafkaCluster\", \u0026hdinsight.KafkaClusterArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tClusterVersion:    pulumi.String(\"4.0\"),\n\t\t\tTier:              pulumi.String(\"Standard\"),\n\t\t\tComponentVersion: \u0026hdinsight.KafkaClusterComponentVersionArgs{\n\t\t\t\tKafka: pulumi.String(\"2.1\"),\n\t\t\t},\n\t\t\tGateway: \u0026hdinsight.KafkaClusterGatewayArgs{\n\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\tUsername: pulumi.String(\"acctestusrgw\"),\n\t\t\t\tPassword: pulumi.String(\"Password123!\"),\n\t\t\t},\n\t\t\tStorageAccounts: hdinsight.KafkaClusterStorageAccountArray{\n\t\t\t\t\u0026hdinsight.KafkaClusterStorageAccountArgs{\n\t\t\t\t\tStorageContainerId: exampleContainer.ID(),\n\t\t\t\t\tStorageAccountKey:  exampleAccount.PrimaryAccessKey,\n\t\t\t\t\tIsDefault:          pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRoles: \u0026hdinsight.KafkaClusterRolesArgs{\n\t\t\t\tHeadNode: \u0026hdinsight.KafkaClusterRolesHeadNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_D3_V2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t},\n\t\t\t\tWorkerNode: \u0026hdinsight.KafkaClusterRolesWorkerNodeArgs{\n\t\t\t\t\tVmSize:               pulumi.String(\"Standard_D3_V2\"),\n\t\t\t\t\tUsername:             pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword:             pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t\tNumberOfDisksPerNode: pulumi.Int(3),\n\t\t\t\t\tTargetInstanceCount:  pulumi.Int(3),\n\t\t\t\t},\n\t\t\t\tZookeeperNode: \u0026hdinsight.KafkaClusterRolesZookeeperNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_D3_V2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHDInsight Kafka Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:hdinsight/kafkaCluster:KafkaCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.HDInsight/clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "componentVersion": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterComponentVersion:KafkaClusterComponentVersion",
          "description": "A `component_version` block as defined below.\n"
        },
        "encryptionInTransitEnabled": {
          "description": "Whether encryption in transit is enabled for this HDInsight Kafka Cluster. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterGateway:KafkaClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight Kafka Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metastores": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterMetastores:KafkaClusterMetastores",
          "description": "A `metastores` block as defined below.\n"
        },
        "monitor": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterMonitor:KafkaClusterMonitor",
          "description": "A `monitor` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name for this HDInsight Kafka Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight Kafka Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "restProxy": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterRestProxy:KafkaClusterRestProxy",
          "description": "A `rest_proxy` block as defined below.\n"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterRoles:KafkaClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "securityProfile": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterSecurityProfile:KafkaClusterSecurityProfile",
          "description": "A `security_profile` block as defined below.\n"
        },
        "storageAccountGen2": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterStorageAccountGen2:KafkaClusterStorageAccountGen2",
          "description": "A `storage_account_gen2` block as defined below.\n"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/KafkaClusterStorageAccount:KafkaClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight Kafka Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight Kafka Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "description": "The minimal supported TLS version. Possible values are `1.0`, `1.1` or `1.2`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "componentVersion": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterComponentVersion:KafkaClusterComponentVersion",
          "description": "A `component_version` block as defined below.\n"
        },
        "encryptionInTransitEnabled": {
          "description": "Whether encryption in transit is enabled for this HDInsight Kafka Cluster. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterGateway:KafkaClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "httpsEndpoint": {
          "description": "The HTTPS Connectivity Endpoint for this HDInsight Kafka Cluster.\n",
          "type": "string"
        },
        "kafkaRestProxyEndpoint": {
          "description": "The Kafka Rest Proxy Endpoint for this HDInsight Kafka Cluster.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight Kafka Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metastores": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterMetastores:KafkaClusterMetastores",
          "description": "A `metastores` block as defined below.\n"
        },
        "monitor": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterMonitor:KafkaClusterMonitor",
          "description": "A `monitor` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name for this HDInsight Kafka Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight Kafka Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "restProxy": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterRestProxy:KafkaClusterRestProxy",
          "description": "A `rest_proxy` block as defined below.\n"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterRoles:KafkaClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "securityProfile": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterSecurityProfile:KafkaClusterSecurityProfile",
          "description": "A `security_profile` block as defined below.\n"
        },
        "sshEndpoint": {
          "description": "The SSH Connectivity Endpoint for this HDInsight Kafka Cluster.\n",
          "type": "string"
        },
        "storageAccountGen2": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterStorageAccountGen2:KafkaClusterStorageAccountGen2",
          "description": "A `storage_account_gen2` block as defined below.\n"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/KafkaClusterStorageAccount:KafkaClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight Kafka Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight Kafka Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "description": "The minimal supported TLS version. Possible values are `1.0`, `1.1` or `1.2`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "clusterVersion",
        "componentVersion",
        "gateway",
        "httpsEndpoint",
        "kafkaRestProxyEndpoint",
        "location",
        "name",
        "resourceGroupName",
        "roles",
        "sshEndpoint",
        "tier"
      ],
      "requiredInputs": [
        "clusterVersion",
        "componentVersion",
        "gateway",
        "resourceGroupName",
        "roles",
        "tier"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering KafkaCluster resources.\n",
        "properties": {
          "clusterVersion": {
            "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "componentVersion": {
            "$ref": "#/types/azure:hdinsight/KafkaClusterComponentVersion:KafkaClusterComponentVersion",
            "description": "A `component_version` block as defined below.\n"
          },
          "encryptionInTransitEnabled": {
            "description": "Whether encryption in transit is enabled for this HDInsight Kafka Cluster. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "gateway": {
            "$ref": "#/types/azure:hdinsight/KafkaClusterGateway:KafkaClusterGateway",
            "description": "A `gateway` block as defined below.\n"
          },
          "httpsEndpoint": {
            "description": "The HTTPS Connectivity Endpoint for this HDInsight Kafka Cluster.\n",
            "type": "string"
          },
          "kafkaRestProxyEndpoint": {
            "description": "The Kafka Rest Proxy Endpoint for this HDInsight Kafka Cluster.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the Azure Region which this HDInsight Kafka Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metastores": {
            "$ref": "#/types/azure:hdinsight/KafkaClusterMetastores:KafkaClusterMetastores",
            "description": "A `metastores` block as defined below.\n"
          },
          "monitor": {
            "$ref": "#/types/azure:hdinsight/KafkaClusterMonitor:KafkaClusterMonitor",
            "description": "A `monitor` block as defined below.\n"
          },
          "name": {
            "description": "Specifies the name for this HDInsight Kafka Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which this HDInsight Kafka Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "restProxy": {
            "$ref": "#/types/azure:hdinsight/KafkaClusterRestProxy:KafkaClusterRestProxy",
            "description": "A `rest_proxy` block as defined below.\n"
          },
          "roles": {
            "$ref": "#/types/azure:hdinsight/KafkaClusterRoles:KafkaClusterRoles",
            "description": "A `roles` block as defined below.\n"
          },
          "securityProfile": {
            "$ref": "#/types/azure:hdinsight/KafkaClusterSecurityProfile:KafkaClusterSecurityProfile",
            "description": "A `security_profile` block as defined below.\n"
          },
          "sshEndpoint": {
            "description": "The SSH Connectivity Endpoint for this HDInsight Kafka Cluster.\n",
            "type": "string"
          },
          "storageAccountGen2": {
            "$ref": "#/types/azure:hdinsight/KafkaClusterStorageAccountGen2:KafkaClusterStorageAccountGen2",
            "description": "A `storage_account_gen2` block as defined below.\n"
          },
          "storageAccounts": {
            "description": "One or more `storage_account` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:hdinsight/KafkaClusterStorageAccount:KafkaClusterStorageAccount"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of Tags which should be assigned to this HDInsight Kafka Cluster.\n",
            "type": "object"
          },
          "tier": {
            "description": "Specifies the Tier which should be used for this HDInsight Kafka Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tlsMinVersion": {
            "description": "The minimal supported TLS version. Possible values are `1.0`, `1.1` or `1.2`. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:hdinsight/mLServicesCluster:MLServicesCluster": {
      "description": "Manages a HDInsight ML Services Cluster.\n\n!\u003e **Note:** [HDInsight 3.6 is deprecated and will be retired on 2020-12-31 - HDInsight 4.0 no longer supports ML Services Clusters](https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-component-versioning#available-versions) - as such this resource is deprecated and will be removed in the next major version of the Provider.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleMLServicesCluster = new azure.hdinsight.MLServicesCluster(\"exampleMLServicesCluster\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    clusterVersion: \"3.6\",\n    tier: \"Standard\",\n    rstudio: true,\n    gateway: {\n        enabled: true,\n        username: \"acctestusrgw\",\n        password: \"Password123!\",\n    },\n    storageAccounts: [{\n        storageContainerId: exampleContainer.id,\n        storageAccountKey: exampleAccount.primaryAccessKey,\n        isDefault: true,\n    }],\n    roles: {\n        headNode: {\n            vmSize: \"Standard_D3_v2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n        workerNode: {\n            vmSize: \"Standard_D4_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n            targetInstanceCount: 3,\n        },\n        zookeeperNode: {\n            vmSize: \"Standard_D3_v2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n        edgeNode: {\n            vmSize: \"Standard_D3_v2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_ml_services_cluster = azure.hdinsight.MLServicesCluster(\"exampleMLServicesCluster\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cluster_version=\"3.6\",\n    tier=\"Standard\",\n    rstudio=True,\n    gateway=azure.hdinsight.MLServicesClusterGatewayArgs(\n        enabled=True,\n        username=\"acctestusrgw\",\n        password=\"Password123!\",\n    ),\n    storage_accounts=[azure.hdinsight.MLServicesClusterStorageAccountArgs(\n        storage_container_id=example_container.id,\n        storage_account_key=example_account.primary_access_key,\n        is_default=True,\n    )],\n    roles=azure.hdinsight.MLServicesClusterRolesArgs(\n        head_node=azure.hdinsight.MLServicesClusterRolesHeadNodeArgs(\n            vm_size=\"Standard_D3_v2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n        worker_node=azure.hdinsight.MLServicesClusterRolesWorkerNodeArgs(\n            vm_size=\"Standard_D4_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n            target_instance_count=3,\n        ),\n        zookeeper_node=azure.hdinsight.MLServicesClusterRolesZookeeperNodeArgs(\n            vm_size=\"Standard_D3_v2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n        edge_node=azure.hdinsight.MLServicesClusterRolesEdgeNodeArgs(\n            vm_size=\"Standard_D3_v2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleMLServicesCluster = new Azure.HDInsight.MLServicesCluster(\"exampleMLServicesCluster\", new Azure.HDInsight.MLServicesClusterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ClusterVersion = \"3.6\",\n            Tier = \"Standard\",\n            Rstudio = true,\n            Gateway = new Azure.HDInsight.Inputs.MLServicesClusterGatewayArgs\n            {\n                Enabled = true,\n                Username = \"acctestusrgw\",\n                Password = \"Password123!\",\n            },\n            StorageAccounts = \n            {\n                new Azure.HDInsight.Inputs.MLServicesClusterStorageAccountArgs\n                {\n                    StorageContainerId = exampleContainer.Id,\n                    StorageAccountKey = exampleAccount.PrimaryAccessKey,\n                    IsDefault = true,\n                },\n            },\n            Roles = new Azure.HDInsight.Inputs.MLServicesClusterRolesArgs\n            {\n                HeadNode = new Azure.HDInsight.Inputs.MLServicesClusterRolesHeadNodeArgs\n                {\n                    VmSize = \"Standard_D3_v2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n                WorkerNode = new Azure.HDInsight.Inputs.MLServicesClusterRolesWorkerNodeArgs\n                {\n                    VmSize = \"Standard_D4_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                    TargetInstanceCount = 3,\n                },\n                ZookeeperNode = new Azure.HDInsight.Inputs.MLServicesClusterRolesZookeeperNodeArgs\n                {\n                    VmSize = \"Standard_D3_v2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n                EdgeNode = new Azure.HDInsight.Inputs.MLServicesClusterRolesEdgeNodeArgs\n                {\n                    VmSize = \"Standard_D3_v2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/hdinsight\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hdinsight.NewMLServicesCluster(ctx, \"exampleMLServicesCluster\", \u0026hdinsight.MLServicesClusterArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tClusterVersion:    pulumi.String(\"3.6\"),\n\t\t\tTier:              pulumi.String(\"Standard\"),\n\t\t\tRstudio:           pulumi.Bool(true),\n\t\t\tGateway: \u0026hdinsight.MLServicesClusterGatewayArgs{\n\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\tUsername: pulumi.String(\"acctestusrgw\"),\n\t\t\t\tPassword: pulumi.String(\"Password123!\"),\n\t\t\t},\n\t\t\tStorageAccounts: hdinsight.MLServicesClusterStorageAccountArray{\n\t\t\t\t\u0026hdinsight.MLServicesClusterStorageAccountArgs{\n\t\t\t\t\tStorageContainerId: exampleContainer.ID(),\n\t\t\t\t\tStorageAccountKey:  exampleAccount.PrimaryAccessKey,\n\t\t\t\t\tIsDefault:          pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRoles: \u0026hdinsight.MLServicesClusterRolesArgs{\n\t\t\t\tHeadNode: \u0026hdinsight.MLServicesClusterRolesHeadNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_D3_v2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t},\n\t\t\t\tWorkerNode: \u0026hdinsight.MLServicesClusterRolesWorkerNodeArgs{\n\t\t\t\t\tVmSize:              pulumi.String(\"Standard_D4_V2\"),\n\t\t\t\t\tUsername:            pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword:            pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t\tTargetInstanceCount: pulumi.Int(3),\n\t\t\t\t},\n\t\t\t\tZookeeperNode: \u0026hdinsight.MLServicesClusterRolesZookeeperNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_D3_v2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t},\n\t\t\t\tEdgeNode: \u0026hdinsight.MLServicesClusterRolesEdgeNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_D3_v2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHDInsight ML Services Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:hdinsight/mLServicesCluster:MLServicesCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.HDInsight/clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/MLServicesClusterGateway:MLServicesClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight ML Services Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name for this HDInsight ML Services Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight ML Services Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/MLServicesClusterRoles:MLServicesClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "rstudio": {
          "description": "Should R Studio community edition for ML Services be installed? Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/MLServicesClusterStorageAccount:MLServicesClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight ML Services Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight ML Services Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "type": "string"
        }
      },
      "properties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "edgeSshEndpoint": {
          "description": "The SSH Connectivity Endpoint for the Edge Node of the HDInsight ML Cluster.\n",
          "type": "string"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/MLServicesClusterGateway:MLServicesClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "httpsEndpoint": {
          "description": "The HTTPS Connectivity Endpoint for this HDInsight ML Services Cluster.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight ML Services Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name for this HDInsight ML Services Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight ML Services Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/MLServicesClusterRoles:MLServicesClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "rstudio": {
          "description": "Should R Studio community edition for ML Services be installed? Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "sshEndpoint": {
          "description": "The SSH Connectivity Endpoint for this HDInsight ML Services Cluster.\n",
          "type": "string"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/MLServicesClusterStorageAccount:MLServicesClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight ML Services Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight ML Services Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "type": "string"
        }
      },
      "required": [
        "clusterVersion",
        "edgeSshEndpoint",
        "gateway",
        "httpsEndpoint",
        "location",
        "name",
        "resourceGroupName",
        "roles",
        "rstudio",
        "sshEndpoint",
        "tier"
      ],
      "requiredInputs": [
        "clusterVersion",
        "gateway",
        "resourceGroupName",
        "roles",
        "rstudio",
        "tier"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MLServicesCluster resources.\n",
        "properties": {
          "clusterVersion": {
            "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "edgeSshEndpoint": {
            "description": "The SSH Connectivity Endpoint for the Edge Node of the HDInsight ML Cluster.\n",
            "type": "string"
          },
          "gateway": {
            "$ref": "#/types/azure:hdinsight/MLServicesClusterGateway:MLServicesClusterGateway",
            "description": "A `gateway` block as defined below.\n"
          },
          "httpsEndpoint": {
            "description": "The HTTPS Connectivity Endpoint for this HDInsight ML Services Cluster.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the Azure Region which this HDInsight ML Services Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name for this HDInsight ML Services Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which this HDInsight ML Services Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "roles": {
            "$ref": "#/types/azure:hdinsight/MLServicesClusterRoles:MLServicesClusterRoles",
            "description": "A `roles` block as defined below.\n"
          },
          "rstudio": {
            "description": "Should R Studio community edition for ML Services be installed? Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "sshEndpoint": {
            "description": "The SSH Connectivity Endpoint for this HDInsight ML Services Cluster.\n",
            "type": "string"
          },
          "storageAccounts": {
            "description": "One or more `storage_account` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:hdinsight/MLServicesClusterStorageAccount:MLServicesClusterStorageAccount"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of Tags which should be assigned to this HDInsight ML Services Cluster.\n",
            "type": "object"
          },
          "tier": {
            "description": "Specifies the Tier which should be used for this HDInsight ML Services Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tlsMinVersion": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:hdinsight/rServerCluster:RServerCluster": {
      "description": "Manages a HDInsight RServer Cluster.\n\n!\u003e **Note:** [HDInsight 3.6 is deprecated and will be retired on 2020-12-31 - HDInsight 4.0 no longer supports RServer Clusters](https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-component-versioning#available-versions) - as such this resource is deprecated and will be removed in the next major version of the Provider.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleRServerCluster = new azure.hdinsight.RServerCluster(\"exampleRServerCluster\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    clusterVersion: \"3.6\",\n    tier: \"Standard\",\n    rstudio: true,\n    gateway: {\n        enabled: true,\n        username: \"acctestusrgw\",\n        password: \"Password123!\",\n    },\n    storageAccounts: [{\n        storageContainerId: exampleContainer.id,\n        storageAccountKey: exampleAccount.primaryAccessKey,\n        isDefault: true,\n    }],\n    roles: {\n        headNode: {\n            vmSize: \"Standard_D3_v2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n        workerNode: {\n            vmSize: \"Standard_D4_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n            targetInstanceCount: 3,\n        },\n        zookeeperNode: {\n            vmSize: \"Standard_D3_v2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n        edgeNode: {\n            vmSize: \"Standard_D3_v2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_r_server_cluster = azure.hdinsight.RServerCluster(\"exampleRServerCluster\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cluster_version=\"3.6\",\n    tier=\"Standard\",\n    rstudio=True,\n    gateway=azure.hdinsight.RServerClusterGatewayArgs(\n        enabled=True,\n        username=\"acctestusrgw\",\n        password=\"Password123!\",\n    ),\n    storage_accounts=[azure.hdinsight.RServerClusterStorageAccountArgs(\n        storage_container_id=example_container.id,\n        storage_account_key=example_account.primary_access_key,\n        is_default=True,\n    )],\n    roles=azure.hdinsight.RServerClusterRolesArgs(\n        head_node=azure.hdinsight.RServerClusterRolesHeadNodeArgs(\n            vm_size=\"Standard_D3_v2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n        worker_node=azure.hdinsight.RServerClusterRolesWorkerNodeArgs(\n            vm_size=\"Standard_D4_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n            target_instance_count=3,\n        ),\n        zookeeper_node=azure.hdinsight.RServerClusterRolesZookeeperNodeArgs(\n            vm_size=\"Standard_D3_v2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n        edge_node=azure.hdinsight.RServerClusterRolesEdgeNodeArgs(\n            vm_size=\"Standard_D3_v2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleRServerCluster = new Azure.HDInsight.RServerCluster(\"exampleRServerCluster\", new Azure.HDInsight.RServerClusterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ClusterVersion = \"3.6\",\n            Tier = \"Standard\",\n            Rstudio = true,\n            Gateway = new Azure.HDInsight.Inputs.RServerClusterGatewayArgs\n            {\n                Enabled = true,\n                Username = \"acctestusrgw\",\n                Password = \"Password123!\",\n            },\n            StorageAccounts = \n            {\n                new Azure.HDInsight.Inputs.RServerClusterStorageAccountArgs\n                {\n                    StorageContainerId = exampleContainer.Id,\n                    StorageAccountKey = exampleAccount.PrimaryAccessKey,\n                    IsDefault = true,\n                },\n            },\n            Roles = new Azure.HDInsight.Inputs.RServerClusterRolesArgs\n            {\n                HeadNode = new Azure.HDInsight.Inputs.RServerClusterRolesHeadNodeArgs\n                {\n                    VmSize = \"Standard_D3_v2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n                WorkerNode = new Azure.HDInsight.Inputs.RServerClusterRolesWorkerNodeArgs\n                {\n                    VmSize = \"Standard_D4_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                    TargetInstanceCount = 3,\n                },\n                ZookeeperNode = new Azure.HDInsight.Inputs.RServerClusterRolesZookeeperNodeArgs\n                {\n                    VmSize = \"Standard_D3_v2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n                EdgeNode = new Azure.HDInsight.Inputs.RServerClusterRolesEdgeNodeArgs\n                {\n                    VmSize = \"Standard_D3_v2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/hdinsight\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hdinsight.NewRServerCluster(ctx, \"exampleRServerCluster\", \u0026hdinsight.RServerClusterArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tClusterVersion:    pulumi.String(\"3.6\"),\n\t\t\tTier:              pulumi.String(\"Standard\"),\n\t\t\tRstudio:           pulumi.Bool(true),\n\t\t\tGateway: \u0026hdinsight.RServerClusterGatewayArgs{\n\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\tUsername: pulumi.String(\"acctestusrgw\"),\n\t\t\t\tPassword: pulumi.String(\"Password123!\"),\n\t\t\t},\n\t\t\tStorageAccounts: hdinsight.RServerClusterStorageAccountArray{\n\t\t\t\t\u0026hdinsight.RServerClusterStorageAccountArgs{\n\t\t\t\t\tStorageContainerId: exampleContainer.ID(),\n\t\t\t\t\tStorageAccountKey:  exampleAccount.PrimaryAccessKey,\n\t\t\t\t\tIsDefault:          pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRoles: \u0026hdinsight.RServerClusterRolesArgs{\n\t\t\t\tHeadNode: \u0026hdinsight.RServerClusterRolesHeadNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_D3_v2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t},\n\t\t\t\tWorkerNode: \u0026hdinsight.RServerClusterRolesWorkerNodeArgs{\n\t\t\t\t\tVmSize:              pulumi.String(\"Standard_D4_V2\"),\n\t\t\t\t\tUsername:            pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword:            pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t\tTargetInstanceCount: pulumi.Int(3),\n\t\t\t\t},\n\t\t\t\tZookeeperNode: \u0026hdinsight.RServerClusterRolesZookeeperNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_D3_v2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t},\n\t\t\t\tEdgeNode: \u0026hdinsight.RServerClusterRolesEdgeNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_D3_v2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHDInsight RServer Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:hdinsight/rServerCluster:RServerCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.HDInsight/clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/RServerClusterGateway:RServerClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight RServer Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name for this HDInsight RServer Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight RServer Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/RServerClusterRoles:RServerClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "rstudio": {
          "description": "Should R Studio community edition for RServer be installed? Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/RServerClusterStorageAccount:RServerClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight RServer Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight RServer Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "type": "string"
        }
      },
      "properties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "edgeSshEndpoint": {
          "description": "The SSH Connectivity Endpoint for the Edge Node of the HDInsight RServer Cluster.\n",
          "type": "string"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/RServerClusterGateway:RServerClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "httpsEndpoint": {
          "description": "The HTTPS Connectivity Endpoint for this HDInsight RServer Cluster.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight RServer Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name for this HDInsight RServer Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight RServer Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/RServerClusterRoles:RServerClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "rstudio": {
          "description": "Should R Studio community edition for RServer be installed? Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "sshEndpoint": {
          "description": "The SSH Connectivity Endpoint for this HDInsight RServer Cluster.\n",
          "type": "string"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/RServerClusterStorageAccount:RServerClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight RServer Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight RServer Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "type": "string"
        }
      },
      "required": [
        "clusterVersion",
        "edgeSshEndpoint",
        "gateway",
        "httpsEndpoint",
        "location",
        "name",
        "resourceGroupName",
        "roles",
        "rstudio",
        "sshEndpoint",
        "tier"
      ],
      "requiredInputs": [
        "clusterVersion",
        "gateway",
        "resourceGroupName",
        "roles",
        "rstudio",
        "tier"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RServerCluster resources.\n",
        "properties": {
          "clusterVersion": {
            "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "edgeSshEndpoint": {
            "description": "The SSH Connectivity Endpoint for the Edge Node of the HDInsight RServer Cluster.\n",
            "type": "string"
          },
          "gateway": {
            "$ref": "#/types/azure:hdinsight/RServerClusterGateway:RServerClusterGateway",
            "description": "A `gateway` block as defined below.\n"
          },
          "httpsEndpoint": {
            "description": "The HTTPS Connectivity Endpoint for this HDInsight RServer Cluster.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the Azure Region which this HDInsight RServer Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name for this HDInsight RServer Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which this HDInsight RServer Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "roles": {
            "$ref": "#/types/azure:hdinsight/RServerClusterRoles:RServerClusterRoles",
            "description": "A `roles` block as defined below.\n"
          },
          "rstudio": {
            "description": "Should R Studio community edition for RServer be installed? Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "sshEndpoint": {
            "description": "The SSH Connectivity Endpoint for this HDInsight RServer Cluster.\n",
            "type": "string"
          },
          "storageAccounts": {
            "description": "One or more `storage_account` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:hdinsight/RServerClusterStorageAccount:RServerClusterStorageAccount"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of Tags which should be assigned to this HDInsight RServer Cluster.\n",
            "type": "object"
          },
          "tier": {
            "description": "Specifies the Tier which should be used for this HDInsight RServer Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tlsMinVersion": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:hdinsight/sparkCluster:SparkCluster": {
      "description": "Manages a HDInsight Spark Cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleSparkCluster = new azure.hdinsight.SparkCluster(\"exampleSparkCluster\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    clusterVersion: \"3.6\",\n    tier: \"Standard\",\n    componentVersion: {\n        spark: \"2.3\",\n    },\n    gateway: {\n        enabled: true,\n        username: \"acctestusrgw\",\n        password: \"Password123!\",\n    },\n    storageAccounts: [{\n        storageContainerId: exampleContainer.id,\n        storageAccountKey: exampleAccount.primaryAccessKey,\n        isDefault: true,\n    }],\n    roles: {\n        headNode: {\n            vmSize: \"Standard_A3\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n        workerNode: {\n            vmSize: \"Standard_A3\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n            targetInstanceCount: 3,\n        },\n        zookeeperNode: {\n            vmSize: \"Medium\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_spark_cluster = azure.hdinsight.SparkCluster(\"exampleSparkCluster\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cluster_version=\"3.6\",\n    tier=\"Standard\",\n    component_version=azure.hdinsight.SparkClusterComponentVersionArgs(\n        spark=\"2.3\",\n    ),\n    gateway=azure.hdinsight.SparkClusterGatewayArgs(\n        enabled=True,\n        username=\"acctestusrgw\",\n        password=\"Password123!\",\n    ),\n    storage_accounts=[azure.hdinsight.SparkClusterStorageAccountArgs(\n        storage_container_id=example_container.id,\n        storage_account_key=example_account.primary_access_key,\n        is_default=True,\n    )],\n    roles=azure.hdinsight.SparkClusterRolesArgs(\n        head_node=azure.hdinsight.SparkClusterRolesHeadNodeArgs(\n            vm_size=\"Standard_A3\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n        worker_node=azure.hdinsight.SparkClusterRolesWorkerNodeArgs(\n            vm_size=\"Standard_A3\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n            target_instance_count=3,\n        ),\n        zookeeper_node=azure.hdinsight.SparkClusterRolesZookeeperNodeArgs(\n            vm_size=\"Medium\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleSparkCluster = new Azure.HDInsight.SparkCluster(\"exampleSparkCluster\", new Azure.HDInsight.SparkClusterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ClusterVersion = \"3.6\",\n            Tier = \"Standard\",\n            ComponentVersion = new Azure.HDInsight.Inputs.SparkClusterComponentVersionArgs\n            {\n                Spark = \"2.3\",\n            },\n            Gateway = new Azure.HDInsight.Inputs.SparkClusterGatewayArgs\n            {\n                Enabled = true,\n                Username = \"acctestusrgw\",\n                Password = \"Password123!\",\n            },\n            StorageAccounts = \n            {\n                new Azure.HDInsight.Inputs.SparkClusterStorageAccountArgs\n                {\n                    StorageContainerId = exampleContainer.Id,\n                    StorageAccountKey = exampleAccount.PrimaryAccessKey,\n                    IsDefault = true,\n                },\n            },\n            Roles = new Azure.HDInsight.Inputs.SparkClusterRolesArgs\n            {\n                HeadNode = new Azure.HDInsight.Inputs.SparkClusterRolesHeadNodeArgs\n                {\n                    VmSize = \"Standard_A3\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n                WorkerNode = new Azure.HDInsight.Inputs.SparkClusterRolesWorkerNodeArgs\n                {\n                    VmSize = \"Standard_A3\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                    TargetInstanceCount = 3,\n                },\n                ZookeeperNode = new Azure.HDInsight.Inputs.SparkClusterRolesZookeeperNodeArgs\n                {\n                    VmSize = \"Medium\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/hdinsight\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hdinsight.NewSparkCluster(ctx, \"exampleSparkCluster\", \u0026hdinsight.SparkClusterArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tClusterVersion:    pulumi.String(\"3.6\"),\n\t\t\tTier:              pulumi.String(\"Standard\"),\n\t\t\tComponentVersion: \u0026hdinsight.SparkClusterComponentVersionArgs{\n\t\t\t\tSpark: pulumi.String(\"2.3\"),\n\t\t\t},\n\t\t\tGateway: \u0026hdinsight.SparkClusterGatewayArgs{\n\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\tUsername: pulumi.String(\"acctestusrgw\"),\n\t\t\t\tPassword: pulumi.String(\"Password123!\"),\n\t\t\t},\n\t\t\tStorageAccounts: hdinsight.SparkClusterStorageAccountArray{\n\t\t\t\t\u0026hdinsight.SparkClusterStorageAccountArgs{\n\t\t\t\t\tStorageContainerId: exampleContainer.ID(),\n\t\t\t\t\tStorageAccountKey:  exampleAccount.PrimaryAccessKey,\n\t\t\t\t\tIsDefault:          pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRoles: \u0026hdinsight.SparkClusterRolesArgs{\n\t\t\t\tHeadNode: \u0026hdinsight.SparkClusterRolesHeadNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_A3\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t},\n\t\t\t\tWorkerNode: \u0026hdinsight.SparkClusterRolesWorkerNodeArgs{\n\t\t\t\t\tVmSize:              pulumi.String(\"Standard_A3\"),\n\t\t\t\t\tUsername:            pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword:            pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t\tTargetInstanceCount: pulumi.Int(3),\n\t\t\t\t},\n\t\t\t\tZookeeperNode: \u0026hdinsight.SparkClusterRolesZookeeperNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Medium\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHDInsight Spark Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:hdinsight/sparkCluster:SparkCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.HDInsight/clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "componentVersion": {
          "$ref": "#/types/azure:hdinsight/SparkClusterComponentVersion:SparkClusterComponentVersion",
          "description": "A `component_version` block as defined below.\n"
        },
        "encryptionInTransitEnabled": {
          "description": "Whether encryption in transit is enabled for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/SparkClusterGateway:SparkClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight Spark Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metastores": {
          "$ref": "#/types/azure:hdinsight/SparkClusterMetastores:SparkClusterMetastores",
          "description": "A `metastores` block as defined below.\n"
        },
        "monitor": {
          "$ref": "#/types/azure:hdinsight/SparkClusterMonitor:SparkClusterMonitor",
          "description": "A `monitor` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name for this HDInsight Spark Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "network": {
          "$ref": "#/types/azure:hdinsight/SparkClusterNetwork:SparkClusterNetwork",
          "description": "A `network` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight Spark Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/SparkClusterRoles:SparkClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "securityProfile": {
          "$ref": "#/types/azure:hdinsight/SparkClusterSecurityProfile:SparkClusterSecurityProfile",
          "description": "A `security_profile` block as defined below.\n"
        },
        "storageAccountGen2": {
          "$ref": "#/types/azure:hdinsight/SparkClusterStorageAccountGen2:SparkClusterStorageAccountGen2",
          "description": "A `storage_account_gen2` block as defined below.\n"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/SparkClusterStorageAccount:SparkClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight Spark Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight Spark Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "type": "string"
        }
      },
      "properties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "componentVersion": {
          "$ref": "#/types/azure:hdinsight/SparkClusterComponentVersion:SparkClusterComponentVersion",
          "description": "A `component_version` block as defined below.\n"
        },
        "encryptionInTransitEnabled": {
          "description": "Whether encryption in transit is enabled for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/SparkClusterGateway:SparkClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "httpsEndpoint": {
          "description": "The HTTPS Connectivity Endpoint for this HDInsight Spark Cluster.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight Spark Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metastores": {
          "$ref": "#/types/azure:hdinsight/SparkClusterMetastores:SparkClusterMetastores",
          "description": "A `metastores` block as defined below.\n"
        },
        "monitor": {
          "$ref": "#/types/azure:hdinsight/SparkClusterMonitor:SparkClusterMonitor",
          "description": "A `monitor` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name for this HDInsight Spark Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "network": {
          "$ref": "#/types/azure:hdinsight/SparkClusterNetwork:SparkClusterNetwork",
          "description": "A `network` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight Spark Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/SparkClusterRoles:SparkClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "securityProfile": {
          "$ref": "#/types/azure:hdinsight/SparkClusterSecurityProfile:SparkClusterSecurityProfile",
          "description": "A `security_profile` block as defined below.\n"
        },
        "sshEndpoint": {
          "description": "The SSH Connectivity Endpoint for this HDInsight Spark Cluster.\n",
          "type": "string"
        },
        "storageAccountGen2": {
          "$ref": "#/types/azure:hdinsight/SparkClusterStorageAccountGen2:SparkClusterStorageAccountGen2",
          "description": "A `storage_account_gen2` block as defined below.\n"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/SparkClusterStorageAccount:SparkClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight Spark Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight Spark Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "type": "string"
        }
      },
      "required": [
        "clusterVersion",
        "componentVersion",
        "encryptionInTransitEnabled",
        "gateway",
        "httpsEndpoint",
        "location",
        "name",
        "resourceGroupName",
        "roles",
        "sshEndpoint",
        "tier"
      ],
      "requiredInputs": [
        "clusterVersion",
        "componentVersion",
        "gateway",
        "resourceGroupName",
        "roles",
        "tier"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SparkCluster resources.\n",
        "properties": {
          "clusterVersion": {
            "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "componentVersion": {
            "$ref": "#/types/azure:hdinsight/SparkClusterComponentVersion:SparkClusterComponentVersion",
            "description": "A `component_version` block as defined below.\n"
          },
          "encryptionInTransitEnabled": {
            "description": "Whether encryption in transit is enabled for this Cluster. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "gateway": {
            "$ref": "#/types/azure:hdinsight/SparkClusterGateway:SparkClusterGateway",
            "description": "A `gateway` block as defined below.\n"
          },
          "httpsEndpoint": {
            "description": "The HTTPS Connectivity Endpoint for this HDInsight Spark Cluster.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the Azure Region which this HDInsight Spark Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metastores": {
            "$ref": "#/types/azure:hdinsight/SparkClusterMetastores:SparkClusterMetastores",
            "description": "A `metastores` block as defined below.\n"
          },
          "monitor": {
            "$ref": "#/types/azure:hdinsight/SparkClusterMonitor:SparkClusterMonitor",
            "description": "A `monitor` block as defined below.\n"
          },
          "name": {
            "description": "Specifies the name for this HDInsight Spark Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "network": {
            "$ref": "#/types/azure:hdinsight/SparkClusterNetwork:SparkClusterNetwork",
            "description": "A `network` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which this HDInsight Spark Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "roles": {
            "$ref": "#/types/azure:hdinsight/SparkClusterRoles:SparkClusterRoles",
            "description": "A `roles` block as defined below.\n"
          },
          "securityProfile": {
            "$ref": "#/types/azure:hdinsight/SparkClusterSecurityProfile:SparkClusterSecurityProfile",
            "description": "A `security_profile` block as defined below.\n"
          },
          "sshEndpoint": {
            "description": "The SSH Connectivity Endpoint for this HDInsight Spark Cluster.\n",
            "type": "string"
          },
          "storageAccountGen2": {
            "$ref": "#/types/azure:hdinsight/SparkClusterStorageAccountGen2:SparkClusterStorageAccountGen2",
            "description": "A `storage_account_gen2` block as defined below.\n"
          },
          "storageAccounts": {
            "description": "One or more `storage_account` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:hdinsight/SparkClusterStorageAccount:SparkClusterStorageAccount"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of Tags which should be assigned to this HDInsight Spark Cluster.\n",
            "type": "object"
          },
          "tier": {
            "description": "Specifies the Tier which should be used for this HDInsight Spark Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tlsMinVersion": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:hdinsight/stormCluster:StormCluster": {
      "description": "Manages a HDInsight Storm Cluster.\n\n!\u003e **Note:** [HDInsight 3.6 is deprecated and will be retired on 2020-12-31 - HDInsight 4.0 no longer supports Storm Clusters](https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-component-versioning#available-versions) - as such this resource is deprecated and will be removed in the next major version of the Provider.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleStormCluster = new azure.hdinsight.StormCluster(\"exampleStormCluster\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    clusterVersion: \"3.6\",\n    tier: \"Standard\",\n    componentVersion: {\n        storm: \"1.1\",\n    },\n    gateway: {\n        enabled: true,\n        username: \"acctestusrgw\",\n        password: \"Password123!\",\n    },\n    storageAccounts: [{\n        storageContainerId: exampleContainer.id,\n        storageAccountKey: exampleAccount.primaryAccessKey,\n        isDefault: true,\n    }],\n    roles: {\n        headNode: {\n            vmSize: \"Standard_A3\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n        workerNode: {\n            vmSize: \"Standard_D3_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n            targetInstanceCount: 3,\n        },\n        zookeeperNode: {\n            vmSize: \"Standard_A4_V2\",\n            username: \"acctestusrvm\",\n            password: \"AccTestvdSC4daf986!\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_storm_cluster = azure.hdinsight.StormCluster(\"exampleStormCluster\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cluster_version=\"3.6\",\n    tier=\"Standard\",\n    component_version=azure.hdinsight.StormClusterComponentVersionArgs(\n        storm=\"1.1\",\n    ),\n    gateway=azure.hdinsight.StormClusterGatewayArgs(\n        enabled=True,\n        username=\"acctestusrgw\",\n        password=\"Password123!\",\n    ),\n    storage_accounts=[azure.hdinsight.StormClusterStorageAccountArgs(\n        storage_container_id=example_container.id,\n        storage_account_key=example_account.primary_access_key,\n        is_default=True,\n    )],\n    roles=azure.hdinsight.StormClusterRolesArgs(\n        head_node=azure.hdinsight.StormClusterRolesHeadNodeArgs(\n            vm_size=\"Standard_A3\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n        worker_node=azure.hdinsight.StormClusterRolesWorkerNodeArgs(\n            vm_size=\"Standard_D3_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n            target_instance_count=3,\n        ),\n        zookeeper_node=azure.hdinsight.StormClusterRolesZookeeperNodeArgs(\n            vm_size=\"Standard_A4_V2\",\n            username=\"acctestusrvm\",\n            password=\"AccTestvdSC4daf986!\",\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleStormCluster = new Azure.HDInsight.StormCluster(\"exampleStormCluster\", new Azure.HDInsight.StormClusterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ClusterVersion = \"3.6\",\n            Tier = \"Standard\",\n            ComponentVersion = new Azure.HDInsight.Inputs.StormClusterComponentVersionArgs\n            {\n                Storm = \"1.1\",\n            },\n            Gateway = new Azure.HDInsight.Inputs.StormClusterGatewayArgs\n            {\n                Enabled = true,\n                Username = \"acctestusrgw\",\n                Password = \"Password123!\",\n            },\n            StorageAccounts = \n            {\n                new Azure.HDInsight.Inputs.StormClusterStorageAccountArgs\n                {\n                    StorageContainerId = exampleContainer.Id,\n                    StorageAccountKey = exampleAccount.PrimaryAccessKey,\n                    IsDefault = true,\n                },\n            },\n            Roles = new Azure.HDInsight.Inputs.StormClusterRolesArgs\n            {\n                HeadNode = new Azure.HDInsight.Inputs.StormClusterRolesHeadNodeArgs\n                {\n                    VmSize = \"Standard_A3\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n                WorkerNode = new Azure.HDInsight.Inputs.StormClusterRolesWorkerNodeArgs\n                {\n                    VmSize = \"Standard_D3_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                    TargetInstanceCount = 3,\n                },\n                ZookeeperNode = new Azure.HDInsight.Inputs.StormClusterRolesZookeeperNodeArgs\n                {\n                    VmSize = \"Standard_A4_V2\",\n                    Username = \"acctestusrvm\",\n                    Password = \"AccTestvdSC4daf986!\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/hdinsight\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hdinsight.NewStormCluster(ctx, \"exampleStormCluster\", \u0026hdinsight.StormClusterArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tClusterVersion:    pulumi.String(\"3.6\"),\n\t\t\tTier:              pulumi.String(\"Standard\"),\n\t\t\tComponentVersion: \u0026hdinsight.StormClusterComponentVersionArgs{\n\t\t\t\tStorm: pulumi.String(\"1.1\"),\n\t\t\t},\n\t\t\tGateway: \u0026hdinsight.StormClusterGatewayArgs{\n\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\tUsername: pulumi.String(\"acctestusrgw\"),\n\t\t\t\tPassword: pulumi.String(\"Password123!\"),\n\t\t\t},\n\t\t\tStorageAccounts: hdinsight.StormClusterStorageAccountArray{\n\t\t\t\t\u0026hdinsight.StormClusterStorageAccountArgs{\n\t\t\t\t\tStorageContainerId: exampleContainer.ID(),\n\t\t\t\t\tStorageAccountKey:  exampleAccount.PrimaryAccessKey,\n\t\t\t\t\tIsDefault:          pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRoles: \u0026hdinsight.StormClusterRolesArgs{\n\t\t\t\tHeadNode: \u0026hdinsight.StormClusterRolesHeadNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_A3\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t},\n\t\t\t\tWorkerNode: \u0026hdinsight.StormClusterRolesWorkerNodeArgs{\n\t\t\t\t\tVmSize:              pulumi.String(\"Standard_D3_V2\"),\n\t\t\t\t\tUsername:            pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword:            pulumi.String(\"AccTestvdSC4daf986!\"),\n\t\t\t\t\tTargetInstanceCount: pulumi.Int(3),\n\t\t\t\t},\n\t\t\t\tZookeeperNode: \u0026hdinsight.StormClusterRolesZookeeperNodeArgs{\n\t\t\t\t\tVmSize:   pulumi.String(\"Standard_A4_V2\"),\n\t\t\t\t\tUsername: pulumi.String(\"acctestusrvm\"),\n\t\t\t\t\tPassword: pulumi.String(\"AccTestvdSC4daf986!\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHDInsight Storm Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:hdinsight/stormCluster:StormCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.HDInsight/clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "componentVersion": {
          "$ref": "#/types/azure:hdinsight/StormClusterComponentVersion:StormClusterComponentVersion",
          "description": "A `component_version` block as defined below.\n"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/StormClusterGateway:StormClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight Storm Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metastores": {
          "$ref": "#/types/azure:hdinsight/StormClusterMetastores:StormClusterMetastores",
          "description": "A `metastores` block as defined below.\n"
        },
        "monitor": {
          "$ref": "#/types/azure:hdinsight/StormClusterMonitor:StormClusterMonitor",
          "description": "A `monitor` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name for this HDInsight Storm Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight Storm Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/StormClusterRoles:StormClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/StormClusterStorageAccount:StormClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight Storm Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight Storm Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "type": "string"
        }
      },
      "properties": {
        "clusterVersion": {
          "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "componentVersion": {
          "$ref": "#/types/azure:hdinsight/StormClusterComponentVersion:StormClusterComponentVersion",
          "description": "A `component_version` block as defined below.\n"
        },
        "gateway": {
          "$ref": "#/types/azure:hdinsight/StormClusterGateway:StormClusterGateway",
          "description": "A `gateway` block as defined below.\n"
        },
        "httpsEndpoint": {
          "description": "The HTTPS Connectivity Endpoint for this HDInsight Storm Cluster.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region which this HDInsight Storm Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metastores": {
          "$ref": "#/types/azure:hdinsight/StormClusterMetastores:StormClusterMetastores",
          "description": "A `metastores` block as defined below.\n"
        },
        "monitor": {
          "$ref": "#/types/azure:hdinsight/StormClusterMonitor:StormClusterMonitor",
          "description": "A `monitor` block as defined below.\n"
        },
        "name": {
          "description": "Specifies the name for this HDInsight Storm Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which this HDInsight Storm Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roles": {
          "$ref": "#/types/azure:hdinsight/StormClusterRoles:StormClusterRoles",
          "description": "A `roles` block as defined below.\n"
        },
        "sshEndpoint": {
          "description": "The SSH Connectivity Endpoint for this HDInsight Storm Cluster.\n",
          "type": "string"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/StormClusterStorageAccount:StormClusterStorageAccount"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Tags which should be assigned to this HDInsight Storm Cluster.\n",
          "type": "object"
        },
        "tier": {
          "description": "Specifies the Tier which should be used for this HDInsight Storm Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tlsMinVersion": {
          "type": "string"
        }
      },
      "required": [
        "clusterVersion",
        "componentVersion",
        "gateway",
        "httpsEndpoint",
        "location",
        "name",
        "resourceGroupName",
        "roles",
        "sshEndpoint",
        "tier"
      ],
      "requiredInputs": [
        "clusterVersion",
        "componentVersion",
        "gateway",
        "resourceGroupName",
        "roles",
        "tier"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StormCluster resources.\n",
        "properties": {
          "clusterVersion": {
            "description": "Specifies the Version of HDInsights which should be used for this Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "componentVersion": {
            "$ref": "#/types/azure:hdinsight/StormClusterComponentVersion:StormClusterComponentVersion",
            "description": "A `component_version` block as defined below.\n"
          },
          "gateway": {
            "$ref": "#/types/azure:hdinsight/StormClusterGateway:StormClusterGateway",
            "description": "A `gateway` block as defined below.\n"
          },
          "httpsEndpoint": {
            "description": "The HTTPS Connectivity Endpoint for this HDInsight Storm Cluster.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the Azure Region which this HDInsight Storm Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metastores": {
            "$ref": "#/types/azure:hdinsight/StormClusterMetastores:StormClusterMetastores",
            "description": "A `metastores` block as defined below.\n"
          },
          "monitor": {
            "$ref": "#/types/azure:hdinsight/StormClusterMonitor:StormClusterMonitor",
            "description": "A `monitor` block as defined below.\n"
          },
          "name": {
            "description": "Specifies the name for this HDInsight Storm Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which this HDInsight Storm Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "roles": {
            "$ref": "#/types/azure:hdinsight/StormClusterRoles:StormClusterRoles",
            "description": "A `roles` block as defined below.\n"
          },
          "sshEndpoint": {
            "description": "The SSH Connectivity Endpoint for this HDInsight Storm Cluster.\n",
            "type": "string"
          },
          "storageAccounts": {
            "description": "One or more `storage_account` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:hdinsight/StormClusterStorageAccount:StormClusterStorageAccount"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of Tags which should be assigned to this HDInsight Storm Cluster.\n",
            "type": "object"
          },
          "tier": {
            "description": "Specifies the Tier which should be used for this HDInsight Storm Cluster. Possible values are `Standard` or `Premium`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tlsMinVersion": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:healthcare/service:Service": {
      "description": "Manages a Healthcare Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.healthcare.Service(\"example\", {\n    accessPolicyObjectIds: [\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"],\n    authenticationConfiguration: {\n        audience: \"https://azurehealthcareapis.com/\",\n        authority: \"https://login.microsoftonline.com/$%7Bdata.azurerm_client_config.current.tenant_id%7D\",\n        smartProxyEnabled: true,\n    },\n    corsConfiguration: {\n        allowCredentials: true,\n        allowedHeaders: [\n            \"x-tempo-*\",\n            \"x-tempo2-*\",\n        ],\n        allowedMethods: [\n            \"GET\",\n            \"PUT\",\n        ],\n        allowedOrigins: [\n            \"http://www.example.com\",\n            \"http://www.example2.com\",\n        ],\n        maxAgeInSeconds: 500,\n    },\n    cosmosdbThroughput: 2000,\n    kind: \"fhir-R4\",\n    location: \"westus2\",\n    resourceGroupName: \"sample-resource-group\",\n    tags: {\n        environment: \"testenv\",\n        purpose: \"AcceptanceTests\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.healthcare.Service(\"example\",\n    access_policy_object_ids=[\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"],\n    authentication_configuration=azure.healthcare.ServiceAuthenticationConfigurationArgs(\n        audience=\"https://azurehealthcareapis.com/\",\n        authority=\"https://login.microsoftonline.com/$%7Bdata.azurerm_client_config.current.tenant_id%7D\",\n        smart_proxy_enabled=True,\n    ),\n    cors_configuration=azure.healthcare.ServiceCorsConfigurationArgs(\n        allow_credentials=True,\n        allowed_headers=[\n            \"x-tempo-*\",\n            \"x-tempo2-*\",\n        ],\n        allowed_methods=[\n            \"GET\",\n            \"PUT\",\n        ],\n        allowed_origins=[\n            \"http://www.example.com\",\n            \"http://www.example2.com\",\n        ],\n        max_age_in_seconds=500,\n    ),\n    cosmosdb_throughput=2000,\n    kind=\"fhir-R4\",\n    location=\"westus2\",\n    resource_group_name=\"sample-resource-group\",\n    tags={\n        \"environment\": \"testenv\",\n        \"purpose\": \"AcceptanceTests\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Healthcare.Service(\"example\", new Azure.Healthcare.ServiceArgs\n        {\n            AccessPolicyObjectIds = \n            {\n                \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n            },\n            AuthenticationConfiguration = new Azure.Healthcare.Inputs.ServiceAuthenticationConfigurationArgs\n            {\n                Audience = \"https://azurehealthcareapis.com/\",\n                Authority = \"https://login.microsoftonline.com/$%7Bdata.azurerm_client_config.current.tenant_id%7D\",\n                SmartProxyEnabled = true,\n            },\n            CorsConfiguration = new Azure.Healthcare.Inputs.ServiceCorsConfigurationArgs\n            {\n                AllowCredentials = true,\n                AllowedHeaders = \n                {\n                    \"x-tempo-*\",\n                    \"x-tempo2-*\",\n                },\n                AllowedMethods = \n                {\n                    \"GET\",\n                    \"PUT\",\n                },\n                AllowedOrigins = \n                {\n                    \"http://www.example.com\",\n                    \"http://www.example2.com\",\n                },\n                MaxAgeInSeconds = 500,\n            },\n            CosmosdbThroughput = 2000,\n            Kind = \"fhir-R4\",\n            Location = \"westus2\",\n            ResourceGroupName = \"sample-resource-group\",\n            Tags = \n            {\n                { \"environment\", \"testenv\" },\n                { \"purpose\", \"AcceptanceTests\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/healthcare\"\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 := healthcare.NewService(ctx, \"example\", \u0026healthcare.ServiceArgs{\n\t\t\tAccessPolicyObjectIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\t},\n\t\t\tAuthenticationConfiguration: \u0026healthcare.ServiceAuthenticationConfigurationArgs{\n\t\t\t\tAudience:          pulumi.String(\"https://azurehealthcareapis.com/\"),\n\t\t\t\tAuthority:         pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v\", \"https://login.microsoftonline.com/\", \"$\", \"%\", \"7Bdata.azurerm_client_config.current.tenant_id\", \"%\", \"7D\")),\n\t\t\t\tSmartProxyEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t\tCorsConfiguration: \u0026healthcare.ServiceCorsConfigurationArgs{\n\t\t\t\tAllowCredentials: pulumi.Bool(true),\n\t\t\t\tAllowedHeaders: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"x-tempo-*\"),\n\t\t\t\t\tpulumi.String(\"x-tempo2-*\"),\n\t\t\t\t},\n\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\tpulumi.String(\"PUT\"),\n\t\t\t\t},\n\t\t\t\tAllowedOrigins: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"http://www.example.com\"),\n\t\t\t\t\tpulumi.String(\"http://www.example2.com\"),\n\t\t\t\t},\n\t\t\t\tMaxAgeInSeconds: pulumi.Int(500),\n\t\t\t},\n\t\t\tCosmosdbThroughput: pulumi.Int(2000),\n\t\t\tKind:               pulumi.String(\"fhir-R4\"),\n\t\t\tLocation:           pulumi.String(\"westus2\"),\n\t\t\tResourceGroupName:  pulumi.String(\"sample-resource-group\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"testenv\"),\n\t\t\t\t\"purpose\":     pulumi.String(\"AcceptanceTests\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHealthcare Service can be imported using the resource`id`, e.g.\n\n```sh\n $ pulumi import azure:healthcare/service:Service example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource_group/providers/Microsoft.HealthcareApis/services/service_name\n```\n\n ",
      "inputProperties": {
        "accessPolicyObjectIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "authenticationConfiguration": {
          "$ref": "#/types/azure:healthcare/ServiceAuthenticationConfiguration:ServiceAuthenticationConfiguration",
          "description": "An `authentication_configuration` block as defined below.\n"
        },
        "corsConfiguration": {
          "$ref": "#/types/azure:healthcare/ServiceCorsConfiguration:ServiceCorsConfiguration",
          "description": "A `cors_configuration` block as defined below.\n"
        },
        "cosmosdbKeyVaultKeyVersionlessId": {
          "description": "A versionless Key Vault Key ID for CMK encryption of the backing database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "cosmosdbThroughput": {
          "description": "The provisioned throughput for the backing database. Range of `400`-`10000`. Defaults to `400`.\n",
          "type": "integer"
        },
        "kind": {
          "description": "The type of the service. Values at time of publication are: `fhir`, `fhir-Stu3` and `fhir-R4`. Default value is `fhir`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure Region where the Service should be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the service instance. Used for service endpoint, must be unique within the audience.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether public network access is enabled or disabled for this service instance.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which to create the Service.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "accessPolicyObjectIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "authenticationConfiguration": {
          "$ref": "#/types/azure:healthcare/ServiceAuthenticationConfiguration:ServiceAuthenticationConfiguration",
          "description": "An `authentication_configuration` block as defined below.\n"
        },
        "corsConfiguration": {
          "$ref": "#/types/azure:healthcare/ServiceCorsConfiguration:ServiceCorsConfiguration",
          "description": "A `cors_configuration` block as defined below.\n"
        },
        "cosmosdbKeyVaultKeyVersionlessId": {
          "description": "A versionless Key Vault Key ID for CMK encryption of the backing database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "cosmosdbThroughput": {
          "description": "The provisioned throughput for the backing database. Range of `400`-`10000`. Defaults to `400`.\n",
          "type": "integer"
        },
        "kind": {
          "description": "The type of the service. Values at time of publication are: `fhir`, `fhir-Stu3` and `fhir-R4`. Default value is `fhir`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure Region where the Service should be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the service instance. Used for service endpoint, must be unique within the audience.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether public network access is enabled or disabled for this service instance.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which to create the Service.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "authenticationConfiguration",
        "corsConfiguration",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Service resources.\n",
        "properties": {
          "accessPolicyObjectIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "authenticationConfiguration": {
            "$ref": "#/types/azure:healthcare/ServiceAuthenticationConfiguration:ServiceAuthenticationConfiguration",
            "description": "An `authentication_configuration` block as defined below.\n"
          },
          "corsConfiguration": {
            "$ref": "#/types/azure:healthcare/ServiceCorsConfiguration:ServiceCorsConfiguration",
            "description": "A `cors_configuration` block as defined below.\n"
          },
          "cosmosdbKeyVaultKeyVersionlessId": {
            "description": "A versionless Key Vault Key ID for CMK encryption of the backing database. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "cosmosdbThroughput": {
            "description": "The provisioned throughput for the backing database. Range of `400`-`10000`. Defaults to `400`.\n",
            "type": "integer"
          },
          "kind": {
            "description": "The type of the service. Values at time of publication are: `fhir`, `fhir-Stu3` and `fhir-R4`. Default value is `fhir`.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure Region where the Service should be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the service instance. Used for service endpoint, must be unique within the audience.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether public network access is enabled or disabled for this service instance.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which to create the Service.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:hpc/cache:Cache": {
      "description": "Manages a HPC Cache.\n\n\u003e **Note:** During the first several months of the GA release, a request must be made to the Azure HPC Cache team to add your subscription to the access list before it can be used to create a cache instance. Fill out [this form](https://aka.ms/onboard-hpc-cache) to request access.\n\n\u003e **Note:** By request of the service team the provider no longer automatically registering the `Microsoft.StorageCache` Resource Provider for this resource. To register it you can run `az provider register --namespace 'Microsoft.StorageCache'`.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst exampleCache = new azure.hpc.Cache(\"exampleCache\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    cacheSizeInGb: 3072,\n    subnetId: exampleSubnet.id,\n    skuName: \"Standard_2G\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"])\nexample_cache = azure.hpc.Cache(\"exampleCache\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cache_size_in_gb=3072,\n    subnet_id=example_subnet.id,\n    sku_name=\"Standard_2G\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n        });\n        var exampleCache = new Azure.Hpc.Cache(\"exampleCache\", new Azure.Hpc.CacheArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            CacheSizeInGb = 3072,\n            SubnetId = exampleSubnet.Id,\n            SkuName = \"Standard_2G\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/hpc\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hpc.NewCache(ctx, \"exampleCache\", \u0026hpc.CacheArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tCacheSizeInGb:     pulumi.Int(3072),\n\t\t\tSubnetId:          exampleSubnet.ID(),\n\t\t\tSkuName:           pulumi.String(\"Standard_2G\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHPC Caches can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:hpc/cache:Cache example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroupName/providers/Microsoft.StorageCache/caches/cacheName\n```\n\n ",
      "inputProperties": {
        "cacheSizeInGb": {
          "description": "The size of the HPC Cache, in GB. Possible values are `3072`, `6144`, `12288`, `24576`, and `49152`. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "defaultAccessPolicy": {
          "$ref": "#/types/azure:hpc/CacheDefaultAccessPolicy:CacheDefaultAccessPolicy",
          "description": "A `default_access_policy` block as defined below.\n"
        },
        "directoryActiveDirectory": {
          "$ref": "#/types/azure:hpc/CacheDirectoryActiveDirectory:CacheDirectoryActiveDirectory",
          "description": "A `directory_active_directory` block as defined below.\n"
        },
        "directoryFlatFile": {
          "$ref": "#/types/azure:hpc/CacheDirectoryFlatFile:CacheDirectoryFlatFile",
          "description": "A `directory_flat_file` block as defined below.\n"
        },
        "directoryLdap": {
          "$ref": "#/types/azure:hpc/CacheDirectoryLdap:CacheDirectoryLdap",
          "description": "A `directory_ldap` block as defined below.\n"
        },
        "dns": {
          "$ref": "#/types/azure:hpc/CacheDns:CacheDns",
          "description": "A `dns` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure Region where the HPC Cache should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mtu": {
          "description": "The IPv4 maximum transmission unit configured for the subnet of the HPC Cache. Possible values range from 576 - 1500. Defaults to 1500.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name of the HPC Cache. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "ntpServer": {
          "description": "The NTP server IP Address or FQDN for the HPC Cache. Defaults to `time.windows.com`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which to create the HPC Cache. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rootSquashEnabled": {
          "deprecationMessage": "This property is not functional and will be deprecated in favor of `default_access_policy.0.access_rule.x.root_squash_enabled`, where the scope of access_rule is `default`.",
          "description": "Whether to enable [root squash](https://docs.microsoft.com/en-us/azure/hpc-cache/access-policies#root-squash)? Defaults to `false`.\n",
          "type": "boolean"
        },
        "skuName": {
          "description": "The SKU of HPC Cache to use. Possible values are `Standard_2G`, `Standard_4G` and `Standard_8G`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet for the HPC Cache. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the HPC Cache.\n",
          "type": "object"
        }
      },
      "properties": {
        "cacheSizeInGb": {
          "description": "The size of the HPC Cache, in GB. Possible values are `3072`, `6144`, `12288`, `24576`, and `49152`. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "defaultAccessPolicy": {
          "$ref": "#/types/azure:hpc/CacheDefaultAccessPolicy:CacheDefaultAccessPolicy",
          "description": "A `default_access_policy` block as defined below.\n"
        },
        "directoryActiveDirectory": {
          "$ref": "#/types/azure:hpc/CacheDirectoryActiveDirectory:CacheDirectoryActiveDirectory",
          "description": "A `directory_active_directory` block as defined below.\n"
        },
        "directoryFlatFile": {
          "$ref": "#/types/azure:hpc/CacheDirectoryFlatFile:CacheDirectoryFlatFile",
          "description": "A `directory_flat_file` block as defined below.\n"
        },
        "directoryLdap": {
          "$ref": "#/types/azure:hpc/CacheDirectoryLdap:CacheDirectoryLdap",
          "description": "A `directory_ldap` block as defined below.\n"
        },
        "dns": {
          "$ref": "#/types/azure:hpc/CacheDns:CacheDns",
          "description": "A `dns` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure Region where the HPC Cache should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mountAddresses": {
          "description": "A list of IP Addresses where the HPC Cache can be mounted.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "mtu": {
          "description": "The IPv4 maximum transmission unit configured for the subnet of the HPC Cache. Possible values range from 576 - 1500. Defaults to 1500.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name of the HPC Cache. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "ntpServer": {
          "description": "The NTP server IP Address or FQDN for the HPC Cache. Defaults to `time.windows.com`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which to create the HPC Cache. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rootSquashEnabled": {
          "deprecationMessage": "This property is not functional and will be deprecated in favor of `default_access_policy.0.access_rule.x.root_squash_enabled`, where the scope of access_rule is `default`.",
          "description": "Whether to enable [root squash](https://docs.microsoft.com/en-us/azure/hpc-cache/access-policies#root-squash)? Defaults to `false`.\n",
          "type": "boolean"
        },
        "skuName": {
          "description": "The SKU of HPC Cache to use. Possible values are `Standard_2G`, `Standard_4G` and `Standard_8G`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet for the HPC Cache. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the HPC Cache.\n",
          "type": "object"
        }
      },
      "required": [
        "cacheSizeInGb",
        "defaultAccessPolicy",
        "location",
        "mountAddresses",
        "name",
        "resourceGroupName",
        "rootSquashEnabled",
        "skuName",
        "subnetId"
      ],
      "requiredInputs": [
        "cacheSizeInGb",
        "resourceGroupName",
        "skuName",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Cache resources.\n",
        "properties": {
          "cacheSizeInGb": {
            "description": "The size of the HPC Cache, in GB. Possible values are `3072`, `6144`, `12288`, `24576`, and `49152`. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "defaultAccessPolicy": {
            "$ref": "#/types/azure:hpc/CacheDefaultAccessPolicy:CacheDefaultAccessPolicy",
            "description": "A `default_access_policy` block as defined below.\n"
          },
          "directoryActiveDirectory": {
            "$ref": "#/types/azure:hpc/CacheDirectoryActiveDirectory:CacheDirectoryActiveDirectory",
            "description": "A `directory_active_directory` block as defined below.\n"
          },
          "directoryFlatFile": {
            "$ref": "#/types/azure:hpc/CacheDirectoryFlatFile:CacheDirectoryFlatFile",
            "description": "A `directory_flat_file` block as defined below.\n"
          },
          "directoryLdap": {
            "$ref": "#/types/azure:hpc/CacheDirectoryLdap:CacheDirectoryLdap",
            "description": "A `directory_ldap` block as defined below.\n"
          },
          "dns": {
            "$ref": "#/types/azure:hpc/CacheDns:CacheDns",
            "description": "A `dns` block as defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure Region where the HPC Cache should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "mountAddresses": {
            "description": "A list of IP Addresses where the HPC Cache can be mounted.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "mtu": {
            "description": "The IPv4 maximum transmission unit configured for the subnet of the HPC Cache. Possible values range from 576 - 1500. Defaults to 1500.\n",
            "type": "integer"
          },
          "name": {
            "description": "The name of the HPC Cache. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "ntpServer": {
            "description": "The NTP server IP Address or FQDN for the HPC Cache. Defaults to `time.windows.com`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which to create the HPC Cache. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "rootSquashEnabled": {
            "deprecationMessage": "This property is not functional and will be deprecated in favor of `default_access_policy.0.access_rule.x.root_squash_enabled`, where the scope of access_rule is `default`.",
            "description": "Whether to enable [root squash](https://docs.microsoft.com/en-us/azure/hpc-cache/access-policies#root-squash)? Defaults to `false`.\n",
            "type": "boolean"
          },
          "skuName": {
            "description": "The SKU of HPC Cache to use. Possible values are `Standard_2G`, `Standard_4G` and `Standard_8G`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the Subnet for the HPC Cache. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the HPC Cache.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:hpc/cacheAccessPolicy:CacheAccessPolicy": {
      "description": "Manages a HPC Cache Access Policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst exampleCache = new azure.hpc.Cache(\"exampleCache\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    cacheSizeInGb: 3072,\n    subnetId: exampleSubnet.id,\n    skuName: \"Standard_2G\",\n});\nconst exampleCacheAccessPolicy = new azure.hpc.CacheAccessPolicy(\"exampleCacheAccessPolicy\", {\n    hpcCacheId: exampleCache.id,\n    accessRules: [{\n        scope: \"default\",\n        access: \"rw\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"])\nexample_cache = azure.hpc.Cache(\"exampleCache\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cache_size_in_gb=3072,\n    subnet_id=example_subnet.id,\n    sku_name=\"Standard_2G\")\nexample_cache_access_policy = azure.hpc.CacheAccessPolicy(\"exampleCacheAccessPolicy\",\n    hpc_cache_id=example_cache.id,\n    access_rules=[azure.hpc.CacheAccessPolicyAccessRuleArgs(\n        scope=\"default\",\n        access=\"rw\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n        });\n        var exampleCache = new Azure.Hpc.Cache(\"exampleCache\", new Azure.Hpc.CacheArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            CacheSizeInGb = 3072,\n            SubnetId = exampleSubnet.Id,\n            SkuName = \"Standard_2G\",\n        });\n        var exampleCacheAccessPolicy = new Azure.Hpc.CacheAccessPolicy(\"exampleCacheAccessPolicy\", new Azure.Hpc.CacheAccessPolicyArgs\n        {\n            HpcCacheId = exampleCache.Id,\n            AccessRules = \n            {\n                new Azure.Hpc.Inputs.CacheAccessPolicyAccessRuleArgs\n                {\n                    Scope = \"default\",\n                    Access = \"rw\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/hpc\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCache, err := hpc.NewCache(ctx, \"exampleCache\", \u0026hpc.CacheArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tCacheSizeInGb:     pulumi.Int(3072),\n\t\t\tSubnetId:          exampleSubnet.ID(),\n\t\t\tSkuName:           pulumi.String(\"Standard_2G\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hpc.NewCacheAccessPolicy(ctx, \"exampleCacheAccessPolicy\", \u0026hpc.CacheAccessPolicyArgs{\n\t\t\tHpcCacheId: exampleCache.ID(),\n\t\t\tAccessRules: hpc.CacheAccessPolicyAccessRuleArray{\n\t\t\t\t\u0026hpc.CacheAccessPolicyAccessRuleArgs{\n\t\t\t\t\tScope:  pulumi.String(\"default\"),\n\t\t\t\t\tAccess: pulumi.String(\"rw\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nHPC Cache Access Policys can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:hpc/cacheAccessPolicy:CacheAccessPolicy example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.StorageCache/caches/cache1/cacheAccessPolicies/policy1\n```\n\n ",
      "inputProperties": {
        "accessRules": {
          "description": "Up to three `access_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hpc/CacheAccessPolicyAccessRule:CacheAccessPolicyAccessRule"
          },
          "type": "array"
        },
        "hpcCacheId": {
          "description": "The ID of the HPC Cache that this HPC Cache Access Policy resides in. Changing this forces a new HPC Cache Access Policy to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this HPC Cache Access Policy. Changing this forces a new HPC Cache Access Policy to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "accessRules": {
          "description": "Up to three `access_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hpc/CacheAccessPolicyAccessRule:CacheAccessPolicyAccessRule"
          },
          "type": "array"
        },
        "hpcCacheId": {
          "description": "The ID of the HPC Cache that this HPC Cache Access Policy resides in. Changing this forces a new HPC Cache Access Policy to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this HPC Cache Access Policy. Changing this forces a new HPC Cache Access Policy to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "accessRules",
        "hpcCacheId",
        "name"
      ],
      "requiredInputs": [
        "accessRules",
        "hpcCacheId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CacheAccessPolicy resources.\n",
        "properties": {
          "accessRules": {
            "description": "Up to three `access_rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:hpc/CacheAccessPolicyAccessRule:CacheAccessPolicyAccessRule"
            },
            "type": "array"
          },
          "hpcCacheId": {
            "description": "The ID of the HPC Cache that this HPC Cache Access Policy resides in. Changing this forces a new HPC Cache Access Policy to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this HPC Cache Access Policy. Changing this forces a new HPC Cache Access Policy to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:hpc/cacheBlobNfsTarget:CacheBlobNfsTarget": {
      "description": "Manages a Blob NFSv3 Target within a HPC Cache.\n\n\u003e **NOTE:**: By request of the service team the provider no longer automatically registering the `Microsoft.StorageCache` Resource Provider for this resource. To register it you can run `az provider register --namespace 'Microsoft.StorageCache'`.\n\n\u003e **NOTE:**: This resource depends on the NFSv3 enabled Storage Account, which has some prerequisites need to meet. Please checkout: https://docs.microsoft.com/en-us/azure/storage/blobs/network-file-system-protocol-support-how-to?tabs=azure-powershell.\n\n\n## Import\n\nHPC Cache Blob NFS Targets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:hpc/cacheBlobNfsTarget:CacheBlobNfsTarget example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.StorageCache/caches/cache1/storageTargets/target1\n```\n\n ",
      "inputProperties": {
        "accessPolicyName": {
          "description": "The name of the access policy applied to this target. Defaults to `default`.\n",
          "type": "string"
        },
        "cacheName": {
          "description": "The name of the HPC Cache, which the HPC Cache Blob NFS Target will be added to. Changing this forces a new HPC Cache Blob NFS Target to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this HPC Cache Blob NFS Target. Changing this forces a new HPC Cache Blob NFS Target to be created.\n",
          "type": "string"
        },
        "namespacePath": {
          "description": "The client-facing file path of the HPC Cache Blob NFS Target.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the HPC Cache Blob NFS Target should exist. Changing this forces a new HPC Cache Blob NFS Target to be created.\n",
          "type": "string"
        },
        "storageContainerId": {
          "description": "The Resource Manager ID of the Storage Container used as the HPC Cache Blob NFS Target. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "usageModel": {
          "description": "The type of usage of the HPC Cache Blob NFS Target. Possible values are: `READ_HEAVY_INFREQ`, `READ_HEAVY_CHECK_180`, `WRITE_WORKLOAD_15`, `WRITE_AROUND`, `WRITE_WORKLOAD_CHECK_30`, `WRITE_WORKLOAD_CHECK_60` and `WRITE_WORKLOAD_CLOUDWS`.\n",
          "type": "string"
        }
      },
      "properties": {
        "accessPolicyName": {
          "description": "The name of the access policy applied to this target. Defaults to `default`.\n",
          "type": "string"
        },
        "cacheName": {
          "description": "The name of the HPC Cache, which the HPC Cache Blob NFS Target will be added to. Changing this forces a new HPC Cache Blob NFS Target to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this HPC Cache Blob NFS Target. Changing this forces a new HPC Cache Blob NFS Target to be created.\n",
          "type": "string"
        },
        "namespacePath": {
          "description": "The client-facing file path of the HPC Cache Blob NFS Target.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the HPC Cache Blob NFS Target should exist. Changing this forces a new HPC Cache Blob NFS Target to be created.\n",
          "type": "string"
        },
        "storageContainerId": {
          "description": "The Resource Manager ID of the Storage Container used as the HPC Cache Blob NFS Target. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "usageModel": {
          "description": "The type of usage of the HPC Cache Blob NFS Target. Possible values are: `READ_HEAVY_INFREQ`, `READ_HEAVY_CHECK_180`, `WRITE_WORKLOAD_15`, `WRITE_AROUND`, `WRITE_WORKLOAD_CHECK_30`, `WRITE_WORKLOAD_CHECK_60` and `WRITE_WORKLOAD_CLOUDWS`.\n",
          "type": "string"
        }
      },
      "required": [
        "cacheName",
        "name",
        "namespacePath",
        "resourceGroupName",
        "storageContainerId",
        "usageModel"
      ],
      "requiredInputs": [
        "cacheName",
        "namespacePath",
        "resourceGroupName",
        "storageContainerId",
        "usageModel"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CacheBlobNfsTarget resources.\n",
        "properties": {
          "accessPolicyName": {
            "description": "The name of the access policy applied to this target. Defaults to `default`.\n",
            "type": "string"
          },
          "cacheName": {
            "description": "The name of the HPC Cache, which the HPC Cache Blob NFS Target will be added to. Changing this forces a new HPC Cache Blob NFS Target to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this HPC Cache Blob NFS Target. Changing this forces a new HPC Cache Blob NFS Target to be created.\n",
            "type": "string"
          },
          "namespacePath": {
            "description": "The client-facing file path of the HPC Cache Blob NFS Target.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the HPC Cache Blob NFS Target should exist. Changing this forces a new HPC Cache Blob NFS Target to be created.\n",
            "type": "string"
          },
          "storageContainerId": {
            "description": "The Resource Manager ID of the Storage Container used as the HPC Cache Blob NFS Target. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "usageModel": {
            "description": "The type of usage of the HPC Cache Blob NFS Target. Possible values are: `READ_HEAVY_INFREQ`, `READ_HEAVY_CHECK_180`, `WRITE_WORKLOAD_15`, `WRITE_AROUND`, `WRITE_WORKLOAD_CHECK_30`, `WRITE_WORKLOAD_CHECK_60` and `WRITE_WORKLOAD_CLOUDWS`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:hpc/cacheBlobTarget:CacheBlobTarget": {
      "description": "Manages a Blob Target within a HPC Cache.\n\n\u003e **NOTE:**: By request of the service team the provider no longer automatically registering the `Microsoft.StorageCache` Resource Provider for this resource. To register it you can run `az provider register --namespace 'Microsoft.StorageCache'`.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as azuread from \"@pulumi/azuread\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst exampleCache = new azure.hpc.Cache(\"exampleCache\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    cacheSizeInGb: 3072,\n    subnetId: exampleSubnet.id,\n    skuName: \"Standard_2G\",\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {storageAccountName: exampleAccount.name});\nconst exampleServicePrincipal = azuread.getServicePrincipal({\n    displayName: \"HPC Cache Resource Provider\",\n});\nconst exampleStorageAccountContrib = new azure.authorization.Assignment(\"exampleStorageAccountContrib\", {\n    scope: exampleAccount.id,\n    roleDefinitionName: \"Storage Account Contributor\",\n    principalId: exampleServicePrincipal.then(exampleServicePrincipal =\u003e exampleServicePrincipal.objectId),\n});\nconst exampleStorageBlobDataContrib = new azure.authorization.Assignment(\"exampleStorageBlobDataContrib\", {\n    scope: exampleAccount.id,\n    roleDefinitionName: \"Storage Blob Data Contributor\",\n    principalId: exampleServicePrincipal.then(exampleServicePrincipal =\u003e exampleServicePrincipal.objectId),\n});\nconst exampleCacheBlobTarget = new azure.hpc.CacheBlobTarget(\"exampleCacheBlobTarget\", {\n    resourceGroupName: exampleResourceGroup.name,\n    cacheName: exampleCache.name,\n    storageContainerId: exampleContainer.resourceManagerId,\n    namespacePath: \"/blob_storage\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_azuread as azuread\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"])\nexample_cache = azure.hpc.Cache(\"exampleCache\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cache_size_in_gb=3072,\n    subnet_id=example_subnet.id,\n    sku_name=\"Standard_2G\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\", storage_account_name=example_account.name)\nexample_service_principal = azuread.get_service_principal(display_name=\"HPC Cache Resource Provider\")\nexample_storage_account_contrib = azure.authorization.Assignment(\"exampleStorageAccountContrib\",\n    scope=example_account.id,\n    role_definition_name=\"Storage Account Contributor\",\n    principal_id=example_service_principal.object_id)\nexample_storage_blob_data_contrib = azure.authorization.Assignment(\"exampleStorageBlobDataContrib\",\n    scope=example_account.id,\n    role_definition_name=\"Storage Blob Data Contributor\",\n    principal_id=example_service_principal.object_id)\nexample_cache_blob_target = azure.hpc.CacheBlobTarget(\"exampleCacheBlobTarget\",\n    resource_group_name=example_resource_group.name,\n    cache_name=example_cache.name,\n    storage_container_id=example_container.resource_manager_id,\n    namespace_path=\"/blob_storage\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing AzureAD = Pulumi.AzureAD;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n        });\n        var exampleCache = new Azure.Hpc.Cache(\"exampleCache\", new Azure.Hpc.CacheArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            CacheSizeInGb = 3072,\n            SubnetId = exampleSubnet.Id,\n            SkuName = \"Standard_2G\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n        });\n        var exampleServicePrincipal = Output.Create(AzureAD.GetServicePrincipal.InvokeAsync(new AzureAD.GetServicePrincipalArgs\n        {\n            DisplayName = \"HPC Cache Resource Provider\",\n        }));\n        var exampleStorageAccountContrib = new Azure.Authorization.Assignment(\"exampleStorageAccountContrib\", new Azure.Authorization.AssignmentArgs\n        {\n            Scope = exampleAccount.Id,\n            RoleDefinitionName = \"Storage Account Contributor\",\n            PrincipalId = exampleServicePrincipal.Apply(exampleServicePrincipal =\u003e exampleServicePrincipal.ObjectId),\n        });\n        var exampleStorageBlobDataContrib = new Azure.Authorization.Assignment(\"exampleStorageBlobDataContrib\", new Azure.Authorization.AssignmentArgs\n        {\n            Scope = exampleAccount.Id,\n            RoleDefinitionName = \"Storage Blob Data Contributor\",\n            PrincipalId = exampleServicePrincipal.Apply(exampleServicePrincipal =\u003e exampleServicePrincipal.ObjectId),\n        });\n        var exampleCacheBlobTarget = new Azure.Hpc.CacheBlobTarget(\"exampleCacheBlobTarget\", new Azure.Hpc.CacheBlobTargetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            CacheName = exampleCache.Name,\n            StorageContainerId = exampleContainer.ResourceManagerId,\n            NamespacePath = \"/blob_storage\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/hpc\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azuread/sdk/v4/go/azuread\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCache, err := hpc.NewCache(ctx, \"exampleCache\", \u0026hpc.CacheArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tCacheSizeInGb:     pulumi.Int(3072),\n\t\t\tSubnetId:          exampleSubnet.ID(),\n\t\t\tSkuName:           pulumi.String(\"Standard_2G\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName: exampleAccount.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\topt0 := \"HPC Cache Resource Provider\"\n\t\texampleServicePrincipal, err := azuread.LookupServicePrincipal(ctx, \u0026GetServicePrincipalArgs{\n\t\t\tDisplayName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewAssignment(ctx, \"exampleStorageAccountContrib\", \u0026authorization.AssignmentArgs{\n\t\t\tScope:              exampleAccount.ID(),\n\t\t\tRoleDefinitionName: pulumi.String(\"Storage Account Contributor\"),\n\t\t\tPrincipalId:        pulumi.String(exampleServicePrincipal.ObjectId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewAssignment(ctx, \"exampleStorageBlobDataContrib\", \u0026authorization.AssignmentArgs{\n\t\t\tScope:              exampleAccount.ID(),\n\t\t\tRoleDefinitionName: pulumi.String(\"Storage Blob Data Contributor\"),\n\t\t\tPrincipalId:        pulumi.String(exampleServicePrincipal.ObjectId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hpc.NewCacheBlobTarget(ctx, \"exampleCacheBlobTarget\", \u0026hpc.CacheBlobTargetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tCacheName:          exampleCache.Name,\n\t\t\tStorageContainerId: exampleContainer.ResourceManagerId,\n\t\t\tNamespacePath:      pulumi.String(\"/blob_storage\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBlob Targets within an HPC Cache can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:hpc/cacheBlobTarget:CacheBlobTarget example azurerm_hpc_cache_blob_target.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.StorageCache/caches/cache1/storageTargets/target1\n```\n\n ",
      "inputProperties": {
        "accessPolicyName": {
          "description": "The name of the access policy applied to this target. Defaults to `default`.\n",
          "type": "string"
        },
        "cacheName": {
          "description": "The name HPC Cache, which the HPC Cache Blob Target will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the HPC Cache Blob Target. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespacePath": {
          "description": "The client-facing file path of the HPC Cache Blob Target.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which to create the HPC Cache Blob Target. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageContainerId": {
          "description": "The Resource Manager ID of the Storage Container used as the HPC Cache Blob Target. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "accessPolicyName": {
          "description": "The name of the access policy applied to this target. Defaults to `default`.\n",
          "type": "string"
        },
        "cacheName": {
          "description": "The name HPC Cache, which the HPC Cache Blob Target will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the HPC Cache Blob Target. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespacePath": {
          "description": "The client-facing file path of the HPC Cache Blob Target.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which to create the HPC Cache Blob Target. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageContainerId": {
          "description": "The Resource Manager ID of the Storage Container used as the HPC Cache Blob Target. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "cacheName",
        "name",
        "namespacePath",
        "resourceGroupName",
        "storageContainerId"
      ],
      "requiredInputs": [
        "cacheName",
        "namespacePath",
        "resourceGroupName",
        "storageContainerId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CacheBlobTarget resources.\n",
        "properties": {
          "accessPolicyName": {
            "description": "The name of the access policy applied to this target. Defaults to `default`.\n",
            "type": "string"
          },
          "cacheName": {
            "description": "The name HPC Cache, which the HPC Cache Blob Target will be added to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the HPC Cache Blob Target. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespacePath": {
            "description": "The client-facing file path of the HPC Cache Blob Target.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which to create the HPC Cache Blob Target. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageContainerId": {
            "description": "The Resource Manager ID of the Storage Container used as the HPC Cache Blob Target. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:hpc/cacheNfsTarget:CacheNfsTarget": {
      "description": "Manages a NFS Target within a HPC Cache.\n\n\u003e **NOTE:**: By request of the service team the provider no longer automatically registering the `Microsoft.StorageCache` Resource Provider for this resource. To register it you can run `az provider register --namespace 'Microsoft.StorageCache'`.\n\n\n## Import\n\nNFS Target within a HPC Cache can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:hpc/cacheNfsTarget:CacheNfsTarget example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.StorageCache/caches/cache1/storageTargets/target1\n```\n\n ",
      "inputProperties": {
        "cacheName": {
          "description": "The name HPC Cache, which the HPC Cache NFS Target will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the HPC Cache NFS Target. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceJunctions": {
          "description": "Can be specified multiple times to define multiple `namespace_junction`. Each `namespace_juntion` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:hpc/CacheNfsTargetNamespaceJunction:CacheNfsTargetNamespaceJunction"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which to create the HPC Cache NFS Target. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "targetHostName": {
          "description": "The IP address or fully qualified domain name (FQDN) of the HPC Cache NFS target. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "usageModel": {
          "description": "The type of usage of the HPC Cache NFS Target. Possible values are: `READ_HEAVY_INFREQ`, `READ_HEAVY_CHECK_180`, `WRITE_WORKLOAD_15`, `WRITE_AROUND`, `WRITE_WORKLOAD_CHECK_30`, `WRITE_WORKLOAD_CHECK_60` and `WRITE_WORKLOAD_CLOUDWS`.\n",
          "type": "string"
        }
      },
      "properties": {
        "cacheName": {
          "description": "The name HPC Cache, which the HPC Cache NFS Target will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the HPC Cache NFS Target. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceJunctions": {
          "description": "Can be specified multiple times to define multiple `namespace_junction`. Each `namespace_juntion` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:hpc/CacheNfsTargetNamespaceJunction:CacheNfsTargetNamespaceJunction"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which to create the HPC Cache NFS Target. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "targetHostName": {
          "description": "The IP address or fully qualified domain name (FQDN) of the HPC Cache NFS target. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "usageModel": {
          "description": "The type of usage of the HPC Cache NFS Target. Possible values are: `READ_HEAVY_INFREQ`, `READ_HEAVY_CHECK_180`, `WRITE_WORKLOAD_15`, `WRITE_AROUND`, `WRITE_WORKLOAD_CHECK_30`, `WRITE_WORKLOAD_CHECK_60` and `WRITE_WORKLOAD_CLOUDWS`.\n",
          "type": "string"
        }
      },
      "required": [
        "cacheName",
        "name",
        "namespaceJunctions",
        "resourceGroupName",
        "targetHostName",
        "usageModel"
      ],
      "requiredInputs": [
        "cacheName",
        "namespaceJunctions",
        "resourceGroupName",
        "targetHostName",
        "usageModel"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CacheNfsTarget resources.\n",
        "properties": {
          "cacheName": {
            "description": "The name HPC Cache, which the HPC Cache NFS Target will be added to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the HPC Cache NFS Target. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceJunctions": {
            "description": "Can be specified multiple times to define multiple `namespace_junction`. Each `namespace_juntion` block supports fields documented below.\n",
            "items": {
              "$ref": "#/types/azure:hpc/CacheNfsTargetNamespaceJunction:CacheNfsTargetNamespaceJunction"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which to create the HPC Cache NFS Target. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "targetHostName": {
            "description": "The IP address or fully qualified domain name (FQDN) of the HPC Cache NFS target. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "usageModel": {
            "description": "The type of usage of the HPC Cache NFS Target. Possible values are: `READ_HEAVY_INFREQ`, `READ_HEAVY_CHECK_180`, `WRITE_WORKLOAD_15`, `WRITE_AROUND`, `WRITE_WORKLOAD_CHECK_30`, `WRITE_WORKLOAD_CHECK_60` and `WRITE_WORKLOAD_CLOUDWS`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:hsm/module:Module": {
      "description": "Manages a Dedicated Hardware Security Module.\n\n\u003e **Note**: Before using this resource, it's required to submit the request of registering the providers and features with Azure CLI `az provider register --namespace Microsoft.HardwareSecurityModules \u0026\u0026 az feature register --namespace Microsoft.HardwareSecurityModules --name AzureDedicatedHSM \u0026\u0026 az provider register --namespace Microsoft.Network \u0026\u0026 az feature register --namespace Microsoft.Network --name AllowBaremetalServers` and ask service team (hsmrequest@microsoft.com) to approve. See more details from https://docs.microsoft.com/en-us/azure/dedicated-hsm/tutorial-deploy-hsm-cli#prerequisites.\n\n\u003e **Note**: If the quota is not enough in some region, please submit the quota request to service team.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.2.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.2.0.0/24\"],\n});\nconst example2 = new azure.network.Subnet(\"example2\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.2.1.0/24\"],\n    delegations: [{\n        name: \"first\",\n        serviceDelegation: {\n            name: \"Microsoft.HardwareSecurityModules/dedicatedHSMs\",\n            actions: [\n                \"Microsoft.Network/networkinterfaces/*\",\n                \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n            ],\n        },\n    }],\n});\nconst example3 = new azure.network.Subnet(\"example3\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.2.255.0/26\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Dynamic\",\n});\nconst exampleVirtualNetworkGateway = new azure.network.VirtualNetworkGateway(\"exampleVirtualNetworkGateway\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    type: \"ExpressRoute\",\n    vpnType: \"PolicyBased\",\n    sku: \"Standard\",\n    ipConfigurations: [{\n        publicIpAddressId: examplePublicIp.id,\n        privateIpAddressAllocation: \"Dynamic\",\n        subnetId: example3.id,\n    }],\n});\nconst exampleModule = new azure.hsm.Module(\"exampleModule\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"SafeNet Luna Network HSM A790\",\n    networkProfile: {\n        networkInterfacePrivateIpAddresses: [\"10.2.1.8\"],\n        subnetId: example2.id,\n    },\n    stampId: \"stamp2\",\n    tags: {\n        env: \"Test\",\n    },\n}, {\n    dependsOn: [exampleVirtualNetworkGateway],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.2.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.2.0.0/24\"])\nexample2 = azure.network.Subnet(\"example2\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.2.1.0/24\"],\n    delegations=[azure.network.SubnetDelegationArgs(\n        name=\"first\",\n        service_delegation=azure.network.SubnetDelegationServiceDelegationArgs(\n            name=\"Microsoft.HardwareSecurityModules/dedicatedHSMs\",\n            actions=[\n                \"Microsoft.Network/networkinterfaces/*\",\n                \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n            ],\n        ),\n    )])\nexample3 = azure.network.Subnet(\"example3\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.2.255.0/26\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Dynamic\")\nexample_virtual_network_gateway = azure.network.VirtualNetworkGateway(\"exampleVirtualNetworkGateway\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    type=\"ExpressRoute\",\n    vpn_type=\"PolicyBased\",\n    sku=\"Standard\",\n    ip_configurations=[azure.network.VirtualNetworkGatewayIpConfigurationArgs(\n        public_ip_address_id=example_public_ip.id,\n        private_ip_address_allocation=\"Dynamic\",\n        subnet_id=example3.id,\n    )])\nexample_module = azure.hsm.Module(\"exampleModule\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"SafeNet Luna Network HSM A790\",\n    network_profile=azure.hsm.ModuleNetworkProfileArgs(\n        network_interface_private_ip_addresses=[\"10.2.1.8\"],\n        subnet_id=example2.id,\n    ),\n    stamp_id=\"stamp2\",\n    tags={\n        \"env\": \"Test\",\n    },\n    opts=pulumi.ResourceOptions(depends_on=[example_virtual_network_gateway]))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.2.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.2.0.0/24\",\n            },\n        });\n        var example2 = new Azure.Network.Subnet(\"example2\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.2.1.0/24\",\n            },\n            Delegations = \n            {\n                new Azure.Network.Inputs.SubnetDelegationArgs\n                {\n                    Name = \"first\",\n                    ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs\n                    {\n                        Name = \"Microsoft.HardwareSecurityModules/dedicatedHSMs\",\n                        Actions = \n                        {\n                            \"Microsoft.Network/networkinterfaces/*\",\n                            \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n                        },\n                    },\n                },\n            },\n        });\n        var example3 = new Azure.Network.Subnet(\"example3\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.2.255.0/26\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Dynamic\",\n        });\n        var exampleVirtualNetworkGateway = new Azure.Network.VirtualNetworkGateway(\"exampleVirtualNetworkGateway\", new Azure.Network.VirtualNetworkGatewayArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Type = \"ExpressRoute\",\n            VpnType = \"PolicyBased\",\n            Sku = \"Standard\",\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.VirtualNetworkGatewayIpConfigurationArgs\n                {\n                    PublicIpAddressId = examplePublicIp.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                    SubnetId = example3.Id,\n                },\n            },\n        });\n        var exampleModule = new Azure.Hsm.Module(\"exampleModule\", new Azure.Hsm.ModuleArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"SafeNet Luna Network HSM A790\",\n            NetworkProfile = new Azure.Hsm.Inputs.ModuleNetworkProfileArgs\n            {\n                NetworkInterfacePrivateIpAddresses = \n                {\n                    \"10.2.1.8\",\n                },\n                SubnetId = example2.Id,\n            },\n            StampId = \"stamp2\",\n            Tags = \n            {\n                { \"env\", \"Test\" },\n            },\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                exampleVirtualNetworkGateway,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/hsm\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.2.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.2.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample2, err := network.NewSubnet(ctx, \"example2\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.2.1.0/24\"),\n\t\t\t},\n\t\t\tDelegations: network.SubnetDelegationArray{\n\t\t\t\t\u0026network.SubnetDelegationArgs{\n\t\t\t\t\tName: pulumi.String(\"first\"),\n\t\t\t\t\tServiceDelegation: \u0026network.SubnetDelegationServiceDelegationArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Microsoft.HardwareSecurityModules/dedicatedHSMs\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/networkinterfaces/*\"),\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/join/action\"),\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\texample3, err := network.NewSubnet(ctx, \"example3\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.2.255.0/26\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Dynamic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetworkGateway, err := network.NewVirtualNetworkGateway(ctx, \"exampleVirtualNetworkGateway\", \u0026network.VirtualNetworkGatewayArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tType:              pulumi.String(\"ExpressRoute\"),\n\t\t\tVpnType:           pulumi.String(\"PolicyBased\"),\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tIpConfigurations: network.VirtualNetworkGatewayIpConfigurationArray{\n\t\t\t\t\u0026network.VirtualNetworkGatewayIpConfigurationArgs{\n\t\t\t\t\tPublicIpAddressId:          examplePublicIp.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\n\t\t\t\t\tSubnetId:                   example3.ID(),\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 = hsm.NewModule(ctx, \"exampleModule\", \u0026hsm.ModuleArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"SafeNet Luna Network HSM A790\"),\n\t\t\tNetworkProfile: \u0026hsm.ModuleNetworkProfileArgs{\n\t\t\t\tNetworkInterfacePrivateIpAddresses: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"10.2.1.8\"),\n\t\t\t\t},\n\t\t\t\tSubnetId: example2.ID(),\n\t\t\t},\n\t\t\tStampId: pulumi.String(\"stamp2\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"env\": pulumi.String(\"Test\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleVirtualNetworkGateway,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDedicated Hardware Security Module can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:hsm/module:Module example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/hsm1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The Azure Region where the Dedicated Hardware Security Module should exist. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Dedicated Hardware Security Module. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
          "type": "string"
        },
        "networkProfile": {
          "$ref": "#/types/azure:hsm/ModuleNetworkProfile:ModuleNetworkProfile",
          "description": "A `network_profile` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Dedicated Hardware Security Module should exist. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The sku name of the dedicated hardware security module. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
          "type": "string"
        },
        "stampId": {
          "description": "The ID of the stamp. Possible values are `stamp1` or `stamp2`. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Dedicated Hardware Security Module.\n",
          "type": "object"
        },
        "zones": {
          "description": "The Dedicated Hardware Security Module zones. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "location": {
          "description": "The Azure Region where the Dedicated Hardware Security Module should exist. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Dedicated Hardware Security Module. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
          "type": "string"
        },
        "networkProfile": {
          "$ref": "#/types/azure:hsm/ModuleNetworkProfile:ModuleNetworkProfile",
          "description": "A `network_profile` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Dedicated Hardware Security Module should exist. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The sku name of the dedicated hardware security module. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
          "type": "string"
        },
        "stampId": {
          "description": "The ID of the stamp. Possible values are `stamp1` or `stamp2`. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Dedicated Hardware Security Module.\n",
          "type": "object"
        },
        "zones": {
          "description": "The Dedicated Hardware Security Module zones. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "location",
        "name",
        "networkProfile",
        "resourceGroupName",
        "skuName"
      ],
      "requiredInputs": [
        "networkProfile",
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Module resources.\n",
        "properties": {
          "location": {
            "description": "The Azure Region where the Dedicated Hardware Security Module should exist. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Dedicated Hardware Security Module. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
            "type": "string"
          },
          "networkProfile": {
            "$ref": "#/types/azure:hsm/ModuleNetworkProfile:ModuleNetworkProfile",
            "description": "A `network_profile` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Dedicated Hardware Security Module should exist. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The sku name of the dedicated hardware security module. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
            "type": "string"
          },
          "stampId": {
            "description": "The ID of the stamp. Possible values are `stamp1` or `stamp2`. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Dedicated Hardware Security Module.\n",
            "type": "object"
          },
          "zones": {
            "description": "The Dedicated Hardware Security Module zones. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/consumerGroup:ConsumerGroup": {
      "description": "Manages a Consumer Group within an IotHub\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"S1\",\n        capacity: \"1\",\n    },\n    tags: {\n        purpose: \"testing\",\n    },\n});\nconst exampleConsumerGroup = new azure.iot.ConsumerGroup(\"exampleConsumerGroup\", {\n    iothubName: exampleIoTHub.name,\n    eventhubEndpointName: \"events\",\n    resourceGroupName: exampleResourceGroup.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"S1\",\n        capacity=1,\n    ),\n    tags={\n        \"purpose\": \"testing\",\n    })\nexample_consumer_group = azure.iot.ConsumerGroup(\"exampleConsumerGroup\",\n    iothub_name=example_io_t_hub.name,\n    eventhub_endpoint_name=\"events\",\n    resource_group_name=example_resource_group.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"S1\",\n                Capacity = 1,\n            },\n            Tags = \n            {\n                { \"purpose\", \"testing\" },\n            },\n        });\n        var exampleConsumerGroup = new Azure.Iot.ConsumerGroup(\"exampleConsumerGroup\", new Azure.Iot.ConsumerGroupArgs\n        {\n            IothubName = exampleIoTHub.Name,\n            EventhubEndpointName = \"events\",\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIoTHub, err := iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"S1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"purpose\": pulumi.String(\"testing\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewConsumerGroup(ctx, \"exampleConsumerGroup\", \u0026iot.ConsumerGroupArgs{\n\t\t\tIothubName:           exampleIoTHub.Name,\n\t\t\tEventhubEndpointName: pulumi.String(\"events\"),\n\t\t\tResourceGroupName:    exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIoTHub Consumer Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/consumerGroup:ConsumerGroup group1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/IotHubs/hub1/eventHubEndpoints/events/ConsumerGroups/group1\n```\n\n ",
      "inputProperties": {
        "eventhubEndpointName": {
          "description": "The name of the Event Hub-compatible endpoint in the IoT hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "iothubName": {
          "description": "The name of the IoT Hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of this Consumer Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group that contains the IoT hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "eventhubEndpointName": {
          "description": "The name of the Event Hub-compatible endpoint in the IoT hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "iothubName": {
          "description": "The name of the IoT Hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of this Consumer Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group that contains the IoT hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "eventhubEndpointName",
        "iothubName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "eventhubEndpointName",
        "iothubName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ConsumerGroup resources.\n",
        "properties": {
          "eventhubEndpointName": {
            "description": "The name of the Event Hub-compatible endpoint in the IoT hub. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "iothubName": {
            "description": "The name of the IoT Hub. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of this Consumer Group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group that contains the IoT hub. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/dpsSharedAccessPolicy:DpsSharedAccessPolicy": {
      "description": "Manages an IotHub Device Provisioning Service Shared Access Policy\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleIotHubDps = new azure.iot.IotHubDps(\"exampleIotHubDps\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"S1\",\n        capacity: \"1\",\n    },\n});\nconst exampleDpsSharedAccessPolicy = new azure.iot.DpsSharedAccessPolicy(\"exampleDpsSharedAccessPolicy\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubDpsName: exampleIotHubDps.name,\n    enrollmentWrite: true,\n    enrollmentRead: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_iot_hub_dps = azure.iot.IotHubDps(\"exampleIotHubDps\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IotHubDpsSkuArgs(\n        name=\"S1\",\n        capacity=1,\n    ))\nexample_dps_shared_access_policy = azure.iot.DpsSharedAccessPolicy(\"exampleDpsSharedAccessPolicy\",\n    resource_group_name=example_resource_group.name,\n    iothub_dps_name=example_iot_hub_dps.name,\n    enrollment_write=True,\n    enrollment_read=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleIotHubDps = new Azure.Iot.IotHubDps(\"exampleIotHubDps\", new Azure.Iot.IotHubDpsArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IotHubDpsSkuArgs\n            {\n                Name = \"S1\",\n                Capacity = 1,\n            },\n        });\n        var exampleDpsSharedAccessPolicy = new Azure.Iot.DpsSharedAccessPolicy(\"exampleDpsSharedAccessPolicy\", new Azure.Iot.DpsSharedAccessPolicyArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubDpsName = exampleIotHubDps.Name,\n            EnrollmentWrite = true,\n            EnrollmentRead = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIotHubDps, err := iot.NewIotHubDps(ctx, \"exampleIotHubDps\", \u0026iot.IotHubDpsArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IotHubDpsSkuArgs{\n\t\t\t\tName:     pulumi.String(\"S1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewDpsSharedAccessPolicy(ctx, \"exampleDpsSharedAccessPolicy\", \u0026iot.DpsSharedAccessPolicyArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIothubDpsName:     exampleIotHubDps.Name,\n\t\t\tEnrollmentWrite:   pulumi.Bool(true),\n\t\t\tEnrollmentRead:    pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIoTHub Device Provisioning Service Shared Access Policies can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/dpsSharedAccessPolicy:DpsSharedAccessPolicy shared_access_policy1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/provisioningServices/dps1/keys/shared_access_policy1\n```\n\n ",
      "inputProperties": {
        "enrollmentRead": {
          "description": "Adds `EnrollmentRead` permission to this Shared Access Account. It allows read access to enrollment data.\n",
          "type": "boolean"
        },
        "enrollmentWrite": {
          "description": "Adds `EnrollmentWrite` permission to this Shared Access Account. It allows write access to enrollment data.\n",
          "type": "boolean"
        },
        "iothubDpsName": {
          "description": "The name of the IoT Hub Device Provisioning service to which this Shared Access Policy belongs. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the IotHub Shared Access Policy resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "registrationRead": {
          "description": "Adds `RegistrationStatusRead` permission to this Shared Access Account. It allows read access to device registrations.\n",
          "type": "boolean"
        },
        "registrationWrite": {
          "description": "Adds `RegistrationStatusWrite` permission to this Shared Access Account. It allows write access to device registrations.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the IotHub Shared Access Policy resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceConfig": {
          "description": "Adds `ServiceConfig` permission to this Shared Access Account. It allows configuration of the Device Provisioning Service.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "enrollmentRead": {
          "description": "Adds `EnrollmentRead` permission to this Shared Access Account. It allows read access to enrollment data.\n",
          "type": "boolean"
        },
        "enrollmentWrite": {
          "description": "Adds `EnrollmentWrite` permission to this Shared Access Account. It allows write access to enrollment data.\n",
          "type": "boolean"
        },
        "iothubDpsName": {
          "description": "The name of the IoT Hub Device Provisioning service to which this Shared Access Policy belongs. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the IotHub Shared Access Policy resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The primary connection string of the Shared Access Policy.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The primary key used to create the authentication token.\n",
          "type": "string"
        },
        "registrationRead": {
          "description": "Adds `RegistrationStatusRead` permission to this Shared Access Account. It allows read access to device registrations.\n",
          "type": "boolean"
        },
        "registrationWrite": {
          "description": "Adds `RegistrationStatusWrite` permission to this Shared Access Account. It allows write access to device registrations.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the IotHub Shared Access Policy resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The secondary connection string of the Shared Access Policy.\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The secondary key used to create the authentication token.\n",
          "type": "string"
        },
        "serviceConfig": {
          "description": "Adds `ServiceConfig` permission to this Shared Access Account. It allows configuration of the Device Provisioning Service.\n",
          "type": "boolean"
        }
      },
      "required": [
        "iothubDpsName",
        "name",
        "primaryConnectionString",
        "primaryKey",
        "resourceGroupName",
        "secondaryConnectionString",
        "secondaryKey"
      ],
      "requiredInputs": [
        "iothubDpsName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DpsSharedAccessPolicy resources.\n",
        "properties": {
          "enrollmentRead": {
            "description": "Adds `EnrollmentRead` permission to this Shared Access Account. It allows read access to enrollment data.\n",
            "type": "boolean"
          },
          "enrollmentWrite": {
            "description": "Adds `EnrollmentWrite` permission to this Shared Access Account. It allows write access to enrollment data.\n",
            "type": "boolean"
          },
          "iothubDpsName": {
            "description": "The name of the IoT Hub Device Provisioning service to which this Shared Access Policy belongs. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the IotHub Shared Access Policy resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The primary connection string of the Shared Access Policy.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The primary key used to create the authentication token.\n",
            "type": "string"
          },
          "registrationRead": {
            "description": "Adds `RegistrationStatusRead` permission to this Shared Access Account. It allows read access to device registrations.\n",
            "type": "boolean"
          },
          "registrationWrite": {
            "description": "Adds `RegistrationStatusWrite` permission to this Shared Access Account. It allows write access to device registrations.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group under which the IotHub Shared Access Policy resource has to be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The secondary connection string of the Shared Access Policy.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The secondary key used to create the authentication token.\n",
            "type": "string"
          },
          "serviceConfig": {
            "description": "Adds `ServiceConfig` permission to this Shared Access Account. It allows configuration of the Device Provisioning Service.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/endpointEventhub:EndpointEventhub": {
      "description": "Manages an IotHub EventHub Endpoint\n\n\u003e **NOTE:** Endpoints can be defined either directly on the `azure.iot.IoTHub` resource, or using the `azurerm_iothub_endpoint_*` resources - but the two ways of defining the endpoints cannot be used together. If both are used against the same IoTHub, spurious changes will occur. Also, defining a `azurerm_iothub_endpoint_*` resource and another endpoint of a different type directly on the `azure.iot.IoTHub` resource is not supported.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleEventHubNamespace = new azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Basic\",\n});\nconst exampleEventHub = new azure.eventhub.EventHub(\"exampleEventHub\", {\n    namespaceName: exampleEventHubNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    partitionCount: 2,\n    messageRetention: 1,\n});\nconst exampleAuthorizationRule = new azure.eventhub.AuthorizationRule(\"exampleAuthorizationRule\", {\n    namespaceName: exampleEventHubNamespace.name,\n    eventhubName: exampleEventHub.name,\n    resourceGroupName: exampleResourceGroup.name,\n    listen: false,\n    send: true,\n    manage: false,\n});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"B1\",\n        tier: \"Basic\",\n        capacity: \"1\",\n    },\n    tags: {\n        purpose: \"example\",\n    },\n});\nconst exampleEndpointEventhub = new azure.iot.EndpointEventhub(\"exampleEndpointEventhub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubName: exampleIoTHub.name,\n    connectionString: exampleAuthorizationRule.primaryConnectionString,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_event_hub_namespace = azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Basic\")\nexample_event_hub = azure.eventhub.EventHub(\"exampleEventHub\",\n    namespace_name=example_event_hub_namespace.name,\n    resource_group_name=example_resource_group.name,\n    partition_count=2,\n    message_retention=1)\nexample_authorization_rule = azure.eventhub.AuthorizationRule(\"exampleAuthorizationRule\",\n    namespace_name=example_event_hub_namespace.name,\n    eventhub_name=example_event_hub.name,\n    resource_group_name=example_resource_group.name,\n    listen=False,\n    send=True,\n    manage=False)\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"B1\",\n        tier=\"Basic\",\n        capacity=1,\n    ),\n    tags={\n        \"purpose\": \"example\",\n    })\nexample_endpoint_eventhub = azure.iot.EndpointEventhub(\"exampleEndpointEventhub\",\n    resource_group_name=example_resource_group.name,\n    iothub_name=example_io_t_hub.name,\n    connection_string=example_authorization_rule.primary_connection_string)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"exampleEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Basic\",\n        });\n        var exampleEventHub = new Azure.EventHub.EventHub(\"exampleEventHub\", new Azure.EventHub.EventHubArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PartitionCount = 2,\n            MessageRetention = 1,\n        });\n        var exampleAuthorizationRule = new Azure.EventHub.AuthorizationRule(\"exampleAuthorizationRule\", new Azure.EventHub.AuthorizationRuleArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            EventhubName = exampleEventHub.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Listen = false,\n            Send = true,\n            Manage = false,\n        });\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"B1\",\n                Tier = \"Basic\",\n                Capacity = 1,\n            },\n            Tags = \n            {\n                { \"purpose\", \"example\" },\n            },\n        });\n        var exampleEndpointEventhub = new Azure.Iot.EndpointEventhub(\"exampleEndpointEventhub\", new Azure.Iot.EndpointEventhubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubName = exampleIoTHub.Name,\n            ConnectionString = exampleAuthorizationRule.PrimaryConnectionString,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHubNamespace, err := eventhub.NewEventHubNamespace(ctx, \"exampleEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Basic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHub, err := eventhub.NewEventHub(ctx, \"exampleEventHub\", \u0026eventhub.EventHubArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPartitionCount:    pulumi.Int(2),\n\t\t\tMessageRetention:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAuthorizationRule, err := eventhub.NewAuthorizationRule(ctx, \"exampleAuthorizationRule\", \u0026eventhub.AuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tEventhubName:      exampleEventHub.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tListen:            pulumi.Bool(false),\n\t\t\tSend:              pulumi.Bool(true),\n\t\t\tManage:            pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIoTHub, err := iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"B1\"),\n\t\t\t\tTier:     \"Basic\",\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"purpose\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewEndpointEventhub(ctx, \"exampleEndpointEventhub\", \u0026iot.EndpointEventhubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIothubName:        exampleIoTHub.Name,\n\t\t\tConnectionString:  exampleAuthorizationRule.PrimaryConnectionString,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIoTHub EventHub Endpoint can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/endpointEventhub:EndpointEventhub eventhub1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/IotHubs/hub1/Endpoints/eventhub_endpoint1\n```\n\n ",
      "inputProperties": {
        "connectionString": {
          "description": "The connection string for the endpoint.\n",
          "type": "string"
        },
        "iothubName": {
          "type": "string"
        },
        "name": {
          "description": "The name of the endpoint. The name must be unique across endpoint types. The following names are reserved:  `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "type": "string"
        }
      },
      "properties": {
        "connectionString": {
          "description": "The connection string for the endpoint.\n",
          "type": "string"
        },
        "iothubName": {
          "type": "string"
        },
        "name": {
          "description": "The name of the endpoint. The name must be unique across endpoint types. The following names are reserved:  `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "iothubName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "connectionString",
        "iothubName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EndpointEventhub resources.\n",
        "properties": {
          "connectionString": {
            "description": "The connection string for the endpoint.\n",
            "type": "string"
          },
          "iothubName": {
            "type": "string"
          },
          "name": {
            "description": "The name of the endpoint. The name must be unique across endpoint types. The following names are reserved:  `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/endpointServicebusQueue:EndpointServicebusQueue": {
      "description": "Manages an IotHub ServiceBus Queue Endpoint\n\n\u003e **NOTE:** Endpoints can be defined either directly on the `azure.iot.IoTHub` resource, or using the `azurerm_iothub_endpoint_*` resources - but the two ways of defining the endpoints cannot be used together. If both are used against the same IoTHub, spurious changes will occur. Also, defining a `azurerm_iothub_endpoint_*` resource and another endpoint of a different type directly on the `azure.iot.IoTHub` resource is not supported.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n});\nconst exampleQueue = new azure.servicebus.Queue(\"exampleQueue\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\nconst exampleQueueAuthorizationRule = new azure.servicebus.QueueAuthorizationRule(\"exampleQueueAuthorizationRule\", {\n    namespaceName: exampleNamespace.name,\n    queueName: exampleQueue.name,\n    resourceGroupName: exampleResourceGroup.name,\n    listen: false,\n    send: true,\n    manage: false,\n});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"B1\",\n        tier: \"Basic\",\n        capacity: \"1\",\n    },\n    tags: {\n        purpose: \"example\",\n    },\n});\nconst exampleEndpointServicebusQueue = new azure.iot.EndpointServicebusQueue(\"exampleEndpointServicebusQueue\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubName: exampleIoTHub.name,\n    connectionString: exampleQueueAuthorizationRule.primaryConnectionString,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\")\nexample_queue = azure.servicebus.Queue(\"exampleQueue\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\nexample_queue_authorization_rule = azure.servicebus.QueueAuthorizationRule(\"exampleQueueAuthorizationRule\",\n    namespace_name=example_namespace.name,\n    queue_name=example_queue.name,\n    resource_group_name=example_resource_group.name,\n    listen=False,\n    send=True,\n    manage=False)\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"B1\",\n        tier=\"Basic\",\n        capacity=1,\n    ),\n    tags={\n        \"purpose\": \"example\",\n    })\nexample_endpoint_servicebus_queue = azure.iot.EndpointServicebusQueue(\"exampleEndpointServicebusQueue\",\n    resource_group_name=example_resource_group.name,\n    iothub_name=example_io_t_hub.name,\n    connection_string=example_queue_authorization_rule.primary_connection_string)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n        });\n        var exampleQueue = new Azure.ServiceBus.Queue(\"exampleQueue\", new Azure.ServiceBus.QueueArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n        var exampleQueueAuthorizationRule = new Azure.ServiceBus.QueueAuthorizationRule(\"exampleQueueAuthorizationRule\", new Azure.ServiceBus.QueueAuthorizationRuleArgs\n        {\n            NamespaceName = exampleNamespace.Name,\n            QueueName = exampleQueue.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Listen = false,\n            Send = true,\n            Manage = false,\n        });\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"B1\",\n                Tier = \"Basic\",\n                Capacity = 1,\n            },\n            Tags = \n            {\n                { \"purpose\", \"example\" },\n            },\n        });\n        var exampleEndpointServicebusQueue = new Azure.Iot.EndpointServicebusQueue(\"exampleEndpointServicebusQueue\", new Azure.Iot.EndpointServicebusQueueArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubName = exampleIoTHub.Name,\n            ConnectionString = exampleQueueAuthorizationRule.PrimaryConnectionString,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleQueue, err := servicebus.NewQueue(ctx, \"exampleQueue\", \u0026servicebus.QueueArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleQueueAuthorizationRule, err := servicebus.NewQueueAuthorizationRule(ctx, \"exampleQueueAuthorizationRule\", \u0026servicebus.QueueAuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tQueueName:         exampleQueue.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tListen:            pulumi.Bool(false),\n\t\t\tSend:              pulumi.Bool(true),\n\t\t\tManage:            pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIoTHub, err := iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"B1\"),\n\t\t\t\tTier:     \"Basic\",\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"purpose\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewEndpointServicebusQueue(ctx, \"exampleEndpointServicebusQueue\", \u0026iot.EndpointServicebusQueueArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIothubName:        exampleIoTHub.Name,\n\t\t\tConnectionString:  exampleQueueAuthorizationRule.PrimaryConnectionString,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIoTHub ServiceBus Queue Endpoint can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/endpointServicebusQueue:EndpointServicebusQueue servicebus_queue1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/IotHubs/hub1/Endpoints/servicebusqueue_endpoint1\n```\n\n ",
      "inputProperties": {
        "connectionString": {
          "description": "The connection string for the endpoint.\n",
          "type": "string"
        },
        "iothubName": {
          "type": "string"
        },
        "name": {
          "description": "The name of the endpoint. The name must be unique across endpoint types. The following names are reserved:  `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "type": "string"
        }
      },
      "properties": {
        "connectionString": {
          "description": "The connection string for the endpoint.\n",
          "type": "string"
        },
        "iothubName": {
          "type": "string"
        },
        "name": {
          "description": "The name of the endpoint. The name must be unique across endpoint types. The following names are reserved:  `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "iothubName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "connectionString",
        "iothubName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EndpointServicebusQueue resources.\n",
        "properties": {
          "connectionString": {
            "description": "The connection string for the endpoint.\n",
            "type": "string"
          },
          "iothubName": {
            "type": "string"
          },
          "name": {
            "description": "The name of the endpoint. The name must be unique across endpoint types. The following names are reserved:  `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/endpointServicebusTopic:EndpointServicebusTopic": {
      "description": "Manages an IotHub ServiceBus Topic Endpoint\n\n\u003e **NOTE:** Endpoints can be defined either directly on the `azure.iot.IoTHub` resource, or using the `azurerm_iothub_endpoint_*` resources - but the two ways of defining the endpoints cannot be used together. If both are used against the same IoTHub, spurious changes will occur. Also, defining a `azurerm_iothub_endpoint_*` resource and another endpoint of a different type directly on the `azure.iot.IoTHub` resource is not supported.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n});\nconst exampleTopic = new azure.servicebus.Topic(\"exampleTopic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n});\nconst exampleTopicAuthorizationRule = new azure.servicebus.TopicAuthorizationRule(\"exampleTopicAuthorizationRule\", {\n    namespaceName: exampleNamespace.name,\n    topicName: exampleTopic.name,\n    resourceGroupName: exampleResourceGroup.name,\n    listen: false,\n    send: true,\n    manage: false,\n});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"B1\",\n        tier: \"Basic\",\n        capacity: \"1\",\n    },\n    tags: {\n        purpose: \"example\",\n    },\n});\nconst exampleEndpointServicebusTopic = new azure.iot.EndpointServicebusTopic(\"exampleEndpointServicebusTopic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubName: exampleIoTHub.name,\n    connectionString: exampleTopicAuthorizationRule.primaryConnectionString,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\")\nexample_topic = azure.servicebus.Topic(\"exampleTopic\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name)\nexample_topic_authorization_rule = azure.servicebus.TopicAuthorizationRule(\"exampleTopicAuthorizationRule\",\n    namespace_name=example_namespace.name,\n    topic_name=example_topic.name,\n    resource_group_name=example_resource_group.name,\n    listen=False,\n    send=True,\n    manage=False)\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"B1\",\n        tier=\"Basic\",\n        capacity=1,\n    ),\n    tags={\n        \"purpose\": \"example\",\n    })\nexample_endpoint_servicebus_topic = azure.iot.EndpointServicebusTopic(\"exampleEndpointServicebusTopic\",\n    resource_group_name=example_resource_group.name,\n    iothub_name=example_io_t_hub.name,\n    connection_string=example_topic_authorization_rule.primary_connection_string)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n        });\n        var exampleTopic = new Azure.ServiceBus.Topic(\"exampleTopic\", new Azure.ServiceBus.TopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n        });\n        var exampleTopicAuthorizationRule = new Azure.ServiceBus.TopicAuthorizationRule(\"exampleTopicAuthorizationRule\", new Azure.ServiceBus.TopicAuthorizationRuleArgs\n        {\n            NamespaceName = exampleNamespace.Name,\n            TopicName = exampleTopic.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Listen = false,\n            Send = true,\n            Manage = false,\n        });\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"B1\",\n                Tier = \"Basic\",\n                Capacity = 1,\n            },\n            Tags = \n            {\n                { \"purpose\", \"example\" },\n            },\n        });\n        var exampleEndpointServicebusTopic = new Azure.Iot.EndpointServicebusTopic(\"exampleEndpointServicebusTopic\", new Azure.Iot.EndpointServicebusTopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubName = exampleIoTHub.Name,\n            ConnectionString = exampleTopicAuthorizationRule.PrimaryConnectionString,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := servicebus.NewTopic(ctx, \"exampleTopic\", \u0026servicebus.TopicArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopicAuthorizationRule, err := servicebus.NewTopicAuthorizationRule(ctx, \"exampleTopicAuthorizationRule\", \u0026servicebus.TopicAuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tTopicName:         exampleTopic.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tListen:            pulumi.Bool(false),\n\t\t\tSend:              pulumi.Bool(true),\n\t\t\tManage:            pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIoTHub, err := iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"B1\"),\n\t\t\t\tTier:     \"Basic\",\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"purpose\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewEndpointServicebusTopic(ctx, \"exampleEndpointServicebusTopic\", \u0026iot.EndpointServicebusTopicArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIothubName:        exampleIoTHub.Name,\n\t\t\tConnectionString:  exampleTopicAuthorizationRule.PrimaryConnectionString,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIoTHub ServiceBus Topic Endpoint can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/endpointServicebusTopic:EndpointServicebusTopic servicebus_topic1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/IotHubs/hub1/Endpoints/servicebustopic_endpoint1\n```\n\n ",
      "inputProperties": {
        "connectionString": {
          "description": "The connection string for the endpoint.\n",
          "type": "string"
        },
        "iothubName": {
          "type": "string"
        },
        "name": {
          "description": "The name of the endpoint. The name must be unique across endpoint types. The following names are reserved:  `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "type": "string"
        }
      },
      "properties": {
        "connectionString": {
          "description": "The connection string for the endpoint.\n",
          "type": "string"
        },
        "iothubName": {
          "type": "string"
        },
        "name": {
          "description": "The name of the endpoint. The name must be unique across endpoint types. The following names are reserved:  `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "iothubName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "connectionString",
        "iothubName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EndpointServicebusTopic resources.\n",
        "properties": {
          "connectionString": {
            "description": "The connection string for the endpoint.\n",
            "type": "string"
          },
          "iothubName": {
            "type": "string"
          },
          "name": {
            "description": "The name of the endpoint. The name must be unique across endpoint types. The following names are reserved:  `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/endpointStorageContainer:EndpointStorageContainer": {
      "description": "Manages an IotHub Storage Container Endpoint\n\n\u003e **NOTE:** Endpoints can be defined either directly on the `azure.iot.IoTHub` resource, or using the `azurerm_iothub_endpoint_*` resources - but the two ways of defining the endpoints cannot be used together. If both are used against the same IoTHub, spurious changes will occur. Also, defining a `azurerm_iothub_endpoint_*` resource and another endpoint of a different type directly on the `azure.iot.IoTHub` resource is not supported.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"S1\",\n        capacity: \"1\",\n    },\n});\nconst exampleEndpointStorageContainer = new azure.iot.EndpointStorageContainer(\"exampleEndpointStorageContainer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubName: exampleIoTHub.name,\n    containerName: \"acctestcont\",\n    connectionString: exampleAccount.primaryBlobConnectionString,\n    fileNameFormat: \"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\",\n    batchFrequencyInSeconds: 60,\n    maxChunkSizeInBytes: 10485760,\n    encoding: \"JSON\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"S1\",\n        capacity=1,\n    ))\nexample_endpoint_storage_container = azure.iot.EndpointStorageContainer(\"exampleEndpointStorageContainer\",\n    resource_group_name=example_resource_group.name,\n    iothub_name=example_io_t_hub.name,\n    container_name=\"acctestcont\",\n    connection_string=example_account.primary_blob_connection_string,\n    file_name_format=\"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\",\n    batch_frequency_in_seconds=60,\n    max_chunk_size_in_bytes=10485760,\n    encoding=\"JSON\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"S1\",\n                Capacity = 1,\n            },\n        });\n        var exampleEndpointStorageContainer = new Azure.Iot.EndpointStorageContainer(\"exampleEndpointStorageContainer\", new Azure.Iot.EndpointStorageContainerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubName = exampleIoTHub.Name,\n            ContainerName = \"acctestcont\",\n            ConnectionString = exampleAccount.PrimaryBlobConnectionString,\n            FileNameFormat = \"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\",\n            BatchFrequencyInSeconds = 60,\n            MaxChunkSizeInBytes = 10485760,\n            Encoding = \"JSON\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIoTHub, err := iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"S1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewEndpointStorageContainer(ctx, \"exampleEndpointStorageContainer\", \u0026iot.EndpointStorageContainerArgs{\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tIothubName:              exampleIoTHub.Name,\n\t\t\tContainerName:           pulumi.String(\"acctestcont\"),\n\t\t\tConnectionString:        exampleAccount.PrimaryBlobConnectionString,\n\t\t\tFileNameFormat:          pulumi.String(\"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\"),\n\t\t\tBatchFrequencyInSeconds: pulumi.Int(60),\n\t\t\tMaxChunkSizeInBytes:     pulumi.Int(10485760),\n\t\t\tEncoding:                pulumi.String(\"JSON\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIoTHub Storage Container Endpoint can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/endpointStorageContainer:EndpointStorageContainer storage_container1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/IotHubs/hub1/Endpoints/storage_container_endpoint1\n```\n\n ",
      "inputProperties": {
        "batchFrequencyInSeconds": {
          "description": "Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds.\n",
          "type": "integer"
        },
        "connectionString": {
          "description": "The connection string for the endpoint.\n",
          "type": "string"
        },
        "containerName": {
          "description": "The name of storage container in the storage account.\n*\n",
          "type": "string"
        },
        "encoding": {
          "description": "Encoding that is used to serialize messages to blobs. Supported values are 'avro' and 'avrodeflate'. Default value is 'avro'.\n",
          "type": "string"
        },
        "fileNameFormat": {
          "description": "File name format for the blob. Default format is ``{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}``. All parameters are mandatory but can be reordered.\n",
          "type": "string"
        },
        "iothubName": {
          "description": "The name of the IoTHub to which this Storage Container Endpoint belongs. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxChunkSizeInBytes": {
          "description": "Maximum number of bytes for each blob written to storage. Value should be between 10485760(10MB) and 524288000(500MB). Default value is 314572800(300MB).\n",
          "type": "integer"
        },
        "name": {
          "description": "The name of the endpoint. The name must be unique across endpoint types. The following names are reserved:  `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the IotHub Storage Container Endpoint resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "batchFrequencyInSeconds": {
          "description": "Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds.\n",
          "type": "integer"
        },
        "connectionString": {
          "description": "The connection string for the endpoint.\n",
          "type": "string"
        },
        "containerName": {
          "description": "The name of storage container in the storage account.\n*\n",
          "type": "string"
        },
        "encoding": {
          "description": "Encoding that is used to serialize messages to blobs. Supported values are 'avro' and 'avrodeflate'. Default value is 'avro'.\n",
          "type": "string"
        },
        "fileNameFormat": {
          "description": "File name format for the blob. Default format is ``{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}``. All parameters are mandatory but can be reordered.\n",
          "type": "string"
        },
        "iothubName": {
          "description": "The name of the IoTHub to which this Storage Container Endpoint belongs. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxChunkSizeInBytes": {
          "description": "Maximum number of bytes for each blob written to storage. Value should be between 10485760(10MB) and 524288000(500MB). Default value is 314572800(300MB).\n",
          "type": "integer"
        },
        "name": {
          "description": "The name of the endpoint. The name must be unique across endpoint types. The following names are reserved:  `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the IotHub Storage Container Endpoint resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "containerName",
        "iothubName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "connectionString",
        "containerName",
        "iothubName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EndpointStorageContainer resources.\n",
        "properties": {
          "batchFrequencyInSeconds": {
            "description": "Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds.\n",
            "type": "integer"
          },
          "connectionString": {
            "description": "The connection string for the endpoint.\n",
            "type": "string"
          },
          "containerName": {
            "description": "The name of storage container in the storage account.\n*\n",
            "type": "string"
          },
          "encoding": {
            "description": "Encoding that is used to serialize messages to blobs. Supported values are 'avro' and 'avrodeflate'. Default value is 'avro'.\n",
            "type": "string"
          },
          "fileNameFormat": {
            "description": "File name format for the blob. Default format is ``{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}``. All parameters are mandatory but can be reordered.\n",
            "type": "string"
          },
          "iothubName": {
            "description": "The name of the IoTHub to which this Storage Container Endpoint belongs. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maxChunkSizeInBytes": {
            "description": "Maximum number of bytes for each blob written to storage. Value should be between 10485760(10MB) and 524288000(500MB). Default value is 314572800(300MB).\n",
            "type": "integer"
          },
          "name": {
            "description": "The name of the endpoint. The name must be unique across endpoint types. The following names are reserved:  `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group under which the IotHub Storage Container Endpoint resource has to be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/enrichment:Enrichment": {
      "description": "Manages an IotHub Enrichment\n\n\u003e **NOTE:** Enrichment can be defined either directly on the `azure.iot.IoTHub` resource, or using the `azure.iot.Enrichment` resources - but the two cannot be used together. If both are used against the same IoTHub, spurious changes will occur.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"S1\",\n        capacity: \"1\",\n    },\n    tags: {\n        purpose: \"testing\",\n    },\n});\nconst exampleEndpointStorageContainer = new azure.iot.EndpointStorageContainer(\"exampleEndpointStorageContainer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubName: exampleIoTHub.name,\n    connectionString: exampleAccount.primaryBlobConnectionString,\n    batchFrequencyInSeconds: 60,\n    maxChunkSizeInBytes: 10485760,\n    containerName: exampleContainer.name,\n    encoding: \"Avro\",\n    fileNameFormat: \"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\",\n});\nconst exampleRoute = new azure.iot.Route(\"exampleRoute\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubName: exampleIoTHub.name,\n    source: \"DeviceMessages\",\n    condition: \"true\",\n    endpointNames: [exampleEndpointStorageContainer.name],\n    enabled: true,\n});\nconst exampleEnrichment = new azure.iot.Enrichment(\"exampleEnrichment\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubName: exampleIoTHub.name,\n    key: \"example\",\n    value: \"my value\",\n    endpointNames: [exampleEndpointStorageContainer.name],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"S1\",\n        capacity=1,\n    ),\n    tags={\n        \"purpose\": \"testing\",\n    })\nexample_endpoint_storage_container = azure.iot.EndpointStorageContainer(\"exampleEndpointStorageContainer\",\n    resource_group_name=example_resource_group.name,\n    iothub_name=example_io_t_hub.name,\n    connection_string=example_account.primary_blob_connection_string,\n    batch_frequency_in_seconds=60,\n    max_chunk_size_in_bytes=10485760,\n    container_name=example_container.name,\n    encoding=\"Avro\",\n    file_name_format=\"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\")\nexample_route = azure.iot.Route(\"exampleRoute\",\n    resource_group_name=example_resource_group.name,\n    iothub_name=example_io_t_hub.name,\n    source=\"DeviceMessages\",\n    condition=\"true\",\n    endpoint_names=[example_endpoint_storage_container.name],\n    enabled=True)\nexample_enrichment = azure.iot.Enrichment(\"exampleEnrichment\",\n    resource_group_name=example_resource_group.name,\n    iothub_name=example_io_t_hub.name,\n    key=\"example\",\n    value=\"my value\",\n    endpoint_names=[example_endpoint_storage_container.name])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"S1\",\n                Capacity = 1,\n            },\n            Tags = \n            {\n                { \"purpose\", \"testing\" },\n            },\n        });\n        var exampleEndpointStorageContainer = new Azure.Iot.EndpointStorageContainer(\"exampleEndpointStorageContainer\", new Azure.Iot.EndpointStorageContainerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubName = exampleIoTHub.Name,\n            ConnectionString = exampleAccount.PrimaryBlobConnectionString,\n            BatchFrequencyInSeconds = 60,\n            MaxChunkSizeInBytes = 10485760,\n            ContainerName = exampleContainer.Name,\n            Encoding = \"Avro\",\n            FileNameFormat = \"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\",\n        });\n        var exampleRoute = new Azure.Iot.Route(\"exampleRoute\", new Azure.Iot.RouteArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubName = exampleIoTHub.Name,\n            Source = \"DeviceMessages\",\n            Condition = \"true\",\n            EndpointNames = \n            {\n                exampleEndpointStorageContainer.Name,\n            },\n            Enabled = true,\n        });\n        var exampleEnrichment = new Azure.Iot.Enrichment(\"exampleEnrichment\", new Azure.Iot.EnrichmentArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubName = exampleIoTHub.Name,\n            Key = \"example\",\n            Value = \"my value\",\n            EndpointNames = \n            {\n                exampleEndpointStorageContainer.Name,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIoTHub, err := iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"S1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"purpose\": pulumi.String(\"testing\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEndpointStorageContainer, err := iot.NewEndpointStorageContainer(ctx, \"exampleEndpointStorageContainer\", \u0026iot.EndpointStorageContainerArgs{\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tIothubName:              exampleIoTHub.Name,\n\t\t\tConnectionString:        exampleAccount.PrimaryBlobConnectionString,\n\t\t\tBatchFrequencyInSeconds: pulumi.Int(60),\n\t\t\tMaxChunkSizeInBytes:     pulumi.Int(10485760),\n\t\t\tContainerName:           exampleContainer.Name,\n\t\t\tEncoding:                pulumi.String(\"Avro\"),\n\t\t\tFileNameFormat:          pulumi.String(\"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewRoute(ctx, \"exampleRoute\", \u0026iot.RouteArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIothubName:        exampleIoTHub.Name,\n\t\t\tSource:            pulumi.String(\"DeviceMessages\"),\n\t\t\tCondition:         pulumi.String(\"true\"),\n\t\t\tEndpointNames: pulumi.String{\n\t\t\t\texampleEndpointStorageContainer.Name,\n\t\t\t},\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewEnrichment(ctx, \"exampleEnrichment\", \u0026iot.EnrichmentArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIothubName:        exampleIoTHub.Name,\n\t\t\tKey:               pulumi.String(\"example\"),\n\t\t\tValue:             pulumi.String(\"my value\"),\n\t\t\tEndpointNames: pulumi.StringArray{\n\t\t\t\texampleEndpointStorageContainer.Name,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIoTHub Enrichment can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/enrichment:Enrichment enrichment1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/IotHubs/hub1/Enrichments/enrichment1\n```\n\n ",
      "inputProperties": {
        "endpointNames": {
          "description": "The list of endpoints which will be enriched.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "iothubName": {
          "type": "string"
        },
        "key": {
          "description": "The key of the enrichment.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "type": "string"
        },
        "value": {
          "description": "The value of the enrichment. Value can be any static string, the name of the IoT hub sending the message (use `$iothubname`) or information from the device twin (ex: `$twin.tags.latitude`)\n",
          "type": "string"
        }
      },
      "properties": {
        "endpointNames": {
          "description": "The list of endpoints which will be enriched.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "iothubName": {
          "type": "string"
        },
        "key": {
          "description": "The key of the enrichment.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "type": "string"
        },
        "value": {
          "description": "The value of the enrichment. Value can be any static string, the name of the IoT hub sending the message (use `$iothubname`) or information from the device twin (ex: `$twin.tags.latitude`)\n",
          "type": "string"
        }
      },
      "required": [
        "endpointNames",
        "iothubName",
        "key",
        "resourceGroupName",
        "value"
      ],
      "requiredInputs": [
        "endpointNames",
        "iothubName",
        "key",
        "resourceGroupName",
        "value"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Enrichment resources.\n",
        "properties": {
          "endpointNames": {
            "description": "The list of endpoints which will be enriched.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "iothubName": {
            "type": "string"
          },
          "key": {
            "description": "The key of the enrichment.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "value": {
            "description": "The value of the enrichment. Value can be any static string, the name of the IoT hub sending the message (use `$iothubname`) or information from the device twin (ex: `$twin.tags.latitude`)\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/fallbackRoute:FallbackRoute": {
      "description": "Manages an IotHub Fallback Route\n\n## Disclaimers\n\n\u003e **Note:** Fallback route can be defined either directly on the `azure.iot.IoTHub` resource, or using the `azure.iot.FallbackRoute` resource - but the two cannot be used together. If both are used against the same IoTHub, spurious changes will occur.\n\n\u003e **Note:** Since this resource is provisioned by default, the Azure Provider will not check for the presence of an existing resource prior to attempting to create it.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"S1\",\n        capacity: \"1\",\n    },\n    tags: {\n        purpose: \"testing\",\n    },\n});\nconst exampleEndpointStorageContainer = new azure.iot.EndpointStorageContainer(\"exampleEndpointStorageContainer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubName: exampleIoTHub.name,\n    connectionString: exampleAccount.primaryBlobConnectionString,\n    batchFrequencyInSeconds: 60,\n    maxChunkSizeInBytes: 10485760,\n    containerName: exampleContainer.name,\n    encoding: \"Avro\",\n    fileNameFormat: \"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\",\n});\nconst exampleFallbackRoute = new azure.iot.FallbackRoute(\"exampleFallbackRoute\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubName: exampleIoTHub.name,\n    condition: \"true\",\n    endpointNames: [exampleEndpointStorageContainer.name],\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"S1\",\n        capacity=1,\n    ),\n    tags={\n        \"purpose\": \"testing\",\n    })\nexample_endpoint_storage_container = azure.iot.EndpointStorageContainer(\"exampleEndpointStorageContainer\",\n    resource_group_name=example_resource_group.name,\n    iothub_name=example_io_t_hub.name,\n    connection_string=example_account.primary_blob_connection_string,\n    batch_frequency_in_seconds=60,\n    max_chunk_size_in_bytes=10485760,\n    container_name=example_container.name,\n    encoding=\"Avro\",\n    file_name_format=\"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\")\nexample_fallback_route = azure.iot.FallbackRoute(\"exampleFallbackRoute\",\n    resource_group_name=example_resource_group.name,\n    iothub_name=example_io_t_hub.name,\n    condition=\"true\",\n    endpoint_names=[example_endpoint_storage_container.name],\n    enabled=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"S1\",\n                Capacity = 1,\n            },\n            Tags = \n            {\n                { \"purpose\", \"testing\" },\n            },\n        });\n        var exampleEndpointStorageContainer = new Azure.Iot.EndpointStorageContainer(\"exampleEndpointStorageContainer\", new Azure.Iot.EndpointStorageContainerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubName = exampleIoTHub.Name,\n            ConnectionString = exampleAccount.PrimaryBlobConnectionString,\n            BatchFrequencyInSeconds = 60,\n            MaxChunkSizeInBytes = 10485760,\n            ContainerName = exampleContainer.Name,\n            Encoding = \"Avro\",\n            FileNameFormat = \"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\",\n        });\n        var exampleFallbackRoute = new Azure.Iot.FallbackRoute(\"exampleFallbackRoute\", new Azure.Iot.FallbackRouteArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubName = exampleIoTHub.Name,\n            Condition = \"true\",\n            EndpointNames = \n            {\n                exampleEndpointStorageContainer.Name,\n            },\n            Enabled = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIoTHub, err := iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"S1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"purpose\": pulumi.String(\"testing\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEndpointStorageContainer, err := iot.NewEndpointStorageContainer(ctx, \"exampleEndpointStorageContainer\", \u0026iot.EndpointStorageContainerArgs{\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tIothubName:              exampleIoTHub.Name,\n\t\t\tConnectionString:        exampleAccount.PrimaryBlobConnectionString,\n\t\t\tBatchFrequencyInSeconds: pulumi.Int(60),\n\t\t\tMaxChunkSizeInBytes:     pulumi.Int(10485760),\n\t\t\tContainerName:           exampleContainer.Name,\n\t\t\tEncoding:                pulumi.String(\"Avro\"),\n\t\t\tFileNameFormat:          pulumi.String(\"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewFallbackRoute(ctx, \"exampleFallbackRoute\", \u0026iot.FallbackRouteArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIothubName:        exampleIoTHub.Name,\n\t\t\tCondition:         pulumi.String(\"true\"),\n\t\t\tEndpointNames: pulumi.String{\n\t\t\t\texampleEndpointStorageContainer.Name,\n\t\t\t},\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIoTHub Fallback Route can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/fallbackRoute:FallbackRoute route1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/IotHubs/hub1/FallbackRoute/default\n```\n\n ",
      "inputProperties": {
        "condition": {
          "description": "The condition that is evaluated to apply the routing rule. If no condition is provided, it evaluates to `true` by default. For grammar, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-query-language.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Used to specify whether the fallback route is enabled.\n",
          "type": "boolean"
        },
        "endpointNames": {
          "description": "The endpoints to which messages that satisfy the condition are routed. Currently only 1 endpoint is allowed.\n",
          "type": "string"
        },
        "iothubName": {
          "description": "The name of the IoTHub to which this Fallback Route belongs. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the IotHub Storage Container Endpoint resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "condition": {
          "description": "The condition that is evaluated to apply the routing rule. If no condition is provided, it evaluates to `true` by default. For grammar, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-query-language.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Used to specify whether the fallback route is enabled.\n",
          "type": "boolean"
        },
        "endpointNames": {
          "description": "The endpoints to which messages that satisfy the condition are routed. Currently only 1 endpoint is allowed.\n",
          "type": "string"
        },
        "iothubName": {
          "description": "The name of the IoTHub to which this Fallback Route belongs. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the IotHub Storage Container Endpoint resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "endpointNames",
        "iothubName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "enabled",
        "endpointNames",
        "iothubName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FallbackRoute resources.\n",
        "properties": {
          "condition": {
            "description": "The condition that is evaluated to apply the routing rule. If no condition is provided, it evaluates to `true` by default. For grammar, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-query-language.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Used to specify whether the fallback route is enabled.\n",
            "type": "boolean"
          },
          "endpointNames": {
            "description": "The endpoints to which messages that satisfy the condition are routed. Currently only 1 endpoint is allowed.\n",
            "type": "string"
          },
          "iothubName": {
            "description": "The name of the IoTHub to which this Fallback Route belongs. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group under which the IotHub Storage Container Endpoint resource has to be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/ioTHub:IoTHub": {
      "description": "Manages an IotHub\n\n\u003e **NOTE:** Endpoints can be defined either directly on the `azure.iot.IoTHub` resource, or using the `azurerm_iothub_endpoint_*` resources - but the two ways of defining the endpoints cannot be used together. If both are used against the same IoTHub, spurious changes will occur. Also, defining a `azurerm_iothub_endpoint_*` resource and another endpoint of a different type directly on the `azure.iot.IoTHub` resource is not supported.\n\n\u003e **NOTE:** Routes can be defined either directly on the `azure.iot.IoTHub` resource, or using the `azure.iot.Route` resource - but the two cannot be used together. If both are used against the same IoTHub, spurious changes will occur.\n\n\u003e **NOTE:** Enrichments can be defined either directly on the `azure.iot.IoTHub` resource, or using the `azure.iot.Enrichment` resource - but the two cannot be used together. If both are used against the same IoTHub, spurious changes will occur.\n\n\u003e **NOTE:** Fallback route can be defined either directly on the `azure.iot.IoTHub` resource, or using the `azure.iot.FallbackRoute` resource - but the two cannot be used together. If both are used against the same IoTHub, spurious changes will occur.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleEventHubNamespace = new azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: \"Basic\",\n});\nconst exampleEventHub = new azure.eventhub.EventHub(\"exampleEventHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleEventHubNamespace.name,\n    partitionCount: 2,\n    messageRetention: 1,\n});\nconst exampleAuthorizationRule = new azure.eventhub.AuthorizationRule(\"exampleAuthorizationRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleEventHubNamespace.name,\n    eventhubName: exampleEventHub.name,\n    send: true,\n});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"S1\",\n        capacity: \"1\",\n    },\n    endpoints: [\n        {\n            type: \"AzureIotHub.StorageContainer\",\n            connectionString: exampleAccount.primaryBlobConnectionString,\n            name: \"export\",\n            batchFrequencyInSeconds: 60,\n            maxChunkSizeInBytes: 10485760,\n            containerName: exampleContainer.name,\n            encoding: \"Avro\",\n            fileNameFormat: \"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\",\n        },\n        {\n            type: \"AzureIotHub.EventHub\",\n            connectionString: exampleAuthorizationRule.primaryConnectionString,\n            name: \"export2\",\n        },\n    ],\n    routes: [\n        {\n            name: \"export\",\n            source: \"DeviceMessages\",\n            condition: \"true\",\n            endpointNames: [\"export\"],\n            enabled: true,\n        },\n        {\n            name: \"export2\",\n            source: \"DeviceMessages\",\n            condition: \"true\",\n            endpointNames: [\"export2\"],\n            enabled: true,\n        },\n    ],\n    enrichments: [{\n        key: \"tenant\",\n        value: `$twin.tags.Tenant`,\n        endpointNames: [\n            \"export\",\n            \"export2\",\n        ],\n    }],\n    tags: {\n        purpose: \"testing\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_event_hub_namespace = azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=\"Basic\")\nexample_event_hub = azure.eventhub.EventHub(\"exampleEventHub\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_event_hub_namespace.name,\n    partition_count=2,\n    message_retention=1)\nexample_authorization_rule = azure.eventhub.AuthorizationRule(\"exampleAuthorizationRule\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_event_hub_namespace.name,\n    eventhub_name=example_event_hub.name,\n    send=True)\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"S1\",\n        capacity=1,\n    ),\n    endpoints=[\n        azure.iot.IoTHubEndpointArgs(\n            type=\"AzureIotHub.StorageContainer\",\n            connection_string=example_account.primary_blob_connection_string,\n            name=\"export\",\n            batch_frequency_in_seconds=60,\n            max_chunk_size_in_bytes=10485760,\n            container_name=example_container.name,\n            encoding=\"Avro\",\n            file_name_format=\"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\",\n        ),\n        azure.iot.IoTHubEndpointArgs(\n            type=\"AzureIotHub.EventHub\",\n            connection_string=example_authorization_rule.primary_connection_string,\n            name=\"export2\",\n        ),\n    ],\n    routes=[\n        azure.iot.IoTHubRouteArgs(\n            name=\"export\",\n            source=\"DeviceMessages\",\n            condition=\"true\",\n            endpoint_names=[\"export\"],\n            enabled=True,\n        ),\n        azure.iot.IoTHubRouteArgs(\n            name=\"export2\",\n            source=\"DeviceMessages\",\n            condition=\"true\",\n            endpoint_names=[\"export2\"],\n            enabled=True,\n        ),\n    ],\n    enrichments=[azure.iot.IoTHubEnrichmentArgs(\n        key=\"tenant\",\n        value=\"$twin.tags.Tenant\",\n        endpoint_names=[\n            \"export\",\n            \"export2\",\n        ],\n    )],\n    tags={\n        \"purpose\": \"testing\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"exampleEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = \"Basic\",\n        });\n        var exampleEventHub = new Azure.EventHub.EventHub(\"exampleEventHub\", new Azure.EventHub.EventHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleEventHubNamespace.Name,\n            PartitionCount = 2,\n            MessageRetention = 1,\n        });\n        var exampleAuthorizationRule = new Azure.EventHub.AuthorizationRule(\"exampleAuthorizationRule\", new Azure.EventHub.AuthorizationRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleEventHubNamespace.Name,\n            EventhubName = exampleEventHub.Name,\n            Send = true,\n        });\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"S1\",\n                Capacity = 1,\n            },\n            Endpoints = \n            {\n                new Azure.Iot.Inputs.IoTHubEndpointArgs\n                {\n                    Type = \"AzureIotHub.StorageContainer\",\n                    ConnectionString = exampleAccount.PrimaryBlobConnectionString,\n                    Name = \"export\",\n                    BatchFrequencyInSeconds = 60,\n                    MaxChunkSizeInBytes = 10485760,\n                    ContainerName = exampleContainer.Name,\n                    Encoding = \"Avro\",\n                    FileNameFormat = \"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\",\n                },\n                new Azure.Iot.Inputs.IoTHubEndpointArgs\n                {\n                    Type = \"AzureIotHub.EventHub\",\n                    ConnectionString = exampleAuthorizationRule.PrimaryConnectionString,\n                    Name = \"export2\",\n                },\n            },\n            Routes = \n            {\n                new Azure.Iot.Inputs.IoTHubRouteArgs\n                {\n                    Name = \"export\",\n                    Source = \"DeviceMessages\",\n                    Condition = \"true\",\n                    EndpointNames = \n                    {\n                        \"export\",\n                    },\n                    Enabled = true,\n                },\n                new Azure.Iot.Inputs.IoTHubRouteArgs\n                {\n                    Name = \"export2\",\n                    Source = \"DeviceMessages\",\n                    Condition = \"true\",\n                    EndpointNames = \n                    {\n                        \"export2\",\n                    },\n                    Enabled = true,\n                },\n            },\n            Enrichments = \n            {\n                new Azure.Iot.Inputs.IoTHubEnrichmentArgs\n                {\n                    Key = \"tenant\",\n                    Value = \"$twin.tags.Tenant\",\n                    EndpointNames = \n                    {\n                        \"export\",\n                        \"export2\",\n                    },\n                },\n            },\n            Tags = \n            {\n                { \"purpose\", \"testing\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHubNamespace, err := eventhub.NewEventHubNamespace(ctx, \"exampleEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku:               pulumi.String(\"Basic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHub, err := eventhub.NewEventHub(ctx, \"exampleEventHub\", \u0026eventhub.EventHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tPartitionCount:    pulumi.Int(2),\n\t\t\tMessageRetention:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAuthorizationRule, err := eventhub.NewAuthorizationRule(ctx, \"exampleAuthorizationRule\", \u0026eventhub.AuthorizationRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tEventhubName:      exampleEventHub.Name,\n\t\t\tSend:              pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"S1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t\tEndpoints: iot.IoTHubEndpointArray{\n\t\t\t\t\u0026iot.IoTHubEndpointArgs{\n\t\t\t\t\tType:                    pulumi.String(\"AzureIotHub.StorageContainer\"),\n\t\t\t\t\tConnectionString:        exampleAccount.PrimaryBlobConnectionString,\n\t\t\t\t\tName:                    pulumi.String(\"export\"),\n\t\t\t\t\tBatchFrequencyInSeconds: pulumi.Int(60),\n\t\t\t\t\tMaxChunkSizeInBytes:     pulumi.Int(10485760),\n\t\t\t\t\tContainerName:           exampleContainer.Name,\n\t\t\t\t\tEncoding:                pulumi.String(\"Avro\"),\n\t\t\t\t\tFileNameFormat:          pulumi.String(\"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\"),\n\t\t\t\t},\n\t\t\t\t\u0026iot.IoTHubEndpointArgs{\n\t\t\t\t\tType:             pulumi.String(\"AzureIotHub.EventHub\"),\n\t\t\t\t\tConnectionString: exampleAuthorizationRule.PrimaryConnectionString,\n\t\t\t\t\tName:             pulumi.String(\"export2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRoutes: iot.IoTHubRouteArray{\n\t\t\t\t\u0026iot.IoTHubRouteArgs{\n\t\t\t\t\tName:      pulumi.String(\"export\"),\n\t\t\t\t\tSource:    pulumi.String(\"DeviceMessages\"),\n\t\t\t\t\tCondition: pulumi.String(\"true\"),\n\t\t\t\t\tEndpointNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"export\"),\n\t\t\t\t\t},\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026iot.IoTHubRouteArgs{\n\t\t\t\t\tName:      pulumi.String(\"export2\"),\n\t\t\t\t\tSource:    pulumi.String(\"DeviceMessages\"),\n\t\t\t\t\tCondition: pulumi.String(\"true\"),\n\t\t\t\t\tEndpointNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"export2\"),\n\t\t\t\t\t},\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnrichments: iot.IoTHubEnrichmentArray{\n\t\t\t\t\u0026iot.IoTHubEnrichmentArgs{\n\t\t\t\t\tKey:   pulumi.String(\"tenant\"),\n\t\t\t\t\tValue: pulumi.String(fmt.Sprintf(\"%v%v\", \"$\", \"twin.tags.Tenant\")),\n\t\t\t\t\tEndpointNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"export\"),\n\t\t\t\t\t\tpulumi.String(\"export2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"purpose\": pulumi.String(\"testing\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIoTHubs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/ioTHub:IoTHub hub1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/IotHubs/hub1\n```\n\n ",
      "inputProperties": {
        "endpoints": {
          "description": "An `endpoint` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:iot/IoTHubEndpoint:IoTHubEndpoint"
          },
          "type": "array"
        },
        "enrichments": {
          "description": "A `enrichment` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:iot/IoTHubEnrichment:IoTHubEnrichment"
          },
          "type": "array"
        },
        "eventHubPartitionCount": {
          "description": "The number of device-to-cloud partitions used by backing event hubs. Must be between `2` and `128`.\n",
          "type": "integer"
        },
        "eventHubRetentionInDays": {
          "description": "The event hub retention to use in days. Must be between `1` and `7`.\n",
          "type": "integer"
        },
        "fallbackRoute": {
          "$ref": "#/types/azure:iot/IoTHubFallbackRoute:IoTHubFallbackRoute",
          "description": "A `fallback_route` block as defined below. If the fallback route is enabled, messages that don't match any of the supplied routes are automatically sent to this route. Defaults to messages/events.\n"
        },
        "fileUpload": {
          "$ref": "#/types/azure:iot/IoTHubFileUpload:IoTHubFileUpload",
          "description": "A `file_upload` block as defined below.\n"
        },
        "ipFilterRules": {
          "description": "One or more `ip_filter_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:iot/IoTHubIpFilterRule:IoTHubIpFilterRule"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "minTlsVersion": {
          "description": "Specifies the minimum TLS version to support for this hub. The only valid value is `1.2`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the IotHub resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Is the IotHub resource accessible from a public network?\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the IotHub resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routes": {
          "description": "A `route` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:iot/IoTHubRoute:IoTHubRoute"
          },
          "type": "array"
        },
        "sku": {
          "$ref": "#/types/azure:iot/IoTHubSku:IoTHubSku",
          "description": "A `sku` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "endpoints": {
          "description": "An `endpoint` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:iot/IoTHubEndpoint:IoTHubEndpoint"
          },
          "type": "array"
        },
        "enrichments": {
          "description": "A `enrichment` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:iot/IoTHubEnrichment:IoTHubEnrichment"
          },
          "type": "array"
        },
        "eventHubEventsEndpoint": {
          "description": "The EventHub compatible endpoint for events data\n",
          "type": "string"
        },
        "eventHubEventsPath": {
          "description": "The EventHub compatible path for events data\n",
          "type": "string"
        },
        "eventHubOperationsEndpoint": {
          "description": "The EventHub compatible endpoint for operational data\n",
          "type": "string"
        },
        "eventHubOperationsPath": {
          "description": "The EventHub compatible path for operational data\n",
          "type": "string"
        },
        "eventHubPartitionCount": {
          "description": "The number of device-to-cloud partitions used by backing event hubs. Must be between `2` and `128`.\n",
          "type": "integer"
        },
        "eventHubRetentionInDays": {
          "description": "The event hub retention to use in days. Must be between `1` and `7`.\n",
          "type": "integer"
        },
        "fallbackRoute": {
          "$ref": "#/types/azure:iot/IoTHubFallbackRoute:IoTHubFallbackRoute",
          "description": "A `fallback_route` block as defined below. If the fallback route is enabled, messages that don't match any of the supplied routes are automatically sent to this route. Defaults to messages/events.\n"
        },
        "fileUpload": {
          "$ref": "#/types/azure:iot/IoTHubFileUpload:IoTHubFileUpload",
          "description": "A `file_upload` block as defined below.\n"
        },
        "hostname": {
          "description": "The hostname of the IotHub Resource.\n",
          "type": "string"
        },
        "ipFilterRules": {
          "description": "One or more `ip_filter_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:iot/IoTHubIpFilterRule:IoTHubIpFilterRule"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "minTlsVersion": {
          "description": "Specifies the minimum TLS version to support for this hub. The only valid value is `1.2`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the IotHub resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Is the IotHub resource accessible from a public network?\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the IotHub resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routes": {
          "description": "A `route` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:iot/IoTHubRoute:IoTHubRoute"
          },
          "type": "array"
        },
        "sharedAccessPolicies": {
          "description": "One or more `shared_access_policy` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:iot/IoTHubSharedAccessPolicy:IoTHubSharedAccessPolicy"
          },
          "type": "array"
        },
        "sku": {
          "$ref": "#/types/azure:iot/IoTHubSku:IoTHubSku",
          "description": "A `sku` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "type": {
          "description": "The type of the endpoint. Possible values are `AzureIotHub.StorageContainer`, `AzureIotHub.ServiceBusQueue`, `AzureIotHub.ServiceBusTopic` or `AzureIotHub.EventHub`.\n",
          "type": "string"
        }
      },
      "required": [
        "endpoints",
        "enrichments",
        "eventHubEventsEndpoint",
        "eventHubEventsPath",
        "eventHubOperationsEndpoint",
        "eventHubOperationsPath",
        "eventHubPartitionCount",
        "eventHubRetentionInDays",
        "fallbackRoute",
        "hostname",
        "location",
        "name",
        "resourceGroupName",
        "routes",
        "sharedAccessPolicies",
        "sku",
        "type"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IoTHub resources.\n",
        "properties": {
          "endpoints": {
            "description": "An `endpoint` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:iot/IoTHubEndpoint:IoTHubEndpoint"
            },
            "type": "array"
          },
          "enrichments": {
            "description": "A `enrichment` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:iot/IoTHubEnrichment:IoTHubEnrichment"
            },
            "type": "array"
          },
          "eventHubEventsEndpoint": {
            "description": "The EventHub compatible endpoint for events data\n",
            "type": "string"
          },
          "eventHubEventsPath": {
            "description": "The EventHub compatible path for events data\n",
            "type": "string"
          },
          "eventHubOperationsEndpoint": {
            "description": "The EventHub compatible endpoint for operational data\n",
            "type": "string"
          },
          "eventHubOperationsPath": {
            "description": "The EventHub compatible path for operational data\n",
            "type": "string"
          },
          "eventHubPartitionCount": {
            "description": "The number of device-to-cloud partitions used by backing event hubs. Must be between `2` and `128`.\n",
            "type": "integer"
          },
          "eventHubRetentionInDays": {
            "description": "The event hub retention to use in days. Must be between `1` and `7`.\n",
            "type": "integer"
          },
          "fallbackRoute": {
            "$ref": "#/types/azure:iot/IoTHubFallbackRoute:IoTHubFallbackRoute",
            "description": "A `fallback_route` block as defined below. If the fallback route is enabled, messages that don't match any of the supplied routes are automatically sent to this route. Defaults to messages/events.\n"
          },
          "fileUpload": {
            "$ref": "#/types/azure:iot/IoTHubFileUpload:IoTHubFileUpload",
            "description": "A `file_upload` block as defined below.\n"
          },
          "hostname": {
            "description": "The hostname of the IotHub Resource.\n",
            "type": "string"
          },
          "ipFilterRules": {
            "description": "One or more `ip_filter_rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:iot/IoTHubIpFilterRule:IoTHubIpFilterRule"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "minTlsVersion": {
            "description": "Specifies the minimum TLS version to support for this hub. The only valid value is `1.2`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the IotHub resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Is the IotHub resource accessible from a public network?\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group under which the IotHub resource has to be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "routes": {
            "description": "A `route` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:iot/IoTHubRoute:IoTHubRoute"
            },
            "type": "array"
          },
          "sharedAccessPolicies": {
            "description": "One or more `shared_access_policy` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:iot/IoTHubSharedAccessPolicy:IoTHubSharedAccessPolicy"
            },
            "type": "array"
          },
          "sku": {
            "$ref": "#/types/azure:iot/IoTHubSku:IoTHubSku",
            "description": "A `sku` block as defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "type": {
            "description": "The type of the endpoint. Possible values are `AzureIotHub.StorageContainer`, `AzureIotHub.ServiceBusQueue`, `AzureIotHub.ServiceBusTopic` or `AzureIotHub.EventHub`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/iotHubCertificate:IotHubCertificate": {
      "description": "Manages an IotHub Device Provisioning Service Certificate. \n\n\n## Import\n\nIoTHub Device Provisioning Service Certificates can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/iotHubCertificate:IotHubCertificate example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/provisioningServices/example/certificates/example\n```\n\n ",
      "inputProperties": {
        "certificateContent": {
          "description": "The Base-64 representation of the X509 leaf certificate .cer file or just a .pem file content.\n",
          "type": "string"
        },
        "iotDpsName": {
          "description": "The name of the IoT Device Provisioning Service that this certificate will be attached to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Iot Device Provisioning Service Certificate resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the Iot Device Provisioning Service Certificate resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "certificateContent": {
          "description": "The Base-64 representation of the X509 leaf certificate .cer file or just a .pem file content.\n",
          "type": "string"
        },
        "iotDpsName": {
          "description": "The name of the IoT Device Provisioning Service that this certificate will be attached to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Iot Device Provisioning Service Certificate resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the Iot Device Provisioning Service Certificate resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "certificateContent",
        "iotDpsName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "certificateContent",
        "iotDpsName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IotHubCertificate resources.\n",
        "properties": {
          "certificateContent": {
            "description": "The Base-64 representation of the X509 leaf certificate .cer file or just a .pem file content.\n",
            "type": "string"
          },
          "iotDpsName": {
            "description": "The name of the IoT Device Provisioning Service that this certificate will be attached to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Iot Device Provisioning Service Certificate resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group under which the Iot Device Provisioning Service Certificate resource has to be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/iotHubDps:IotHubDps": {
      "description": "Manages an IotHub Device Provisioning Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleIotHubDps = new azure.iot.IotHubDps(\"exampleIotHubDps\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    allocationPolicy: \"Hashed\",\n    sku: {\n        name: \"S1\",\n        capacity: \"1\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_iot_hub_dps = azure.iot.IotHubDps(\"exampleIotHubDps\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    allocation_policy=\"Hashed\",\n    sku=azure.iot.IotHubDpsSkuArgs(\n        name=\"S1\",\n        capacity=1,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleIotHubDps = new Azure.Iot.IotHubDps(\"exampleIotHubDps\", new Azure.Iot.IotHubDpsArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AllocationPolicy = \"Hashed\",\n            Sku = new Azure.Iot.Inputs.IotHubDpsSkuArgs\n            {\n                Name = \"S1\",\n                Capacity = 1,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewIotHubDps(ctx, \"exampleIotHubDps\", \u0026iot.IotHubDpsArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tAllocationPolicy:  pulumi.String(\"Hashed\"),\n\t\t\tSku: \u0026iot.IotHubDpsSkuArgs{\n\t\t\t\tName:     pulumi.String(\"S1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIoT Device Provisioning Service can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/iotHubDps:IotHubDps example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/provisioningServices/example\n```\n\n ",
      "inputProperties": {
        "allocationPolicy": {
          "description": "The allocation policy of the IoT Device Provisioning Service (`Hashed`, `GeoLatency` or `Static`). Defaults to `Hashed`.\n",
          "type": "string"
        },
        "linkedHubs": {
          "description": "A `linked_hub` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:iot/IotHubDpsLinkedHub:IotHubDpsLinkedHub"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource has to be createc. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Iot Device Provisioning Service resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the Iot Device Provisioning Service resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "$ref": "#/types/azure:iot/IotHubDpsSku:IotHubDpsSku",
          "description": "A `sku` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "allocationPolicy": {
          "description": "The allocation policy of the IoT Device Provisioning Service (`Hashed`, `GeoLatency` or `Static`). Defaults to `Hashed`.\n",
          "type": "string"
        },
        "deviceProvisioningHostName": {
          "description": "The device endpoint of the IoT Device Provisioning Service.\n",
          "type": "string"
        },
        "idScope": {
          "description": "The unique identifier of the IoT Device Provisioning Service.\n",
          "type": "string"
        },
        "linkedHubs": {
          "description": "A `linked_hub` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:iot/IotHubDpsLinkedHub:IotHubDpsLinkedHub"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource has to be createc. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Iot Device Provisioning Service resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the Iot Device Provisioning Service resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceOperationsHostName": {
          "description": "The service endpoint of the IoT Device Provisioning Service.\n",
          "type": "string"
        },
        "sku": {
          "$ref": "#/types/azure:iot/IotHubDpsSku:IotHubDpsSku",
          "description": "A `sku` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "deviceProvisioningHostName",
        "idScope",
        "location",
        "name",
        "resourceGroupName",
        "serviceOperationsHostName",
        "sku"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IotHubDps resources.\n",
        "properties": {
          "allocationPolicy": {
            "description": "The allocation policy of the IoT Device Provisioning Service (`Hashed`, `GeoLatency` or `Static`). Defaults to `Hashed`.\n",
            "type": "string"
          },
          "deviceProvisioningHostName": {
            "description": "The device endpoint of the IoT Device Provisioning Service.\n",
            "type": "string"
          },
          "idScope": {
            "description": "The unique identifier of the IoT Device Provisioning Service.\n",
            "type": "string"
          },
          "linkedHubs": {
            "description": "A `linked_hub` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:iot/IotHubDpsLinkedHub:IotHubDpsLinkedHub"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource has to be createc. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Iot Device Provisioning Service resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group under which the Iot Device Provisioning Service resource has to be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serviceOperationsHostName": {
            "description": "The service endpoint of the IoT Device Provisioning Service.\n",
            "type": "string"
          },
          "sku": {
            "$ref": "#/types/azure:iot/IotHubDpsSku:IotHubDpsSku",
            "description": "A `sku` block as defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/route:Route": {
      "description": "Manages an IotHub Route\n\n\u003e **NOTE:** Routes can be defined either directly on the `azure.iot.IoTHub` resource, or using the `azure.iot.Route` resourcs - but the two cannot be used together. If both are used against the same IoTHub, spurious changes will occur.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"S1\",\n        capacity: \"1\",\n    },\n    tags: {\n        purpose: \"testing\",\n    },\n});\nconst exampleEndpointStorageContainer = new azure.iot.EndpointStorageContainer(\"exampleEndpointStorageContainer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubName: exampleIoTHub.name,\n    connectionString: exampleAccount.primaryBlobConnectionString,\n    batchFrequencyInSeconds: 60,\n    maxChunkSizeInBytes: 10485760,\n    containerName: exampleContainer.name,\n    encoding: \"Avro\",\n    fileNameFormat: \"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\",\n});\nconst exampleRoute = new azure.iot.Route(\"exampleRoute\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubName: exampleIoTHub.name,\n    source: \"DeviceMessages\",\n    condition: \"true\",\n    endpointNames: [exampleEndpointStorageContainer.name],\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"S1\",\n        capacity=1,\n    ),\n    tags={\n        \"purpose\": \"testing\",\n    })\nexample_endpoint_storage_container = azure.iot.EndpointStorageContainer(\"exampleEndpointStorageContainer\",\n    resource_group_name=example_resource_group.name,\n    iothub_name=example_io_t_hub.name,\n    connection_string=example_account.primary_blob_connection_string,\n    batch_frequency_in_seconds=60,\n    max_chunk_size_in_bytes=10485760,\n    container_name=example_container.name,\n    encoding=\"Avro\",\n    file_name_format=\"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\")\nexample_route = azure.iot.Route(\"exampleRoute\",\n    resource_group_name=example_resource_group.name,\n    iothub_name=example_io_t_hub.name,\n    source=\"DeviceMessages\",\n    condition=\"true\",\n    endpoint_names=[example_endpoint_storage_container.name],\n    enabled=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"S1\",\n                Capacity = 1,\n            },\n            Tags = \n            {\n                { \"purpose\", \"testing\" },\n            },\n        });\n        var exampleEndpointStorageContainer = new Azure.Iot.EndpointStorageContainer(\"exampleEndpointStorageContainer\", new Azure.Iot.EndpointStorageContainerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubName = exampleIoTHub.Name,\n            ConnectionString = exampleAccount.PrimaryBlobConnectionString,\n            BatchFrequencyInSeconds = 60,\n            MaxChunkSizeInBytes = 10485760,\n            ContainerName = exampleContainer.Name,\n            Encoding = \"Avro\",\n            FileNameFormat = \"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\",\n        });\n        var exampleRoute = new Azure.Iot.Route(\"exampleRoute\", new Azure.Iot.RouteArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubName = exampleIoTHub.Name,\n            Source = \"DeviceMessages\",\n            Condition = \"true\",\n            EndpointNames = \n            {\n                exampleEndpointStorageContainer.Name,\n            },\n            Enabled = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIoTHub, err := iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"S1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"purpose\": pulumi.String(\"testing\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEndpointStorageContainer, err := iot.NewEndpointStorageContainer(ctx, \"exampleEndpointStorageContainer\", \u0026iot.EndpointStorageContainerArgs{\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tIothubName:              exampleIoTHub.Name,\n\t\t\tConnectionString:        exampleAccount.PrimaryBlobConnectionString,\n\t\t\tBatchFrequencyInSeconds: pulumi.Int(60),\n\t\t\tMaxChunkSizeInBytes:     pulumi.Int(10485760),\n\t\t\tContainerName:           exampleContainer.Name,\n\t\t\tEncoding:                pulumi.String(\"Avro\"),\n\t\t\tFileNameFormat:          pulumi.String(\"{iothub}/{partition}_{YYYY}_{MM}_{DD}_{HH}_{mm}\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewRoute(ctx, \"exampleRoute\", \u0026iot.RouteArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIothubName:        exampleIoTHub.Name,\n\t\t\tSource:            pulumi.String(\"DeviceMessages\"),\n\t\t\tCondition:         pulumi.String(\"true\"),\n\t\t\tEndpointNames: pulumi.String{\n\t\t\t\texampleEndpointStorageContainer.Name,\n\t\t\t},\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIoTHub Route can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/route:Route route1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/IotHubs/hub1/Routes/route1\n```\n\n ",
      "inputProperties": {
        "condition": {
          "description": "The condition that is evaluated to apply the routing rule. If no condition is provided, it evaluates to `true` by default. For grammar, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-query-language.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Specifies whether a route is enabled.\n",
          "type": "boolean"
        },
        "endpointNames": {
          "description": "The list of endpoints to which messages that satisfy the condition are routed. Currently only one endpoint is allowed.\n",
          "type": "string"
        },
        "iothubName": {
          "description": "The name of the IoTHub to which this Route belongs. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the route.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the IotHub Route resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "source": {
          "description": "The source that the routing rule is to be applied to. Possible values include: `DeviceConnectionStateEvents`, `DeviceJobLifecycleEvents`, `DeviceLifecycleEvents`, `DeviceMessages`, `Invalid`, `TwinChangeEvents`.\n",
          "type": "string"
        }
      },
      "properties": {
        "condition": {
          "description": "The condition that is evaluated to apply the routing rule. If no condition is provided, it evaluates to `true` by default. For grammar, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-query-language.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Specifies whether a route is enabled.\n",
          "type": "boolean"
        },
        "endpointNames": {
          "description": "The list of endpoints to which messages that satisfy the condition are routed. Currently only one endpoint is allowed.\n",
          "type": "string"
        },
        "iothubName": {
          "description": "The name of the IoTHub to which this Route belongs. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the route.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the IotHub Route resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "source": {
          "description": "The source that the routing rule is to be applied to. Possible values include: `DeviceConnectionStateEvents`, `DeviceJobLifecycleEvents`, `DeviceLifecycleEvents`, `DeviceMessages`, `Invalid`, `TwinChangeEvents`.\n",
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "endpointNames",
        "iothubName",
        "name",
        "resourceGroupName",
        "source"
      ],
      "requiredInputs": [
        "enabled",
        "endpointNames",
        "iothubName",
        "resourceGroupName",
        "source"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Route resources.\n",
        "properties": {
          "condition": {
            "description": "The condition that is evaluated to apply the routing rule. If no condition is provided, it evaluates to `true` by default. For grammar, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-query-language.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Specifies whether a route is enabled.\n",
            "type": "boolean"
          },
          "endpointNames": {
            "description": "The list of endpoints to which messages that satisfy the condition are routed. Currently only one endpoint is allowed.\n",
            "type": "string"
          },
          "iothubName": {
            "description": "The name of the IoTHub to which this Route belongs. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the route.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group under which the IotHub Route resource has to be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "source": {
            "description": "The source that the routing rule is to be applied to. Possible values include: `DeviceConnectionStateEvents`, `DeviceJobLifecycleEvents`, `DeviceLifecycleEvents`, `DeviceMessages`, `Invalid`, `TwinChangeEvents`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/securityDeviceGroup:SecurityDeviceGroup": {
      "description": "Manages a Iot Security Device Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"S1\",\n        capacity: \"1\",\n    },\n});\nconst exampleSecuritySolution = new azure.iot.SecuritySolution(\"exampleSecuritySolution\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    displayName: \"Iot Security Solution\",\n    iothubIds: [exampleIoTHub.id],\n});\nconst exampleSecurityDeviceGroup = new azure.iot.SecurityDeviceGroup(\"exampleSecurityDeviceGroup\", {\n    iothubId: exampleIoTHub.id,\n    allowRule: {\n        connectionToIpNotAlloweds: [\"10.0.0.0/24\"],\n    },\n    rangeRules: [{\n        type: \"ActiveConnectionsNotInAllowedRange\",\n        min: 0,\n        max: 30,\n        duration: \"PT5M\",\n    }],\n}, {\n    dependsOn: [exampleSecuritySolution],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"S1\",\n        capacity=1,\n    ))\nexample_security_solution = azure.iot.SecuritySolution(\"exampleSecuritySolution\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    display_name=\"Iot Security Solution\",\n    iothub_ids=[example_io_t_hub.id])\nexample_security_device_group = azure.iot.SecurityDeviceGroup(\"exampleSecurityDeviceGroup\",\n    iothub_id=example_io_t_hub.id,\n    allow_rule=azure.iot.SecurityDeviceGroupAllowRuleArgs(\n        connection_to_ip_not_alloweds=[\"10.0.0.0/24\"],\n    ),\n    range_rules=[azure.iot.SecurityDeviceGroupRangeRuleArgs(\n        type=\"ActiveConnectionsNotInAllowedRange\",\n        min=0,\n        max=30,\n        duration=\"PT5M\",\n    )],\n    opts=pulumi.ResourceOptions(depends_on=[example_security_solution]))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"S1\",\n                Capacity = 1,\n            },\n        });\n        var exampleSecuritySolution = new Azure.Iot.SecuritySolution(\"exampleSecuritySolution\", new Azure.Iot.SecuritySolutionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            DisplayName = \"Iot Security Solution\",\n            IothubIds = \n            {\n                exampleIoTHub.Id,\n            },\n        });\n        var exampleSecurityDeviceGroup = new Azure.Iot.SecurityDeviceGroup(\"exampleSecurityDeviceGroup\", new Azure.Iot.SecurityDeviceGroupArgs\n        {\n            IothubId = exampleIoTHub.Id,\n            AllowRule = new Azure.Iot.Inputs.SecurityDeviceGroupAllowRuleArgs\n            {\n                ConnectionToIpNotAlloweds = \n                {\n                    \"10.0.0.0/24\",\n                },\n            },\n            RangeRules = \n            {\n                new Azure.Iot.Inputs.SecurityDeviceGroupRangeRuleArgs\n                {\n                    Type = \"ActiveConnectionsNotInAllowedRange\",\n                    Min = 0,\n                    Max = 30,\n                    Duration = \"PT5M\",\n                },\n            },\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                exampleSecuritySolution,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIoTHub, err := iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"S1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecuritySolution, err := iot.NewSecuritySolution(ctx, \"exampleSecuritySolution\", \u0026iot.SecuritySolutionArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tDisplayName:       pulumi.String(\"Iot Security Solution\"),\n\t\t\tIothubIds: pulumi.StringArray{\n\t\t\t\texampleIoTHub.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewSecurityDeviceGroup(ctx, \"exampleSecurityDeviceGroup\", \u0026iot.SecurityDeviceGroupArgs{\n\t\t\tIothubId: exampleIoTHub.ID(),\n\t\t\tAllowRule: \u0026iot.SecurityDeviceGroupAllowRuleArgs{\n\t\t\t\tConnectionToIpNotAlloweds: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"10.0.0.0/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRangeRules: iot.SecurityDeviceGroupRangeRuleArray{\n\t\t\t\t\u0026iot.SecurityDeviceGroupRangeRuleArgs{\n\t\t\t\t\tType:     pulumi.String(\"ActiveConnectionsNotInAllowedRange\"),\n\t\t\t\t\tMin:      pulumi.Int(0),\n\t\t\t\t\tMax:      pulumi.Int(30),\n\t\t\t\t\tDuration: pulumi.String(\"PT5M\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleSecuritySolution,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIot Security Device Group can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/securityDeviceGroup:SecurityDeviceGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/providers/Microsoft.Security/deviceSecurityGroups/group1\n```\n\n ",
      "inputProperties": {
        "allowRule": {
          "$ref": "#/types/azure:iot/SecurityDeviceGroupAllowRule:SecurityDeviceGroupAllowRule",
          "description": "an `allow_rule` blocks as defined below.\n"
        },
        "iothubId": {
          "description": "The ID of the IoT Hub which to link the Security Device Group to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Device Security Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rangeRules": {
          "description": "One or more `range_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:iot/SecurityDeviceGroupRangeRule:SecurityDeviceGroupRangeRule"
          },
          "type": "array"
        }
      },
      "properties": {
        "allowRule": {
          "$ref": "#/types/azure:iot/SecurityDeviceGroupAllowRule:SecurityDeviceGroupAllowRule",
          "description": "an `allow_rule` blocks as defined below.\n"
        },
        "iothubId": {
          "description": "The ID of the IoT Hub which to link the Security Device Group to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Device Security Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rangeRules": {
          "description": "One or more `range_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:iot/SecurityDeviceGroupRangeRule:SecurityDeviceGroupRangeRule"
          },
          "type": "array"
        }
      },
      "required": [
        "iothubId",
        "name"
      ],
      "requiredInputs": [
        "iothubId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SecurityDeviceGroup resources.\n",
        "properties": {
          "allowRule": {
            "$ref": "#/types/azure:iot/SecurityDeviceGroupAllowRule:SecurityDeviceGroupAllowRule",
            "description": "an `allow_rule` blocks as defined below.\n"
          },
          "iothubId": {
            "description": "The ID of the IoT Hub which to link the Security Device Group to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Device Security Group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "rangeRules": {
            "description": "One or more `range_rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:iot/SecurityDeviceGroupRangeRule:SecurityDeviceGroupRangeRule"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/securitySolution:SecuritySolution": {
      "description": "Manages an iot security solution.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"S1\",\n        capacity: \"1\",\n    },\n});\nconst exampleSecuritySolution = new azure.iot.SecuritySolution(\"exampleSecuritySolution\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    displayName: \"Iot Security Solution\",\n    iothubIds: [exampleIoTHub.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"S1\",\n        capacity=1,\n    ))\nexample_security_solution = azure.iot.SecuritySolution(\"exampleSecuritySolution\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    display_name=\"Iot Security Solution\",\n    iothub_ids=[example_io_t_hub.id])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"S1\",\n                Capacity = 1,\n            },\n        });\n        var exampleSecuritySolution = new Azure.Iot.SecuritySolution(\"exampleSecuritySolution\", new Azure.Iot.SecuritySolutionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            DisplayName = \"Iot Security Solution\",\n            IothubIds = \n            {\n                exampleIoTHub.Id,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIoTHub, err := iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"S1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewSecuritySolution(ctx, \"exampleSecuritySolution\", \u0026iot.SecuritySolutionArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tDisplayName:       pulumi.String(\"Iot Security Solution\"),\n\t\t\tIothubIds: pulumi.StringArray{\n\t\t\t\texampleIoTHub.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIot Security Solution can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/securitySolution:SecuritySolution example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.Security/IoTSecuritySolutions/solution1\n```\n\n ",
      "inputProperties": {
        "displayName": {
          "description": "Specifies the Display Name for this Iot Security Solution.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is the Iot Security Solution enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "eventsToExports": {
          "description": "A list of data which is to exported to analytic workspace. Valid values include `RawEvents`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "iothubIds": {
          "description": "Specifies the IoT Hub resource IDs to which this Iot Security Solution is applied.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logAnalyticsWorkspaceId": {
          "description": "Specifies the Log Analytics Workspace ID to which the security data will be sent.\n",
          "type": "string"
        },
        "logUnmaskedIpsEnabled": {
          "description": "Should ip addressed be unmasked in the log? Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Iot Security Solution. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "queryForResources": {
          "description": "An Azure Resource Graph query used to set the resources monitored.\n",
          "type": "string"
        },
        "querySubscriptionIds": {
          "description": "A list of subscription Ids on which the user defined resources query should be executed.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "recommendationsEnabled": {
          "$ref": "#/types/azure:iot/SecuritySolutionRecommendationsEnabled:SecuritySolutionRecommendationsEnabled",
          "description": "A `recommendations_enabled` block of options to enable or disable as defined below.\n"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the resource group in which to create the Iot Security Solution. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "displayName": {
          "description": "Specifies the Display Name for this Iot Security Solution.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is the Iot Security Solution enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "eventsToExports": {
          "description": "A list of data which is to exported to analytic workspace. Valid values include `RawEvents`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "iothubIds": {
          "description": "Specifies the IoT Hub resource IDs to which this Iot Security Solution is applied.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logAnalyticsWorkspaceId": {
          "description": "Specifies the Log Analytics Workspace ID to which the security data will be sent.\n",
          "type": "string"
        },
        "logUnmaskedIpsEnabled": {
          "description": "Should ip addressed be unmasked in the log? Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Iot Security Solution. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "queryForResources": {
          "description": "An Azure Resource Graph query used to set the resources monitored.\n",
          "type": "string"
        },
        "querySubscriptionIds": {
          "description": "A list of subscription Ids on which the user defined resources query should be executed.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "recommendationsEnabled": {
          "$ref": "#/types/azure:iot/SecuritySolutionRecommendationsEnabled:SecuritySolutionRecommendationsEnabled",
          "description": "A `recommendations_enabled` block of options to enable or disable as defined below.\n"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the resource group in which to create the Iot Security Solution. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "displayName",
        "iothubIds",
        "location",
        "name",
        "queryForResources",
        "querySubscriptionIds",
        "recommendationsEnabled",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "displayName",
        "iothubIds",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SecuritySolution resources.\n",
        "properties": {
          "displayName": {
            "description": "Specifies the Display Name for this Iot Security Solution.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Is the Iot Security Solution enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "eventsToExports": {
            "description": "A list of data which is to exported to analytic workspace. Valid values include `RawEvents`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "iothubIds": {
            "description": "Specifies the IoT Hub resource IDs to which this Iot Security Solution is applied.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "logAnalyticsWorkspaceId": {
            "description": "Specifies the Log Analytics Workspace ID to which the security data will be sent.\n",
            "type": "string"
          },
          "logUnmaskedIpsEnabled": {
            "description": "Should ip addressed be unmasked in the log? Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the Iot Security Solution. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "queryForResources": {
            "description": "An Azure Resource Graph query used to set the resources monitored.\n",
            "type": "string"
          },
          "querySubscriptionIds": {
            "description": "A list of subscription Ids on which the user defined resources query should be executed.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "recommendationsEnabled": {
            "$ref": "#/types/azure:iot/SecuritySolutionRecommendationsEnabled:SecuritySolutionRecommendationsEnabled",
            "description": "A `recommendations_enabled` block of options to enable or disable as defined below.\n"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group in which to create the Iot Security Solution. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/sharedAccessPolicy:SharedAccessPolicy": {
      "description": "Manages an IotHub Shared Access Policy\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"S1\",\n        capacity: \"1\",\n    },\n});\nconst exampleSharedAccessPolicy = new azure.iot.SharedAccessPolicy(\"exampleSharedAccessPolicy\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubName: exampleIoTHub.name,\n    registryRead: true,\n    registryWrite: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"S1\",\n        capacity=1,\n    ))\nexample_shared_access_policy = azure.iot.SharedAccessPolicy(\"exampleSharedAccessPolicy\",\n    resource_group_name=example_resource_group.name,\n    iothub_name=example_io_t_hub.name,\n    registry_read=True,\n    registry_write=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"S1\",\n                Capacity = 1,\n            },\n        });\n        var exampleSharedAccessPolicy = new Azure.Iot.SharedAccessPolicy(\"exampleSharedAccessPolicy\", new Azure.Iot.SharedAccessPolicyArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubName = exampleIoTHub.Name,\n            RegistryRead = true,\n            RegistryWrite = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIoTHub, err := iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"S1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewSharedAccessPolicy(ctx, \"exampleSharedAccessPolicy\", \u0026iot.SharedAccessPolicyArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIothubName:        exampleIoTHub.Name,\n\t\t\tRegistryRead:      pulumi.Bool(true),\n\t\t\tRegistryWrite:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIoTHub Shared Access Policies can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/sharedAccessPolicy:SharedAccessPolicy shared_access_policy1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/IotHubs/hub1/IotHubKeys/shared_access_policy1\n```\n\n ",
      "inputProperties": {
        "deviceConnect": {
          "description": "Adds `DeviceConnect` permission to this Shared Access Account. It allows sending and receiving on the device-side endpoints.\n",
          "type": "boolean"
        },
        "iothubName": {
          "description": "The name of the IoTHub to which this Shared Access Policy belongs. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the IotHub Shared Access Policy resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "registryRead": {
          "description": "Adds `RegistryRead` permission to this Shared Access Account. It allows read access to the identity registry.\n",
          "type": "boolean"
        },
        "registryWrite": {
          "description": "Adds `RegistryWrite` permission to this Shared Access Account. It allows write access to the identity registry.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the IotHub Shared Access Policy resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceConnect": {
          "description": "Adds `ServiceConnect` permission to this Shared Access Account. It allows sending and receiving on the cloud-side endpoints.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "deviceConnect": {
          "description": "Adds `DeviceConnect` permission to this Shared Access Account. It allows sending and receiving on the device-side endpoints.\n",
          "type": "boolean"
        },
        "iothubName": {
          "description": "The name of the IoTHub to which this Shared Access Policy belongs. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the IotHub Shared Access Policy resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The primary connection string of the Shared Access Policy.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The primary key used to create the authentication token.\n",
          "type": "string"
        },
        "registryRead": {
          "description": "Adds `RegistryRead` permission to this Shared Access Account. It allows read access to the identity registry.\n",
          "type": "boolean"
        },
        "registryWrite": {
          "description": "Adds `RegistryWrite` permission to this Shared Access Account. It allows write access to the identity registry.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the IotHub Shared Access Policy resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The secondary connection string of the Shared Access Policy.\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The secondary key used to create the authentication token.\n",
          "type": "string"
        },
        "serviceConnect": {
          "description": "Adds `ServiceConnect` permission to this Shared Access Account. It allows sending and receiving on the cloud-side endpoints.\n",
          "type": "boolean"
        }
      },
      "required": [
        "iothubName",
        "name",
        "primaryConnectionString",
        "primaryKey",
        "resourceGroupName",
        "secondaryConnectionString",
        "secondaryKey"
      ],
      "requiredInputs": [
        "iothubName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SharedAccessPolicy resources.\n",
        "properties": {
          "deviceConnect": {
            "description": "Adds `DeviceConnect` permission to this Shared Access Account. It allows sending and receiving on the device-side endpoints.\n",
            "type": "boolean"
          },
          "iothubName": {
            "description": "The name of the IoTHub to which this Shared Access Policy belongs. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the IotHub Shared Access Policy resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The primary connection string of the Shared Access Policy.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The primary key used to create the authentication token.\n",
            "type": "string"
          },
          "registryRead": {
            "description": "Adds `RegistryRead` permission to this Shared Access Account. It allows read access to the identity registry.\n",
            "type": "boolean"
          },
          "registryWrite": {
            "description": "Adds `RegistryWrite` permission to this Shared Access Account. It allows write access to the identity registry.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group under which the IotHub Shared Access Policy resource has to be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The secondary connection string of the Shared Access Policy.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The secondary key used to create the authentication token.\n",
            "type": "string"
          },
          "serviceConnect": {
            "description": "Adds `ServiceConnect` permission to this Shared Access Account. It allows sending and receiving on the cloud-side endpoints.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/timeSeriesInsightsAccessPolicy:TimeSeriesInsightsAccessPolicy": {
      "description": "Manages an Azure IoT Time Series Insights Access Policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleTimeSeriesInsightsStandardEnvironment = new azure.iot.TimeSeriesInsightsStandardEnvironment(\"exampleTimeSeriesInsightsStandardEnvironment\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"S1_1\",\n    dataRetentionTime: \"P30D\",\n});\nconst exampleTimeSeriesInsightsAccessPolicy = new azure.iot.TimeSeriesInsightsAccessPolicy(\"exampleTimeSeriesInsightsAccessPolicy\", {\n    timeSeriesInsightsEnvironmentId: exampleTimeSeriesInsightsStandardEnvironment.name,\n    principalObjectId: \"aGUID\",\n    roles: [\"Reader\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_time_series_insights_standard_environment = azure.iot.TimeSeriesInsightsStandardEnvironment(\"exampleTimeSeriesInsightsStandardEnvironment\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"S1_1\",\n    data_retention_time=\"P30D\")\nexample_time_series_insights_access_policy = azure.iot.TimeSeriesInsightsAccessPolicy(\"exampleTimeSeriesInsightsAccessPolicy\",\n    time_series_insights_environment_id=example_time_series_insights_standard_environment.name,\n    principal_object_id=\"aGUID\",\n    roles=[\"Reader\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleTimeSeriesInsightsStandardEnvironment = new Azure.Iot.TimeSeriesInsightsStandardEnvironment(\"exampleTimeSeriesInsightsStandardEnvironment\", new Azure.Iot.TimeSeriesInsightsStandardEnvironmentArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"S1_1\",\n            DataRetentionTime = \"P30D\",\n        });\n        var exampleTimeSeriesInsightsAccessPolicy = new Azure.Iot.TimeSeriesInsightsAccessPolicy(\"exampleTimeSeriesInsightsAccessPolicy\", new Azure.Iot.TimeSeriesInsightsAccessPolicyArgs\n        {\n            TimeSeriesInsightsEnvironmentId = exampleTimeSeriesInsightsStandardEnvironment.Name,\n            PrincipalObjectId = \"aGUID\",\n            Roles = \n            {\n                \"Reader\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTimeSeriesInsightsStandardEnvironment, err := iot.NewTimeSeriesInsightsStandardEnvironment(ctx, \"exampleTimeSeriesInsightsStandardEnvironment\", \u0026iot.TimeSeriesInsightsStandardEnvironmentArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"S1_1\"),\n\t\t\tDataRetentionTime: pulumi.String(\"P30D\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewTimeSeriesInsightsAccessPolicy(ctx, \"exampleTimeSeriesInsightsAccessPolicy\", \u0026iot.TimeSeriesInsightsAccessPolicyArgs{\n\t\t\tTimeSeriesInsightsEnvironmentId: exampleTimeSeriesInsightsStandardEnvironment.Name,\n\t\t\tPrincipalObjectId:               pulumi.String(\"aGUID\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Reader\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure IoT Time Series Insights Access Policy can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/timeSeriesInsightsAccessPolicy:TimeSeriesInsightsAccessPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.TimeSeriesInsights/environments/environment1/accessPolicies/example\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "The description of the Azure IoT Time Series Insights Access Policy.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Azure IoT Time Series Insights Access Policy. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "principalObjectId": {
          "description": "The id of the principal in Azure Active Directory.\n",
          "type": "string"
        },
        "roles": {
          "description": "A list of roles to apply to the Access Policy. Valid values include `Contributor` and `Reader`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "timeSeriesInsightsEnvironmentId": {
          "description": "The resource ID of the Azure IoT Time Series Insights Environment in which to create the Azure IoT Time Series Insights Reference Data Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "description": {
          "description": "The description of the Azure IoT Time Series Insights Access Policy.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Azure IoT Time Series Insights Access Policy. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "principalObjectId": {
          "description": "The id of the principal in Azure Active Directory.\n",
          "type": "string"
        },
        "roles": {
          "description": "A list of roles to apply to the Access Policy. Valid values include `Contributor` and `Reader`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "timeSeriesInsightsEnvironmentId": {
          "description": "The resource ID of the Azure IoT Time Series Insights Environment in which to create the Azure IoT Time Series Insights Reference Data Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "principalObjectId",
        "roles",
        "timeSeriesInsightsEnvironmentId"
      ],
      "requiredInputs": [
        "principalObjectId",
        "roles",
        "timeSeriesInsightsEnvironmentId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TimeSeriesInsightsAccessPolicy resources.\n",
        "properties": {
          "description": {
            "description": "The description of the Azure IoT Time Series Insights Access Policy.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Azure IoT Time Series Insights Access Policy. Changing this forces a new resource to be created. Must be globally unique.\n",
            "type": "string"
          },
          "principalObjectId": {
            "description": "The id of the principal in Azure Active Directory.\n",
            "type": "string"
          },
          "roles": {
            "description": "A list of roles to apply to the Access Policy. Valid values include `Contributor` and `Reader`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "timeSeriesInsightsEnvironmentId": {
            "description": "The resource ID of the Azure IoT Time Series Insights Environment in which to create the Azure IoT Time Series Insights Reference Data Set. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/timeSeriesInsightsEventSourceIothub:TimeSeriesInsightsEventSourceIothub": {
      "description": "Manages an Azure IoT Time Series Insights IoTHub Event Source.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Eurpoe\"});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"B1\",\n        capacity: \"1\",\n    },\n});\nconst exampleConsumerGroup = new azure.iot.ConsumerGroup(\"exampleConsumerGroup\", {\n    iothubName: exampleIoTHub.name,\n    eventhubEndpointName: \"events\",\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst storage = new azure.storage.Account(\"storage\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleTimeSeriesInsightsGen2Environment = new azure.iot.TimeSeriesInsightsGen2Environment(\"exampleTimeSeriesInsightsGen2Environment\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"L1\",\n    idProperties: [\"id\"],\n    storage: {\n        name: storage.name,\n        key: storage.primaryAccessKey,\n    },\n});\nconst exampleTimeSeriesInsightsEventSourceIothub = new azure.iot.TimeSeriesInsightsEventSourceIothub(\"exampleTimeSeriesInsightsEventSourceIothub\", {\n    location: exampleResourceGroup.location,\n    environmentId: exampleTimeSeriesInsightsGen2Environment.id,\n    iothubName: exampleIoTHub.name,\n    sharedAccessKey: exampleIoTHub.sharedAccessPolicies.apply(sharedAccessPolicies =\u003e sharedAccessPolicies[0].primaryKey),\n    sharedAccessKeyName: exampleIoTHub.sharedAccessPolicies.apply(sharedAccessPolicies =\u003e sharedAccessPolicies[0].keyName),\n    consumerGroupName: exampleConsumerGroup.name,\n    eventSourceResourceId: exampleIoTHub.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Eurpoe\")\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"B1\",\n        capacity=1,\n    ))\nexample_consumer_group = azure.iot.ConsumerGroup(\"exampleConsumerGroup\",\n    iothub_name=example_io_t_hub.name,\n    eventhub_endpoint_name=\"events\",\n    resource_group_name=example_resource_group.name)\nstorage = azure.storage.Account(\"storage\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_time_series_insights_gen2_environment = azure.iot.TimeSeriesInsightsGen2Environment(\"exampleTimeSeriesInsightsGen2Environment\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"L1\",\n    id_properties=[\"id\"],\n    storage=azure.iot.TimeSeriesInsightsGen2EnvironmentStorageArgs(\n        name=storage.name,\n        key=storage.primary_access_key,\n    ))\nexample_time_series_insights_event_source_iothub = azure.iot.TimeSeriesInsightsEventSourceIothub(\"exampleTimeSeriesInsightsEventSourceIothub\",\n    location=example_resource_group.location,\n    environment_id=example_time_series_insights_gen2_environment.id,\n    iothub_name=example_io_t_hub.name,\n    shared_access_key=example_io_t_hub.shared_access_policies[0].primary_key,\n    shared_access_key_name=example_io_t_hub.shared_access_policies[0].key_name,\n    consumer_group_name=example_consumer_group.name,\n    event_source_resource_id=example_io_t_hub.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Eurpoe\",\n        });\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"B1\",\n                Capacity = 1,\n            },\n        });\n        var exampleConsumerGroup = new Azure.Iot.ConsumerGroup(\"exampleConsumerGroup\", new Azure.Iot.ConsumerGroupArgs\n        {\n            IothubName = exampleIoTHub.Name,\n            EventhubEndpointName = \"events\",\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var storage = new Azure.Storage.Account(\"storage\", new Azure.Storage.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleTimeSeriesInsightsGen2Environment = new Azure.Iot.TimeSeriesInsightsGen2Environment(\"exampleTimeSeriesInsightsGen2Environment\", new Azure.Iot.TimeSeriesInsightsGen2EnvironmentArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"L1\",\n            IdProperties = \n            {\n                \"id\",\n            },\n            Storage = new Azure.Iot.Inputs.TimeSeriesInsightsGen2EnvironmentStorageArgs\n            {\n                Name = storage.Name,\n                Key = storage.PrimaryAccessKey,\n            },\n        });\n        var exampleTimeSeriesInsightsEventSourceIothub = new Azure.Iot.TimeSeriesInsightsEventSourceIothub(\"exampleTimeSeriesInsightsEventSourceIothub\", new Azure.Iot.TimeSeriesInsightsEventSourceIothubArgs\n        {\n            Location = exampleResourceGroup.Location,\n            EnvironmentId = exampleTimeSeriesInsightsGen2Environment.Id,\n            IothubName = exampleIoTHub.Name,\n            SharedAccessKey = exampleIoTHub.SharedAccessPolicies.Apply(sharedAccessPolicies =\u003e sharedAccessPolicies[0].PrimaryKey),\n            SharedAccessKeyName = exampleIoTHub.SharedAccessPolicies.Apply(sharedAccessPolicies =\u003e sharedAccessPolicies[0].KeyName),\n            ConsumerGroupName = exampleConsumerGroup.Name,\n            EventSourceResourceId = exampleIoTHub.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Eurpoe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIoTHub, err := iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"B1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleConsumerGroup, err := iot.NewConsumerGroup(ctx, \"exampleConsumerGroup\", \u0026iot.ConsumerGroupArgs{\n\t\t\tIothubName:           exampleIoTHub.Name,\n\t\t\tEventhubEndpointName: pulumi.String(\"events\"),\n\t\t\tResourceGroupName:    exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstorage, err := storage.NewAccount(ctx, \"storage\", \u0026storage.AccountArgs{\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTimeSeriesInsightsGen2Environment, err := iot.NewTimeSeriesInsightsGen2Environment(ctx, \"exampleTimeSeriesInsightsGen2Environment\", \u0026iot.TimeSeriesInsightsGen2EnvironmentArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"L1\"),\n\t\t\tIdProperties: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"id\"),\n\t\t\t},\n\t\t\tStorage: \u0026iot.TimeSeriesInsightsGen2EnvironmentStorageArgs{\n\t\t\t\tName: storage.Name,\n\t\t\t\tKey:  storage.PrimaryAccessKey,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewTimeSeriesInsightsEventSourceIothub(ctx, \"exampleTimeSeriesInsightsEventSourceIothub\", \u0026iot.TimeSeriesInsightsEventSourceIothubArgs{\n\t\t\tLocation:      exampleResourceGroup.Location,\n\t\t\tEnvironmentId: exampleTimeSeriesInsightsGen2Environment.ID(),\n\t\t\tIothubName:    exampleIoTHub.Name,\n\t\t\tSharedAccessKey: exampleIoTHub.SharedAccessPolicies.ApplyT(func(sharedAccessPolicies []iot.IoTHubSharedAccessPolicy) (string, error) {\n\t\t\t\treturn sharedAccessPolicies[0].PrimaryKey, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tSharedAccessKeyName: exampleIoTHub.SharedAccessPolicies.ApplyT(func(sharedAccessPolicies []iot.IoTHubSharedAccessPolicy) (string, error) {\n\t\t\t\treturn sharedAccessPolicies[0].KeyName, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tConsumerGroupName:     exampleConsumerGroup.Name,\n\t\t\tEventSourceResourceId: exampleIoTHub.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure IoT Time Series Insights IoTHub Event Source can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/timeSeriesInsightsEventSourceIothub:TimeSeriesInsightsEventSourceIothub example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.TimeSeriesInsights/environments/environment1/eventSources/example\n```\n\n ",
      "inputProperties": {
        "consumerGroupName": {
          "description": "Specifies the name of the IotHub Consumer Group that holds the partitions from which events will be read.\n",
          "type": "string"
        },
        "environmentId": {
          "description": "Specifies the id of the IoT Time Series Insights Environment that the Event Source should be associated with. Changing this forces a new resource to created.\n",
          "type": "string"
        },
        "eventSourceResourceId": {
          "description": "Specifies the resource id where events will be coming from.\n",
          "type": "string"
        },
        "iothubName": {
          "description": "Specifies the name of the IotHub which will be associated with this resource.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Azure IoT Time Series Insights IoTHub Event Source. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "sharedAccessKey": {
          "description": "Specifies the value of the Shared Access Policy key that grants the Time Series Insights service read access to the IotHub.\n",
          "type": "string"
        },
        "sharedAccessKeyName": {
          "description": "Specifies the name of the Shared Access key that grants the Event Source access to the IotHub.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "timestampPropertyName": {
          "description": "Specifies the value that will be used as the event source's timestamp. This value defaults to the event creation time.\n",
          "type": "string"
        }
      },
      "properties": {
        "consumerGroupName": {
          "description": "Specifies the name of the IotHub Consumer Group that holds the partitions from which events will be read.\n",
          "type": "string"
        },
        "environmentId": {
          "description": "Specifies the id of the IoT Time Series Insights Environment that the Event Source should be associated with. Changing this forces a new resource to created.\n",
          "type": "string"
        },
        "eventSourceResourceId": {
          "description": "Specifies the resource id where events will be coming from.\n",
          "type": "string"
        },
        "iothubName": {
          "description": "Specifies the name of the IotHub which will be associated with this resource.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Azure IoT Time Series Insights IoTHub Event Source. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "sharedAccessKey": {
          "description": "Specifies the value of the Shared Access Policy key that grants the Time Series Insights service read access to the IotHub.\n",
          "type": "string"
        },
        "sharedAccessKeyName": {
          "description": "Specifies the name of the Shared Access key that grants the Event Source access to the IotHub.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "timestampPropertyName": {
          "description": "Specifies the value that will be used as the event source's timestamp. This value defaults to the event creation time.\n",
          "type": "string"
        }
      },
      "required": [
        "consumerGroupName",
        "environmentId",
        "eventSourceResourceId",
        "iothubName",
        "location",
        "name",
        "sharedAccessKey",
        "sharedAccessKeyName",
        "timestampPropertyName"
      ],
      "requiredInputs": [
        "consumerGroupName",
        "environmentId",
        "eventSourceResourceId",
        "iothubName",
        "sharedAccessKey",
        "sharedAccessKeyName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TimeSeriesInsightsEventSourceIothub resources.\n",
        "properties": {
          "consumerGroupName": {
            "description": "Specifies the name of the IotHub Consumer Group that holds the partitions from which events will be read.\n",
            "type": "string"
          },
          "environmentId": {
            "description": "Specifies the id of the IoT Time Series Insights Environment that the Event Source should be associated with. Changing this forces a new resource to created.\n",
            "type": "string"
          },
          "eventSourceResourceId": {
            "description": "Specifies the resource id where events will be coming from.\n",
            "type": "string"
          },
          "iothubName": {
            "description": "Specifies the name of the IotHub which will be associated with this resource.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Azure IoT Time Series Insights IoTHub Event Source. Changing this forces a new resource to be created. Must be globally unique.\n",
            "type": "string"
          },
          "sharedAccessKey": {
            "description": "Specifies the value of the Shared Access Policy key that grants the Time Series Insights service read access to the IotHub.\n",
            "type": "string"
          },
          "sharedAccessKeyName": {
            "description": "Specifies the name of the Shared Access key that grants the Event Source access to the IotHub.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "timestampPropertyName": {
            "description": "Specifies the value that will be used as the event source's timestamp. This value defaults to the event creation time.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/timeSeriesInsightsGen2Environment:TimeSeriesInsightsGen2Environment": {
      "description": "Manages an Azure IoT Time Series Insights Gen2 Environment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst storage = new azure.storage.Account(\"storage\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleTimeSeriesInsightsGen2Environment = new azure.iot.TimeSeriesInsightsGen2Environment(\"exampleTimeSeriesInsightsGen2Environment\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"L1\",\n    warmStoreDataRetentionTime: \"P30D\",\n    idProperties: [\"id\"],\n    storage: {\n        name: storage.name,\n        key: storage.primaryAccessKey,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nstorage = azure.storage.Account(\"storage\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_time_series_insights_gen2_environment = azure.iot.TimeSeriesInsightsGen2Environment(\"exampleTimeSeriesInsightsGen2Environment\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"L1\",\n    warm_store_data_retention_time=\"P30D\",\n    id_properties=[\"id\"],\n    storage=azure.iot.TimeSeriesInsightsGen2EnvironmentStorageArgs(\n        name=storage.name,\n        key=storage.primary_access_key,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var storage = new Azure.Storage.Account(\"storage\", new Azure.Storage.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleTimeSeriesInsightsGen2Environment = new Azure.Iot.TimeSeriesInsightsGen2Environment(\"exampleTimeSeriesInsightsGen2Environment\", new Azure.Iot.TimeSeriesInsightsGen2EnvironmentArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"L1\",\n            WarmStoreDataRetentionTime = \"P30D\",\n            IdProperties = \n            {\n                \"id\",\n            },\n            Storage = new Azure.Iot.Inputs.TimeSeriesInsightsGen2EnvironmentStorageArgs\n            {\n                Name = storage.Name,\n                Key = storage.PrimaryAccessKey,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstorage, err := storage.NewAccount(ctx, \"storage\", \u0026storage.AccountArgs{\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewTimeSeriesInsightsGen2Environment(ctx, \"exampleTimeSeriesInsightsGen2Environment\", \u0026iot.TimeSeriesInsightsGen2EnvironmentArgs{\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tSkuName:                    pulumi.String(\"L1\"),\n\t\t\tWarmStoreDataRetentionTime: pulumi.String(\"P30D\"),\n\t\t\tIdProperties: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"id\"),\n\t\t\t},\n\t\t\tStorage: \u0026iot.TimeSeriesInsightsGen2EnvironmentStorageArgs{\n\t\t\t\tName: storage.Name,\n\t\t\t\tKey:  storage.PrimaryAccessKey,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure IoT Time Series Insights Gen2 Environment can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/timeSeriesInsightsGen2Environment:TimeSeriesInsightsGen2Environment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.TimeSeriesInsights/environments/example\n```\n\n ",
      "inputProperties": {
        "idProperties": {
          "description": "A list of property ids for the Azure IoT Time Series Insights Gen2 Environment\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Azure IoT Time Series Insights Gen2 Environment. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Azure IoT Time Series Insights Gen2 Environment.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this IoT Time Series Insights Gen2 Environment. Currently it supports only `L1`. For gen2, capacity cannot be specified.\n",
          "type": "string"
        },
        "storage": {
          "$ref": "#/types/azure:iot/TimeSeriesInsightsGen2EnvironmentStorage:TimeSeriesInsightsGen2EnvironmentStorage",
          "description": "A `storage` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "warmStoreDataRetentionTime": {
          "description": "Specifies the ISO8601 timespan specifying the minimum number of days the environment's events will be available for query. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "dataAccessFqdn": {
          "description": "The FQDN used to access the environment data.\n",
          "type": "string"
        },
        "idProperties": {
          "description": "A list of property ids for the Azure IoT Time Series Insights Gen2 Environment\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Azure IoT Time Series Insights Gen2 Environment. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Azure IoT Time Series Insights Gen2 Environment.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this IoT Time Series Insights Gen2 Environment. Currently it supports only `L1`. For gen2, capacity cannot be specified.\n",
          "type": "string"
        },
        "storage": {
          "$ref": "#/types/azure:iot/TimeSeriesInsightsGen2EnvironmentStorage:TimeSeriesInsightsGen2EnvironmentStorage",
          "description": "A `storage` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "warmStoreDataRetentionTime": {
          "description": "Specifies the ISO8601 timespan specifying the minimum number of days the environment's events will be available for query. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "dataAccessFqdn",
        "idProperties",
        "location",
        "name",
        "resourceGroupName",
        "skuName",
        "storage"
      ],
      "requiredInputs": [
        "idProperties",
        "resourceGroupName",
        "skuName",
        "storage"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TimeSeriesInsightsGen2Environment resources.\n",
        "properties": {
          "dataAccessFqdn": {
            "description": "The FQDN used to access the environment data.\n",
            "type": "string"
          },
          "idProperties": {
            "description": "A list of property ids for the Azure IoT Time Series Insights Gen2 Environment\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Azure IoT Time Series Insights Gen2 Environment. Changing this forces a new resource to be created. Must be globally unique.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Azure IoT Time Series Insights Gen2 Environment.\n",
            "type": "string"
          },
          "skuName": {
            "description": "Specifies the SKU Name for this IoT Time Series Insights Gen2 Environment. Currently it supports only `L1`. For gen2, capacity cannot be specified.\n",
            "type": "string"
          },
          "storage": {
            "$ref": "#/types/azure:iot/TimeSeriesInsightsGen2EnvironmentStorage:TimeSeriesInsightsGen2EnvironmentStorage",
            "description": "A `storage` block as defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "warmStoreDataRetentionTime": {
            "description": "Specifies the ISO8601 timespan specifying the minimum number of days the environment's events will be available for query. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/timeSeriesInsightsReferenceDataSet:TimeSeriesInsightsReferenceDataSet": {
      "description": "Manages an Azure IoT Time Series Insights Reference Data Set.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleTimeSeriesInsightsStandardEnvironment = new azure.iot.TimeSeriesInsightsStandardEnvironment(\"exampleTimeSeriesInsightsStandardEnvironment\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"S1_1\",\n    dataRetentionTime: \"P30D\",\n});\nconst exampleTimeSeriesInsightsReferenceDataSet = new azure.iot.TimeSeriesInsightsReferenceDataSet(\"exampleTimeSeriesInsightsReferenceDataSet\", {\n    timeSeriesInsightsEnvironmentId: exampleTimeSeriesInsightsStandardEnvironment.id,\n    location: exampleResourceGroup.location,\n    keyProperties: [{\n        name: \"keyProperty1\",\n        type: \"String\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_time_series_insights_standard_environment = azure.iot.TimeSeriesInsightsStandardEnvironment(\"exampleTimeSeriesInsightsStandardEnvironment\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"S1_1\",\n    data_retention_time=\"P30D\")\nexample_time_series_insights_reference_data_set = azure.iot.TimeSeriesInsightsReferenceDataSet(\"exampleTimeSeriesInsightsReferenceDataSet\",\n    time_series_insights_environment_id=example_time_series_insights_standard_environment.id,\n    location=example_resource_group.location,\n    key_properties=[azure.iot.TimeSeriesInsightsReferenceDataSetKeyPropertyArgs(\n        name=\"keyProperty1\",\n        type=\"String\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleTimeSeriesInsightsStandardEnvironment = new Azure.Iot.TimeSeriesInsightsStandardEnvironment(\"exampleTimeSeriesInsightsStandardEnvironment\", new Azure.Iot.TimeSeriesInsightsStandardEnvironmentArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"S1_1\",\n            DataRetentionTime = \"P30D\",\n        });\n        var exampleTimeSeriesInsightsReferenceDataSet = new Azure.Iot.TimeSeriesInsightsReferenceDataSet(\"exampleTimeSeriesInsightsReferenceDataSet\", new Azure.Iot.TimeSeriesInsightsReferenceDataSetArgs\n        {\n            TimeSeriesInsightsEnvironmentId = exampleTimeSeriesInsightsStandardEnvironment.Id,\n            Location = exampleResourceGroup.Location,\n            KeyProperties = \n            {\n                new Azure.Iot.Inputs.TimeSeriesInsightsReferenceDataSetKeyPropertyArgs\n                {\n                    Name = \"keyProperty1\",\n                    Type = \"String\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTimeSeriesInsightsStandardEnvironment, err := iot.NewTimeSeriesInsightsStandardEnvironment(ctx, \"exampleTimeSeriesInsightsStandardEnvironment\", \u0026iot.TimeSeriesInsightsStandardEnvironmentArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"S1_1\"),\n\t\t\tDataRetentionTime: pulumi.String(\"P30D\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewTimeSeriesInsightsReferenceDataSet(ctx, \"exampleTimeSeriesInsightsReferenceDataSet\", \u0026iot.TimeSeriesInsightsReferenceDataSetArgs{\n\t\t\tTimeSeriesInsightsEnvironmentId: exampleTimeSeriesInsightsStandardEnvironment.ID(),\n\t\t\tLocation:                        exampleResourceGroup.Location,\n\t\t\tKeyProperties: iot.TimeSeriesInsightsReferenceDataSetKeyPropertyArray{\n\t\t\t\t\u0026iot.TimeSeriesInsightsReferenceDataSetKeyPropertyArgs{\n\t\t\t\t\tName: pulumi.String(\"keyProperty1\"),\n\t\t\t\t\tType: pulumi.String(\"String\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure IoT Time Series Insights Reference Data Set can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/timeSeriesInsightsReferenceDataSet:TimeSeriesInsightsReferenceDataSet example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.TimeSeriesInsights/environments/example/referenceDataSets/example\n```\n\n ",
      "inputProperties": {
        "dataStringComparisonBehavior": {
          "description": "The comparison behavior that will be used to compare keys. Valid values include `Ordinal` and `OrdinalIgnoreCase`. Defaults to `Ordinal`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "keyProperties": {
          "description": "A `key_property` block as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:iot/TimeSeriesInsightsReferenceDataSetKeyProperty:TimeSeriesInsightsReferenceDataSetKeyProperty"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Azure IoT Time Series Insights Reference Data Set. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "timeSeriesInsightsEnvironmentId": {
          "description": "The resource ID of the Azure IoT Time Series Insights Environment in which to create the Azure IoT Time Series Insights Reference Data Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "dataStringComparisonBehavior": {
          "description": "The comparison behavior that will be used to compare keys. Valid values include `Ordinal` and `OrdinalIgnoreCase`. Defaults to `Ordinal`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "keyProperties": {
          "description": "A `key_property` block as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:iot/TimeSeriesInsightsReferenceDataSetKeyProperty:TimeSeriesInsightsReferenceDataSetKeyProperty"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Azure IoT Time Series Insights Reference Data Set. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "timeSeriesInsightsEnvironmentId": {
          "description": "The resource ID of the Azure IoT Time Series Insights Environment in which to create the Azure IoT Time Series Insights Reference Data Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "keyProperties",
        "location",
        "name",
        "timeSeriesInsightsEnvironmentId"
      ],
      "requiredInputs": [
        "keyProperties",
        "timeSeriesInsightsEnvironmentId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TimeSeriesInsightsReferenceDataSet resources.\n",
        "properties": {
          "dataStringComparisonBehavior": {
            "description": "The comparison behavior that will be used to compare keys. Valid values include `Ordinal` and `OrdinalIgnoreCase`. Defaults to `Ordinal`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "keyProperties": {
            "description": "A `key_property` block as defined below. Changing this forces a new resource to be created.\n",
            "items": {
              "$ref": "#/types/azure:iot/TimeSeriesInsightsReferenceDataSetKeyProperty:TimeSeriesInsightsReferenceDataSetKeyProperty"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Azure IoT Time Series Insights Reference Data Set. Changing this forces a new resource to be created. Must be globally unique.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "timeSeriesInsightsEnvironmentId": {
            "description": "The resource ID of the Azure IoT Time Series Insights Environment in which to create the Azure IoT Time Series Insights Reference Data Set. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:iot/timeSeriesInsightsStandardEnvironment:TimeSeriesInsightsStandardEnvironment": {
      "description": "Manages an Azure IoT Time Series Insights Standard Environment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleTimeSeriesInsightsStandardEnvironment = new azure.iot.TimeSeriesInsightsStandardEnvironment(\"exampleTimeSeriesInsightsStandardEnvironment\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"S1_1\",\n    dataRetentionTime: \"P30D\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_time_series_insights_standard_environment = azure.iot.TimeSeriesInsightsStandardEnvironment(\"exampleTimeSeriesInsightsStandardEnvironment\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"S1_1\",\n    data_retention_time=\"P30D\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleTimeSeriesInsightsStandardEnvironment = new Azure.Iot.TimeSeriesInsightsStandardEnvironment(\"exampleTimeSeriesInsightsStandardEnvironment\", new Azure.Iot.TimeSeriesInsightsStandardEnvironmentArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"S1_1\",\n            DataRetentionTime = \"P30D\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iot.NewTimeSeriesInsightsStandardEnvironment(ctx, \"exampleTimeSeriesInsightsStandardEnvironment\", \u0026iot.TimeSeriesInsightsStandardEnvironmentArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"S1_1\"),\n\t\t\tDataRetentionTime: pulumi.String(\"P30D\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure IoT Time Series Insights Standard Environment can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iot/timeSeriesInsightsStandardEnvironment:TimeSeriesInsightsStandardEnvironment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.TimeSeriesInsights/environments/example\n```\n\n ",
      "inputProperties": {
        "dataRetentionTime": {
          "description": "Specifies the ISO8601 timespan specifying the minimum number of days the environment's events will be available for query. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Azure IoT Time Series Insights Standard Environment. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "partitionKey": {
          "description": "The name of the event property which will be used to partition data. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Azure IoT Time Series Insights Standard Environment.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this IoT Time Series Insights Standard Environment. It is string consisting of two parts separated by an underscore(\\_).The fist part is the `name`, valid values include: `S1` and `S2`. The second part is the `capacity` (e.g. the number of deployed units of the `sku`), which must be a positive `integer` (e.g. `S1_1`). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageLimitExceededBehavior": {
          "description": "Specifies the behaviour the IoT Time Series Insights service should take when the environment's capacity has been exceeded. Valid values include `PauseIngress` and `PurgeOldData`. Defaults to `PurgeOldData`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "dataRetentionTime": {
          "description": "Specifies the ISO8601 timespan specifying the minimum number of days the environment's events will be available for query. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Azure IoT Time Series Insights Standard Environment. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "partitionKey": {
          "description": "The name of the event property which will be used to partition data. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Azure IoT Time Series Insights Standard Environment.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this IoT Time Series Insights Standard Environment. It is string consisting of two parts separated by an underscore(\\_).The fist part is the `name`, valid values include: `S1` and `S2`. The second part is the `capacity` (e.g. the number of deployed units of the `sku`), which must be a positive `integer` (e.g. `S1_1`). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageLimitExceededBehavior": {
          "description": "Specifies the behaviour the IoT Time Series Insights service should take when the environment's capacity has been exceeded. Valid values include `PauseIngress` and `PurgeOldData`. Defaults to `PurgeOldData`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "dataRetentionTime",
        "location",
        "name",
        "resourceGroupName",
        "skuName"
      ],
      "requiredInputs": [
        "dataRetentionTime",
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TimeSeriesInsightsStandardEnvironment resources.\n",
        "properties": {
          "dataRetentionTime": {
            "description": "Specifies the ISO8601 timespan specifying the minimum number of days the environment's events will be available for query. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Azure IoT Time Series Insights Standard Environment. Changing this forces a new resource to be created. Must be globally unique.\n",
            "type": "string"
          },
          "partitionKey": {
            "description": "The name of the event property which will be used to partition data. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Azure IoT Time Series Insights Standard Environment.\n",
            "type": "string"
          },
          "skuName": {
            "description": "Specifies the SKU Name for this IoT Time Series Insights Standard Environment. It is string consisting of two parts separated by an underscore(\\_).The fist part is the `name`, valid values include: `S1` and `S2`. The second part is the `capacity` (e.g. the number of deployed units of the `sku`), which must be a positive `integer` (e.g. `S1_1`). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageLimitExceededBehavior": {
            "description": "Specifies the behaviour the IoT Time Series Insights service should take when the environment's capacity has been exceeded. Valid values include `PauseIngress` and `PurgeOldData`. Defaults to `PurgeOldData`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:iotcentral/application:Application": {
      "description": "Manages an IoT Central Application\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleApplication = new azure.iotcentral.Application(\"exampleApplication\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    subDomain: \"example-iotcentral-app-subdomain\",\n    displayName: \"example-iotcentral-app-display-name\",\n    sku: \"S1\",\n    template: \"iotc-default@1.0.0\",\n    tags: {\n        Foo: \"Bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_application = azure.iotcentral.Application(\"exampleApplication\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sub_domain=\"example-iotcentral-app-subdomain\",\n    display_name=\"example-iotcentral-app-display-name\",\n    sku=\"S1\",\n    template=\"iotc-default@1.0.0\",\n    tags={\n        \"Foo\": \"Bar\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleApplication = new Azure.IotCentral.Application(\"exampleApplication\", new Azure.IotCentral.ApplicationArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            SubDomain = \"example-iotcentral-app-subdomain\",\n            DisplayName = \"example-iotcentral-app-display-name\",\n            Sku = \"S1\",\n            Template = \"iotc-default@1.0.0\",\n            Tags = \n            {\n                { \"Foo\", \"Bar\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iotcentral\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iotcentral.NewApplication(ctx, \"exampleApplication\", \u0026iotcentral.ApplicationArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSubDomain:         pulumi.String(\"example-iotcentral-app-subdomain\"),\n\t\t\tDisplayName:       pulumi.String(\"example-iotcentral-app-display-name\"),\n\t\t\tSku:               pulumi.String(\"S1\"),\n\t\t\tTemplate:          pulumi.String(\"iotc-default@1.0.0\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Foo\": pulumi.String(\"Bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe IoT Central Application can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:iotcentral/application:Application example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.IoTCentral/ioTApps/app1\n```\n\n ",
      "inputProperties": {
        "displayName": {
          "description": "A `display_name` name. Custom display name for the IoT Central application. Default is resource name.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource has to be create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the IotHub resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the IotHub resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "A `sku` name. Possible values is `ST1`, `ST2`, Default value is `ST1`\n",
          "type": "string"
        },
        "subDomain": {
          "description": "A `sub_domain` name. Subdomain for the IoT Central URL. Each application must have a unique subdomain.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "template": {
          "description": "A `template` name. IoT Central application template name. Default is a custom application.\n",
          "type": "string"
        }
      },
      "properties": {
        "displayName": {
          "description": "A `display_name` name. Custom display name for the IoT Central application. Default is resource name.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource has to be create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the IotHub resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group under which the IotHub resource has to be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "A `sku` name. Possible values is `ST1`, `ST2`, Default value is `ST1`\n",
          "type": "string"
        },
        "subDomain": {
          "description": "A `sub_domain` name. Subdomain for the IoT Central URL. Each application must have a unique subdomain.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "template": {
          "description": "A `template` name. IoT Central application template name. Default is a custom application.\n",
          "type": "string"
        }
      },
      "required": [
        "displayName",
        "location",
        "name",
        "resourceGroupName",
        "subDomain",
        "template"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "subDomain"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Application resources.\n",
        "properties": {
          "displayName": {
            "description": "A `display_name` name. Custom display name for the IoT Central application. Default is resource name.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource has to be create. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the IotHub resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group under which the IotHub resource has to be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sku": {
            "description": "A `sku` name. Possible values is `ST1`, `ST2`, Default value is `ST1`\n",
            "type": "string"
          },
          "subDomain": {
            "description": "A `sub_domain` name. Subdomain for the IoT Central URL. Each application must have a unique subdomain.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "template": {
            "description": "A `template` name. IoT Central application template name. Default is a custom application.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:keyvault/accessPolicy:AccessPolicy": {
      "description": "Manages a Key Vault Access Policy.\n\n\u003e **NOTE:** It's possible to define Key Vault Access Policies both within the `azure.keyvault.KeyVault` resource via the `access_policy` block and by using the `azure.keyvault.AccessPolicy` resource. However it's not possible to use both methods to manage Access Policies within a KeyVault, since there'll be conflicts.\n\n\u003e **NOTE:** Azure permits a maximum of 1024 Access Policies per Key Vault - [more information can be found in this document](https://docs.microsoft.com/en-us/azure/key-vault/key-vault-secure-your-key-vault#data-plane-access-control).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"premium\",\n});\nconst exampleAccessPolicy = new azure.keyvault.AccessPolicy(\"exampleAccessPolicy\", {\n    keyVaultId: exampleKeyVault.id,\n    tenantId: current.then(current =\u003e current.tenantId),\n    objectId: current.then(current =\u003e current.objectId),\n    keyPermissions: [\"Get\"],\n    secretPermissions: [\"Get\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"premium\")\nexample_access_policy = azure.keyvault.AccessPolicy(\"exampleAccessPolicy\",\n    key_vault_id=example_key_vault.id,\n    tenant_id=current.tenant_id,\n    object_id=current.object_id,\n    key_permissions=[\"Get\"],\n    secret_permissions=[\"Get\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"premium\",\n        });\n        var exampleAccessPolicy = new Azure.KeyVault.AccessPolicy(\"exampleAccessPolicy\", new Azure.KeyVault.AccessPolicyArgs\n        {\n            KeyVaultId = exampleKeyVault.Id,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            ObjectId = current.Apply(current =\u003e current.ObjectId),\n            KeyPermissions = \n            {\n                \"Get\",\n            },\n            SecretPermissions = \n            {\n                \"Get\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTenantId:          pulumi.String(current.TenantId),\n\t\t\tSkuName:           pulumi.String(\"premium\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = keyvault.NewAccessPolicy(ctx, \"exampleAccessPolicy\", \u0026keyvault.AccessPolicyArgs{\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t\tTenantId:   pulumi.String(current.TenantId),\n\t\t\tObjectId:   pulumi.String(current.ObjectId),\n\t\t\tKeyPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Get\"),\n\t\t\t},\n\t\t\tSecretPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Get\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKey Vault Access Policies can be imported using the Resource ID of the Key Vault, plus some additional metadata. If both an `object_id` and `application_id` are specified, then the Access Policy can be imported using the following code\n\n```sh\n $ pulumi import azure:keyvault/accessPolicy:AccessPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.KeyVault/vaults/test-vault/objectId/11111111-1111-1111-1111-111111111111/applicationId/22222222-2222-2222-2222-222222222222\n```\n\n where `11111111-1111-1111-1111-111111111111` is the `object_id` and `22222222-2222-2222-2222-222222222222` is the `application_id`. --- Access Policies with an `object_id` but no `application_id` can be imported using the following command\n\n```sh\n $ pulumi import azure:keyvault/accessPolicy:AccessPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.KeyVault/vaults/test-vault/objectId/11111111-1111-1111-1111-111111111111\n```\n\n where `11111111-1111-1111-1111-111111111111` is the `object_id`. ",
      "inputProperties": {
        "applicationId": {
          "description": "The object ID of an Application in Azure Active Directory.\n",
          "type": "string"
        },
        "certificatePermissions": {
          "description": "List of certificate permissions, must be one or more from the following: `Backup`, `Create`, `Delete`, `DeleteIssuers`, `Get`, `GetIssuers`, `Import`, `List`, `ListIssuers`, `ManageContacts`, `ManageIssuers`, `Purge`, `Recover`, `Restore`, `SetIssuers` and `Update`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "keyPermissions": {
          "description": "List of key permissions, must be one or more from the following: `Backup`, `Create`, `Decrypt`, `Delete`, `Encrypt`, `Get`, `Import`, `List`, `Purge`, `Recover`, `Restore`, `Sign`, `UnwrapKey`, `Update`, `Verify` and `WrapKey`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "keyVaultId": {
          "description": "Specifies the id of the Key Vault resource. Changing this\nforces a new resource to be created.\n",
          "type": "string"
        },
        "objectId": {
          "description": "The object ID of a user, service principal or security\ngroup in the Azure Active Directory tenant for the vault. The object ID must\nbe unique for the list of access policies. Changing this forces a new resource\nto be created.\n",
          "type": "string"
        },
        "secretPermissions": {
          "description": "List of secret permissions, must be one or more from the following: `Backup`, `Delete`, `Get`, `List`, `Purge`, `Recover`, `Restore` and `Set`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "storagePermissions": {
          "description": "List of storage permissions, must be one or more from the following: `Backup`, `Delete`, `DeleteSAS`, `Get`, `GetSAS`, `List`, `ListSAS`, `Purge`, `Recover`, `RegenerateKey`, `Restore`, `Set`, `SetSAS` and `Update`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "tenantId": {
          "description": "The Azure Active Directory tenant ID that should be used\nfor authenticating requests to the key vault. Changing this forces a new resource\nto be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "applicationId": {
          "description": "The object ID of an Application in Azure Active Directory.\n",
          "type": "string"
        },
        "certificatePermissions": {
          "description": "List of certificate permissions, must be one or more from the following: `Backup`, `Create`, `Delete`, `DeleteIssuers`, `Get`, `GetIssuers`, `Import`, `List`, `ListIssuers`, `ManageContacts`, `ManageIssuers`, `Purge`, `Recover`, `Restore`, `SetIssuers` and `Update`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "keyPermissions": {
          "description": "List of key permissions, must be one or more from the following: `Backup`, `Create`, `Decrypt`, `Delete`, `Encrypt`, `Get`, `Import`, `List`, `Purge`, `Recover`, `Restore`, `Sign`, `UnwrapKey`, `Update`, `Verify` and `WrapKey`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "keyVaultId": {
          "description": "Specifies the id of the Key Vault resource. Changing this\nforces a new resource to be created.\n",
          "type": "string"
        },
        "objectId": {
          "description": "The object ID of a user, service principal or security\ngroup in the Azure Active Directory tenant for the vault. The object ID must\nbe unique for the list of access policies. Changing this forces a new resource\nto be created.\n",
          "type": "string"
        },
        "secretPermissions": {
          "description": "List of secret permissions, must be one or more from the following: `Backup`, `Delete`, `Get`, `List`, `Purge`, `Recover`, `Restore` and `Set`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "storagePermissions": {
          "description": "List of storage permissions, must be one or more from the following: `Backup`, `Delete`, `DeleteSAS`, `Get`, `GetSAS`, `List`, `ListSAS`, `Purge`, `Recover`, `RegenerateKey`, `Restore`, `Set`, `SetSAS` and `Update`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "tenantId": {
          "description": "The Azure Active Directory tenant ID that should be used\nfor authenticating requests to the key vault. Changing this forces a new resource\nto be created.\n",
          "type": "string"
        }
      },
      "required": [
        "keyVaultId",
        "objectId",
        "tenantId"
      ],
      "requiredInputs": [
        "keyVaultId",
        "objectId",
        "tenantId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AccessPolicy resources.\n",
        "properties": {
          "applicationId": {
            "description": "The object ID of an Application in Azure Active Directory.\n",
            "type": "string"
          },
          "certificatePermissions": {
            "description": "List of certificate permissions, must be one or more from the following: `Backup`, `Create`, `Delete`, `DeleteIssuers`, `Get`, `GetIssuers`, `Import`, `List`, `ListIssuers`, `ManageContacts`, `ManageIssuers`, `Purge`, `Recover`, `Restore`, `SetIssuers` and `Update`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "keyPermissions": {
            "description": "List of key permissions, must be one or more from the following: `Backup`, `Create`, `Decrypt`, `Delete`, `Encrypt`, `Get`, `Import`, `List`, `Purge`, `Recover`, `Restore`, `Sign`, `UnwrapKey`, `Update`, `Verify` and `WrapKey`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "keyVaultId": {
            "description": "Specifies the id of the Key Vault resource. Changing this\nforces a new resource to be created.\n",
            "type": "string"
          },
          "objectId": {
            "description": "The object ID of a user, service principal or security\ngroup in the Azure Active Directory tenant for the vault. The object ID must\nbe unique for the list of access policies. Changing this forces a new resource\nto be created.\n",
            "type": "string"
          },
          "secretPermissions": {
            "description": "List of secret permissions, must be one or more from the following: `Backup`, `Delete`, `Get`, `List`, `Purge`, `Recover`, `Restore` and `Set`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "storagePermissions": {
            "description": "List of storage permissions, must be one or more from the following: `Backup`, `Delete`, `DeleteSAS`, `Get`, `GetSAS`, `List`, `ListSAS`, `Purge`, `Recover`, `RegenerateKey`, `Restore`, `Set`, `SetSAS` and `Update`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tenantId": {
            "description": "The Azure Active Directory tenant ID that should be used\nfor authenticating requests to the key vault. Changing this forces a new resource\nto be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:keyvault/certifiate:Certifiate": {
      "deprecationMessage": "azure.keyvault.Certifiate has been deprecated in favor of azure.keyvault.Certificate",
      "description": "Manages a Key Vault Certificate.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Generating a new certificate\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"standard\",\n    softDeleteRetentionDays: 7,\n    accessPolicies: [{\n        tenantId: current.then(current =\u003e current.tenantId),\n        objectId: current.then(current =\u003e current.objectId),\n        certificatePermissions: [\n            \"create\",\n            \"delete\",\n            \"deleteissuers\",\n            \"get\",\n            \"getissuers\",\n            \"import\",\n            \"list\",\n            \"listissuers\",\n            \"managecontacts\",\n            \"manageissuers\",\n            \"purge\",\n            \"setissuers\",\n            \"update\",\n        ],\n        keyPermissions: [\n            \"backup\",\n            \"create\",\n            \"decrypt\",\n            \"delete\",\n            \"encrypt\",\n            \"get\",\n            \"import\",\n            \"list\",\n            \"purge\",\n            \"recover\",\n            \"restore\",\n            \"sign\",\n            \"unwrapKey\",\n            \"update\",\n            \"verify\",\n            \"wrapKey\",\n        ],\n        secretPermissions: [\n            \"backup\",\n            \"delete\",\n            \"get\",\n            \"list\",\n            \"purge\",\n            \"recover\",\n            \"restore\",\n            \"set\",\n        ],\n    }],\n});\nconst exampleCertificate = new azure.keyvault.Certificate(\"exampleCertificate\", {\n    keyVaultId: exampleKeyVault.id,\n    certificatePolicy: {\n        issuerParameters: {\n            name: \"Self\",\n        },\n        keyProperties: {\n            exportable: true,\n            keySize: 2048,\n            keyType: \"RSA\",\n            reuseKey: true,\n        },\n        lifetimeActions: [{\n            action: {\n                actionType: \"AutoRenew\",\n            },\n            trigger: {\n                daysBeforeExpiry: 30,\n            },\n        }],\n        secretProperties: {\n            contentType: \"application/x-pkcs12\",\n        },\n        x509CertificateProperties: {\n            extendedKeyUsages: [\"1.3.6.1.5.5.7.3.1\"],\n            keyUsages: [\n                \"cRLSign\",\n                \"dataEncipherment\",\n                \"digitalSignature\",\n                \"keyAgreement\",\n                \"keyCertSign\",\n                \"keyEncipherment\",\n            ],\n            subjectAlternativeNames: {\n                dnsNames: [\n                    \"internal.contoso.com\",\n                    \"domain.hello.world\",\n                ],\n            },\n            subject: \"CN=hello-world\",\n            validityInMonths: 12,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"standard\",\n    soft_delete_retention_days=7,\n    access_policies=[azure.keyvault.KeyVaultAccessPolicyArgs(\n        tenant_id=current.tenant_id,\n        object_id=current.object_id,\n        certificate_permissions=[\n            \"create\",\n            \"delete\",\n            \"deleteissuers\",\n            \"get\",\n            \"getissuers\",\n            \"import\",\n            \"list\",\n            \"listissuers\",\n            \"managecontacts\",\n            \"manageissuers\",\n            \"purge\",\n            \"setissuers\",\n            \"update\",\n        ],\n        key_permissions=[\n            \"backup\",\n            \"create\",\n            \"decrypt\",\n            \"delete\",\n            \"encrypt\",\n            \"get\",\n            \"import\",\n            \"list\",\n            \"purge\",\n            \"recover\",\n            \"restore\",\n            \"sign\",\n            \"unwrapKey\",\n            \"update\",\n            \"verify\",\n            \"wrapKey\",\n        ],\n        secret_permissions=[\n            \"backup\",\n            \"delete\",\n            \"get\",\n            \"list\",\n            \"purge\",\n            \"recover\",\n            \"restore\",\n            \"set\",\n        ],\n    )])\nexample_certificate = azure.keyvault.Certificate(\"exampleCertificate\",\n    key_vault_id=example_key_vault.id,\n    certificate_policy=azure.keyvault.CertificateCertificatePolicyArgs(\n        issuer_parameters=azure.keyvault.CertificateCertificatePolicyIssuerParametersArgs(\n            name=\"Self\",\n        ),\n        key_properties={\n            \"exportable\": True,\n            \"key_size\": 2048,\n            \"key_type\": \"RSA\",\n            \"reuseKey\": True,\n        },\n        lifetime_actions=[azure.keyvault.CertificateCertificatePolicyLifetimeActionArgs(\n            action=azure.keyvault.CertificateCertificatePolicyLifetimeActionActionArgs(\n                action_type=\"AutoRenew\",\n            ),\n            trigger=azure.keyvault.CertificateCertificatePolicyLifetimeActionTriggerArgs(\n                days_before_expiry=30,\n            ),\n        )],\n        secret_properties=azure.keyvault.CertificateCertificatePolicySecretPropertiesArgs(\n            content_type=\"application/x-pkcs12\",\n        ),\n        x509_certificate_properties=azure.keyvault.CertificateCertificatePolicyX509CertificatePropertiesArgs(\n            extended_key_usages=[\"1.3.6.1.5.5.7.3.1\"],\n            key_usages=[\n                \"cRLSign\",\n                \"dataEncipherment\",\n                \"digitalSignature\",\n                \"keyAgreement\",\n                \"keyCertSign\",\n                \"keyEncipherment\",\n            ],\n            subject_alternative_names=azure.keyvault.CertificateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNamesArgs(\n                dns_names=[\n                    \"internal.contoso.com\",\n                    \"domain.hello.world\",\n                ],\n            ),\n            subject=\"CN=hello-world\",\n            validity_in_months=12,\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"standard\",\n            SoftDeleteRetentionDays = 7,\n            AccessPolicies = \n            {\n                new Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs\n                {\n                    TenantId = current.Apply(current =\u003e current.TenantId),\n                    ObjectId = current.Apply(current =\u003e current.ObjectId),\n                    CertificatePermissions = \n                    {\n                        \"create\",\n                        \"delete\",\n                        \"deleteissuers\",\n                        \"get\",\n                        \"getissuers\",\n                        \"import\",\n                        \"list\",\n                        \"listissuers\",\n                        \"managecontacts\",\n                        \"manageissuers\",\n                        \"purge\",\n                        \"setissuers\",\n                        \"update\",\n                    },\n                    KeyPermissions = \n                    {\n                        \"backup\",\n                        \"create\",\n                        \"decrypt\",\n                        \"delete\",\n                        \"encrypt\",\n                        \"get\",\n                        \"import\",\n                        \"list\",\n                        \"purge\",\n                        \"recover\",\n                        \"restore\",\n                        \"sign\",\n                        \"unwrapKey\",\n                        \"update\",\n                        \"verify\",\n                        \"wrapKey\",\n                    },\n                    SecretPermissions = \n                    {\n                        \"backup\",\n                        \"delete\",\n                        \"get\",\n                        \"list\",\n                        \"purge\",\n                        \"recover\",\n                        \"restore\",\n                        \"set\",\n                    },\n                },\n            },\n        });\n        var exampleCertificate = new Azure.KeyVault.Certificate(\"exampleCertificate\", new Azure.KeyVault.CertificateArgs\n        {\n            KeyVaultId = exampleKeyVault.Id,\n            CertificatePolicy = new Azure.KeyVault.Inputs.CertificateCertificatePolicyArgs\n            {\n                IssuerParameters = new Azure.KeyVault.Inputs.CertificateCertificatePolicyIssuerParametersArgs\n                {\n                    Name = \"Self\",\n                },\n                KeyProperties = new Azure.KeyVault.Inputs.CertificateCertificatePolicyKeyPropertiesArgs\n                {\n                    Exportable = true,\n                    KeySize = 2048,\n                    KeyType = \"RSA\",\n                    ReuseKey = true,\n                },\n                LifetimeActions = \n                {\n                    new Azure.KeyVault.Inputs.CertificateCertificatePolicyLifetimeActionArgs\n                    {\n                        Action = new Azure.KeyVault.Inputs.CertificateCertificatePolicyLifetimeActionActionArgs\n                        {\n                            ActionType = \"AutoRenew\",\n                        },\n                        Trigger = new Azure.KeyVault.Inputs.CertificateCertificatePolicyLifetimeActionTriggerArgs\n                        {\n                            DaysBeforeExpiry = 30,\n                        },\n                    },\n                },\n                SecretProperties = new Azure.KeyVault.Inputs.CertificateCertificatePolicySecretPropertiesArgs\n                {\n                    ContentType = \"application/x-pkcs12\",\n                },\n                X509CertificateProperties = new Azure.KeyVault.Inputs.CertificateCertificatePolicyX509CertificatePropertiesArgs\n                {\n                    ExtendedKeyUsages = \n                    {\n                        \"1.3.6.1.5.5.7.3.1\",\n                    },\n                    KeyUsages = \n                    {\n                        \"cRLSign\",\n                        \"dataEncipherment\",\n                        \"digitalSignature\",\n                        \"keyAgreement\",\n                        \"keyCertSign\",\n                        \"keyEncipherment\",\n                    },\n                    SubjectAlternativeNames = new Azure.KeyVault.Inputs.CertificateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNamesArgs\n                    {\n                        DnsNames = \n                        {\n                            \"internal.contoso.com\",\n                            \"domain.hello.world\",\n                        },\n                    },\n                    Subject = \"CN=hello-world\",\n                    ValidityInMonths = 12,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:                exampleResourceGroup.Location,\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tTenantId:                pulumi.String(current.TenantId),\n\t\t\tSkuName:                 pulumi.String(\"standard\"),\n\t\t\tSoftDeleteRetentionDays: pulumi.Int(7),\n\t\t\tAccessPolicies: keyvault.KeyVaultAccessPolicyArray{\n\t\t\t\t\u0026keyvault.KeyVaultAccessPolicyArgs{\n\t\t\t\t\tTenantId: pulumi.String(current.TenantId),\n\t\t\t\t\tObjectId: pulumi.String(current.ObjectId),\n\t\t\t\t\tCertificatePermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"create\"),\n\t\t\t\t\t\tpulumi.String(\"delete\"),\n\t\t\t\t\t\tpulumi.String(\"deleteissuers\"),\n\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\tpulumi.String(\"getissuers\"),\n\t\t\t\t\t\tpulumi.String(\"import\"),\n\t\t\t\t\t\tpulumi.String(\"list\"),\n\t\t\t\t\t\tpulumi.String(\"listissuers\"),\n\t\t\t\t\t\tpulumi.String(\"managecontacts\"),\n\t\t\t\t\t\tpulumi.String(\"manageissuers\"),\n\t\t\t\t\t\tpulumi.String(\"purge\"),\n\t\t\t\t\t\tpulumi.String(\"setissuers\"),\n\t\t\t\t\t\tpulumi.String(\"update\"),\n\t\t\t\t\t},\n\t\t\t\t\tKeyPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"backup\"),\n\t\t\t\t\t\tpulumi.String(\"create\"),\n\t\t\t\t\t\tpulumi.String(\"decrypt\"),\n\t\t\t\t\t\tpulumi.String(\"delete\"),\n\t\t\t\t\t\tpulumi.String(\"encrypt\"),\n\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\tpulumi.String(\"import\"),\n\t\t\t\t\t\tpulumi.String(\"list\"),\n\t\t\t\t\t\tpulumi.String(\"purge\"),\n\t\t\t\t\t\tpulumi.String(\"recover\"),\n\t\t\t\t\t\tpulumi.String(\"restore\"),\n\t\t\t\t\t\tpulumi.String(\"sign\"),\n\t\t\t\t\t\tpulumi.String(\"unwrapKey\"),\n\t\t\t\t\t\tpulumi.String(\"update\"),\n\t\t\t\t\t\tpulumi.String(\"verify\"),\n\t\t\t\t\t\tpulumi.String(\"wrapKey\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecretPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"backup\"),\n\t\t\t\t\t\tpulumi.String(\"delete\"),\n\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\tpulumi.String(\"list\"),\n\t\t\t\t\t\tpulumi.String(\"purge\"),\n\t\t\t\t\t\tpulumi.String(\"recover\"),\n\t\t\t\t\t\tpulumi.String(\"restore\"),\n\t\t\t\t\t\tpulumi.String(\"set\"),\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 = keyvault.NewCertificate(ctx, \"exampleCertificate\", \u0026keyvault.CertificateArgs{\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t\tCertificatePolicy: \u0026keyvault.CertificateCertificatePolicyArgs{\n\t\t\t\tIssuerParameters: \u0026keyvault.CertificateCertificatePolicyIssuerParametersArgs{\n\t\t\t\t\tName: pulumi.String(\"Self\"),\n\t\t\t\t},\n\t\t\t\tKeyProperties: \u0026keyvault.CertificateCertificatePolicyKeyPropertiesArgs{\n\t\t\t\t\tExportable: pulumi.Bool(true),\n\t\t\t\t\tKeySize:    pulumi.Int(2048),\n\t\t\t\t\tKeyType:    pulumi.String(\"RSA\"),\n\t\t\t\t\tReuseKey:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tLifetimeActions: keyvault.CertificateCertificatePolicyLifetimeActionArray{\n\t\t\t\t\t\u0026keyvault.CertificateCertificatePolicyLifetimeActionArgs{\n\t\t\t\t\t\tAction: \u0026keyvault.CertificateCertificatePolicyLifetimeActionActionArgs{\n\t\t\t\t\t\t\tActionType: pulumi.String(\"AutoRenew\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTrigger: \u0026keyvault.CertificateCertificatePolicyLifetimeActionTriggerArgs{\n\t\t\t\t\t\t\tDaysBeforeExpiry: pulumi.Int(30),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSecretProperties: \u0026keyvault.CertificateCertificatePolicySecretPropertiesArgs{\n\t\t\t\t\tContentType: pulumi.String(\"application/x-pkcs12\"),\n\t\t\t\t},\n\t\t\t\tX509CertificateProperties: \u0026keyvault.CertificateCertificatePolicyX509CertificatePropertiesArgs{\n\t\t\t\t\tExtendedKeyUsages: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"1.3.6.1.5.5.7.3.1\"),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsages: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"cRLSign\"),\n\t\t\t\t\t\tpulumi.String(\"dataEncipherment\"),\n\t\t\t\t\t\tpulumi.String(\"digitalSignature\"),\n\t\t\t\t\t\tpulumi.String(\"keyAgreement\"),\n\t\t\t\t\t\tpulumi.String(\"keyCertSign\"),\n\t\t\t\t\t\tpulumi.String(\"keyEncipherment\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAlternativeNames: \u0026keyvault.CertificateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNamesArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"internal.contoso.com\"),\n\t\t\t\t\t\t\tpulumi.String(\"domain.hello.world\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tSubject:          pulumi.String(\"CN=hello-world\"),\n\t\t\t\t\tValidityInMonths: pulumi.Int(12),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKey Vault Certificates can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:keyvault/certifiate:Certifiate example \"https://example-keyvault.vault.azure.net/certificates/example/fdf067c93bbb4b22bff4d8b7a9a56217\"\n```\n\n ",
      "inputProperties": {
        "certificate": {
          "$ref": "#/types/azure:keyvault/CertifiateCertificate:CertifiateCertificate",
          "description": "A `certificate` block as defined below, used to Import an existing certificate.\n",
          "language": {
            "csharp": {
              "name": "KeyVaultCertificate"
            }
          }
        },
        "certificatePolicy": {
          "$ref": "#/types/azure:keyvault/CertifiateCertificatePolicy:CertifiateCertificatePolicy",
          "description": "A `certificate_policy` block as defined below.\n"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault where the Certificate should be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Key Vault Certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "certificate": {
          "$ref": "#/types/azure:keyvault/CertifiateCertificate:CertifiateCertificate",
          "description": "A `certificate` block as defined below, used to Import an existing certificate.\n",
          "language": {
            "csharp": {
              "name": "KeyVaultCertificate"
            }
          }
        },
        "certificateAttributes": {
          "description": "A `certificate_attribute` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/CertifiateCertificateAttribute:CertifiateCertificateAttribute"
          },
          "type": "array"
        },
        "certificateData": {
          "description": "The raw Key Vault Certificate data represented as a hexadecimal string.\n",
          "type": "string"
        },
        "certificateDataBase64": {
          "description": "The Base64 encoded Key Vault Certificate data.\n",
          "type": "string"
        },
        "certificatePolicy": {
          "$ref": "#/types/azure:keyvault/CertifiateCertificatePolicy:CertifiateCertificatePolicy",
          "description": "A `certificate_policy` block as defined below.\n"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault where the Certificate should be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Key Vault Certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secretId": {
          "description": "The ID of the associated Key Vault Secret.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "thumbprint": {
          "description": "The X509 Thumbprint of the Key Vault Certificate represented as a hexadecimal string.\n",
          "type": "string"
        },
        "version": {
          "description": "The current version of the Key Vault Certificate.\n",
          "type": "string"
        }
      },
      "required": [
        "certificateAttributes",
        "certificateData",
        "certificateDataBase64",
        "certificatePolicy",
        "keyVaultId",
        "name",
        "secretId",
        "thumbprint",
        "version"
      ],
      "requiredInputs": [
        "certificatePolicy",
        "keyVaultId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Certifiate resources.\n",
        "properties": {
          "certificate": {
            "$ref": "#/types/azure:keyvault/CertifiateCertificate:CertifiateCertificate",
            "description": "A `certificate` block as defined below, used to Import an existing certificate.\n",
            "language": {
              "csharp": {
                "name": "KeyVaultCertificate"
              }
            }
          },
          "certificateAttributes": {
            "description": "A `certificate_attribute` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:keyvault/CertifiateCertificateAttribute:CertifiateCertificateAttribute"
            },
            "type": "array"
          },
          "certificateData": {
            "description": "The raw Key Vault Certificate data represented as a hexadecimal string.\n",
            "type": "string"
          },
          "certificateDataBase64": {
            "description": "The Base64 encoded Key Vault Certificate data.\n",
            "type": "string"
          },
          "certificatePolicy": {
            "$ref": "#/types/azure:keyvault/CertifiateCertificatePolicy:CertifiateCertificatePolicy",
            "description": "A `certificate_policy` block as defined below.\n"
          },
          "keyVaultId": {
            "description": "The ID of the Key Vault where the Certificate should be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Key Vault Certificate. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secretId": {
            "description": "The ID of the associated Key Vault Secret.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "thumbprint": {
            "description": "The X509 Thumbprint of the Key Vault Certificate represented as a hexadecimal string.\n",
            "type": "string"
          },
          "version": {
            "description": "The current version of the Key Vault Certificate.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:keyvault/certificate:Certificate": {
      "aliases": [
        {
          "type": "azure:keyvault/certifiate:Certifiate"
        }
      ],
      "description": "Manages a Key Vault Certificate.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Generating a new certificate\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"standard\",\n    softDeleteRetentionDays: 7,\n    accessPolicies: [{\n        tenantId: current.then(current =\u003e current.tenantId),\n        objectId: current.then(current =\u003e current.objectId),\n        certificatePermissions: [\n            \"create\",\n            \"delete\",\n            \"deleteissuers\",\n            \"get\",\n            \"getissuers\",\n            \"import\",\n            \"list\",\n            \"listissuers\",\n            \"managecontacts\",\n            \"manageissuers\",\n            \"purge\",\n            \"setissuers\",\n            \"update\",\n        ],\n        keyPermissions: [\n            \"backup\",\n            \"create\",\n            \"decrypt\",\n            \"delete\",\n            \"encrypt\",\n            \"get\",\n            \"import\",\n            \"list\",\n            \"purge\",\n            \"recover\",\n            \"restore\",\n            \"sign\",\n            \"unwrapKey\",\n            \"update\",\n            \"verify\",\n            \"wrapKey\",\n        ],\n        secretPermissions: [\n            \"backup\",\n            \"delete\",\n            \"get\",\n            \"list\",\n            \"purge\",\n            \"recover\",\n            \"restore\",\n            \"set\",\n        ],\n    }],\n});\nconst exampleCertificate = new azure.keyvault.Certificate(\"exampleCertificate\", {\n    keyVaultId: exampleKeyVault.id,\n    certificatePolicy: {\n        issuerParameters: {\n            name: \"Self\",\n        },\n        keyProperties: {\n            exportable: true,\n            keySize: 2048,\n            keyType: \"RSA\",\n            reuseKey: true,\n        },\n        lifetimeActions: [{\n            action: {\n                actionType: \"AutoRenew\",\n            },\n            trigger: {\n                daysBeforeExpiry: 30,\n            },\n        }],\n        secretProperties: {\n            contentType: \"application/x-pkcs12\",\n        },\n        x509CertificateProperties: {\n            extendedKeyUsages: [\"1.3.6.1.5.5.7.3.1\"],\n            keyUsages: [\n                \"cRLSign\",\n                \"dataEncipherment\",\n                \"digitalSignature\",\n                \"keyAgreement\",\n                \"keyCertSign\",\n                \"keyEncipherment\",\n            ],\n            subjectAlternativeNames: {\n                dnsNames: [\n                    \"internal.contoso.com\",\n                    \"domain.hello.world\",\n                ],\n            },\n            subject: \"CN=hello-world\",\n            validityInMonths: 12,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"standard\",\n    soft_delete_retention_days=7,\n    access_policies=[azure.keyvault.KeyVaultAccessPolicyArgs(\n        tenant_id=current.tenant_id,\n        object_id=current.object_id,\n        certificate_permissions=[\n            \"create\",\n            \"delete\",\n            \"deleteissuers\",\n            \"get\",\n            \"getissuers\",\n            \"import\",\n            \"list\",\n            \"listissuers\",\n            \"managecontacts\",\n            \"manageissuers\",\n            \"purge\",\n            \"setissuers\",\n            \"update\",\n        ],\n        key_permissions=[\n            \"backup\",\n            \"create\",\n            \"decrypt\",\n            \"delete\",\n            \"encrypt\",\n            \"get\",\n            \"import\",\n            \"list\",\n            \"purge\",\n            \"recover\",\n            \"restore\",\n            \"sign\",\n            \"unwrapKey\",\n            \"update\",\n            \"verify\",\n            \"wrapKey\",\n        ],\n        secret_permissions=[\n            \"backup\",\n            \"delete\",\n            \"get\",\n            \"list\",\n            \"purge\",\n            \"recover\",\n            \"restore\",\n            \"set\",\n        ],\n    )])\nexample_certificate = azure.keyvault.Certificate(\"exampleCertificate\",\n    key_vault_id=example_key_vault.id,\n    certificate_policy=azure.keyvault.CertificateCertificatePolicyArgs(\n        issuer_parameters=azure.keyvault.CertificateCertificatePolicyIssuerParametersArgs(\n            name=\"Self\",\n        ),\n        key_properties={\n            \"exportable\": True,\n            \"key_size\": 2048,\n            \"key_type\": \"RSA\",\n            \"reuseKey\": True,\n        },\n        lifetime_actions=[azure.keyvault.CertificateCertificatePolicyLifetimeActionArgs(\n            action=azure.keyvault.CertificateCertificatePolicyLifetimeActionActionArgs(\n                action_type=\"AutoRenew\",\n            ),\n            trigger=azure.keyvault.CertificateCertificatePolicyLifetimeActionTriggerArgs(\n                days_before_expiry=30,\n            ),\n        )],\n        secret_properties=azure.keyvault.CertificateCertificatePolicySecretPropertiesArgs(\n            content_type=\"application/x-pkcs12\",\n        ),\n        x509_certificate_properties=azure.keyvault.CertificateCertificatePolicyX509CertificatePropertiesArgs(\n            extended_key_usages=[\"1.3.6.1.5.5.7.3.1\"],\n            key_usages=[\n                \"cRLSign\",\n                \"dataEncipherment\",\n                \"digitalSignature\",\n                \"keyAgreement\",\n                \"keyCertSign\",\n                \"keyEncipherment\",\n            ],\n            subject_alternative_names=azure.keyvault.CertificateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNamesArgs(\n                dns_names=[\n                    \"internal.contoso.com\",\n                    \"domain.hello.world\",\n                ],\n            ),\n            subject=\"CN=hello-world\",\n            validity_in_months=12,\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"standard\",\n            SoftDeleteRetentionDays = 7,\n            AccessPolicies = \n            {\n                new Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs\n                {\n                    TenantId = current.Apply(current =\u003e current.TenantId),\n                    ObjectId = current.Apply(current =\u003e current.ObjectId),\n                    CertificatePermissions = \n                    {\n                        \"create\",\n                        \"delete\",\n                        \"deleteissuers\",\n                        \"get\",\n                        \"getissuers\",\n                        \"import\",\n                        \"list\",\n                        \"listissuers\",\n                        \"managecontacts\",\n                        \"manageissuers\",\n                        \"purge\",\n                        \"setissuers\",\n                        \"update\",\n                    },\n                    KeyPermissions = \n                    {\n                        \"backup\",\n                        \"create\",\n                        \"decrypt\",\n                        \"delete\",\n                        \"encrypt\",\n                        \"get\",\n                        \"import\",\n                        \"list\",\n                        \"purge\",\n                        \"recover\",\n                        \"restore\",\n                        \"sign\",\n                        \"unwrapKey\",\n                        \"update\",\n                        \"verify\",\n                        \"wrapKey\",\n                    },\n                    SecretPermissions = \n                    {\n                        \"backup\",\n                        \"delete\",\n                        \"get\",\n                        \"list\",\n                        \"purge\",\n                        \"recover\",\n                        \"restore\",\n                        \"set\",\n                    },\n                },\n            },\n        });\n        var exampleCertificate = new Azure.KeyVault.Certificate(\"exampleCertificate\", new Azure.KeyVault.CertificateArgs\n        {\n            KeyVaultId = exampleKeyVault.Id,\n            CertificatePolicy = new Azure.KeyVault.Inputs.CertificateCertificatePolicyArgs\n            {\n                IssuerParameters = new Azure.KeyVault.Inputs.CertificateCertificatePolicyIssuerParametersArgs\n                {\n                    Name = \"Self\",\n                },\n                KeyProperties = new Azure.KeyVault.Inputs.CertificateCertificatePolicyKeyPropertiesArgs\n                {\n                    Exportable = true,\n                    KeySize = 2048,\n                    KeyType = \"RSA\",\n                    ReuseKey = true,\n                },\n                LifetimeActions = \n                {\n                    new Azure.KeyVault.Inputs.CertificateCertificatePolicyLifetimeActionArgs\n                    {\n                        Action = new Azure.KeyVault.Inputs.CertificateCertificatePolicyLifetimeActionActionArgs\n                        {\n                            ActionType = \"AutoRenew\",\n                        },\n                        Trigger = new Azure.KeyVault.Inputs.CertificateCertificatePolicyLifetimeActionTriggerArgs\n                        {\n                            DaysBeforeExpiry = 30,\n                        },\n                    },\n                },\n                SecretProperties = new Azure.KeyVault.Inputs.CertificateCertificatePolicySecretPropertiesArgs\n                {\n                    ContentType = \"application/x-pkcs12\",\n                },\n                X509CertificateProperties = new Azure.KeyVault.Inputs.CertificateCertificatePolicyX509CertificatePropertiesArgs\n                {\n                    ExtendedKeyUsages = \n                    {\n                        \"1.3.6.1.5.5.7.3.1\",\n                    },\n                    KeyUsages = \n                    {\n                        \"cRLSign\",\n                        \"dataEncipherment\",\n                        \"digitalSignature\",\n                        \"keyAgreement\",\n                        \"keyCertSign\",\n                        \"keyEncipherment\",\n                    },\n                    SubjectAlternativeNames = new Azure.KeyVault.Inputs.CertificateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNamesArgs\n                    {\n                        DnsNames = \n                        {\n                            \"internal.contoso.com\",\n                            \"domain.hello.world\",\n                        },\n                    },\n                    Subject = \"CN=hello-world\",\n                    ValidityInMonths = 12,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:                exampleResourceGroup.Location,\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tTenantId:                pulumi.String(current.TenantId),\n\t\t\tSkuName:                 pulumi.String(\"standard\"),\n\t\t\tSoftDeleteRetentionDays: pulumi.Int(7),\n\t\t\tAccessPolicies: keyvault.KeyVaultAccessPolicyArray{\n\t\t\t\t\u0026keyvault.KeyVaultAccessPolicyArgs{\n\t\t\t\t\tTenantId: pulumi.String(current.TenantId),\n\t\t\t\t\tObjectId: pulumi.String(current.ObjectId),\n\t\t\t\t\tCertificatePermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"create\"),\n\t\t\t\t\t\tpulumi.String(\"delete\"),\n\t\t\t\t\t\tpulumi.String(\"deleteissuers\"),\n\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\tpulumi.String(\"getissuers\"),\n\t\t\t\t\t\tpulumi.String(\"import\"),\n\t\t\t\t\t\tpulumi.String(\"list\"),\n\t\t\t\t\t\tpulumi.String(\"listissuers\"),\n\t\t\t\t\t\tpulumi.String(\"managecontacts\"),\n\t\t\t\t\t\tpulumi.String(\"manageissuers\"),\n\t\t\t\t\t\tpulumi.String(\"purge\"),\n\t\t\t\t\t\tpulumi.String(\"setissuers\"),\n\t\t\t\t\t\tpulumi.String(\"update\"),\n\t\t\t\t\t},\n\t\t\t\t\tKeyPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"backup\"),\n\t\t\t\t\t\tpulumi.String(\"create\"),\n\t\t\t\t\t\tpulumi.String(\"decrypt\"),\n\t\t\t\t\t\tpulumi.String(\"delete\"),\n\t\t\t\t\t\tpulumi.String(\"encrypt\"),\n\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\tpulumi.String(\"import\"),\n\t\t\t\t\t\tpulumi.String(\"list\"),\n\t\t\t\t\t\tpulumi.String(\"purge\"),\n\t\t\t\t\t\tpulumi.String(\"recover\"),\n\t\t\t\t\t\tpulumi.String(\"restore\"),\n\t\t\t\t\t\tpulumi.String(\"sign\"),\n\t\t\t\t\t\tpulumi.String(\"unwrapKey\"),\n\t\t\t\t\t\tpulumi.String(\"update\"),\n\t\t\t\t\t\tpulumi.String(\"verify\"),\n\t\t\t\t\t\tpulumi.String(\"wrapKey\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecretPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"backup\"),\n\t\t\t\t\t\tpulumi.String(\"delete\"),\n\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\tpulumi.String(\"list\"),\n\t\t\t\t\t\tpulumi.String(\"purge\"),\n\t\t\t\t\t\tpulumi.String(\"recover\"),\n\t\t\t\t\t\tpulumi.String(\"restore\"),\n\t\t\t\t\t\tpulumi.String(\"set\"),\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 = keyvault.NewCertificate(ctx, \"exampleCertificate\", \u0026keyvault.CertificateArgs{\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t\tCertificatePolicy: \u0026keyvault.CertificateCertificatePolicyArgs{\n\t\t\t\tIssuerParameters: \u0026keyvault.CertificateCertificatePolicyIssuerParametersArgs{\n\t\t\t\t\tName: pulumi.String(\"Self\"),\n\t\t\t\t},\n\t\t\t\tKeyProperties: \u0026keyvault.CertificateCertificatePolicyKeyPropertiesArgs{\n\t\t\t\t\tExportable: pulumi.Bool(true),\n\t\t\t\t\tKeySize:    pulumi.Int(2048),\n\t\t\t\t\tKeyType:    pulumi.String(\"RSA\"),\n\t\t\t\t\tReuseKey:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tLifetimeActions: keyvault.CertificateCertificatePolicyLifetimeActionArray{\n\t\t\t\t\t\u0026keyvault.CertificateCertificatePolicyLifetimeActionArgs{\n\t\t\t\t\t\tAction: \u0026keyvault.CertificateCertificatePolicyLifetimeActionActionArgs{\n\t\t\t\t\t\t\tActionType: pulumi.String(\"AutoRenew\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTrigger: \u0026keyvault.CertificateCertificatePolicyLifetimeActionTriggerArgs{\n\t\t\t\t\t\t\tDaysBeforeExpiry: pulumi.Int(30),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSecretProperties: \u0026keyvault.CertificateCertificatePolicySecretPropertiesArgs{\n\t\t\t\t\tContentType: pulumi.String(\"application/x-pkcs12\"),\n\t\t\t\t},\n\t\t\t\tX509CertificateProperties: \u0026keyvault.CertificateCertificatePolicyX509CertificatePropertiesArgs{\n\t\t\t\t\tExtendedKeyUsages: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"1.3.6.1.5.5.7.3.1\"),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsages: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"cRLSign\"),\n\t\t\t\t\t\tpulumi.String(\"dataEncipherment\"),\n\t\t\t\t\t\tpulumi.String(\"digitalSignature\"),\n\t\t\t\t\t\tpulumi.String(\"keyAgreement\"),\n\t\t\t\t\t\tpulumi.String(\"keyCertSign\"),\n\t\t\t\t\t\tpulumi.String(\"keyEncipherment\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAlternativeNames: \u0026keyvault.CertificateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNamesArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"internal.contoso.com\"),\n\t\t\t\t\t\t\tpulumi.String(\"domain.hello.world\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tSubject:          pulumi.String(\"CN=hello-world\"),\n\t\t\t\t\tValidityInMonths: pulumi.Int(12),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKey Vault Certificates can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:keyvault/certificate:Certificate example \"https://example-keyvault.vault.azure.net/certificates/example/fdf067c93bbb4b22bff4d8b7a9a56217\"\n```\n\n ",
      "inputProperties": {
        "certificate": {
          "$ref": "#/types/azure:keyvault/CertificateCertificate:CertificateCertificate",
          "description": "A `certificate` block as defined below, used to Import an existing certificate.\n",
          "language": {
            "csharp": {
              "name": "KeyVaultCertificate"
            }
          }
        },
        "certificatePolicy": {
          "$ref": "#/types/azure:keyvault/CertificateCertificatePolicy:CertificateCertificatePolicy",
          "description": "A `certificate_policy` block as defined below.\n"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault where the Certificate should be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Key Vault Certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "certificate": {
          "$ref": "#/types/azure:keyvault/CertificateCertificate:CertificateCertificate",
          "description": "A `certificate` block as defined below, used to Import an existing certificate.\n",
          "language": {
            "csharp": {
              "name": "KeyVaultCertificate"
            }
          }
        },
        "certificateAttributes": {
          "description": "A `certificate_attribute` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/CertificateCertificateAttribute:CertificateCertificateAttribute"
          },
          "type": "array"
        },
        "certificateData": {
          "description": "The raw Key Vault Certificate data represented as a hexadecimal string.\n",
          "type": "string"
        },
        "certificateDataBase64": {
          "description": "The Base64 encoded Key Vault Certificate data.\n",
          "type": "string"
        },
        "certificatePolicy": {
          "$ref": "#/types/azure:keyvault/CertificateCertificatePolicy:CertificateCertificatePolicy",
          "description": "A `certificate_policy` block as defined below.\n"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault where the Certificate should be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Key Vault Certificate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secretId": {
          "description": "The ID of the associated Key Vault Secret.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "thumbprint": {
          "description": "The X509 Thumbprint of the Key Vault Certificate represented as a hexadecimal string.\n",
          "type": "string"
        },
        "version": {
          "description": "The current version of the Key Vault Certificate.\n",
          "type": "string"
        }
      },
      "required": [
        "certificateAttributes",
        "certificateData",
        "certificateDataBase64",
        "certificatePolicy",
        "keyVaultId",
        "name",
        "secretId",
        "thumbprint",
        "version"
      ],
      "requiredInputs": [
        "certificatePolicy",
        "keyVaultId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Certificate resources.\n",
        "properties": {
          "certificate": {
            "$ref": "#/types/azure:keyvault/CertificateCertificate:CertificateCertificate",
            "description": "A `certificate` block as defined below, used to Import an existing certificate.\n",
            "language": {
              "csharp": {
                "name": "KeyVaultCertificate"
              }
            }
          },
          "certificateAttributes": {
            "description": "A `certificate_attribute` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:keyvault/CertificateCertificateAttribute:CertificateCertificateAttribute"
            },
            "type": "array"
          },
          "certificateData": {
            "description": "The raw Key Vault Certificate data represented as a hexadecimal string.\n",
            "type": "string"
          },
          "certificateDataBase64": {
            "description": "The Base64 encoded Key Vault Certificate data.\n",
            "type": "string"
          },
          "certificatePolicy": {
            "$ref": "#/types/azure:keyvault/CertificateCertificatePolicy:CertificateCertificatePolicy",
            "description": "A `certificate_policy` block as defined below.\n"
          },
          "keyVaultId": {
            "description": "The ID of the Key Vault where the Certificate should be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Key Vault Certificate. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secretId": {
            "description": "The ID of the associated Key Vault Secret.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "thumbprint": {
            "description": "The X509 Thumbprint of the Key Vault Certificate represented as a hexadecimal string.\n",
            "type": "string"
          },
          "version": {
            "description": "The current version of the Key Vault Certificate.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:keyvault/certificateIssuer:CertificateIssuer": {
      "description": "Manages a Key Vault Certificate Issuer.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"standard\",\n    tenantId: current.then(current =\u003e current.tenantId),\n});\nconst exampleCertificateIssuer = new azure.keyvault.CertificateIssuer(\"exampleCertificateIssuer\", {\n    orgId: \"ExampleOrgName\",\n    keyVaultId: exampleKeyVault.id,\n    providerName: \"DigiCert\",\n    accountId: \"0000\",\n    password: \"example-password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"standard\",\n    tenant_id=current.tenant_id)\nexample_certificate_issuer = azure.keyvault.CertificateIssuer(\"exampleCertificateIssuer\",\n    org_id=\"ExampleOrgName\",\n    key_vault_id=example_key_vault.id,\n    provider_name=\"DigiCert\",\n    account_id=\"0000\",\n    password=\"example-password\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"standard\",\n            TenantId = current.Apply(current =\u003e current.TenantId),\n        });\n        var exampleCertificateIssuer = new Azure.KeyVault.CertificateIssuer(\"exampleCertificateIssuer\", new Azure.KeyVault.CertificateIssuerArgs\n        {\n            OrgId = \"ExampleOrgName\",\n            KeyVaultId = exampleKeyVault.Id,\n            ProviderName = \"DigiCert\",\n            AccountId = \"0000\",\n            Password = \"example-password\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"standard\"),\n\t\t\tTenantId:          pulumi.String(current.TenantId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = keyvault.NewCertificateIssuer(ctx, \"exampleCertificateIssuer\", \u0026keyvault.CertificateIssuerArgs{\n\t\t\tOrgId:        pulumi.String(\"ExampleOrgName\"),\n\t\t\tKeyVaultId:   exampleKeyVault.ID(),\n\t\t\tProviderName: pulumi.String(\"DigiCert\"),\n\t\t\tAccountId:    pulumi.String(\"0000\"),\n\t\t\tPassword:     pulumi.String(\"example-password\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKey Vault Certificate Issuers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:keyvault/certificateIssuer:CertificateIssuer example \"https://key-vault-name.vault.azure.net/certificates/issuers/example\"\n```\n\n ",
      "inputProperties": {
        "accountId": {
          "description": "The account number with the third-party Certificate Issuer.\n",
          "type": "string"
        },
        "admins": {
          "description": "One or more `admin` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/CertificateIssuerAdmin:CertificateIssuerAdmin"
          },
          "type": "array"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault in which to create the Certificate Issuer.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Key Vault Certificate Issuer. Changing this forces a new Key Vault Certificate Issuer to be created.\n",
          "type": "string"
        },
        "orgId": {
          "description": "The ID of the organization as provided to the issuer.\n",
          "type": "string"
        },
        "password": {
          "description": "The password associated with the account and organization ID at the third-party Certificate Issuer. If not specified, will not overwrite any previous value.\n",
          "type": "string"
        },
        "providerName": {
          "description": "The name of the third-party Certificate Issuer. Possible values are: `DigiCert`, `GlobalSign`, `OneCertV2-PrivateCA`, `OneCertV2-PublicCA` and `SslAdminV2`.\n",
          "type": "string"
        }
      },
      "properties": {
        "accountId": {
          "description": "The account number with the third-party Certificate Issuer.\n",
          "type": "string"
        },
        "admins": {
          "description": "One or more `admin` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/CertificateIssuerAdmin:CertificateIssuerAdmin"
          },
          "type": "array"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault in which to create the Certificate Issuer.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Key Vault Certificate Issuer. Changing this forces a new Key Vault Certificate Issuer to be created.\n",
          "type": "string"
        },
        "orgId": {
          "description": "The ID of the organization as provided to the issuer.\n",
          "type": "string"
        },
        "password": {
          "description": "The password associated with the account and organization ID at the third-party Certificate Issuer. If not specified, will not overwrite any previous value.\n",
          "type": "string"
        },
        "providerName": {
          "description": "The name of the third-party Certificate Issuer. Possible values are: `DigiCert`, `GlobalSign`, `OneCertV2-PrivateCA`, `OneCertV2-PublicCA` and `SslAdminV2`.\n",
          "type": "string"
        }
      },
      "required": [
        "keyVaultId",
        "name",
        "providerName"
      ],
      "requiredInputs": [
        "keyVaultId",
        "providerName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CertificateIssuer resources.\n",
        "properties": {
          "accountId": {
            "description": "The account number with the third-party Certificate Issuer.\n",
            "type": "string"
          },
          "admins": {
            "description": "One or more `admin` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:keyvault/CertificateIssuerAdmin:CertificateIssuerAdmin"
            },
            "type": "array"
          },
          "keyVaultId": {
            "description": "The ID of the Key Vault in which to create the Certificate Issuer.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Key Vault Certificate Issuer. Changing this forces a new Key Vault Certificate Issuer to be created.\n",
            "type": "string"
          },
          "orgId": {
            "description": "The ID of the organization as provided to the issuer.\n",
            "type": "string"
          },
          "password": {
            "description": "The password associated with the account and organization ID at the third-party Certificate Issuer. If not specified, will not overwrite any previous value.\n",
            "type": "string"
          },
          "providerName": {
            "description": "The name of the third-party Certificate Issuer. Possible values are: `DigiCert`, `GlobalSign`, `OneCertV2-PrivateCA`, `OneCertV2-PublicCA` and `SslAdminV2`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:keyvault/key:Key": {
      "description": "Manages a Key Vault Key.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"premium\",\n    softDeleteRetentionDays: 7,\n    accessPolicies: [{\n        tenantId: current.then(current =\u003e current.tenantId),\n        objectId: current.then(current =\u003e current.objectId),\n        keyPermissions: [\n            \"create\",\n            \"get\",\n            \"purge\",\n            \"recover\",\n        ],\n        secretPermissions: [\"set\"],\n    }],\n});\nconst generated = new azure.keyvault.Key(\"generated\", {\n    keyVaultId: exampleKeyVault.id,\n    keyType: \"RSA\",\n    keySize: 2048,\n    keyOpts: [\n        \"decrypt\",\n        \"encrypt\",\n        \"sign\",\n        \"unwrapKey\",\n        \"verify\",\n        \"wrapKey\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"premium\",\n    soft_delete_retention_days=7,\n    access_policies=[azure.keyvault.KeyVaultAccessPolicyArgs(\n        tenant_id=current.tenant_id,\n        object_id=current.object_id,\n        key_permissions=[\n            \"create\",\n            \"get\",\n            \"purge\",\n            \"recover\",\n        ],\n        secret_permissions=[\"set\"],\n    )])\ngenerated = azure.keyvault.Key(\"generated\",\n    key_vault_id=example_key_vault.id,\n    key_type=\"RSA\",\n    key_size=2048,\n    key_opts=[\n        \"decrypt\",\n        \"encrypt\",\n        \"sign\",\n        \"unwrapKey\",\n        \"verify\",\n        \"wrapKey\",\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"premium\",\n            SoftDeleteRetentionDays = 7,\n            AccessPolicies = \n            {\n                new Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs\n                {\n                    TenantId = current.Apply(current =\u003e current.TenantId),\n                    ObjectId = current.Apply(current =\u003e current.ObjectId),\n                    KeyPermissions = \n                    {\n                        \"create\",\n                        \"get\",\n                        \"purge\",\n                        \"recover\",\n                    },\n                    SecretPermissions = \n                    {\n                        \"set\",\n                    },\n                },\n            },\n        });\n        var generated = new Azure.KeyVault.Key(\"generated\", new Azure.KeyVault.KeyArgs\n        {\n            KeyVaultId = exampleKeyVault.Id,\n            KeyType = \"RSA\",\n            KeySize = 2048,\n            KeyOpts = \n            {\n                \"decrypt\",\n                \"encrypt\",\n                \"sign\",\n                \"unwrapKey\",\n                \"verify\",\n                \"wrapKey\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:                exampleResourceGroup.Location,\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tTenantId:                pulumi.String(current.TenantId),\n\t\t\tSkuName:                 pulumi.String(\"premium\"),\n\t\t\tSoftDeleteRetentionDays: pulumi.Int(7),\n\t\t\tAccessPolicies: keyvault.KeyVaultAccessPolicyArray{\n\t\t\t\t\u0026keyvault.KeyVaultAccessPolicyArgs{\n\t\t\t\t\tTenantId: pulumi.String(current.TenantId),\n\t\t\t\t\tObjectId: pulumi.String(current.ObjectId),\n\t\t\t\t\tKeyPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"create\"),\n\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\tpulumi.String(\"purge\"),\n\t\t\t\t\t\tpulumi.String(\"recover\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecretPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"set\"),\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 = keyvault.NewKey(ctx, \"generated\", \u0026keyvault.KeyArgs{\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t\tKeyType:    pulumi.String(\"RSA\"),\n\t\t\tKeySize:    pulumi.Int(2048),\n\t\t\tKeyOpts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"decrypt\"),\n\t\t\t\tpulumi.String(\"encrypt\"),\n\t\t\t\tpulumi.String(\"sign\"),\n\t\t\t\tpulumi.String(\"unwrapKey\"),\n\t\t\t\tpulumi.String(\"verify\"),\n\t\t\t\tpulumi.String(\"wrapKey\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKey Vault Key which is Enabled can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:keyvault/key:Key example \"https://example-keyvault.vault.azure.net/keys/example/fdf067c93bbb4b22bff4d8b7a9a56217\"\n```\n\n ",
      "inputProperties": {
        "curve": {
          "description": "Specifies the curve to use when creating an `EC` key. Possible values are `P-256`, `P-256K`, `P-384`, and `P-521`. This field will be required in a future release if `key_type` is `EC` or `EC-HSM`. The API will default to `P-256` if nothing is specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "expirationDate": {
          "description": "Expiration UTC datetime (Y-m-d'T'H:M:S'Z').\n",
          "type": "string"
        },
        "keyOpts": {
          "description": "A list of JSON web key operations. Possible values include: `decrypt`, `encrypt`, `sign`, `unwrapKey`, `verify` and `wrapKey`. Please note these values are case sensitive.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "keySize": {
          "description": "Specifies the Size of the RSA key to create in bytes. For example, 1024 or 2048. *Note*: This field is required if `key_type` is `RSA` or `RSA-HSM`. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "keyType": {
          "description": "Specifies the Key Type to use for this Key Vault Key. Possible values are `EC` (Elliptic Curve), `EC-HSM`, `Oct` (Octet), `RSA` and `RSA-HSM`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault where the Key should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Key Vault Key. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notBeforeDate": {
          "description": "Key not usable before the provided UTC datetime (Y-m-d'T'H:M:S'Z').\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "curve": {
          "description": "Specifies the curve to use when creating an `EC` key. Possible values are `P-256`, `P-256K`, `P-384`, and `P-521`. This field will be required in a future release if `key_type` is `EC` or `EC-HSM`. The API will default to `P-256` if nothing is specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "e": {
          "description": "The RSA public exponent of this Key Vault Key.\n",
          "type": "string"
        },
        "expirationDate": {
          "description": "Expiration UTC datetime (Y-m-d'T'H:M:S'Z').\n",
          "type": "string"
        },
        "keyOpts": {
          "description": "A list of JSON web key operations. Possible values include: `decrypt`, `encrypt`, `sign`, `unwrapKey`, `verify` and `wrapKey`. Please note these values are case sensitive.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "keySize": {
          "description": "Specifies the Size of the RSA key to create in bytes. For example, 1024 or 2048. *Note*: This field is required if `key_type` is `RSA` or `RSA-HSM`. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "keyType": {
          "description": "Specifies the Key Type to use for this Key Vault Key. Possible values are `EC` (Elliptic Curve), `EC-HSM`, `Oct` (Octet), `RSA` and `RSA-HSM`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault where the Key should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "n": {
          "description": "The RSA modulus of this Key Vault Key.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Key Vault Key. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notBeforeDate": {
          "description": "Key not usable before the provided UTC datetime (Y-m-d'T'H:M:S'Z').\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "version": {
          "description": "The current version of the Key Vault Key.\n",
          "type": "string"
        },
        "versionlessId": {
          "description": "The Base ID of the Key Vault Key.\n",
          "type": "string"
        },
        "x": {
          "description": "The EC X component of this Key Vault Key.\n",
          "type": "string"
        },
        "y": {
          "description": "The EC Y component of this Key Vault Key.\n",
          "type": "string"
        }
      },
      "required": [
        "curve",
        "e",
        "keyOpts",
        "keyType",
        "keyVaultId",
        "n",
        "name",
        "version",
        "versionlessId",
        "x",
        "y"
      ],
      "requiredInputs": [
        "keyOpts",
        "keyType",
        "keyVaultId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Key resources.\n",
        "properties": {
          "curve": {
            "description": "Specifies the curve to use when creating an `EC` key. Possible values are `P-256`, `P-256K`, `P-384`, and `P-521`. This field will be required in a future release if `key_type` is `EC` or `EC-HSM`. The API will default to `P-256` if nothing is specified. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "e": {
            "description": "The RSA public exponent of this Key Vault Key.\n",
            "type": "string"
          },
          "expirationDate": {
            "description": "Expiration UTC datetime (Y-m-d'T'H:M:S'Z').\n",
            "type": "string"
          },
          "keyOpts": {
            "description": "A list of JSON web key operations. Possible values include: `decrypt`, `encrypt`, `sign`, `unwrapKey`, `verify` and `wrapKey`. Please note these values are case sensitive.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "keySize": {
            "description": "Specifies the Size of the RSA key to create in bytes. For example, 1024 or 2048. *Note*: This field is required if `key_type` is `RSA` or `RSA-HSM`. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "keyType": {
            "description": "Specifies the Key Type to use for this Key Vault Key. Possible values are `EC` (Elliptic Curve), `EC-HSM`, `Oct` (Octet), `RSA` and `RSA-HSM`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "keyVaultId": {
            "description": "The ID of the Key Vault where the Key should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "n": {
            "description": "The RSA modulus of this Key Vault Key.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Key Vault Key. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "notBeforeDate": {
            "description": "Key not usable before the provided UTC datetime (Y-m-d'T'H:M:S'Z').\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "version": {
            "description": "The current version of the Key Vault Key.\n",
            "type": "string"
          },
          "versionlessId": {
            "description": "The Base ID of the Key Vault Key.\n",
            "type": "string"
          },
          "x": {
            "description": "The EC X component of this Key Vault Key.\n",
            "type": "string"
          },
          "y": {
            "description": "The EC Y component of this Key Vault Key.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:keyvault/keyVault:KeyVault": {
      "description": "Manages a Key Vault.\n\n## Disclaimers\n\n\u003e **Note:** It's possible to define Key Vault Access Policies both within the `azure.keyvault.KeyVault` resource via the `access_policy` block and by using the `azure.keyvault.AccessPolicy` resource. However it's not possible to use both methods to manage Access Policies within a KeyVault, since there'll be conflicts.\n\n\u003e **Note:** This provider will automatically recover a soft-deleted Key Vault during Creation if one is found - you can opt out of this using the `features` configuration within the Provider configuration block.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    enabledForDiskEncryption: true,\n    tenantId: current.then(current =\u003e current.tenantId),\n    softDeleteRetentionDays: 7,\n    purgeProtectionEnabled: false,\n    skuName: \"standard\",\n    accessPolicies: [{\n        tenantId: current.then(current =\u003e current.tenantId),\n        objectId: current.then(current =\u003e current.objectId),\n        keyPermissions: [\"Get\"],\n        secretPermissions: [\"Get\"],\n        storagePermissions: [\"Get\"],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    enabled_for_disk_encryption=True,\n    tenant_id=current.tenant_id,\n    soft_delete_retention_days=7,\n    purge_protection_enabled=False,\n    sku_name=\"standard\",\n    access_policies=[azure.keyvault.KeyVaultAccessPolicyArgs(\n        tenant_id=current.tenant_id,\n        object_id=current.object_id,\n        key_permissions=[\"Get\"],\n        secret_permissions=[\"Get\"],\n        storage_permissions=[\"Get\"],\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            EnabledForDiskEncryption = true,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SoftDeleteRetentionDays = 7,\n            PurgeProtectionEnabled = false,\n            SkuName = \"standard\",\n            AccessPolicies = \n            {\n                new Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs\n                {\n                    TenantId = current.Apply(current =\u003e current.TenantId),\n                    ObjectId = current.Apply(current =\u003e current.ObjectId),\n                    KeyPermissions = \n                    {\n                        \"Get\",\n                    },\n                    SecretPermissions = \n                    {\n                        \"Get\",\n                    },\n                    StoragePermissions = \n                    {\n                        \"Get\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:                 exampleResourceGroup.Location,\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tEnabledForDiskEncryption: pulumi.Bool(true),\n\t\t\tTenantId:                 pulumi.String(current.TenantId),\n\t\t\tSoftDeleteRetentionDays:  pulumi.Int(7),\n\t\t\tPurgeProtectionEnabled:   pulumi.Bool(false),\n\t\t\tSkuName:                  pulumi.String(\"standard\"),\n\t\t\tAccessPolicies: keyvault.KeyVaultAccessPolicyArray{\n\t\t\t\t\u0026keyvault.KeyVaultAccessPolicyArgs{\n\t\t\t\t\tTenantId: pulumi.String(current.TenantId),\n\t\t\t\t\tObjectId: pulumi.String(current.ObjectId),\n\t\t\t\t\tKeyPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Get\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecretPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Get\"),\n\t\t\t\t\t},\n\t\t\t\t\tStoragePermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Get\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKey Vault's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:keyvault/keyVault:KeyVault example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.KeyVault/vaults/vault1\n```\n\n ",
      "inputProperties": {
        "accessPolicies": {
          "description": "A list of up to 16 objects describing access policies, as described below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/KeyVaultAccessPolicy:KeyVaultAccessPolicy"
          },
          "type": "array"
        },
        "contacts": {
          "description": "One or more `contact` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/KeyVaultContact:KeyVaultContact"
          },
          "type": "array"
        },
        "enableRbacAuthorization": {
          "description": "Boolean flag to specify whether Azure Key Vault uses Role Based Access Control (RBAC) for authorization of data actions. Defaults to `false`.\n",
          "type": "boolean"
        },
        "enabledForDeployment": {
          "description": "Boolean flag to specify whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault. Defaults to `false`.\n",
          "type": "boolean"
        },
        "enabledForDiskEncryption": {
          "description": "Boolean flag to specify whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys. Defaults to `false`.\n",
          "type": "boolean"
        },
        "enabledForTemplateDeployment": {
          "description": "Boolean flag to specify whether Azure Resource Manager is permitted to retrieve secrets from the key vault. Defaults to `false`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Key Vault. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkAcls": {
          "$ref": "#/types/azure:keyvault/KeyVaultNetworkAcls:KeyVaultNetworkAcls",
          "description": "A `network_acls` block as defined below.\n"
        },
        "purgeProtectionEnabled": {
          "description": "Is Purge Protection enabled for this Key Vault? Defaults to `false`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Key Vault. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The Name of the SKU used for this Key Vault. Possible values are `standard` and `premium`.\n",
          "type": "string"
        },
        "softDeleteEnabled": {
          "deprecationMessage": "Azure has removed support for disabling Soft Delete as of 2020-12-15, as such this field is no longer configurable and can be safely removed. This field will be removed in version 3.0 of the Azure Provider.",
          "type": "boolean"
        },
        "softDeleteRetentionDays": {
          "description": "The number of days that items should be retained for once soft-deleted. This value can be between `7` and `90` (the default) days.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "tenantId": {
          "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.\n",
          "type": "string"
        }
      },
      "properties": {
        "accessPolicies": {
          "description": "A list of up to 16 objects describing access policies, as described below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/KeyVaultAccessPolicy:KeyVaultAccessPolicy"
          },
          "type": "array"
        },
        "contacts": {
          "description": "One or more `contact` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/KeyVaultContact:KeyVaultContact"
          },
          "type": "array"
        },
        "enableRbacAuthorization": {
          "description": "Boolean flag to specify whether Azure Key Vault uses Role Based Access Control (RBAC) for authorization of data actions. Defaults to `false`.\n",
          "type": "boolean"
        },
        "enabledForDeployment": {
          "description": "Boolean flag to specify whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault. Defaults to `false`.\n",
          "type": "boolean"
        },
        "enabledForDiskEncryption": {
          "description": "Boolean flag to specify whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys. Defaults to `false`.\n",
          "type": "boolean"
        },
        "enabledForTemplateDeployment": {
          "description": "Boolean flag to specify whether Azure Resource Manager is permitted to retrieve secrets from the key vault. Defaults to `false`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Key Vault. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkAcls": {
          "$ref": "#/types/azure:keyvault/KeyVaultNetworkAcls:KeyVaultNetworkAcls",
          "description": "A `network_acls` block as defined below.\n"
        },
        "purgeProtectionEnabled": {
          "description": "Is Purge Protection enabled for this Key Vault? Defaults to `false`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Key Vault. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The Name of the SKU used for this Key Vault. Possible values are `standard` and `premium`.\n",
          "type": "string"
        },
        "softDeleteEnabled": {
          "deprecationMessage": "Azure has removed support for disabling Soft Delete as of 2020-12-15, as such this field is no longer configurable and can be safely removed. This field will be removed in version 3.0 of the Azure Provider.",
          "type": "boolean"
        },
        "softDeleteRetentionDays": {
          "description": "The number of days that items should be retained for once soft-deleted. This value can be between `7` and `90` (the default) days.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "tenantId": {
          "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.\n",
          "type": "string"
        },
        "vaultUri": {
          "description": "The URI of the Key Vault, used for performing operations on keys and secrets.\n",
          "type": "string"
        }
      },
      "required": [
        "accessPolicies",
        "location",
        "name",
        "networkAcls",
        "resourceGroupName",
        "skuName",
        "softDeleteEnabled",
        "tenantId",
        "vaultUri"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "skuName",
        "tenantId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering KeyVault resources.\n",
        "properties": {
          "accessPolicies": {
            "description": "A list of up to 16 objects describing access policies, as described below.\n",
            "items": {
              "$ref": "#/types/azure:keyvault/KeyVaultAccessPolicy:KeyVaultAccessPolicy"
            },
            "type": "array"
          },
          "contacts": {
            "description": "One or more `contact` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:keyvault/KeyVaultContact:KeyVaultContact"
            },
            "type": "array"
          },
          "enableRbacAuthorization": {
            "description": "Boolean flag to specify whether Azure Key Vault uses Role Based Access Control (RBAC) for authorization of data actions. Defaults to `false`.\n",
            "type": "boolean"
          },
          "enabledForDeployment": {
            "description": "Boolean flag to specify whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault. Defaults to `false`.\n",
            "type": "boolean"
          },
          "enabledForDiskEncryption": {
            "description": "Boolean flag to specify whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys. Defaults to `false`.\n",
            "type": "boolean"
          },
          "enabledForTemplateDeployment": {
            "description": "Boolean flag to specify whether Azure Resource Manager is permitted to retrieve secrets from the key vault. Defaults to `false`.\n",
            "type": "boolean"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Key Vault. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkAcls": {
            "$ref": "#/types/azure:keyvault/KeyVaultNetworkAcls:KeyVaultNetworkAcls",
            "description": "A `network_acls` block as defined below.\n"
          },
          "purgeProtectionEnabled": {
            "description": "Is Purge Protection enabled for this Key Vault? Defaults to `false`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Key Vault. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The Name of the SKU used for this Key Vault. Possible values are `standard` and `premium`.\n",
            "type": "string"
          },
          "softDeleteEnabled": {
            "deprecationMessage": "Azure has removed support for disabling Soft Delete as of 2020-12-15, as such this field is no longer configurable and can be safely removed. This field will be removed in version 3.0 of the Azure Provider.",
            "type": "boolean"
          },
          "softDeleteRetentionDays": {
            "description": "The number of days that items should be retained for once soft-deleted. This value can be between `7` and `90` (the default) days.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "tenantId": {
            "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.\n",
            "type": "string"
          },
          "vaultUri": {
            "description": "The URI of the Key Vault, used for performing operations on keys and secrets.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:keyvault/managedHardwareSecurityModule:ManagedHardwareSecurityModule": {
      "description": "Manages a Key Vault Managed Hardware Security Module.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleManagedHardwareSecurityModule = new azure.keyvault.ManagedHardwareSecurityModule(\"exampleManagedHardwareSecurityModule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    skuName: \"Standard_B1\",\n    purgeProtectionEnabled: false,\n    softDeleteRetentionDays: 90,\n    tenantId: current.then(current =\u003e current.tenantId),\n    adminObjectIds: [current.then(current =\u003e current.objectId)],\n    tags: {\n        Env: \"Test\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_managed_hardware_security_module = azure.keyvault.ManagedHardwareSecurityModule(\"exampleManagedHardwareSecurityModule\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku_name=\"Standard_B1\",\n    purge_protection_enabled=False,\n    soft_delete_retention_days=90,\n    tenant_id=current.tenant_id,\n    admin_object_ids=[current.object_id],\n    tags={\n        \"Env\": \"Test\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleManagedHardwareSecurityModule = new Azure.KeyVault.ManagedHardwareSecurityModule(\"exampleManagedHardwareSecurityModule\", new Azure.KeyVault.ManagedHardwareSecurityModuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            SkuName = \"Standard_B1\",\n            PurgeProtectionEnabled = false,\n            SoftDeleteRetentionDays = 90,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            AdminObjectIds = \n            {\n                current.Apply(current =\u003e current.ObjectId),\n            },\n            Tags = \n            {\n                { \"Env\", \"Test\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = keyvault.NewManagedHardwareSecurityModule(ctx, \"exampleManagedHardwareSecurityModule\", \u0026keyvault.ManagedHardwareSecurityModuleArgs{\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tLocation:                exampleResourceGroup.Location,\n\t\t\tSkuName:                 pulumi.String(\"Standard_B1\"),\n\t\t\tPurgeProtectionEnabled:  pulumi.Bool(false),\n\t\t\tSoftDeleteRetentionDays: pulumi.Int(90),\n\t\t\tTenantId:                pulumi.String(current.TenantId),\n\t\t\tAdminObjectIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(current.ObjectId),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Env\": pulumi.String(\"Test\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKey Vault Managed Hardware Security Module can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:keyvault/managedHardwareSecurityModule:ManagedHardwareSecurityModule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.KeyVault/managedHSMs/hsm1\n```\n\n ",
      "inputProperties": {
        "adminObjectIds": {
          "description": "Specifies a list of administrators object IDs for the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Key Vault Managed Hardware Security Module. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "purgeProtectionEnabled": {
          "description": "Is Purge Protection enabled for this Key Vault Managed Hardware Security Module? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Key Vault Managed Hardware Security Module. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The Name of the SKU used for this Key Vault Managed Hardware Security Module. Possible value is `Standard_B1`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "softDeleteRetentionDays": {
          "description": "The number of days that items should be retained for once soft-deleted. This value can be between `7` and `90` days. Defaults to `90`. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
          "type": "object"
        },
        "tenantId": {
          "description": "The Azure Active Directory Tenant ID that should be used for authenticating requests to the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "adminObjectIds": {
          "description": "Specifies a list of administrators object IDs for the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "hsmUri": {
          "description": "The URI of the Key Vault Managed Hardware Security Module, used for performing operations on keys.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Key Vault Managed Hardware Security Module. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "purgeProtectionEnabled": {
          "description": "Is Purge Protection enabled for this Key Vault Managed Hardware Security Module? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Key Vault Managed Hardware Security Module. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The Name of the SKU used for this Key Vault Managed Hardware Security Module. Possible value is `Standard_B1`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "softDeleteRetentionDays": {
          "description": "The number of days that items should be retained for once soft-deleted. This value can be between `7` and `90` days. Defaults to `90`. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
          "type": "object"
        },
        "tenantId": {
          "description": "The Azure Active Directory Tenant ID that should be used for authenticating requests to the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "adminObjectIds",
        "hsmUri",
        "location",
        "name",
        "resourceGroupName",
        "skuName",
        "tenantId"
      ],
      "requiredInputs": [
        "adminObjectIds",
        "resourceGroupName",
        "skuName",
        "tenantId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ManagedHardwareSecurityModule resources.\n",
        "properties": {
          "adminObjectIds": {
            "description": "Specifies a list of administrators object IDs for the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "hsmUri": {
            "description": "The URI of the Key Vault Managed Hardware Security Module, used for performing operations on keys.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Key Vault Managed Hardware Security Module. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "purgeProtectionEnabled": {
            "description": "Is Purge Protection enabled for this Key Vault Managed Hardware Security Module? Defaults to `false`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Key Vault Managed Hardware Security Module. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The Name of the SKU used for this Key Vault Managed Hardware Security Module. Possible value is `Standard_B1`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "softDeleteRetentionDays": {
            "description": "The number of days that items should be retained for once soft-deleted. This value can be between `7` and `90` days. Defaults to `90`. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
            "type": "object"
          },
          "tenantId": {
            "description": "The Azure Active Directory Tenant ID that should be used for authenticating requests to the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:keyvault/secret:Secret": {
      "description": "Manages a Key Vault Secret.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"premium\",\n    softDeleteRetentionDays: 7,\n    accessPolicies: [{\n        tenantId: current.then(current =\u003e current.tenantId),\n        objectId: current.then(current =\u003e current.objectId),\n        keyPermissions: [\n            \"create\",\n            \"get\",\n        ],\n        secretPermissions: [\n            \"set\",\n            \"get\",\n            \"delete\",\n            \"purge\",\n            \"recover\",\n        ],\n    }],\n});\nconst exampleSecret = new azure.keyvault.Secret(\"exampleSecret\", {\n    value: \"szechuan\",\n    keyVaultId: exampleKeyVault.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"premium\",\n    soft_delete_retention_days=7,\n    access_policies=[azure.keyvault.KeyVaultAccessPolicyArgs(\n        tenant_id=current.tenant_id,\n        object_id=current.object_id,\n        key_permissions=[\n            \"create\",\n            \"get\",\n        ],\n        secret_permissions=[\n            \"set\",\n            \"get\",\n            \"delete\",\n            \"purge\",\n            \"recover\",\n        ],\n    )])\nexample_secret = azure.keyvault.Secret(\"exampleSecret\",\n    value=\"szechuan\",\n    key_vault_id=example_key_vault.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"premium\",\n            SoftDeleteRetentionDays = 7,\n            AccessPolicies = \n            {\n                new Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs\n                {\n                    TenantId = current.Apply(current =\u003e current.TenantId),\n                    ObjectId = current.Apply(current =\u003e current.ObjectId),\n                    KeyPermissions = \n                    {\n                        \"create\",\n                        \"get\",\n                    },\n                    SecretPermissions = \n                    {\n                        \"set\",\n                        \"get\",\n                        \"delete\",\n                        \"purge\",\n                        \"recover\",\n                    },\n                },\n            },\n        });\n        var exampleSecret = new Azure.KeyVault.Secret(\"exampleSecret\", new Azure.KeyVault.SecretArgs\n        {\n            Value = \"szechuan\",\n            KeyVaultId = exampleKeyVault.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:                exampleResourceGroup.Location,\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tTenantId:                pulumi.String(current.TenantId),\n\t\t\tSkuName:                 pulumi.String(\"premium\"),\n\t\t\tSoftDeleteRetentionDays: pulumi.Int(7),\n\t\t\tAccessPolicies: keyvault.KeyVaultAccessPolicyArray{\n\t\t\t\t\u0026keyvault.KeyVaultAccessPolicyArgs{\n\t\t\t\t\tTenantId: pulumi.String(current.TenantId),\n\t\t\t\t\tObjectId: pulumi.String(current.ObjectId),\n\t\t\t\t\tKeyPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"create\"),\n\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecretPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"set\"),\n\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\tpulumi.String(\"delete\"),\n\t\t\t\t\t\tpulumi.String(\"purge\"),\n\t\t\t\t\t\tpulumi.String(\"recover\"),\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 = keyvault.NewSecret(ctx, \"exampleSecret\", \u0026keyvault.SecretArgs{\n\t\t\tValue:      pulumi.String(\"szechuan\"),\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKey Vault Secrets which are Enabled can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:keyvault/secret:Secret example \"https://example-keyvault.vault.azure.net/secrets/example/fdf067c93bbb4b22bff4d8b7a9a56217\"\n```\n\n ",
      "inputProperties": {
        "contentType": {
          "description": "Specifies the content type for the Key Vault Secret.\n",
          "type": "string"
        },
        "expirationDate": {
          "description": "Expiration UTC datetime (Y-m-d'T'H:M:S'Z').\n",
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault where the Secret should be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Key Vault Secret. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notBeforeDate": {
          "description": "Key not usable before the provided UTC datetime (Y-m-d'T'H:M:S'Z').\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "value": {
          "description": "Specifies the value of the Key Vault Secret.\n",
          "type": "string"
        }
      },
      "properties": {
        "contentType": {
          "description": "Specifies the content type for the Key Vault Secret.\n",
          "type": "string"
        },
        "expirationDate": {
          "description": "Expiration UTC datetime (Y-m-d'T'H:M:S'Z').\n",
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault where the Secret should be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Key Vault Secret. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notBeforeDate": {
          "description": "Key not usable before the provided UTC datetime (Y-m-d'T'H:M:S'Z').\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "value": {
          "description": "Specifies the value of the Key Vault Secret.\n",
          "type": "string"
        },
        "version": {
          "description": "The current version of the Key Vault Secret.\n",
          "type": "string"
        },
        "versionlessId": {
          "description": "The Base ID of the Key Vault Secret.\n",
          "type": "string"
        }
      },
      "required": [
        "keyVaultId",
        "name",
        "value",
        "version",
        "versionlessId"
      ],
      "requiredInputs": [
        "keyVaultId",
        "value"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Secret resources.\n",
        "properties": {
          "contentType": {
            "description": "Specifies the content type for the Key Vault Secret.\n",
            "type": "string"
          },
          "expirationDate": {
            "description": "Expiration UTC datetime (Y-m-d'T'H:M:S'Z').\n",
            "type": "string"
          },
          "keyVaultId": {
            "description": "The ID of the Key Vault where the Secret should be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Key Vault Secret. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "notBeforeDate": {
            "description": "Key not usable before the provided UTC datetime (Y-m-d'T'H:M:S'Z').\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "value": {
            "description": "Specifies the value of the Key Vault Secret.\n",
            "type": "string"
          },
          "version": {
            "description": "The current version of the Key Vault Secret.\n",
            "type": "string"
          },
          "versionlessId": {
            "description": "The Base ID of the Key Vault Secret.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:kusto/attachedDatabaseConfiguration:AttachedDatabaseConfiguration": {
      "description": "Manages a Kusto (also known as Azure Data Explorer) Attached Database Configuration\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst followerCluster = new azure.kusto.Cluster(\"followerCluster\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    sku: {\n        name: \"Dev(No SLA)_Standard_D11_v2\",\n        capacity: 1,\n    },\n});\nconst followedCluster = new azure.kusto.Cluster(\"followedCluster\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    sku: {\n        name: \"Dev(No SLA)_Standard_D11_v2\",\n        capacity: 1,\n    },\n});\nconst followedDatabase = new azure.kusto.Database(\"followedDatabase\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    clusterName: azurerm_kusto_cluster.cluster2.name,\n});\nconst example = new azure.kusto.AttachedDatabaseConfiguration(\"example\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    clusterName: followerCluster.name,\n    clusterResourceId: followedCluster.id,\n    databaseName: \"*\",\n    defaultPrincipalModificationsKind: \"None\",\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKusto Attached Database Configurations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:kusto/attachedDatabaseConfiguration:AttachedDatabaseConfiguration example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/Clusters/cluster1/AttachedDatabaseConfigurations/configuration1\n```\n\n ",
      "inputProperties": {
        "clusterName": {
          "description": "Specifies the name of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clusterResourceId": {
          "description": "The resource id of the cluster where the databases you would like to attach reside.\n",
          "type": "string"
        },
        "databaseName": {
          "description": "The name of the database which you would like to attach, use * if you want to follow all current and future databases.\n",
          "type": "string"
        },
        "defaultPrincipalModificationKind": {
          "description": "The default principals modification kind. Valid values are: `None` (default), `Replace` and `Union`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the location of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Kusto Attached Database Configuration to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "attachedDatabaseNames": {
          "description": "The list of databases from the `cluster_resource_id` which are currently attached to the cluster.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "clusterName": {
          "description": "Specifies the name of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clusterResourceId": {
          "description": "The resource id of the cluster where the databases you would like to attach reside.\n",
          "type": "string"
        },
        "databaseName": {
          "description": "The name of the database which you would like to attach, use * if you want to follow all current and future databases.\n",
          "type": "string"
        },
        "defaultPrincipalModificationKind": {
          "description": "The default principals modification kind. Valid values are: `None` (default), `Replace` and `Union`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the location of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Kusto Attached Database Configuration to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "attachedDatabaseNames",
        "clusterName",
        "clusterResourceId",
        "databaseName",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "clusterName",
        "clusterResourceId",
        "databaseName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AttachedDatabaseConfiguration resources.\n",
        "properties": {
          "attachedDatabaseNames": {
            "description": "The list of databases from the `cluster_resource_id` which are currently attached to the cluster.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "clusterName": {
            "description": "Specifies the name of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "clusterResourceId": {
            "description": "The resource id of the cluster where the databases you would like to attach reside.\n",
            "type": "string"
          },
          "databaseName": {
            "description": "The name of the database which you would like to attach, use * if you want to follow all current and future databases.\n",
            "type": "string"
          },
          "defaultPrincipalModificationKind": {
            "description": "The default principals modification kind. Valid values are: `None` (default), `Replace` and `Union`.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the location of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Kusto Attached Database Configuration to create. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group of the Kusto Cluster for which the configuration will be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:kusto/cluster:Cluster": {
      "description": "Manages a Kusto (also known as Azure Data Explorer) Cluster\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst example = new azure.kusto.Cluster(\"example\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    sku: {\n        name: \"Standard_D13_v2\",\n        capacity: 2,\n    },\n    tags: {\n        Environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nexample = azure.kusto.Cluster(\"example\",\n    location=rg.location,\n    resource_group_name=rg.name,\n    sku=azure.kusto.ClusterSkuArgs(\n        name=\"Standard_D13_v2\",\n        capacity=2,\n    ),\n    tags={\n        \"Environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var example = new Azure.Kusto.Cluster(\"example\", new Azure.Kusto.ClusterArgs\n        {\n            Location = rg.Location,\n            ResourceGroupName = rg.Name,\n            Sku = new Azure.Kusto.Inputs.ClusterSkuArgs\n            {\n                Name = \"Standard_D13_v2\",\n                Capacity = 2,\n            },\n            Tags = \n            {\n                { \"Environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/kusto\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kusto.NewCluster(ctx, \"example\", \u0026kusto.ClusterArgs{\n\t\t\tLocation:          rg.Location,\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tSku: \u0026kusto.ClusterSkuArgs{\n\t\t\t\tName:     pulumi.String(\"Standard_D13_v2\"),\n\t\t\t\tCapacity: pulumi.Int(2),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKusto Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:kusto/cluster:Cluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/Clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "doubleEncryptionEnabled": {
          "description": "Is the cluster's double encryption enabled? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "enableDiskEncryption": {
          "description": "Specifies if the cluster's disks are encrypted.\n",
          "type": "boolean"
        },
        "enablePurge": {
          "description": "Specifies if the purge operations are enabled.\n",
          "type": "boolean"
        },
        "enableStreamingIngest": {
          "description": "Specifies if the streaming ingest is enabled.\n",
          "type": "boolean"
        },
        "engine": {
          "description": ". The engine type that should be used. Possible values are `V2` and `V3`. Defaults to `V2`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:kusto/ClusterIdentity:ClusterIdentity",
          "description": "An identity block.\n"
        },
        "languageExtensions": {
          "description": "An list of `language_extensions` to enable. Valid values are: `PYTHON` and `R`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "The location where the Kusto Cluster should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Kusto Cluster to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "optimizedAutoScale": {
          "$ref": "#/types/azure:kusto/ClusterOptimizedAutoScale:ClusterOptimizedAutoScale",
          "description": "An `optimized_auto_scale` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "Specifies the Resource Group where the Kusto Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "$ref": "#/types/azure:kusto/ClusterSku:ClusterSku",
          "description": "A `sku` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "trustedExternalTenants": {
          "description": "Specifies a list of tenant IDs that are trusted by the cluster.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "virtualNetworkConfiguration": {
          "$ref": "#/types/azure:kusto/ClusterVirtualNetworkConfiguration:ClusterVirtualNetworkConfiguration",
          "description": "A `virtual_network_configuration` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "zones": {
          "description": "A list of Availability Zones in which the cluster instances should be created in. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "dataIngestionUri": {
          "description": "The Kusto Cluster URI to be used for data ingestion.\n",
          "type": "string"
        },
        "doubleEncryptionEnabled": {
          "description": "Is the cluster's double encryption enabled? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "enableDiskEncryption": {
          "description": "Specifies if the cluster's disks are encrypted.\n",
          "type": "boolean"
        },
        "enablePurge": {
          "description": "Specifies if the purge operations are enabled.\n",
          "type": "boolean"
        },
        "enableStreamingIngest": {
          "description": "Specifies if the streaming ingest is enabled.\n",
          "type": "boolean"
        },
        "engine": {
          "description": ". The engine type that should be used. Possible values are `V2` and `V3`. Defaults to `V2`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:kusto/ClusterIdentity:ClusterIdentity",
          "description": "An identity block.\n"
        },
        "languageExtensions": {
          "description": "An list of `language_extensions` to enable. Valid values are: `PYTHON` and `R`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "The location where the Kusto Cluster should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Kusto Cluster to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "optimizedAutoScale": {
          "$ref": "#/types/azure:kusto/ClusterOptimizedAutoScale:ClusterOptimizedAutoScale",
          "description": "An `optimized_auto_scale` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "Specifies the Resource Group where the Kusto Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "$ref": "#/types/azure:kusto/ClusterSku:ClusterSku",
          "description": "A `sku` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "trustedExternalTenants": {
          "description": "Specifies a list of tenant IDs that are trusted by the cluster.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "uri": {
          "description": "The FQDN of the Azure Kusto Cluster.\n",
          "type": "string"
        },
        "virtualNetworkConfiguration": {
          "$ref": "#/types/azure:kusto/ClusterVirtualNetworkConfiguration:ClusterVirtualNetworkConfiguration",
          "description": "A `virtual_network_configuration` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "zones": {
          "description": "A list of Availability Zones in which the cluster instances should be created in. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "dataIngestionUri",
        "identity",
        "location",
        "name",
        "resourceGroupName",
        "sku",
        "trustedExternalTenants",
        "uri"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Cluster resources.\n",
        "properties": {
          "dataIngestionUri": {
            "description": "The Kusto Cluster URI to be used for data ingestion.\n",
            "type": "string"
          },
          "doubleEncryptionEnabled": {
            "description": "Is the cluster's double encryption enabled? Defaults to `false`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "enableDiskEncryption": {
            "description": "Specifies if the cluster's disks are encrypted.\n",
            "type": "boolean"
          },
          "enablePurge": {
            "description": "Specifies if the purge operations are enabled.\n",
            "type": "boolean"
          },
          "enableStreamingIngest": {
            "description": "Specifies if the streaming ingest is enabled.\n",
            "type": "boolean"
          },
          "engine": {
            "description": ". The engine type that should be used. Possible values are `V2` and `V3`. Defaults to `V2`.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:kusto/ClusterIdentity:ClusterIdentity",
            "description": "An identity block.\n"
          },
          "languageExtensions": {
            "description": "An list of `language_extensions` to enable. Valid values are: `PYTHON` and `R`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "The location where the Kusto Cluster should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Kusto Cluster to create. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "optimizedAutoScale": {
            "$ref": "#/types/azure:kusto/ClusterOptimizedAutoScale:ClusterOptimizedAutoScale",
            "description": "An `optimized_auto_scale` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "Specifies the Resource Group where the Kusto Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sku": {
            "$ref": "#/types/azure:kusto/ClusterSku:ClusterSku",
            "description": "A `sku` block as defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "trustedExternalTenants": {
            "description": "Specifies a list of tenant IDs that are trusted by the cluster.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "uri": {
            "description": "The FQDN of the Azure Kusto Cluster.\n",
            "type": "string"
          },
          "virtualNetworkConfiguration": {
            "$ref": "#/types/azure:kusto/ClusterVirtualNetworkConfiguration:ClusterVirtualNetworkConfiguration",
            "description": "A `virtual_network_configuration` block as defined below. Changing this forces a new resource to be created.\n"
          },
          "zones": {
            "description": "A list of Availability Zones in which the cluster instances should be created in. Changing this forces a new resource to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:kusto/clusterCustomerManagedKey:ClusterCustomerManagedKey": {
      "description": "Manages a Customer Managed Key for a Kusto Cluster.\n\n\n## Import\n\nCustomer Managed Keys for a Kusto Cluster can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:kusto/clusterCustomerManagedKey:ClusterCustomerManagedKey example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/Clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "clusterId": {
          "description": "The ID of the Kusto Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "keyName": {
          "description": "The name of Key Vault Key.\n",
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "keyVersion": {
          "description": "The version of Key Vault Key.\n",
          "type": "string"
        },
        "userIdentity": {
          "description": "The user assigned identity that has access to the Key Vault Key. If not specified, system assigned identity will be used.\n",
          "type": "string"
        }
      },
      "properties": {
        "clusterId": {
          "description": "The ID of the Kusto Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "keyName": {
          "description": "The name of Key Vault Key.\n",
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "keyVersion": {
          "description": "The version of Key Vault Key.\n",
          "type": "string"
        },
        "userIdentity": {
          "description": "The user assigned identity that has access to the Key Vault Key. If not specified, system assigned identity will be used.\n",
          "type": "string"
        }
      },
      "required": [
        "clusterId",
        "keyName",
        "keyVaultId",
        "keyVersion"
      ],
      "requiredInputs": [
        "clusterId",
        "keyName",
        "keyVaultId",
        "keyVersion"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ClusterCustomerManagedKey resources.\n",
        "properties": {
          "clusterId": {
            "description": "The ID of the Kusto Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "keyName": {
            "description": "The name of Key Vault Key.\n",
            "type": "string"
          },
          "keyVaultId": {
            "description": "The ID of the Key Vault. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "keyVersion": {
            "description": "The version of Key Vault Key.\n",
            "type": "string"
          },
          "userIdentity": {
            "description": "The user assigned identity that has access to the Key Vault Key. If not specified, system assigned identity will be used.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:kusto/clusterPrincipalAssignment:ClusterPrincipalAssignment": {
      "description": "Manages a Kusto Cluster Principal Assignment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst exampleCluster = new azure.kusto.Cluster(\"exampleCluster\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    sku: {\n        name: \"Standard_D13_v2\",\n        capacity: 2,\n    },\n});\nconst exampleClusterPrincipalAssignment = new azure.kusto.ClusterPrincipalAssignment(\"exampleClusterPrincipalAssignment\", {\n    resourceGroupName: rg.name,\n    clusterName: exampleCluster.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    principalId: current.then(current =\u003e current.clientId),\n    principalType: \"App\",\n    role: \"AllDatabasesAdmin\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nexample_cluster = azure.kusto.Cluster(\"exampleCluster\",\n    location=rg.location,\n    resource_group_name=rg.name,\n    sku=azure.kusto.ClusterSkuArgs(\n        name=\"Standard_D13_v2\",\n        capacity=2,\n    ))\nexample_cluster_principal_assignment = azure.kusto.ClusterPrincipalAssignment(\"exampleClusterPrincipalAssignment\",\n    resource_group_name=rg.name,\n    cluster_name=example_cluster.name,\n    tenant_id=current.tenant_id,\n    principal_id=current.client_id,\n    principal_type=\"App\",\n    role=\"AllDatabasesAdmin\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleCluster = new Azure.Kusto.Cluster(\"exampleCluster\", new Azure.Kusto.ClusterArgs\n        {\n            Location = rg.Location,\n            ResourceGroupName = rg.Name,\n            Sku = new Azure.Kusto.Inputs.ClusterSkuArgs\n            {\n                Name = \"Standard_D13_v2\",\n                Capacity = 2,\n            },\n        });\n        var exampleClusterPrincipalAssignment = new Azure.Kusto.ClusterPrincipalAssignment(\"exampleClusterPrincipalAssignment\", new Azure.Kusto.ClusterPrincipalAssignmentArgs\n        {\n            ResourceGroupName = rg.Name,\n            ClusterName = exampleCluster.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            PrincipalId = current.Apply(current =\u003e current.ClientId),\n            PrincipalType = \"App\",\n            Role = \"AllDatabasesAdmin\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/kusto\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := kusto.NewCluster(ctx, \"exampleCluster\", \u0026kusto.ClusterArgs{\n\t\t\tLocation:          rg.Location,\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tSku: \u0026kusto.ClusterSkuArgs{\n\t\t\t\tName:     pulumi.String(\"Standard_D13_v2\"),\n\t\t\t\tCapacity: pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kusto.NewClusterPrincipalAssignment(ctx, \"exampleClusterPrincipalAssignment\", \u0026kusto.ClusterPrincipalAssignmentArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tClusterName:       exampleCluster.Name,\n\t\t\tTenantId:          pulumi.String(current.TenantId),\n\t\t\tPrincipalId:       pulumi.String(current.ClientId),\n\t\t\tPrincipalType:     pulumi.String(\"App\"),\n\t\t\tRole:              pulumi.String(\"AllDatabasesAdmin\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Explorer Cluster Principal Assignments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:kusto/clusterPrincipalAssignment:ClusterPrincipalAssignment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/Clusters/cluster1/PrincipalAssignments/assignment1\n```\n\n ",
      "inputProperties": {
        "clusterName": {
          "description": "The name of the cluster in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "principalId": {
          "description": "The object id of the principal. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "principalType": {
          "description": "The type of the principal. Valid values include `App`, `Group`, `User`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "role": {
          "description": "The cluster role assigned to the principal. Valid values include `AllDatabasesAdmin` and `AllDatabasesViewer`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The tenant id in which the principal resides. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "clusterName": {
          "description": "The name of the cluster in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "principalId": {
          "description": "The object id of the principal. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "principalName": {
          "description": "The name of the principal.\n",
          "type": "string"
        },
        "principalType": {
          "description": "The type of the principal. Valid values include `App`, `Group`, `User`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "role": {
          "description": "The cluster role assigned to the principal. Valid values include `AllDatabasesAdmin` and `AllDatabasesViewer`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The tenant id in which the principal resides. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tenantName": {
          "description": "The name of the tenant.\n",
          "type": "string"
        }
      },
      "required": [
        "clusterName",
        "name",
        "principalId",
        "principalName",
        "principalType",
        "resourceGroupName",
        "role",
        "tenantId",
        "tenantName"
      ],
      "requiredInputs": [
        "clusterName",
        "principalId",
        "principalType",
        "resourceGroupName",
        "role",
        "tenantId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ClusterPrincipalAssignment resources.\n",
        "properties": {
          "clusterName": {
            "description": "The name of the cluster in which to create the resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "principalId": {
            "description": "The object id of the principal. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "principalName": {
            "description": "The name of the principal.\n",
            "type": "string"
          },
          "principalType": {
            "description": "The type of the principal. Valid values include `App`, `Group`, `User`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "role": {
            "description": "The cluster role assigned to the principal. Valid values include `AllDatabasesAdmin` and `AllDatabasesViewer`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenant id in which the principal resides. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tenantName": {
            "description": "The name of the tenant.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:kusto/database:Database": {
      "description": "Manages a Kusto (also known as Azure Data Explorer) Database\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst cluster = new azure.kusto.Cluster(\"cluster\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    sku: {\n        name: \"Standard_D13_v2\",\n        capacity: 2,\n    },\n});\nconst database = new azure.kusto.Database(\"database\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    clusterName: cluster.name,\n    hotCachePeriod: \"P7D\",\n    softDeletePeriod: \"P31D\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\ncluster = azure.kusto.Cluster(\"cluster\",\n    location=rg.location,\n    resource_group_name=rg.name,\n    sku=azure.kusto.ClusterSkuArgs(\n        name=\"Standard_D13_v2\",\n        capacity=2,\n    ))\ndatabase = azure.kusto.Database(\"database\",\n    resource_group_name=rg.name,\n    location=rg.location,\n    cluster_name=cluster.name,\n    hot_cache_period=\"P7D\",\n    soft_delete_period=\"P31D\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var cluster = new Azure.Kusto.Cluster(\"cluster\", new Azure.Kusto.ClusterArgs\n        {\n            Location = rg.Location,\n            ResourceGroupName = rg.Name,\n            Sku = new Azure.Kusto.Inputs.ClusterSkuArgs\n            {\n                Name = \"Standard_D13_v2\",\n                Capacity = 2,\n            },\n        });\n        var database = new Azure.Kusto.Database(\"database\", new Azure.Kusto.DatabaseArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n            ClusterName = cluster.Name,\n            HotCachePeriod = \"P7D\",\n            SoftDeletePeriod = \"P31D\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/kusto\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := kusto.NewCluster(ctx, \"cluster\", \u0026kusto.ClusterArgs{\n\t\t\tLocation:          rg.Location,\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tSku: \u0026kusto.ClusterSkuArgs{\n\t\t\t\tName:     pulumi.String(\"Standard_D13_v2\"),\n\t\t\t\tCapacity: pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kusto.NewDatabase(ctx, \"database\", \u0026kusto.DatabaseArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tClusterName:       cluster.Name,\n\t\t\tHotCachePeriod:    pulumi.String(\"P7D\"),\n\t\t\tSoftDeletePeriod:  pulumi.String(\"P31D\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKusto Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:kusto/database:Database example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/Clusters/cluster1/Databases/database1\n```\n\n ",
      "inputProperties": {
        "clusterName": {
          "description": "Specifies the name of the Kusto Cluster this database will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "hotCachePeriod": {
          "description": "The time the data that should be kept in cache for fast queries as ISO 8601 timespan. Default is unlimited. For more information see: [ISO 8601 Timespan](https://en.wikipedia.org/wiki/ISO_8601#Durations)\n",
          "type": "string"
        },
        "location": {
          "description": "The location where the Kusto Database should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Kusto Database to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "softDeletePeriod": {
          "description": "The time the data should be kept before it stops being accessible to queries as ISO 8601 timespan. Default is unlimited. For more information see: [ISO 8601 Timespan](https://en.wikipedia.org/wiki/ISO_8601#Durations)\n",
          "type": "string"
        }
      },
      "properties": {
        "clusterName": {
          "description": "Specifies the name of the Kusto Cluster this database will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "hotCachePeriod": {
          "description": "The time the data that should be kept in cache for fast queries as ISO 8601 timespan. Default is unlimited. For more information see: [ISO 8601 Timespan](https://en.wikipedia.org/wiki/ISO_8601#Durations)\n",
          "type": "string"
        },
        "location": {
          "description": "The location where the Kusto Database should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Kusto Database to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "size": {
          "description": "The size of the database in bytes.\n",
          "type": "number"
        },
        "softDeletePeriod": {
          "description": "The time the data should be kept before it stops being accessible to queries as ISO 8601 timespan. Default is unlimited. For more information see: [ISO 8601 Timespan](https://en.wikipedia.org/wiki/ISO_8601#Durations)\n",
          "type": "string"
        }
      },
      "required": [
        "clusterName",
        "location",
        "name",
        "resourceGroupName",
        "size"
      ],
      "requiredInputs": [
        "clusterName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Database resources.\n",
        "properties": {
          "clusterName": {
            "description": "Specifies the name of the Kusto Cluster this database will be added to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "hotCachePeriod": {
            "description": "The time the data that should be kept in cache for fast queries as ISO 8601 timespan. Default is unlimited. For more information see: [ISO 8601 Timespan](https://en.wikipedia.org/wiki/ISO_8601#Durations)\n",
            "type": "string"
          },
          "location": {
            "description": "The location where the Kusto Database should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Kusto Database to create. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "size": {
            "description": "The size of the database in bytes.\n",
            "type": "number"
          },
          "softDeletePeriod": {
            "description": "The time the data should be kept before it stops being accessible to queries as ISO 8601 timespan. Default is unlimited. For more information see: [ISO 8601 Timespan](https://en.wikipedia.org/wiki/ISO_8601#Durations)\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:kusto/databasePrincipal:DatabasePrincipal": {
      "description": "Manages a Kusto (also known as Azure Data Explorer) Database Principal\n\n\u003e **NOTE:** This resource is being **deprecated** due to API updates and should no longer be used.  Please use azure.kusto.DatabasePrincipalAssignment instead.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst cluster = new azure.kusto.Cluster(\"cluster\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    sku: {\n        name: \"Standard_D13_v2\",\n        capacity: 2,\n    },\n});\nconst database = new azure.kusto.Database(\"database\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    clusterName: cluster.name,\n    hotCachePeriod: \"P7D\",\n    softDeletePeriod: \"P31D\",\n});\nconst principal = new azure.kusto.DatabasePrincipal(\"principal\", {\n    resourceGroupName: rg.name,\n    clusterName: cluster.name,\n    databaseName: azurerm_kusto_database.test.name,\n    role: \"Viewer\",\n    type: \"User\",\n    clientId: current.then(current =\u003e current.tenantId),\n    objectId: current.then(current =\u003e current.clientId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\ncluster = azure.kusto.Cluster(\"cluster\",\n    location=rg.location,\n    resource_group_name=rg.name,\n    sku=azure.kusto.ClusterSkuArgs(\n        name=\"Standard_D13_v2\",\n        capacity=2,\n    ))\ndatabase = azure.kusto.Database(\"database\",\n    resource_group_name=rg.name,\n    location=rg.location,\n    cluster_name=cluster.name,\n    hot_cache_period=\"P7D\",\n    soft_delete_period=\"P31D\")\nprincipal = azure.kusto.DatabasePrincipal(\"principal\",\n    resource_group_name=rg.name,\n    cluster_name=cluster.name,\n    database_name=azurerm_kusto_database[\"test\"][\"name\"],\n    role=\"Viewer\",\n    type=\"User\",\n    client_id=current.tenant_id,\n    object_id=current.client_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var cluster = new Azure.Kusto.Cluster(\"cluster\", new Azure.Kusto.ClusterArgs\n        {\n            Location = rg.Location,\n            ResourceGroupName = rg.Name,\n            Sku = new Azure.Kusto.Inputs.ClusterSkuArgs\n            {\n                Name = \"Standard_D13_v2\",\n                Capacity = 2,\n            },\n        });\n        var database = new Azure.Kusto.Database(\"database\", new Azure.Kusto.DatabaseArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n            ClusterName = cluster.Name,\n            HotCachePeriod = \"P7D\",\n            SoftDeletePeriod = \"P31D\",\n        });\n        var principal = new Azure.Kusto.DatabasePrincipal(\"principal\", new Azure.Kusto.DatabasePrincipalArgs\n        {\n            ResourceGroupName = rg.Name,\n            ClusterName = cluster.Name,\n            DatabaseName = azurerm_kusto_database.Test.Name,\n            Role = \"Viewer\",\n            Type = \"User\",\n            ClientId = current.Apply(current =\u003e current.TenantId),\n            ObjectId = current.Apply(current =\u003e current.ClientId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/kusto\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := kusto.NewCluster(ctx, \"cluster\", \u0026kusto.ClusterArgs{\n\t\t\tLocation:          rg.Location,\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tSku: \u0026kusto.ClusterSkuArgs{\n\t\t\t\tName:     pulumi.String(\"Standard_D13_v2\"),\n\t\t\t\tCapacity: pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kusto.NewDatabase(ctx, \"database\", \u0026kusto.DatabaseArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tClusterName:       cluster.Name,\n\t\t\tHotCachePeriod:    pulumi.String(\"P7D\"),\n\t\t\tSoftDeletePeriod:  pulumi.String(\"P31D\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kusto.NewDatabasePrincipal(ctx, \"principal\", \u0026kusto.DatabasePrincipalArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tClusterName:       cluster.Name,\n\t\t\tDatabaseName:      pulumi.Any(azurerm_kusto_database.Test.Name),\n\t\t\tRole:              pulumi.String(\"Viewer\"),\n\t\t\tType:              pulumi.String(\"User\"),\n\t\t\tClientId:          pulumi.String(current.TenantId),\n\t\t\tObjectId:          pulumi.String(current.ClientId),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKusto Database Principals can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:kusto/databasePrincipal:DatabasePrincipal example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/Clusters/cluster1/Databases/database1/Role/role1/FQN/some-guid\n```\n\n ",
      "inputProperties": {
        "clientId": {
          "description": "The Client ID that owns the specified `object_id`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clusterName": {
          "description": "Specifies the name of the Kusto Cluster this database principal will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "databaseName": {
          "description": "Specified the name of the Kusto Database this principal will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "objectId": {
          "description": "An Object ID of a User, Group, or App. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the Resource Group where the Kusto Database Principal should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "role": {
          "description": "Specifies the permissions the Principal will have. Valid values include `Admin`, `Ingestor`, `Monitor`, `UnrestrictedViewers`, `User`, `Viewer`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "type": {
          "description": "Specifies the type of object the principal is. Valid values include `App`, `Group`, `User`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "appId": {
          "description": "The app id, if not empty, of the principal.\n",
          "type": "string"
        },
        "clientId": {
          "description": "The Client ID that owns the specified `object_id`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "clusterName": {
          "description": "Specifies the name of the Kusto Cluster this database principal will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "databaseName": {
          "description": "Specified the name of the Kusto Database this principal will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "email": {
          "description": "The email, if not empty, of the principal.\n",
          "type": "string"
        },
        "fullyQualifiedName": {
          "description": "The fully qualified name of the principal.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Kusto Database Principal.\n",
          "type": "string"
        },
        "objectId": {
          "description": "An Object ID of a User, Group, or App. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the Resource Group where the Kusto Database Principal should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "role": {
          "description": "Specifies the permissions the Principal will have. Valid values include `Admin`, `Ingestor`, `Monitor`, `UnrestrictedViewers`, `User`, `Viewer`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "type": {
          "description": "Specifies the type of object the principal is. Valid values include `App`, `Group`, `User`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "appId",
        "clientId",
        "clusterName",
        "databaseName",
        "email",
        "fullyQualifiedName",
        "name",
        "objectId",
        "resourceGroupName",
        "role",
        "type"
      ],
      "requiredInputs": [
        "clientId",
        "clusterName",
        "databaseName",
        "objectId",
        "resourceGroupName",
        "role",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatabasePrincipal resources.\n",
        "properties": {
          "appId": {
            "description": "The app id, if not empty, of the principal.\n",
            "type": "string"
          },
          "clientId": {
            "description": "The Client ID that owns the specified `object_id`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "clusterName": {
            "description": "Specifies the name of the Kusto Cluster this database principal will be added to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "databaseName": {
            "description": "Specified the name of the Kusto Database this principal will be added to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "email": {
            "description": "The email, if not empty, of the principal.\n",
            "type": "string"
          },
          "fullyQualifiedName": {
            "description": "The fully qualified name of the principal.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Kusto Database Principal.\n",
            "type": "string"
          },
          "objectId": {
            "description": "An Object ID of a User, Group, or App. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the Resource Group where the Kusto Database Principal should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "role": {
            "description": "Specifies the permissions the Principal will have. Valid values include `Admin`, `Ingestor`, `Monitor`, `UnrestrictedViewers`, `User`, `Viewer`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "type": {
            "description": "Specifies the type of object the principal is. Valid values include `App`, `Group`, `User`. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:kusto/databasePrincipalAssignment:DatabasePrincipalAssignment": {
      "description": "Manages a Kusto (also known as Azure Data Explorer) Database Principal Assignment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst exampleCluster = new azure.kusto.Cluster(\"exampleCluster\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    sku: {\n        name: \"Standard_D13_v2\",\n        capacity: 2,\n    },\n});\nconst exampleDatabase = new azure.kusto.Database(\"exampleDatabase\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    clusterName: exampleCluster.name,\n    hotCachePeriod: \"P7D\",\n    softDeletePeriod: \"P31D\",\n});\nconst exampleDatabasePrincipalAssignment = new azure.kusto.DatabasePrincipalAssignment(\"exampleDatabasePrincipalAssignment\", {\n    resourceGroupName: rg.name,\n    clusterName: exampleCluster.name,\n    databaseName: exampleDatabase.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    principalId: current.then(current =\u003e current.clientId),\n    principalType: \"App\",\n    role: \"Viewer\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nexample_cluster = azure.kusto.Cluster(\"exampleCluster\",\n    location=rg.location,\n    resource_group_name=rg.name,\n    sku=azure.kusto.ClusterSkuArgs(\n        name=\"Standard_D13_v2\",\n        capacity=2,\n    ))\nexample_database = azure.kusto.Database(\"exampleDatabase\",\n    resource_group_name=rg.name,\n    location=rg.location,\n    cluster_name=example_cluster.name,\n    hot_cache_period=\"P7D\",\n    soft_delete_period=\"P31D\")\nexample_database_principal_assignment = azure.kusto.DatabasePrincipalAssignment(\"exampleDatabasePrincipalAssignment\",\n    resource_group_name=rg.name,\n    cluster_name=example_cluster.name,\n    database_name=example_database.name,\n    tenant_id=current.tenant_id,\n    principal_id=current.client_id,\n    principal_type=\"App\",\n    role=\"Viewer\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleCluster = new Azure.Kusto.Cluster(\"exampleCluster\", new Azure.Kusto.ClusterArgs\n        {\n            Location = rg.Location,\n            ResourceGroupName = rg.Name,\n            Sku = new Azure.Kusto.Inputs.ClusterSkuArgs\n            {\n                Name = \"Standard_D13_v2\",\n                Capacity = 2,\n            },\n        });\n        var exampleDatabase = new Azure.Kusto.Database(\"exampleDatabase\", new Azure.Kusto.DatabaseArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n            ClusterName = exampleCluster.Name,\n            HotCachePeriod = \"P7D\",\n            SoftDeletePeriod = \"P31D\",\n        });\n        var exampleDatabasePrincipalAssignment = new Azure.Kusto.DatabasePrincipalAssignment(\"exampleDatabasePrincipalAssignment\", new Azure.Kusto.DatabasePrincipalAssignmentArgs\n        {\n            ResourceGroupName = rg.Name,\n            ClusterName = exampleCluster.Name,\n            DatabaseName = exampleDatabase.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            PrincipalId = current.Apply(current =\u003e current.ClientId),\n            PrincipalType = \"App\",\n            Role = \"Viewer\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/kusto\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := kusto.NewCluster(ctx, \"exampleCluster\", \u0026kusto.ClusterArgs{\n\t\t\tLocation:          rg.Location,\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tSku: \u0026kusto.ClusterSkuArgs{\n\t\t\t\tName:     pulumi.String(\"Standard_D13_v2\"),\n\t\t\t\tCapacity: pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDatabase, err := kusto.NewDatabase(ctx, \"exampleDatabase\", \u0026kusto.DatabaseArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tClusterName:       exampleCluster.Name,\n\t\t\tHotCachePeriod:    pulumi.String(\"P7D\"),\n\t\t\tSoftDeletePeriod:  pulumi.String(\"P31D\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kusto.NewDatabasePrincipalAssignment(ctx, \"exampleDatabasePrincipalAssignment\", \u0026kusto.DatabasePrincipalAssignmentArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tClusterName:       exampleCluster.Name,\n\t\t\tDatabaseName:      exampleDatabase.Name,\n\t\t\tTenantId:          pulumi.String(current.TenantId),\n\t\t\tPrincipalId:       pulumi.String(current.ClientId),\n\t\t\tPrincipalType:     pulumi.String(\"App\"),\n\t\t\tRole:              pulumi.String(\"Viewer\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKusto Database Principal Assignment can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:kusto/databasePrincipalAssignment:DatabasePrincipalAssignment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/Clusters/cluster1/Databases/database1/PrincipalAssignments/assignment1\n```\n\n ",
      "inputProperties": {
        "clusterName": {
          "description": "The name of the cluster in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "databaseName": {
          "description": "The name of the database in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "principalId": {
          "description": "The object id of the principal. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "principalType": {
          "description": "The type of the principal. Valid values include `App`, `Group`, `User`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "role": {
          "description": "The database role assigned to the principal. Valid values include `Admin`, `Ingestor`, `Monitor`, `UnrestrictedViewers`, `User` and `Viewer`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The tenant id in which the principal resides. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "clusterName": {
          "description": "The name of the cluster in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "databaseName": {
          "description": "The name of the database in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "principalId": {
          "description": "The object id of the principal. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "principalName": {
          "description": "The name of the principal.\n",
          "type": "string"
        },
        "principalType": {
          "description": "The type of the principal. Valid values include `App`, `Group`, `User`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "role": {
          "description": "The database role assigned to the principal. Valid values include `Admin`, `Ingestor`, `Monitor`, `UnrestrictedViewers`, `User` and `Viewer`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The tenant id in which the principal resides. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tenantName": {
          "description": "The name of the tenant.\n",
          "type": "string"
        }
      },
      "required": [
        "clusterName",
        "databaseName",
        "name",
        "principalId",
        "principalName",
        "principalType",
        "resourceGroupName",
        "role",
        "tenantId",
        "tenantName"
      ],
      "requiredInputs": [
        "clusterName",
        "databaseName",
        "principalId",
        "principalType",
        "resourceGroupName",
        "role",
        "tenantId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatabasePrincipalAssignment resources.\n",
        "properties": {
          "clusterName": {
            "description": "The name of the cluster in which to create the resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "databaseName": {
            "description": "The name of the database in which to create the resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "principalId": {
            "description": "The object id of the principal. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "principalName": {
            "description": "The name of the principal.\n",
            "type": "string"
          },
          "principalType": {
            "description": "The type of the principal. Valid values include `App`, `Group`, `User`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "role": {
            "description": "The database role assigned to the principal. Valid values include `Admin`, `Ingestor`, `Monitor`, `UnrestrictedViewers`, `User` and `Viewer`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenant id in which the principal resides. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tenantName": {
            "description": "The name of the tenant.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:kusto/eventGridDataConnection:EventGridDataConnection": {
      "description": "Manages a Kusto (also known as Azure Data Explorer) Event Grid Data Connection\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleCluster = new azure.kusto.Cluster(\"exampleCluster\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        name: \"Standard_D13_v2\",\n        capacity: 2,\n    },\n});\nconst exampleDatabase = new azure.kusto.Database(\"exampleDatabase\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    clusterName: exampleCluster.name,\n    hotCachePeriod: \"P7D\",\n    softDeletePeriod: \"P31D\",\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst testEventHubNamespace = new azure.eventhub.EventHubNamespace(\"testEventHubNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n});\nconst testEventHub = new azure.eventhub.EventHub(\"testEventHub\", {\n    namespaceName: azurerm_eventhub_namespace.example.name,\n    resourceGroupName: exampleResourceGroup.name,\n    partitionCount: 1,\n    messageRetention: 1,\n});\nconst exampleConsumerGroup = new azure.eventhub.ConsumerGroup(\"exampleConsumerGroup\", {\n    namespaceName: azurerm_eventhub_namespace.example.name,\n    eventhubName: azurerm_eventhub.example.name,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleEventSubscription = new azure.eventgrid.EventSubscription(\"exampleEventSubscription\", {\n    scope: exampleAccount.id,\n    eventhubEndpointId: azurerm_eventhub.example.id,\n    eventDeliverySchema: \"EventGridSchema\",\n    includedEventTypes: [\n        \"Microsoft.Storage.BlobCreated\",\n        \"Microsoft.Storage.BlobRenamed\",\n    ],\n    retryPolicy: {\n        eventTimeToLive: 144,\n        maxDeliveryAttempts: 10,\n    },\n});\nconst exampleEventGridDataConnection = new azure.kusto.EventGridDataConnection(\"exampleEventGridDataConnection\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    clusterName: exampleCluster.name,\n    databaseName: exampleDatabase.name,\n    storageAccountId: exampleAccount.id,\n    eventhubId: azurerm_eventhub.example.id,\n    eventhubConsumerGroupName: exampleConsumerGroup.name,\n    tableName: \"my-table\",\n    mappingRuleName: \"my-table-mapping\",\n    dataFormat: \"JSON\",\n}, {\n    dependsOn: [exampleEventSubscription],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_cluster = azure.kusto.Cluster(\"exampleCluster\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.kusto.ClusterSkuArgs(\n        name=\"Standard_D13_v2\",\n        capacity=2,\n    ))\nexample_database = azure.kusto.Database(\"exampleDatabase\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cluster_name=example_cluster.name,\n    hot_cache_period=\"P7D\",\n    soft_delete_period=\"P31D\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\ntest_event_hub_namespace = azure.eventhub.EventHubNamespace(\"testEventHubNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\")\ntest_event_hub = azure.eventhub.EventHub(\"testEventHub\",\n    namespace_name=azurerm_eventhub_namespace[\"example\"][\"name\"],\n    resource_group_name=example_resource_group.name,\n    partition_count=1,\n    message_retention=1)\nexample_consumer_group = azure.eventhub.ConsumerGroup(\"exampleConsumerGroup\",\n    namespace_name=azurerm_eventhub_namespace[\"example\"][\"name\"],\n    eventhub_name=azurerm_eventhub[\"example\"][\"name\"],\n    resource_group_name=example_resource_group.name)\nexample_event_subscription = azure.eventgrid.EventSubscription(\"exampleEventSubscription\",\n    scope=example_account.id,\n    eventhub_endpoint_id=azurerm_eventhub[\"example\"][\"id\"],\n    event_delivery_schema=\"EventGridSchema\",\n    included_event_types=[\n        \"Microsoft.Storage.BlobCreated\",\n        \"Microsoft.Storage.BlobRenamed\",\n    ],\n    retry_policy=azure.eventgrid.EventSubscriptionRetryPolicyArgs(\n        event_time_to_live=144,\n        max_delivery_attempts=10,\n    ))\nexample_event_grid_data_connection = azure.kusto.EventGridDataConnection(\"exampleEventGridDataConnection\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cluster_name=example_cluster.name,\n    database_name=example_database.name,\n    storage_account_id=example_account.id,\n    eventhub_id=azurerm_eventhub[\"example\"][\"id\"],\n    eventhub_consumer_group_name=example_consumer_group.name,\n    table_name=\"my-table\",\n    mapping_rule_name=\"my-table-mapping\",\n    data_format=\"JSON\",\n    opts=pulumi.ResourceOptions(depends_on=[example_event_subscription]))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleCluster = new Azure.Kusto.Cluster(\"exampleCluster\", new Azure.Kusto.ClusterArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.Kusto.Inputs.ClusterSkuArgs\n            {\n                Name = \"Standard_D13_v2\",\n                Capacity = 2,\n            },\n        });\n        var exampleDatabase = new Azure.Kusto.Database(\"exampleDatabase\", new Azure.Kusto.DatabaseArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ClusterName = exampleCluster.Name,\n            HotCachePeriod = \"P7D\",\n            SoftDeletePeriod = \"P31D\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var testEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"testEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n        });\n        var testEventHub = new Azure.EventHub.EventHub(\"testEventHub\", new Azure.EventHub.EventHubArgs\n        {\n            NamespaceName = azurerm_eventhub_namespace.Example.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PartitionCount = 1,\n            MessageRetention = 1,\n        });\n        var exampleConsumerGroup = new Azure.EventHub.ConsumerGroup(\"exampleConsumerGroup\", new Azure.EventHub.ConsumerGroupArgs\n        {\n            NamespaceName = azurerm_eventhub_namespace.Example.Name,\n            EventhubName = azurerm_eventhub.Example.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleEventSubscription = new Azure.EventGrid.EventSubscription(\"exampleEventSubscription\", new Azure.EventGrid.EventSubscriptionArgs\n        {\n            Scope = exampleAccount.Id,\n            EventhubEndpointId = azurerm_eventhub.Example.Id,\n            EventDeliverySchema = \"EventGridSchema\",\n            IncludedEventTypes = \n            {\n                \"Microsoft.Storage.BlobCreated\",\n                \"Microsoft.Storage.BlobRenamed\",\n            },\n            RetryPolicy = new Azure.EventGrid.Inputs.EventSubscriptionRetryPolicyArgs\n            {\n                EventTimeToLive = 144,\n                MaxDeliveryAttempts = 10,\n            },\n        });\n        var exampleEventGridDataConnection = new Azure.Kusto.EventGridDataConnection(\"exampleEventGridDataConnection\", new Azure.Kusto.EventGridDataConnectionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ClusterName = exampleCluster.Name,\n            DatabaseName = exampleDatabase.Name,\n            StorageAccountId = exampleAccount.Id,\n            EventhubId = azurerm_eventhub.Example.Id,\n            EventhubConsumerGroupName = exampleConsumerGroup.Name,\n            TableName = \"my-table\",\n            MappingRuleName = \"my-table-mapping\",\n            DataFormat = \"JSON\",\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                exampleEventSubscription,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventgrid\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/kusto\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := kusto.NewCluster(ctx, \"exampleCluster\", \u0026kusto.ClusterArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026kusto.ClusterSkuArgs{\n\t\t\t\tName:     pulumi.String(\"Standard_D13_v2\"),\n\t\t\t\tCapacity: pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDatabase, err := kusto.NewDatabase(ctx, \"exampleDatabase\", \u0026kusto.DatabaseArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tClusterName:       exampleCluster.Name,\n\t\t\tHotCachePeriod:    pulumi.String(\"P7D\"),\n\t\t\tSoftDeletePeriod:  pulumi.String(\"P31D\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventhub.NewEventHubNamespace(ctx, \"testEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventhub.NewEventHub(ctx, \"testEventHub\", \u0026eventhub.EventHubArgs{\n\t\t\tNamespaceName:     pulumi.Any(azurerm_eventhub_namespace.Example.Name),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPartitionCount:    pulumi.Int(1),\n\t\t\tMessageRetention:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleConsumerGroup, err := eventhub.NewConsumerGroup(ctx, \"exampleConsumerGroup\", \u0026eventhub.ConsumerGroupArgs{\n\t\t\tNamespaceName:     pulumi.Any(azurerm_eventhub_namespace.Example.Name),\n\t\t\tEventhubName:      pulumi.Any(azurerm_eventhub.Example.Name),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventSubscription, err := eventgrid.NewEventSubscription(ctx, \"exampleEventSubscription\", \u0026eventgrid.EventSubscriptionArgs{\n\t\t\tScope:               exampleAccount.ID(),\n\t\t\tEventhubEndpointId:  pulumi.Any(azurerm_eventhub.Example.Id),\n\t\t\tEventDeliverySchema: pulumi.String(\"EventGridSchema\"),\n\t\t\tIncludedEventTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Microsoft.Storage.BlobCreated\"),\n\t\t\t\tpulumi.String(\"Microsoft.Storage.BlobRenamed\"),\n\t\t\t},\n\t\t\tRetryPolicy: \u0026eventgrid.EventSubscriptionRetryPolicyArgs{\n\t\t\t\tEventTimeToLive:     pulumi.Int(144),\n\t\t\t\tMaxDeliveryAttempts: pulumi.Int(10),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kusto.NewEventGridDataConnection(ctx, \"exampleEventGridDataConnection\", \u0026kusto.EventGridDataConnectionArgs{\n\t\t\tResourceGroupName:         exampleResourceGroup.Name,\n\t\t\tLocation:                  exampleResourceGroup.Location,\n\t\t\tClusterName:               exampleCluster.Name,\n\t\t\tDatabaseName:              exampleDatabase.Name,\n\t\t\tStorageAccountId:          exampleAccount.ID(),\n\t\t\tEventhubId:                pulumi.Any(azurerm_eventhub.Example.Id),\n\t\t\tEventhubConsumerGroupName: exampleConsumerGroup.Name,\n\t\t\tTableName:                 pulumi.String(\"my-table\"),\n\t\t\tMappingRuleName:           pulumi.String(\"my-table-mapping\"),\n\t\t\tDataFormat:                pulumi.String(\"JSON\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleEventSubscription,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKusto Event Grid Data Connections can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:kusto/eventGridDataConnection:EventGridDataConnection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/Clusters/cluster1/Databases/database1/DataConnections/dataConnection1\n```\n\n ",
      "inputProperties": {
        "blobStorageEventType": {
          "description": "Specifies the blob storage event type that needs to be processed. Possible\nValues are `Microsoft.Storage.BlobCreated` and `Microsoft.Storage.BlobRenamed`. Defaults\nto `Microsoft.Storage.BlobCreated`.\n",
          "type": "string"
        },
        "clusterName": {
          "description": "Specifies the name of the Kusto Cluster this data connection will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "dataFormat": {
          "description": "Specifies the data format of the EventHub messages. Allowed values: `AVRO`, `CSV`, `JSON`, `MULTIJSON`, `PSV`, `RAW`, `SCSV`, `SINGLEJSON`, `SOHSV`, `TSV` and `TXT`\n",
          "type": "string"
        },
        "databaseName": {
          "description": "Specifies the name of the Kusto Database this data connection will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventhubConsumerGroupName": {
          "description": "Specifies the Event Hub consumer group this data connection will use for\ningestion. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventhubId": {
          "description": "Specifies the resource id of the Event Hub this data connection will use for ingestion.\nChanging this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The location where the Kusto Database should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mappingRuleName": {
          "description": "Specifies the mapping rule used for the message ingestion. Mapping rule must exist before resource is created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Kusto Event Grid Data Connection to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skipFirstRecord": {
          "description": "is the first record of every file ignored? Defaults to `false`.\n",
          "type": "boolean"
        },
        "storageAccountId": {
          "description": "Specifies the resource id of the Storage Account this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tableName": {
          "description": "Specifies the target table name used for the message ingestion. Table must exist before resource is created.\n",
          "type": "string"
        }
      },
      "properties": {
        "blobStorageEventType": {
          "description": "Specifies the blob storage event type that needs to be processed. Possible\nValues are `Microsoft.Storage.BlobCreated` and `Microsoft.Storage.BlobRenamed`. Defaults\nto `Microsoft.Storage.BlobCreated`.\n",
          "type": "string"
        },
        "clusterName": {
          "description": "Specifies the name of the Kusto Cluster this data connection will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "dataFormat": {
          "description": "Specifies the data format of the EventHub messages. Allowed values: `AVRO`, `CSV`, `JSON`, `MULTIJSON`, `PSV`, `RAW`, `SCSV`, `SINGLEJSON`, `SOHSV`, `TSV` and `TXT`\n",
          "type": "string"
        },
        "databaseName": {
          "description": "Specifies the name of the Kusto Database this data connection will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventhubConsumerGroupName": {
          "description": "Specifies the Event Hub consumer group this data connection will use for\ningestion. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventhubId": {
          "description": "Specifies the resource id of the Event Hub this data connection will use for ingestion.\nChanging this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The location where the Kusto Database should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mappingRuleName": {
          "description": "Specifies the mapping rule used for the message ingestion. Mapping rule must exist before resource is created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Kusto Event Grid Data Connection to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skipFirstRecord": {
          "description": "is the first record of every file ignored? Defaults to `false`.\n",
          "type": "boolean"
        },
        "storageAccountId": {
          "description": "Specifies the resource id of the Storage Account this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tableName": {
          "description": "Specifies the target table name used for the message ingestion. Table must exist before resource is created.\n",
          "type": "string"
        }
      },
      "required": [
        "clusterName",
        "databaseName",
        "eventhubConsumerGroupName",
        "eventhubId",
        "location",
        "name",
        "resourceGroupName",
        "storageAccountId"
      ],
      "requiredInputs": [
        "clusterName",
        "databaseName",
        "eventhubConsumerGroupName",
        "eventhubId",
        "resourceGroupName",
        "storageAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EventGridDataConnection resources.\n",
        "properties": {
          "blobStorageEventType": {
            "description": "Specifies the blob storage event type that needs to be processed. Possible\nValues are `Microsoft.Storage.BlobCreated` and `Microsoft.Storage.BlobRenamed`. Defaults\nto `Microsoft.Storage.BlobCreated`.\n",
            "type": "string"
          },
          "clusterName": {
            "description": "Specifies the name of the Kusto Cluster this data connection will be added to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "dataFormat": {
            "description": "Specifies the data format of the EventHub messages. Allowed values: `AVRO`, `CSV`, `JSON`, `MULTIJSON`, `PSV`, `RAW`, `SCSV`, `SINGLEJSON`, `SOHSV`, `TSV` and `TXT`\n",
            "type": "string"
          },
          "databaseName": {
            "description": "Specifies the name of the Kusto Database this data connection will be added to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "eventhubConsumerGroupName": {
            "description": "Specifies the Event Hub consumer group this data connection will use for\ningestion. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "eventhubId": {
            "description": "Specifies the resource id of the Event Hub this data connection will use for ingestion.\nChanging this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "The location where the Kusto Database should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "mappingRuleName": {
            "description": "Specifies the mapping rule used for the message ingestion. Mapping rule must exist before resource is created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Kusto Event Grid Data Connection to create. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skipFirstRecord": {
            "description": "is the first record of every file ignored? Defaults to `false`.\n",
            "type": "boolean"
          },
          "storageAccountId": {
            "description": "Specifies the resource id of the Storage Account this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tableName": {
            "description": "Specifies the target table name used for the message ingestion. Table must exist before resource is created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:kusto/eventhubDataConnection:EventhubDataConnection": {
      "description": "Manages a Kusto (also known as Azure Data Explorer) EventHub Data Connection\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst cluster = new azure.kusto.Cluster(\"cluster\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    sku: {\n        name: \"Standard_D13_v2\",\n        capacity: 2,\n    },\n});\nconst database = new azure.kusto.Database(\"database\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    clusterName: cluster.name,\n    hotCachePeriod: \"P7D\",\n    softDeletePeriod: \"P31D\",\n});\nconst eventhubNs = new azure.eventhub.EventHubNamespace(\"eventhubNs\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    sku: \"Standard\",\n});\nconst eventhub = new azure.eventhub.EventHub(\"eventhub\", {\n    namespaceName: eventhubNs.name,\n    resourceGroupName: rg.name,\n    partitionCount: 1,\n    messageRetention: 1,\n});\nconst consumerGroup = new azure.eventhub.ConsumerGroup(\"consumerGroup\", {\n    namespaceName: eventhubNs.name,\n    eventhubName: eventhub.name,\n    resourceGroupName: rg.name,\n});\nconst eventhubConnection = new azure.kusto.EventhubDataConnection(\"eventhubConnection\", {\n    resourceGroupName: rg.name,\n    location: rg.location,\n    clusterName: cluster.name,\n    databaseName: database.name,\n    eventhubId: eventhub.id,\n    consumerGroup: consumerGroup.name,\n    tableName: \"my-table\",\n    mappingRuleName: \"my-table-mapping\",\n    dataFormat: \"JSON\",\n});\n//(Optional)\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\ncluster = azure.kusto.Cluster(\"cluster\",\n    location=rg.location,\n    resource_group_name=rg.name,\n    sku=azure.kusto.ClusterSkuArgs(\n        name=\"Standard_D13_v2\",\n        capacity=2,\n    ))\ndatabase = azure.kusto.Database(\"database\",\n    resource_group_name=rg.name,\n    location=rg.location,\n    cluster_name=cluster.name,\n    hot_cache_period=\"P7D\",\n    soft_delete_period=\"P31D\")\neventhub_ns = azure.eventhub.EventHubNamespace(\"eventhubNs\",\n    location=rg.location,\n    resource_group_name=rg.name,\n    sku=\"Standard\")\neventhub = azure.eventhub.EventHub(\"eventhub\",\n    namespace_name=eventhub_ns.name,\n    resource_group_name=rg.name,\n    partition_count=1,\n    message_retention=1)\nconsumer_group = azure.eventhub.ConsumerGroup(\"consumerGroup\",\n    namespace_name=eventhub_ns.name,\n    eventhub_name=eventhub.name,\n    resource_group_name=rg.name)\neventhub_connection = azure.kusto.EventhubDataConnection(\"eventhubConnection\",\n    resource_group_name=rg.name,\n    location=rg.location,\n    cluster_name=cluster.name,\n    database_name=database.name,\n    eventhub_id=eventhub.id,\n    consumer_group=consumer_group.name,\n    table_name=\"my-table\",\n    mapping_rule_name=\"my-table-mapping\",\n    data_format=\"JSON\")\n#(Optional)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var cluster = new Azure.Kusto.Cluster(\"cluster\", new Azure.Kusto.ClusterArgs\n        {\n            Location = rg.Location,\n            ResourceGroupName = rg.Name,\n            Sku = new Azure.Kusto.Inputs.ClusterSkuArgs\n            {\n                Name = \"Standard_D13_v2\",\n                Capacity = 2,\n            },\n        });\n        var database = new Azure.Kusto.Database(\"database\", new Azure.Kusto.DatabaseArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n            ClusterName = cluster.Name,\n            HotCachePeriod = \"P7D\",\n            SoftDeletePeriod = \"P31D\",\n        });\n        var eventhubNs = new Azure.EventHub.EventHubNamespace(\"eventhubNs\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = rg.Location,\n            ResourceGroupName = rg.Name,\n            Sku = \"Standard\",\n        });\n        var eventhub = new Azure.EventHub.EventHub(\"eventhub\", new Azure.EventHub.EventHubArgs\n        {\n            NamespaceName = eventhubNs.Name,\n            ResourceGroupName = rg.Name,\n            PartitionCount = 1,\n            MessageRetention = 1,\n        });\n        var consumerGroup = new Azure.EventHub.ConsumerGroup(\"consumerGroup\", new Azure.EventHub.ConsumerGroupArgs\n        {\n            NamespaceName = eventhubNs.Name,\n            EventhubName = eventhub.Name,\n            ResourceGroupName = rg.Name,\n        });\n        var eventhubConnection = new Azure.Kusto.EventhubDataConnection(\"eventhubConnection\", new Azure.Kusto.EventhubDataConnectionArgs\n        {\n            ResourceGroupName = rg.Name,\n            Location = rg.Location,\n            ClusterName = cluster.Name,\n            DatabaseName = database.Name,\n            EventhubId = eventhub.Id,\n            ConsumerGroup = consumerGroup.Name,\n            TableName = \"my-table\",\n            MappingRuleName = \"my-table-mapping\",\n            DataFormat = \"JSON\",\n        });\n        //(Optional)\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/kusto\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := kusto.NewCluster(ctx, \"cluster\", \u0026kusto.ClusterArgs{\n\t\t\tLocation:          rg.Location,\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tSku: \u0026kusto.ClusterSkuArgs{\n\t\t\t\tName:     pulumi.String(\"Standard_D13_v2\"),\n\t\t\t\tCapacity: pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdatabase, err := kusto.NewDatabase(ctx, \"database\", \u0026kusto.DatabaseArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tClusterName:       cluster.Name,\n\t\t\tHotCachePeriod:    pulumi.String(\"P7D\"),\n\t\t\tSoftDeletePeriod:  pulumi.String(\"P31D\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teventhubNs, err := eventhub.NewEventHubNamespace(ctx, \"eventhubNs\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          rg.Location,\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teventhub, err := eventhub.NewEventHub(ctx, \"eventhub\", \u0026eventhub.EventHubArgs{\n\t\t\tNamespaceName:     eventhubNs.Name,\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tPartitionCount:    pulumi.Int(1),\n\t\t\tMessageRetention:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconsumerGroup, err := eventhub.NewConsumerGroup(ctx, \"consumerGroup\", \u0026eventhub.ConsumerGroupArgs{\n\t\t\tNamespaceName:     eventhubNs.Name,\n\t\t\tEventhubName:      eventhub.Name,\n\t\t\tResourceGroupName: rg.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kusto.NewEventhubDataConnection(ctx, \"eventhubConnection\", \u0026kusto.EventhubDataConnectionArgs{\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tLocation:          rg.Location,\n\t\t\tClusterName:       cluster.Name,\n\t\t\tDatabaseName:      database.Name,\n\t\t\tEventhubId:        eventhub.ID(),\n\t\t\tConsumerGroup:     consumerGroup.Name,\n\t\t\tTableName:         pulumi.String(\"my-table\"),\n\t\t\tMappingRuleName:   pulumi.String(\"my-table-mapping\"),\n\t\t\tDataFormat:        pulumi.String(\"JSON\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKusto EventHub Data Connections can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:kusto/eventhubDataConnection:EventhubDataConnection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/Clusters/cluster1/Databases/database1/DataConnections/eventHubConnection1\n```\n\n ",
      "inputProperties": {
        "clusterName": {
          "description": "Specifies the name of the Kusto Cluster this data connection will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "compression": {
          "description": "Specifies compression type for the connection. Allowed values: `GZip` and `None`. Defaults to `None`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "consumerGroup": {
          "description": "Specifies the EventHub consumer group this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "dataFormat": {
          "description": "Specifies the data format of the EventHub messages. Allowed values: `APACHEAVRO`, `AVRO`, `CSV`, `JSON`, `MULTIJSON`, `ORC`, `PARQUET`, `PSV`, `RAW`, `SCSV`, `SINGLEJSON`, `SOHSV`, `TSVE`, `TSV`, `TXT`, and `W3CLOGFILE`.\n",
          "type": "string"
        },
        "databaseName": {
          "description": "Specifies the name of the Kusto Database this data connection will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventSystemProperties": {
          "description": "Specifies a list of system properties for the Event Hub.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "eventhubId": {
          "description": "Specifies the resource id of the EventHub this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The location where the Kusto Database should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mappingRuleName": {
          "description": "Specifies the mapping rule used for the message ingestion. Mapping rule must exist before resource is created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Kusto EventHub Data Connection to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tableName": {
          "description": "Specifies the target table name used for the message ingestion. Table must exist before resource is created.\n",
          "type": "string"
        }
      },
      "properties": {
        "clusterName": {
          "description": "Specifies the name of the Kusto Cluster this data connection will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "compression": {
          "description": "Specifies compression type for the connection. Allowed values: `GZip` and `None`. Defaults to `None`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "consumerGroup": {
          "description": "Specifies the EventHub consumer group this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "dataFormat": {
          "description": "Specifies the data format of the EventHub messages. Allowed values: `APACHEAVRO`, `AVRO`, `CSV`, `JSON`, `MULTIJSON`, `ORC`, `PARQUET`, `PSV`, `RAW`, `SCSV`, `SINGLEJSON`, `SOHSV`, `TSVE`, `TSV`, `TXT`, and `W3CLOGFILE`.\n",
          "type": "string"
        },
        "databaseName": {
          "description": "Specifies the name of the Kusto Database this data connection will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventSystemProperties": {
          "description": "Specifies a list of system properties for the Event Hub.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "eventhubId": {
          "description": "Specifies the resource id of the EventHub this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The location where the Kusto Database should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mappingRuleName": {
          "description": "Specifies the mapping rule used for the message ingestion. Mapping rule must exist before resource is created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Kusto EventHub Data Connection to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tableName": {
          "description": "Specifies the target table name used for the message ingestion. Table must exist before resource is created.\n",
          "type": "string"
        }
      },
      "required": [
        "clusterName",
        "consumerGroup",
        "databaseName",
        "eventSystemProperties",
        "eventhubId",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "clusterName",
        "consumerGroup",
        "databaseName",
        "eventhubId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EventhubDataConnection resources.\n",
        "properties": {
          "clusterName": {
            "description": "Specifies the name of the Kusto Cluster this data connection will be added to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "compression": {
            "description": "Specifies compression type for the connection. Allowed values: `GZip` and `None`. Defaults to `None`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "consumerGroup": {
            "description": "Specifies the EventHub consumer group this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "dataFormat": {
            "description": "Specifies the data format of the EventHub messages. Allowed values: `APACHEAVRO`, `AVRO`, `CSV`, `JSON`, `MULTIJSON`, `ORC`, `PARQUET`, `PSV`, `RAW`, `SCSV`, `SINGLEJSON`, `SOHSV`, `TSVE`, `TSV`, `TXT`, and `W3CLOGFILE`.\n",
            "type": "string"
          },
          "databaseName": {
            "description": "Specifies the name of the Kusto Database this data connection will be added to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "eventSystemProperties": {
            "description": "Specifies a list of system properties for the Event Hub.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "eventhubId": {
            "description": "Specifies the resource id of the EventHub this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "The location where the Kusto Database should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "mappingRuleName": {
            "description": "Specifies the mapping rule used for the message ingestion. Mapping rule must exist before resource is created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Kusto EventHub Data Connection to create. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tableName": {
            "description": "Specifies the target table name used for the message ingestion. Table must exist before resource is created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:kusto/iotHubDataConnection:IotHubDataConnection": {
      "description": "Manages a Kusto (also known as Azure Data Explorer) IotHub Data Connection\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleCluster = new azure.kusto.Cluster(\"exampleCluster\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        name: \"Standard_D13_v2\",\n        capacity: 2,\n    },\n});\nconst exampleDatabase = new azure.kusto.Database(\"exampleDatabase\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    clusterName: exampleCluster.name,\n    hotCachePeriod: \"P7D\",\n    softDeletePeriod: \"P31D\",\n});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"B1\",\n        capacity: \"1\",\n    },\n});\nconst exampleSharedAccessPolicy = new azure.iot.SharedAccessPolicy(\"exampleSharedAccessPolicy\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubName: exampleIoTHub.name,\n    registryRead: true,\n});\nconst exampleConsumerGroup = new azure.iot.ConsumerGroup(\"exampleConsumerGroup\", {\n    resourceGroupName: exampleResourceGroup.name,\n    iothubName: exampleIoTHub.name,\n    eventhubEndpointName: \"events\",\n});\nconst exampleIotHubDataConnection = new azure.kusto.IotHubDataConnection(\"exampleIotHubDataConnection\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    clusterName: exampleCluster.name,\n    databaseName: exampleDatabase.name,\n    iothubId: exampleIoTHub.id,\n    consumerGroup: exampleConsumerGroup.name,\n    sharedAccessPolicyName: exampleSharedAccessPolicy.name,\n    eventSystemProperties: [\n        \"message-id\",\n        \"sequence-number\",\n        \"to\",\n    ],\n    tableName: \"my-table\",\n    mappingRuleName: \"my-table-mapping\",\n    dataFormat: \"JSON\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_cluster = azure.kusto.Cluster(\"exampleCluster\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.kusto.ClusterSkuArgs(\n        name=\"Standard_D13_v2\",\n        capacity=2,\n    ))\nexample_database = azure.kusto.Database(\"exampleDatabase\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cluster_name=example_cluster.name,\n    hot_cache_period=\"P7D\",\n    soft_delete_period=\"P31D\")\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"B1\",\n        capacity=1,\n    ))\nexample_shared_access_policy = azure.iot.SharedAccessPolicy(\"exampleSharedAccessPolicy\",\n    resource_group_name=example_resource_group.name,\n    iothub_name=example_io_t_hub.name,\n    registry_read=True)\nexample_consumer_group = azure.iot.ConsumerGroup(\"exampleConsumerGroup\",\n    resource_group_name=example_resource_group.name,\n    iothub_name=example_io_t_hub.name,\n    eventhub_endpoint_name=\"events\")\nexample_iot_hub_data_connection = azure.kusto.IotHubDataConnection(\"exampleIotHubDataConnection\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    cluster_name=example_cluster.name,\n    database_name=example_database.name,\n    iothub_id=example_io_t_hub.id,\n    consumer_group=example_consumer_group.name,\n    shared_access_policy_name=example_shared_access_policy.name,\n    event_system_properties=[\n        \"message-id\",\n        \"sequence-number\",\n        \"to\",\n    ],\n    table_name=\"my-table\",\n    mapping_rule_name=\"my-table-mapping\",\n    data_format=\"JSON\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleCluster = new Azure.Kusto.Cluster(\"exampleCluster\", new Azure.Kusto.ClusterArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.Kusto.Inputs.ClusterSkuArgs\n            {\n                Name = \"Standard_D13_v2\",\n                Capacity = 2,\n            },\n        });\n        var exampleDatabase = new Azure.Kusto.Database(\"exampleDatabase\", new Azure.Kusto.DatabaseArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ClusterName = exampleCluster.Name,\n            HotCachePeriod = \"P7D\",\n            SoftDeletePeriod = \"P31D\",\n        });\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"B1\",\n                Capacity = 1,\n            },\n        });\n        var exampleSharedAccessPolicy = new Azure.Iot.SharedAccessPolicy(\"exampleSharedAccessPolicy\", new Azure.Iot.SharedAccessPolicyArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubName = exampleIoTHub.Name,\n            RegistryRead = true,\n        });\n        var exampleConsumerGroup = new Azure.Iot.ConsumerGroup(\"exampleConsumerGroup\", new Azure.Iot.ConsumerGroupArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IothubName = exampleIoTHub.Name,\n            EventhubEndpointName = \"events\",\n        });\n        var exampleIotHubDataConnection = new Azure.Kusto.IotHubDataConnection(\"exampleIotHubDataConnection\", new Azure.Kusto.IotHubDataConnectionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ClusterName = exampleCluster.Name,\n            DatabaseName = exampleDatabase.Name,\n            IothubId = exampleIoTHub.Id,\n            ConsumerGroup = exampleConsumerGroup.Name,\n            SharedAccessPolicyName = exampleSharedAccessPolicy.Name,\n            EventSystemProperties = \n            {\n                \"message-id\",\n                \"sequence-number\",\n                \"to\",\n            },\n            TableName = \"my-table\",\n            MappingRuleName = \"my-table-mapping\",\n            DataFormat = \"JSON\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/kusto\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := kusto.NewCluster(ctx, \"exampleCluster\", \u0026kusto.ClusterArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026kusto.ClusterSkuArgs{\n\t\t\t\tName:     pulumi.String(\"Standard_D13_v2\"),\n\t\t\t\tCapacity: pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDatabase, err := kusto.NewDatabase(ctx, \"exampleDatabase\", \u0026kusto.DatabaseArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tClusterName:       exampleCluster.Name,\n\t\t\tHotCachePeriod:    pulumi.String(\"P7D\"),\n\t\t\tSoftDeletePeriod:  pulumi.String(\"P31D\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIoTHub, err := iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"B1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSharedAccessPolicy, err := iot.NewSharedAccessPolicy(ctx, \"exampleSharedAccessPolicy\", \u0026iot.SharedAccessPolicyArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIothubName:        exampleIoTHub.Name,\n\t\t\tRegistryRead:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleConsumerGroup, err := iot.NewConsumerGroup(ctx, \"exampleConsumerGroup\", \u0026iot.ConsumerGroupArgs{\n\t\t\tResourceGroupName:    exampleResourceGroup.Name,\n\t\t\tIothubName:           exampleIoTHub.Name,\n\t\t\tEventhubEndpointName: pulumi.String(\"events\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kusto.NewIotHubDataConnection(ctx, \"exampleIotHubDataConnection\", \u0026kusto.IotHubDataConnectionArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tClusterName:            exampleCluster.Name,\n\t\t\tDatabaseName:           exampleDatabase.Name,\n\t\t\tIothubId:               exampleIoTHub.ID(),\n\t\t\tConsumerGroup:          exampleConsumerGroup.Name,\n\t\t\tSharedAccessPolicyName: exampleSharedAccessPolicy.Name,\n\t\t\tEventSystemProperties: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"message-id\"),\n\t\t\t\tpulumi.String(\"sequence-number\"),\n\t\t\t\tpulumi.String(\"to\"),\n\t\t\t},\n\t\t\tTableName:       pulumi.String(\"my-table\"),\n\t\t\tMappingRuleName: pulumi.String(\"my-table-mapping\"),\n\t\t\tDataFormat:      pulumi.String(\"JSON\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nKusto IotHub Data Connections can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:kusto/iotHubDataConnection:IotHubDataConnection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/Clusters/cluster1/Databases/database1/DataConnections/dataConnection1\n```\n\n ",
      "inputProperties": {
        "clusterName": {
          "description": "Specifies the name of the Kusto Cluster this data connection will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "consumerGroup": {
          "description": "Specifies the IotHub consumer group this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "dataFormat": {
          "description": "Specifies the data format of the IoTHub messages. Allowed values: `APACHEAVRO`, `AVRO`, `CSV`, `JSON`, `MULTIJSON`, `ORC`, `PARQUET`, `PSV`, `RAW`, `SCSV`, `SINGLEJSON`, `SOHSV`, `TSV`, `TSVE`, `TXT` and `W3CLOGFILE`.\n",
          "type": "string"
        },
        "databaseName": {
          "description": "Specifies the name of the Kusto Database this data connection will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventSystemProperties": {
          "description": "Specifies the System Properties that each IoT Hub message should contain. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "iothubId": {
          "description": "Specifies the resource id of the IotHub this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The location where the Kusto Database should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mappingRuleName": {
          "description": "Specifies the mapping rule used for the message ingestion. Mapping rule must exist before resource is created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Kusto IotHub Data Connection to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sharedAccessPolicyName": {
          "description": "Specifies the IotHub Shared Access Policy this data connection will use for ingestion, which must have read permission. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tableName": {
          "description": "Specifies the target table name used for the message ingestion. Table must exist before resource is created.\n",
          "type": "string"
        }
      },
      "properties": {
        "clusterName": {
          "description": "Specifies the name of the Kusto Cluster this data connection will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "consumerGroup": {
          "description": "Specifies the IotHub consumer group this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "dataFormat": {
          "description": "Specifies the data format of the IoTHub messages. Allowed values: `APACHEAVRO`, `AVRO`, `CSV`, `JSON`, `MULTIJSON`, `ORC`, `PARQUET`, `PSV`, `RAW`, `SCSV`, `SINGLEJSON`, `SOHSV`, `TSV`, `TSVE`, `TXT` and `W3CLOGFILE`.\n",
          "type": "string"
        },
        "databaseName": {
          "description": "Specifies the name of the Kusto Database this data connection will be added to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventSystemProperties": {
          "description": "Specifies the System Properties that each IoT Hub message should contain. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "iothubId": {
          "description": "Specifies the resource id of the IotHub this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The location where the Kusto Database should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mappingRuleName": {
          "description": "Specifies the mapping rule used for the message ingestion. Mapping rule must exist before resource is created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Kusto IotHub Data Connection to create. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sharedAccessPolicyName": {
          "description": "Specifies the IotHub Shared Access Policy this data connection will use for ingestion, which must have read permission. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tableName": {
          "description": "Specifies the target table name used for the message ingestion. Table must exist before resource is created.\n",
          "type": "string"
        }
      },
      "required": [
        "clusterName",
        "consumerGroup",
        "databaseName",
        "iothubId",
        "location",
        "name",
        "resourceGroupName",
        "sharedAccessPolicyName"
      ],
      "requiredInputs": [
        "clusterName",
        "consumerGroup",
        "databaseName",
        "iothubId",
        "resourceGroupName",
        "sharedAccessPolicyName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IotHubDataConnection resources.\n",
        "properties": {
          "clusterName": {
            "description": "Specifies the name of the Kusto Cluster this data connection will be added to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "consumerGroup": {
            "description": "Specifies the IotHub consumer group this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "dataFormat": {
            "description": "Specifies the data format of the IoTHub messages. Allowed values: `APACHEAVRO`, `AVRO`, `CSV`, `JSON`, `MULTIJSON`, `ORC`, `PARQUET`, `PSV`, `RAW`, `SCSV`, `SINGLEJSON`, `SOHSV`, `TSV`, `TSVE`, `TXT` and `W3CLOGFILE`.\n",
            "type": "string"
          },
          "databaseName": {
            "description": "Specifies the name of the Kusto Database this data connection will be added to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "eventSystemProperties": {
            "description": "Specifies the System Properties that each IoT Hub message should contain. Changing this forces a new resource to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "iothubId": {
            "description": "Specifies the resource id of the IotHub this data connection will use for ingestion. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "The location where the Kusto Database should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "mappingRuleName": {
            "description": "Specifies the mapping rule used for the message ingestion. Mapping rule must exist before resource is created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Kusto IotHub Data Connection to create. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the Resource Group where the Kusto Database should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sharedAccessPolicyName": {
            "description": "Specifies the IotHub Shared Access Policy this data connection will use for ingestion, which must have read permission. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tableName": {
            "description": "Specifies the target table name used for the message ingestion. Table must exist before resource is created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:lb/backendAddressPool:BackendAddressPool": {
      "description": "Manages a Load Balancer Backend Address Pool.\n\n\u003e **NOTE:** When using this resource, the Load Balancer needs to have a FrontEnd IP Configuration Attached\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n});\nconst exampleLoadBalancer = new azure.lb.LoadBalancer(\"exampleLoadBalancer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    frontendIpConfigurations: [{\n        name: \"PublicIPAddress\",\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst exampleBackendAddressPool = new azure.lb.BackendAddressPool(\"exampleBackendAddressPool\", {loadbalancerId: exampleLoadBalancer.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\")\nexample_load_balancer = azure.lb.LoadBalancer(\"exampleLoadBalancer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    frontend_ip_configurations=[azure.lb.LoadBalancerFrontendIpConfigurationArgs(\n        name=\"PublicIPAddress\",\n        public_ip_address_id=example_public_ip.id,\n    )])\nexample_backend_address_pool = azure.lb.BackendAddressPool(\"exampleBackendAddressPool\", loadbalancer_id=example_load_balancer.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n        });\n        var exampleLoadBalancer = new Azure.Lb.LoadBalancer(\"exampleLoadBalancer\", new Azure.Lb.LoadBalancerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            FrontendIpConfigurations = \n            {\n                new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs\n                {\n                    Name = \"PublicIPAddress\",\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var exampleBackendAddressPool = new Azure.Lb.BackendAddressPool(\"exampleBackendAddressPool\", new Azure.Lb.BackendAddressPoolArgs\n        {\n            LoadbalancerId = exampleLoadBalancer.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLoadBalancer, err := lb.NewLoadBalancer(ctx, \"exampleLoadBalancer\", \u0026lb.LoadBalancerArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tFrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{\n\t\t\t\t\u0026lb.LoadBalancerFrontendIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(\"PublicIPAddress\"),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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 = lb.NewBackendAddressPool(ctx, \"exampleBackendAddressPool\", \u0026lb.BackendAddressPoolArgs{\n\t\t\tLoadbalancerId: exampleLoadBalancer.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLoad Balancer Backend Address Pools can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:lb/backendAddressPool:BackendAddressPool example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/pool1\n```\n\n ",
      "inputProperties": {
        "backendAddresses": {
          "deprecationMessage": "This field is non-functional and will be removed in version 3.0 of the Azure Provider - use the separate `azurerm_lb_backend_address_pool_address` resource instead.",
          "items": {
            "$ref": "#/types/azure:lb/BackendAddressPoolBackendAddress:BackendAddressPoolBackendAddress"
          },
          "type": "array"
        },
        "loadbalancerId": {
          "description": "The ID of the Load Balancer in which to create the Backend Address Pool.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Backend Address Pool.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "deprecationMessage": "This field is no longer used and will be removed in the next major version of the Azure Provider",
          "type": "string"
        }
      },
      "properties": {
        "backendAddresses": {
          "deprecationMessage": "This field is non-functional and will be removed in version 3.0 of the Azure Provider - use the separate `azurerm_lb_backend_address_pool_address` resource instead.",
          "items": {
            "$ref": "#/types/azure:lb/BackendAddressPoolBackendAddress:BackendAddressPoolBackendAddress"
          },
          "type": "array"
        },
        "backendIpConfigurations": {
          "description": "The Backend IP Configurations associated with this Backend Address Pool.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "loadBalancingRules": {
          "description": "The Load Balancing Rules associated with this Backend Address Pool.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "loadbalancerId": {
          "description": "The ID of the Load Balancer in which to create the Backend Address Pool.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Backend Address Pool.\n",
          "type": "string"
        },
        "outboundRules": {
          "description": "An array of the Load Balancing Outbound Rules associated with this Backend Address Pool.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "deprecationMessage": "This field is no longer used and will be removed in the next major version of the Azure Provider",
          "type": "string"
        }
      },
      "required": [
        "backendIpConfigurations",
        "loadBalancingRules",
        "loadbalancerId",
        "name",
        "outboundRules",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "loadbalancerId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BackendAddressPool resources.\n",
        "properties": {
          "backendAddresses": {
            "deprecationMessage": "This field is non-functional and will be removed in version 3.0 of the Azure Provider - use the separate `azurerm_lb_backend_address_pool_address` resource instead.",
            "items": {
              "$ref": "#/types/azure:lb/BackendAddressPoolBackendAddress:BackendAddressPoolBackendAddress"
            },
            "type": "array"
          },
          "backendIpConfigurations": {
            "description": "The Backend IP Configurations associated with this Backend Address Pool.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "loadBalancingRules": {
            "description": "The Load Balancing Rules associated with this Backend Address Pool.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "loadbalancerId": {
            "description": "The ID of the Load Balancer in which to create the Backend Address Pool.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Backend Address Pool.\n",
            "type": "string"
          },
          "outboundRules": {
            "description": "An array of the Load Balancing Outbound Rules associated with this Backend Address Pool.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "deprecationMessage": "This field is no longer used and will be removed in the next major version of the Azure Provider",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:lb/backendAddressPoolAddress:BackendAddressPoolAddress": {
      "description": "Manages a Backend Address within a Backend Address Pool.\n\n\u003e **Note:** Backend Addresses can only be added to a `Standard` SKU Load Balancer.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleVirtualNetwork = azure.network.getVirtualNetwork({\n    name: \"example-network\",\n    resourceGroupName: \"example-resources\",\n});\nconst exampleLB = azure.lb.getLB({\n    name: \"example-lb\",\n    resourceGroupName: \"example-resources\",\n});\nconst exampleBackendAddressPool = exampleLB.then(exampleLB =\u003e azure.lb.getBackendAddressPool({\n    name: \"first\",\n    loadbalancerId: exampleLB.id,\n}));\nconst exampleBackendAddressPoolAddress = new azure.lb.BackendAddressPoolAddress(\"exampleBackendAddressPoolAddress\", {\n    backendAddressPoolId: exampleBackendAddressPool.then(exampleBackendAddressPool =\u003e exampleBackendAddressPool.id),\n    virtualNetworkId: exampleVirtualNetwork.then(exampleVirtualNetwork =\u003e exampleVirtualNetwork.id),\n    ipAddress: \"10.0.0.1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_virtual_network = azure.network.get_virtual_network(name=\"example-network\",\n    resource_group_name=\"example-resources\")\nexample_lb = azure.lb.get_lb(name=\"example-lb\",\n    resource_group_name=\"example-resources\")\nexample_backend_address_pool = azure.lb.get_backend_address_pool(name=\"first\",\n    loadbalancer_id=example_lb.id)\nexample_backend_address_pool_address = azure.lb.BackendAddressPoolAddress(\"exampleBackendAddressPoolAddress\",\n    backend_address_pool_id=example_backend_address_pool.id,\n    virtual_network_id=example_virtual_network.id,\n    ip_address=\"10.0.0.1\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleVirtualNetwork = Output.Create(Azure.Network.GetVirtualNetwork.InvokeAsync(new Azure.Network.GetVirtualNetworkArgs\n        {\n            Name = \"example-network\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        var exampleLB = Output.Create(Azure.Lb.GetLB.InvokeAsync(new Azure.Lb.GetLBArgs\n        {\n            Name = \"example-lb\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        var exampleBackendAddressPool = exampleLB.Apply(exampleLB =\u003e Output.Create(Azure.Lb.GetBackendAddressPool.InvokeAsync(new Azure.Lb.GetBackendAddressPoolArgs\n        {\n            Name = \"first\",\n            LoadbalancerId = exampleLB.Id,\n        })));\n        var exampleBackendAddressPoolAddress = new Azure.Lb.BackendAddressPoolAddress(\"exampleBackendAddressPoolAddress\", new Azure.Lb.BackendAddressPoolAddressArgs\n        {\n            BackendAddressPoolId = exampleBackendAddressPool.Apply(exampleBackendAddressPool =\u003e exampleBackendAddressPool.Id),\n            VirtualNetworkId = exampleVirtualNetwork.Apply(exampleVirtualNetwork =\u003e exampleVirtualNetwork.Id),\n            IpAddress = \"10.0.0.1\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVirtualNetwork, err := network.LookupVirtualNetwork(ctx, \u0026network.LookupVirtualNetworkArgs{\n\t\t\tName:              \"example-network\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLB, err := lb.GetLB(ctx, \u0026lb.GetLBArgs{\n\t\t\tName:              \"example-lb\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBackendAddressPool, err := lb.LookupBackendAddressPool(ctx, \u0026lb.LookupBackendAddressPoolArgs{\n\t\t\tName:           \"first\",\n\t\t\tLoadbalancerId: exampleLB.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewBackendAddressPoolAddress(ctx, \"exampleBackendAddressPoolAddress\", \u0026lb.BackendAddressPoolAddressArgs{\n\t\t\tBackendAddressPoolId: pulumi.String(exampleBackendAddressPool.Id),\n\t\t\tVirtualNetworkId:     pulumi.String(exampleVirtualNetwork.Id),\n\t\t\tIpAddress:            pulumi.String(\"10.0.0.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBackend Address Pool Addresses can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:lb/backendAddressPoolAddress:BackendAddressPoolAddress example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/loadBalancers/loadBalancer1/backendAddressPools/backendAddressPool1/addresses/address1\n```\n\n ",
      "inputProperties": {
        "backendAddressPoolId": {
          "description": "The ID of the Backend Address Pool. Changing this forces a new Backend Address Pool Address to be created.\n",
          "type": "string"
        },
        "ipAddress": {
          "description": "The Static IP Address which should be allocated to this Backend Address Pool.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Backend Address Pool Address. Changing this forces a new Backend Address Pool Address to be created.\n",
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network within which the Backend Address Pool should exist.\n",
          "type": "string"
        }
      },
      "properties": {
        "backendAddressPoolId": {
          "description": "The ID of the Backend Address Pool. Changing this forces a new Backend Address Pool Address to be created.\n",
          "type": "string"
        },
        "ipAddress": {
          "description": "The Static IP Address which should be allocated to this Backend Address Pool.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Backend Address Pool Address. Changing this forces a new Backend Address Pool Address to be created.\n",
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network within which the Backend Address Pool should exist.\n",
          "type": "string"
        }
      },
      "required": [
        "backendAddressPoolId",
        "ipAddress",
        "name",
        "virtualNetworkId"
      ],
      "requiredInputs": [
        "backendAddressPoolId",
        "ipAddress",
        "virtualNetworkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BackendAddressPoolAddress resources.\n",
        "properties": {
          "backendAddressPoolId": {
            "description": "The ID of the Backend Address Pool. Changing this forces a new Backend Address Pool Address to be created.\n",
            "type": "string"
          },
          "ipAddress": {
            "description": "The Static IP Address which should be allocated to this Backend Address Pool.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Backend Address Pool Address. Changing this forces a new Backend Address Pool Address to be created.\n",
            "type": "string"
          },
          "virtualNetworkId": {
            "description": "The ID of the Virtual Network within which the Backend Address Pool should exist.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:lb/loadBalancer:LoadBalancer": {
      "description": "Manages a Load Balancer Resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n});\nconst exampleLoadBalancer = new azure.lb.LoadBalancer(\"exampleLoadBalancer\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    frontendIpConfigurations: [{\n        name: \"PublicIPAddress\",\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\")\nexample_load_balancer = azure.lb.LoadBalancer(\"exampleLoadBalancer\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    frontend_ip_configurations=[azure.lb.LoadBalancerFrontendIpConfigurationArgs(\n        name=\"PublicIPAddress\",\n        public_ip_address_id=example_public_ip.id,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n        });\n        var exampleLoadBalancer = new Azure.Lb.LoadBalancer(\"exampleLoadBalancer\", new Azure.Lb.LoadBalancerArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            FrontendIpConfigurations = \n            {\n                new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs\n                {\n                    Name = \"PublicIPAddress\",\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewLoadBalancer(ctx, \"exampleLoadBalancer\", \u0026lb.LoadBalancerArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tFrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{\n\t\t\t\t\u0026lb.LoadBalancerFrontendIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(\"PublicIPAddress\"),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLoad Balancers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:lb/loadBalancer:LoadBalancer example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/loadBalancers/lb1\n```\n\n ",
      "inputProperties": {
        "frontendIpConfigurations": {
          "description": "One or multiple `frontend_ip_configuration` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:lb/LoadBalancerFrontendIpConfiguration:LoadBalancerFrontendIpConfiguration"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure Region where the Load Balancer should be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Load Balancer.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which to create the Load Balancer.\n",
          "type": "string"
        },
        "sku": {
          "description": "The SKU of the Azure Load Balancer. Accepted values are `Basic` and `Standard`. Defaults to `Basic`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "frontendIpConfigurations": {
          "description": "One or multiple `frontend_ip_configuration` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:lb/LoadBalancerFrontendIpConfiguration:LoadBalancerFrontendIpConfiguration"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure Region where the Load Balancer should be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Load Balancer.\n",
          "type": "string"
        },
        "privateIpAddress": {
          "description": "Private IP Address to assign to the Load Balancer. The last one and first four IPs in any range are reserved and cannot be manually assigned.\n",
          "type": "string"
        },
        "privateIpAddresses": {
          "description": "The list of private IP address assigned to the load balancer in `frontend_ip_configuration` blocks, if any.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which to create the Load Balancer.\n",
          "type": "string"
        },
        "sku": {
          "description": "The SKU of the Azure Load Balancer. Accepted values are `Basic` and `Standard`. Defaults to `Basic`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "privateIpAddress",
        "privateIpAddresses",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LoadBalancer resources.\n",
        "properties": {
          "frontendIpConfigurations": {
            "description": "One or multiple `frontend_ip_configuration` blocks as documented below.\n",
            "items": {
              "$ref": "#/types/azure:lb/LoadBalancerFrontendIpConfiguration:LoadBalancerFrontendIpConfiguration"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure Region where the Load Balancer should be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Load Balancer.\n",
            "type": "string"
          },
          "privateIpAddress": {
            "description": "Private IP Address to assign to the Load Balancer. The last one and first four IPs in any range are reserved and cannot be manually assigned.\n",
            "type": "string"
          },
          "privateIpAddresses": {
            "description": "The list of private IP address assigned to the load balancer in `frontend_ip_configuration` blocks, if any.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which to create the Load Balancer.\n",
            "type": "string"
          },
          "sku": {
            "description": "The SKU of the Azure Load Balancer. Accepted values are `Basic` and `Standard`. Defaults to `Basic`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:lb/natPool:NatPool": {
      "description": "Manages a Load Balancer NAT pool.\n\n\u003e **NOTE:** This resource cannot be used with with virtual machines, instead use the `azure.lb.NatRule` resource.\n\n\u003e **NOTE** When using this resource, the Load Balancer needs to have a FrontEnd IP Configuration Attached\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n});\nconst exampleLoadBalancer = new azure.lb.LoadBalancer(\"exampleLoadBalancer\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    frontendIpConfigurations: [{\n        name: \"PublicIPAddress\",\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst exampleNatPool = new azure.lb.NatPool(\"exampleNatPool\", {\n    resourceGroupName: exampleResourceGroup.name,\n    loadbalancerId: exampleLoadBalancer.id,\n    protocol: \"Tcp\",\n    frontendPortStart: 80,\n    frontendPortEnd: 81,\n    backendPort: 8080,\n    frontendIpConfigurationName: \"PublicIPAddress\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\")\nexample_load_balancer = azure.lb.LoadBalancer(\"exampleLoadBalancer\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    frontend_ip_configurations=[azure.lb.LoadBalancerFrontendIpConfigurationArgs(\n        name=\"PublicIPAddress\",\n        public_ip_address_id=example_public_ip.id,\n    )])\nexample_nat_pool = azure.lb.NatPool(\"exampleNatPool\",\n    resource_group_name=example_resource_group.name,\n    loadbalancer_id=example_load_balancer.id,\n    protocol=\"Tcp\",\n    frontend_port_start=80,\n    frontend_port_end=81,\n    backend_port=8080,\n    frontend_ip_configuration_name=\"PublicIPAddress\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n        });\n        var exampleLoadBalancer = new Azure.Lb.LoadBalancer(\"exampleLoadBalancer\", new Azure.Lb.LoadBalancerArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            FrontendIpConfigurations = \n            {\n                new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs\n                {\n                    Name = \"PublicIPAddress\",\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var exampleNatPool = new Azure.Lb.NatPool(\"exampleNatPool\", new Azure.Lb.NatPoolArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            LoadbalancerId = exampleLoadBalancer.Id,\n            Protocol = \"Tcp\",\n            FrontendPortStart = 80,\n            FrontendPortEnd = 81,\n            BackendPort = 8080,\n            FrontendIpConfigurationName = \"PublicIPAddress\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLoadBalancer, err := lb.NewLoadBalancer(ctx, \"exampleLoadBalancer\", \u0026lb.LoadBalancerArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tFrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{\n\t\t\t\t\u0026lb.LoadBalancerFrontendIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(\"PublicIPAddress\"),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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 = lb.NewNatPool(ctx, \"exampleNatPool\", \u0026lb.NatPoolArgs{\n\t\t\tResourceGroupName:           exampleResourceGroup.Name,\n\t\t\tLoadbalancerId:              exampleLoadBalancer.ID(),\n\t\t\tProtocol:                    pulumi.String(\"Tcp\"),\n\t\t\tFrontendPortStart:           pulumi.Int(80),\n\t\t\tFrontendPortEnd:             pulumi.Int(81),\n\t\t\tBackendPort:                 pulumi.Int(8080),\n\t\t\tFrontendIpConfigurationName: pulumi.String(\"PublicIPAddress\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLoad Balancer NAT Pools can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:lb/natPool:NatPool example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/loadBalancers/lb1/inboundNatPools/pool1\n```\n\n ",
      "inputProperties": {
        "backendPort": {
          "description": "The port used for the internal endpoint. Possible values range between 1 and 65535, inclusive.\n",
          "type": "integer"
        },
        "frontendIpConfigurationName": {
          "description": "The name of the frontend IP configuration exposing this rule.\n",
          "type": "string"
        },
        "frontendPortEnd": {
          "description": "The last port number in the range of external ports that will be used to provide Inbound Nat to NICs associated with this Load Balancer. Possible values range between 1 and 65534, inclusive.\n",
          "type": "integer"
        },
        "frontendPortStart": {
          "description": "The first port number in the range of external ports that will be used to provide Inbound Nat to NICs associated with this Load Balancer. Possible values range between 1 and 65534, inclusive.\n",
          "type": "integer"
        },
        "loadbalancerId": {
          "description": "The ID of the Load Balancer in which to create the NAT pool.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the NAT pool.\n",
          "type": "string"
        },
        "protocol": {
          "description": "The transport protocol for the external endpoint. Possible values are `Udp` or `Tcp`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource.\n",
          "type": "string"
        }
      },
      "properties": {
        "backendPort": {
          "description": "The port used for the internal endpoint. Possible values range between 1 and 65535, inclusive.\n",
          "type": "integer"
        },
        "frontendIpConfigurationId": {
          "type": "string"
        },
        "frontendIpConfigurationName": {
          "description": "The name of the frontend IP configuration exposing this rule.\n",
          "type": "string"
        },
        "frontendPortEnd": {
          "description": "The last port number in the range of external ports that will be used to provide Inbound Nat to NICs associated with this Load Balancer. Possible values range between 1 and 65534, inclusive.\n",
          "type": "integer"
        },
        "frontendPortStart": {
          "description": "The first port number in the range of external ports that will be used to provide Inbound Nat to NICs associated with this Load Balancer. Possible values range between 1 and 65534, inclusive.\n",
          "type": "integer"
        },
        "loadbalancerId": {
          "description": "The ID of the Load Balancer in which to create the NAT pool.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the NAT pool.\n",
          "type": "string"
        },
        "protocol": {
          "description": "The transport protocol for the external endpoint. Possible values are `Udp` or `Tcp`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource.\n",
          "type": "string"
        }
      },
      "required": [
        "backendPort",
        "frontendIpConfigurationId",
        "frontendIpConfigurationName",
        "frontendPortEnd",
        "frontendPortStart",
        "loadbalancerId",
        "name",
        "protocol",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "backendPort",
        "frontendIpConfigurationName",
        "frontendPortEnd",
        "frontendPortStart",
        "loadbalancerId",
        "protocol",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NatPool resources.\n",
        "properties": {
          "backendPort": {
            "description": "The port used for the internal endpoint. Possible values range between 1 and 65535, inclusive.\n",
            "type": "integer"
          },
          "frontendIpConfigurationId": {
            "type": "string"
          },
          "frontendIpConfigurationName": {
            "description": "The name of the frontend IP configuration exposing this rule.\n",
            "type": "string"
          },
          "frontendPortEnd": {
            "description": "The last port number in the range of external ports that will be used to provide Inbound Nat to NICs associated with this Load Balancer. Possible values range between 1 and 65534, inclusive.\n",
            "type": "integer"
          },
          "frontendPortStart": {
            "description": "The first port number in the range of external ports that will be used to provide Inbound Nat to NICs associated with this Load Balancer. Possible values range between 1 and 65534, inclusive.\n",
            "type": "integer"
          },
          "loadbalancerId": {
            "description": "The ID of the Load Balancer in which to create the NAT pool.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the NAT pool.\n",
            "type": "string"
          },
          "protocol": {
            "description": "The transport protocol for the external endpoint. Possible values are `Udp` or `Tcp`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the resource.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:lb/natRule:NatRule": {
      "description": "Manages a Load Balancer NAT Rule.\n\n\u003e **NOTE:** This resource cannot be used with with virtual machine scale sets, instead use the `azure.lb.NatPool` resource.\n\n\u003e **NOTE** When using this resource, the Load Balancer needs to have a FrontEnd IP Configuration Attached\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n});\nconst exampleLoadBalancer = new azure.lb.LoadBalancer(\"exampleLoadBalancer\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    frontendIpConfigurations: [{\n        name: \"PublicIPAddress\",\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst exampleNatRule = new azure.lb.NatRule(\"exampleNatRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    loadbalancerId: exampleLoadBalancer.id,\n    protocol: \"Tcp\",\n    frontendPort: 3389,\n    backendPort: 3389,\n    frontendIpConfigurationName: \"PublicIPAddress\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\")\nexample_load_balancer = azure.lb.LoadBalancer(\"exampleLoadBalancer\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    frontend_ip_configurations=[azure.lb.LoadBalancerFrontendIpConfigurationArgs(\n        name=\"PublicIPAddress\",\n        public_ip_address_id=example_public_ip.id,\n    )])\nexample_nat_rule = azure.lb.NatRule(\"exampleNatRule\",\n    resource_group_name=example_resource_group.name,\n    loadbalancer_id=example_load_balancer.id,\n    protocol=\"Tcp\",\n    frontend_port=3389,\n    backend_port=3389,\n    frontend_ip_configuration_name=\"PublicIPAddress\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n        });\n        var exampleLoadBalancer = new Azure.Lb.LoadBalancer(\"exampleLoadBalancer\", new Azure.Lb.LoadBalancerArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            FrontendIpConfigurations = \n            {\n                new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs\n                {\n                    Name = \"PublicIPAddress\",\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var exampleNatRule = new Azure.Lb.NatRule(\"exampleNatRule\", new Azure.Lb.NatRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            LoadbalancerId = exampleLoadBalancer.Id,\n            Protocol = \"Tcp\",\n            FrontendPort = 3389,\n            BackendPort = 3389,\n            FrontendIpConfigurationName = \"PublicIPAddress\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLoadBalancer, err := lb.NewLoadBalancer(ctx, \"exampleLoadBalancer\", \u0026lb.LoadBalancerArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tFrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{\n\t\t\t\t\u0026lb.LoadBalancerFrontendIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(\"PublicIPAddress\"),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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 = lb.NewNatRule(ctx, \"exampleNatRule\", \u0026lb.NatRuleArgs{\n\t\t\tResourceGroupName:           exampleResourceGroup.Name,\n\t\t\tLoadbalancerId:              exampleLoadBalancer.ID(),\n\t\t\tProtocol:                    pulumi.String(\"Tcp\"),\n\t\t\tFrontendPort:                pulumi.Int(3389),\n\t\t\tBackendPort:                 pulumi.Int(3389),\n\t\t\tFrontendIpConfigurationName: pulumi.String(\"PublicIPAddress\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLoad Balancer NAT Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:lb/natRule:NatRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/rule1\n```\n\n ",
      "inputProperties": {
        "backendPort": {
          "description": "The port used for internal connections on the endpoint. Possible values range between 1 and 65535, inclusive.\n",
          "type": "integer"
        },
        "enableFloatingIp": {
          "description": "Are the Floating IPs enabled for this Load Balncer Rule? A \"floating” IP is reassigned to a secondary server in case the primary server fails. Required to configure a SQL AlwaysOn Availability Group. Defaults to `false`.\n",
          "type": "boolean"
        },
        "enableTcpReset": {
          "description": "Is TCP Reset enabled for this Load Balancer Rule? Defaults to `false`.\n",
          "type": "boolean"
        },
        "frontendIpConfigurationName": {
          "description": "The name of the frontend IP configuration exposing this rule.\n",
          "type": "string"
        },
        "frontendPort": {
          "description": "The port for the external endpoint. Port numbers for each Rule must be unique within the Load Balancer. Possible values range between 1 and 65534, inclusive.\n",
          "type": "integer"
        },
        "idleTimeoutInMinutes": {
          "description": "Specifies the idle timeout in minutes for TCP connections. Valid values are between `4` and `30` minutes. Defaults to `4` minutes.\n",
          "type": "integer"
        },
        "loadbalancerId": {
          "description": "The ID of the Load Balancer in which to create the NAT Rule.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the NAT Rule.\n",
          "type": "string"
        },
        "protocol": {
          "description": "The transport protocol for the external endpoint. Possible values are `Udp`, `Tcp` or `All`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource.\n",
          "type": "string"
        }
      },
      "properties": {
        "backendIpConfigurationId": {
          "type": "string"
        },
        "backendPort": {
          "description": "The port used for internal connections on the endpoint. Possible values range between 1 and 65535, inclusive.\n",
          "type": "integer"
        },
        "enableFloatingIp": {
          "description": "Are the Floating IPs enabled for this Load Balncer Rule? A \"floating” IP is reassigned to a secondary server in case the primary server fails. Required to configure a SQL AlwaysOn Availability Group. Defaults to `false`.\n",
          "type": "boolean"
        },
        "enableTcpReset": {
          "description": "Is TCP Reset enabled for this Load Balancer Rule? Defaults to `false`.\n",
          "type": "boolean"
        },
        "frontendIpConfigurationId": {
          "type": "string"
        },
        "frontendIpConfigurationName": {
          "description": "The name of the frontend IP configuration exposing this rule.\n",
          "type": "string"
        },
        "frontendPort": {
          "description": "The port for the external endpoint. Port numbers for each Rule must be unique within the Load Balancer. Possible values range between 1 and 65534, inclusive.\n",
          "type": "integer"
        },
        "idleTimeoutInMinutes": {
          "description": "Specifies the idle timeout in minutes for TCP connections. Valid values are between `4` and `30` minutes. Defaults to `4` minutes.\n",
          "type": "integer"
        },
        "loadbalancerId": {
          "description": "The ID of the Load Balancer in which to create the NAT Rule.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the NAT Rule.\n",
          "type": "string"
        },
        "protocol": {
          "description": "The transport protocol for the external endpoint. Possible values are `Udp`, `Tcp` or `All`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource.\n",
          "type": "string"
        }
      },
      "required": [
        "backendIpConfigurationId",
        "backendPort",
        "enableFloatingIp",
        "frontendIpConfigurationId",
        "frontendIpConfigurationName",
        "frontendPort",
        "idleTimeoutInMinutes",
        "loadbalancerId",
        "name",
        "protocol",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "backendPort",
        "frontendIpConfigurationName",
        "frontendPort",
        "loadbalancerId",
        "protocol",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NatRule resources.\n",
        "properties": {
          "backendIpConfigurationId": {
            "type": "string"
          },
          "backendPort": {
            "description": "The port used for internal connections on the endpoint. Possible values range between 1 and 65535, inclusive.\n",
            "type": "integer"
          },
          "enableFloatingIp": {
            "description": "Are the Floating IPs enabled for this Load Balncer Rule? A \"floating” IP is reassigned to a secondary server in case the primary server fails. Required to configure a SQL AlwaysOn Availability Group. Defaults to `false`.\n",
            "type": "boolean"
          },
          "enableTcpReset": {
            "description": "Is TCP Reset enabled for this Load Balancer Rule? Defaults to `false`.\n",
            "type": "boolean"
          },
          "frontendIpConfigurationId": {
            "type": "string"
          },
          "frontendIpConfigurationName": {
            "description": "The name of the frontend IP configuration exposing this rule.\n",
            "type": "string"
          },
          "frontendPort": {
            "description": "The port for the external endpoint. Port numbers for each Rule must be unique within the Load Balancer. Possible values range between 1 and 65534, inclusive.\n",
            "type": "integer"
          },
          "idleTimeoutInMinutes": {
            "description": "Specifies the idle timeout in minutes for TCP connections. Valid values are between `4` and `30` minutes. Defaults to `4` minutes.\n",
            "type": "integer"
          },
          "loadbalancerId": {
            "description": "The ID of the Load Balancer in which to create the NAT Rule.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the NAT Rule.\n",
            "type": "string"
          },
          "protocol": {
            "description": "The transport protocol for the external endpoint. Possible values are `Udp`, `Tcp` or `All`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the resource.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:lb/outboundRule:OutboundRule": {
      "description": "Manages a Load Balancer Outbound Rule.\n\n\u003e **NOTE** When using this resource, the Load Balancer needs to have a FrontEnd IP Configuration and a Backend Address Pool Attached.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n});\nconst exampleLoadBalancer = new azure.lb.LoadBalancer(\"exampleLoadBalancer\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    frontendIpConfigurations: [{\n        name: \"PublicIPAddress\",\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst exampleBackendAddressPool = new azure.lb.BackendAddressPool(\"exampleBackendAddressPool\", {\n    resourceGroupName: exampleResourceGroup.name,\n    loadbalancerId: exampleLoadBalancer.id,\n});\nconst exampleOutboundRule = new azure.lb.OutboundRule(\"exampleOutboundRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    loadbalancerId: exampleLoadBalancer.id,\n    protocol: \"Tcp\",\n    backendAddressPoolId: exampleBackendAddressPool.id,\n    frontendIpConfigurations: [{\n        name: \"PublicIPAddress\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\")\nexample_load_balancer = azure.lb.LoadBalancer(\"exampleLoadBalancer\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    frontend_ip_configurations=[azure.lb.LoadBalancerFrontendIpConfigurationArgs(\n        name=\"PublicIPAddress\",\n        public_ip_address_id=example_public_ip.id,\n    )])\nexample_backend_address_pool = azure.lb.BackendAddressPool(\"exampleBackendAddressPool\",\n    resource_group_name=example_resource_group.name,\n    loadbalancer_id=example_load_balancer.id)\nexample_outbound_rule = azure.lb.OutboundRule(\"exampleOutboundRule\",\n    resource_group_name=example_resource_group.name,\n    loadbalancer_id=example_load_balancer.id,\n    protocol=\"Tcp\",\n    backend_address_pool_id=example_backend_address_pool.id,\n    frontend_ip_configurations=[azure.lb.OutboundRuleFrontendIpConfigurationArgs(\n        name=\"PublicIPAddress\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n        });\n        var exampleLoadBalancer = new Azure.Lb.LoadBalancer(\"exampleLoadBalancer\", new Azure.Lb.LoadBalancerArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            FrontendIpConfigurations = \n            {\n                new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs\n                {\n                    Name = \"PublicIPAddress\",\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var exampleBackendAddressPool = new Azure.Lb.BackendAddressPool(\"exampleBackendAddressPool\", new Azure.Lb.BackendAddressPoolArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            LoadbalancerId = exampleLoadBalancer.Id,\n        });\n        var exampleOutboundRule = new Azure.Lb.OutboundRule(\"exampleOutboundRule\", new Azure.Lb.OutboundRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            LoadbalancerId = exampleLoadBalancer.Id,\n            Protocol = \"Tcp\",\n            BackendAddressPoolId = exampleBackendAddressPool.Id,\n            FrontendIpConfigurations = \n            {\n                new Azure.Lb.Inputs.OutboundRuleFrontendIpConfigurationArgs\n                {\n                    Name = \"PublicIPAddress\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLoadBalancer, err := lb.NewLoadBalancer(ctx, \"exampleLoadBalancer\", \u0026lb.LoadBalancerArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tFrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{\n\t\t\t\t\u0026lb.LoadBalancerFrontendIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(\"PublicIPAddress\"),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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\texampleBackendAddressPool, err := lb.NewBackendAddressPool(ctx, \"exampleBackendAddressPool\", \u0026lb.BackendAddressPoolArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLoadbalancerId:    exampleLoadBalancer.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewOutboundRule(ctx, \"exampleOutboundRule\", \u0026lb.OutboundRuleArgs{\n\t\t\tResourceGroupName:    exampleResourceGroup.Name,\n\t\t\tLoadbalancerId:       exampleLoadBalancer.ID(),\n\t\t\tProtocol:             pulumi.String(\"Tcp\"),\n\t\t\tBackendAddressPoolId: exampleBackendAddressPool.ID(),\n\t\t\tFrontendIpConfigurations: lb.OutboundRuleFrontendIpConfigurationArray{\n\t\t\t\t\u0026lb.OutboundRuleFrontendIpConfigurationArgs{\n\t\t\t\t\tName: pulumi.String(\"PublicIPAddress\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLoad Balancer Outbound Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:lb/outboundRule:OutboundRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/loadBalancers/lb1/outboundRules/rule1\n```\n\n ",
      "inputProperties": {
        "allocatedOutboundPorts": {
          "description": "The number of outbound ports to be used for NAT.\n",
          "type": "integer"
        },
        "backendAddressPoolId": {
          "description": "The ID of the Backend Address Pool. Outbound traffic is randomly load balanced across IPs in the backend IPs.\n",
          "type": "string"
        },
        "enableTcpReset": {
          "description": "Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP.\n",
          "type": "boolean"
        },
        "frontendIpConfigurations": {
          "description": "One or more `frontend_ip_configuration` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:lb/OutboundRuleFrontendIpConfiguration:OutboundRuleFrontendIpConfiguration"
          },
          "type": "array"
        },
        "idleTimeoutInMinutes": {
          "description": "The timeout for the TCP idle connection\n",
          "type": "integer"
        },
        "loadbalancerId": {
          "description": "The ID of the Load Balancer in which to create the Outbound Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Outbound Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "protocol": {
          "description": "The transport protocol for the external endpoint. Possible values are `Udp`, `Tcp` or `All`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "allocatedOutboundPorts": {
          "description": "The number of outbound ports to be used for NAT.\n",
          "type": "integer"
        },
        "backendAddressPoolId": {
          "description": "The ID of the Backend Address Pool. Outbound traffic is randomly load balanced across IPs in the backend IPs.\n",
          "type": "string"
        },
        "enableTcpReset": {
          "description": "Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP.\n",
          "type": "boolean"
        },
        "frontendIpConfigurations": {
          "description": "One or more `frontend_ip_configuration` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:lb/OutboundRuleFrontendIpConfiguration:OutboundRuleFrontendIpConfiguration"
          },
          "type": "array"
        },
        "idleTimeoutInMinutes": {
          "description": "The timeout for the TCP idle connection\n",
          "type": "integer"
        },
        "loadbalancerId": {
          "description": "The ID of the Load Balancer in which to create the Outbound Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Outbound Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "protocol": {
          "description": "The transport protocol for the external endpoint. Possible values are `Udp`, `Tcp` or `All`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "backendAddressPoolId",
        "loadbalancerId",
        "name",
        "protocol",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "backendAddressPoolId",
        "loadbalancerId",
        "protocol",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering OutboundRule resources.\n",
        "properties": {
          "allocatedOutboundPorts": {
            "description": "The number of outbound ports to be used for NAT.\n",
            "type": "integer"
          },
          "backendAddressPoolId": {
            "description": "The ID of the Backend Address Pool. Outbound traffic is randomly load balanced across IPs in the backend IPs.\n",
            "type": "string"
          },
          "enableTcpReset": {
            "description": "Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP.\n",
            "type": "boolean"
          },
          "frontendIpConfigurations": {
            "description": "One or more `frontend_ip_configuration` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:lb/OutboundRuleFrontendIpConfiguration:OutboundRuleFrontendIpConfiguration"
            },
            "type": "array"
          },
          "idleTimeoutInMinutes": {
            "description": "The timeout for the TCP idle connection\n",
            "type": "integer"
          },
          "loadbalancerId": {
            "description": "The ID of the Load Balancer in which to create the Outbound Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Outbound Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "protocol": {
            "description": "The transport protocol for the external endpoint. Possible values are `Udp`, `Tcp` or `All`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:lb/probe:Probe": {
      "description": "Manages a LoadBalancer Probe Resource.\n\n\u003e **NOTE** When using this resource, the Load Balancer needs to have a FrontEnd IP Configuration Attached\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n});\nconst exampleLoadBalancer = new azure.lb.LoadBalancer(\"exampleLoadBalancer\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    frontendIpConfigurations: [{\n        name: \"PublicIPAddress\",\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst exampleProbe = new azure.lb.Probe(\"exampleProbe\", {\n    resourceGroupName: exampleResourceGroup.name,\n    loadbalancerId: exampleLoadBalancer.id,\n    port: 22,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\")\nexample_load_balancer = azure.lb.LoadBalancer(\"exampleLoadBalancer\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    frontend_ip_configurations=[azure.lb.LoadBalancerFrontendIpConfigurationArgs(\n        name=\"PublicIPAddress\",\n        public_ip_address_id=example_public_ip.id,\n    )])\nexample_probe = azure.lb.Probe(\"exampleProbe\",\n    resource_group_name=example_resource_group.name,\n    loadbalancer_id=example_load_balancer.id,\n    port=22)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n        });\n        var exampleLoadBalancer = new Azure.Lb.LoadBalancer(\"exampleLoadBalancer\", new Azure.Lb.LoadBalancerArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            FrontendIpConfigurations = \n            {\n                new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs\n                {\n                    Name = \"PublicIPAddress\",\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var exampleProbe = new Azure.Lb.Probe(\"exampleProbe\", new Azure.Lb.ProbeArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            LoadbalancerId = exampleLoadBalancer.Id,\n            Port = 22,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLoadBalancer, err := lb.NewLoadBalancer(ctx, \"exampleLoadBalancer\", \u0026lb.LoadBalancerArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tFrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{\n\t\t\t\t\u0026lb.LoadBalancerFrontendIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(\"PublicIPAddress\"),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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 = lb.NewProbe(ctx, \"exampleProbe\", \u0026lb.ProbeArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLoadbalancerId:    exampleLoadBalancer.ID(),\n\t\t\tPort:              pulumi.Int(22),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLoad Balancer Probes can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:lb/probe:Probe example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/loadBalancers/lb1/probes/probe1\n```\n\n ",
      "inputProperties": {
        "intervalInSeconds": {
          "description": "The interval, in seconds between probes to the backend endpoint for health status. The default value is 15, the minimum value is 5.\n",
          "type": "integer"
        },
        "loadbalancerId": {
          "description": "The ID of the LoadBalancer in which to create the NAT Rule.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Probe.\n",
          "type": "string"
        },
        "numberOfProbes": {
          "description": "The number of failed probe attempts after which the backend endpoint is removed from rotation. The default value is 2. NumberOfProbes multiplied by intervalInSeconds value must be greater or equal to 10.Endpoints are returned to rotation when at least one probe is successful.\n",
          "type": "integer"
        },
        "port": {
          "description": "Port on which the Probe queries the backend endpoint. Possible values range from 1 to 65535, inclusive.\n",
          "type": "integer"
        },
        "protocol": {
          "description": "Specifies the protocol of the end point. Possible values are `Http`, `Https` or `Tcp`. If Tcp is specified, a received ACK is required for the probe to be successful. If Http is specified, a 200 OK response from the specified URI is required for the probe to be successful.\n",
          "type": "string"
        },
        "requestPath": {
          "description": "The URI used for requesting health status from the backend endpoint. Required if protocol is set to `Http` or `Https`. Otherwise, it is not allowed.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource.\n",
          "type": "string"
        }
      },
      "properties": {
        "intervalInSeconds": {
          "description": "The interval, in seconds between probes to the backend endpoint for health status. The default value is 15, the minimum value is 5.\n",
          "type": "integer"
        },
        "loadBalancerRules": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "loadbalancerId": {
          "description": "The ID of the LoadBalancer in which to create the NAT Rule.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Probe.\n",
          "type": "string"
        },
        "numberOfProbes": {
          "description": "The number of failed probe attempts after which the backend endpoint is removed from rotation. The default value is 2. NumberOfProbes multiplied by intervalInSeconds value must be greater or equal to 10.Endpoints are returned to rotation when at least one probe is successful.\n",
          "type": "integer"
        },
        "port": {
          "description": "Port on which the Probe queries the backend endpoint. Possible values range from 1 to 65535, inclusive.\n",
          "type": "integer"
        },
        "protocol": {
          "description": "Specifies the protocol of the end point. Possible values are `Http`, `Https` or `Tcp`. If Tcp is specified, a received ACK is required for the probe to be successful. If Http is specified, a 200 OK response from the specified URI is required for the probe to be successful.\n",
          "type": "string"
        },
        "requestPath": {
          "description": "The URI used for requesting health status from the backend endpoint. Required if protocol is set to `Http` or `Https`. Otherwise, it is not allowed.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource.\n",
          "type": "string"
        }
      },
      "required": [
        "loadBalancerRules",
        "loadbalancerId",
        "name",
        "port",
        "protocol",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "loadbalancerId",
        "port",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Probe resources.\n",
        "properties": {
          "intervalInSeconds": {
            "description": "The interval, in seconds between probes to the backend endpoint for health status. The default value is 15, the minimum value is 5.\n",
            "type": "integer"
          },
          "loadBalancerRules": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "loadbalancerId": {
            "description": "The ID of the LoadBalancer in which to create the NAT Rule.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Probe.\n",
            "type": "string"
          },
          "numberOfProbes": {
            "description": "The number of failed probe attempts after which the backend endpoint is removed from rotation. The default value is 2. NumberOfProbes multiplied by intervalInSeconds value must be greater or equal to 10.Endpoints are returned to rotation when at least one probe is successful.\n",
            "type": "integer"
          },
          "port": {
            "description": "Port on which the Probe queries the backend endpoint. Possible values range from 1 to 65535, inclusive.\n",
            "type": "integer"
          },
          "protocol": {
            "description": "Specifies the protocol of the end point. Possible values are `Http`, `Https` or `Tcp`. If Tcp is specified, a received ACK is required for the probe to be successful. If Http is specified, a 200 OK response from the specified URI is required for the probe to be successful.\n",
            "type": "string"
          },
          "requestPath": {
            "description": "The URI used for requesting health status from the backend endpoint. Required if protocol is set to `Http` or `Https`. Otherwise, it is not allowed.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the resource.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:lb/rule:Rule": {
      "description": "Manages a Load Balancer Rule.\n\n\u003e **NOTE** When using this resource, the Load Balancer needs to have a FrontEnd IP Configuration Attached\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n});\nconst exampleLoadBalancer = new azure.lb.LoadBalancer(\"exampleLoadBalancer\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    frontendIpConfigurations: [{\n        name: \"PublicIPAddress\",\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst exampleRule = new azure.lb.Rule(\"exampleRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    loadbalancerId: exampleLoadBalancer.id,\n    protocol: \"Tcp\",\n    frontendPort: 3389,\n    backendPort: 3389,\n    frontendIpConfigurationName: \"PublicIPAddress\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\")\nexample_load_balancer = azure.lb.LoadBalancer(\"exampleLoadBalancer\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    frontend_ip_configurations=[azure.lb.LoadBalancerFrontendIpConfigurationArgs(\n        name=\"PublicIPAddress\",\n        public_ip_address_id=example_public_ip.id,\n    )])\nexample_rule = azure.lb.Rule(\"exampleRule\",\n    resource_group_name=example_resource_group.name,\n    loadbalancer_id=example_load_balancer.id,\n    protocol=\"Tcp\",\n    frontend_port=3389,\n    backend_port=3389,\n    frontend_ip_configuration_name=\"PublicIPAddress\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n        });\n        var exampleLoadBalancer = new Azure.Lb.LoadBalancer(\"exampleLoadBalancer\", new Azure.Lb.LoadBalancerArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            FrontendIpConfigurations = \n            {\n                new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs\n                {\n                    Name = \"PublicIPAddress\",\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var exampleRule = new Azure.Lb.Rule(\"exampleRule\", new Azure.Lb.RuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            LoadbalancerId = exampleLoadBalancer.Id,\n            Protocol = \"Tcp\",\n            FrontendPort = 3389,\n            BackendPort = 3389,\n            FrontendIpConfigurationName = \"PublicIPAddress\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLoadBalancer, err := lb.NewLoadBalancer(ctx, \"exampleLoadBalancer\", \u0026lb.LoadBalancerArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tFrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{\n\t\t\t\t\u0026lb.LoadBalancerFrontendIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(\"PublicIPAddress\"),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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 = lb.NewRule(ctx, \"exampleRule\", \u0026lb.RuleArgs{\n\t\t\tResourceGroupName:           exampleResourceGroup.Name,\n\t\t\tLoadbalancerId:              exampleLoadBalancer.ID(),\n\t\t\tProtocol:                    pulumi.String(\"Tcp\"),\n\t\t\tFrontendPort:                pulumi.Int(3389),\n\t\t\tBackendPort:                 pulumi.Int(3389),\n\t\t\tFrontendIpConfigurationName: pulumi.String(\"PublicIPAddress\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLoad Balancer Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:lb/rule:Rule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/loadBalancers/lb1/loadBalancingRules/rule1\n```\n\n ",
      "inputProperties": {
        "backendAddressPoolId": {
          "description": "A reference to a Backend Address Pool over which this Load Balancing Rule operates.\n",
          "type": "string"
        },
        "backendPort": {
          "description": "The port used for internal connections on the endpoint. Possible values range between 0 and 65535, inclusive.\n",
          "type": "integer"
        },
        "disableOutboundSnat": {
          "description": "Is snat enabled for this Load Balancer Rule? Default `false`.\n",
          "type": "boolean"
        },
        "enableFloatingIp": {
          "description": "Are the Floating IPs enabled for this Load Balncer Rule? A \"floating” IP is reassigned to a secondary server in case the primary server fails. Required to configure a SQL AlwaysOn Availability Group. Defaults to `false`.\n",
          "type": "boolean"
        },
        "enableTcpReset": {
          "description": "Is TCP Reset enabled for this Load Balancer Rule? Defaults to `false`.\n",
          "type": "boolean"
        },
        "frontendIpConfigurationName": {
          "description": "The name of the frontend IP configuration to which the rule is associated.\n",
          "type": "string"
        },
        "frontendPort": {
          "description": "The port for the external endpoint. Port numbers for each Rule must be unique within the Load Balancer. Possible values range between 0 and 65534, inclusive.\n",
          "type": "integer"
        },
        "idleTimeoutInMinutes": {
          "description": "Specifies the idle timeout in minutes for TCP connections. Valid values are between `4` and `30` minutes. Defaults to `4` minutes.\n",
          "type": "integer"
        },
        "loadDistribution": {
          "description": "Specifies the load balancing distribution type to be used by the Load Balancer. Possible values are: `Default` – The load balancer is configured to use a 5 tuple hash to map traffic to available servers. `SourceIP` – The load balancer is configured to use a 2 tuple hash to map traffic to available servers. `SourceIPProtocol` – The load balancer is configured to use a 3 tuple hash to map traffic to available servers. Also known as Session Persistence, where  the options are called `None`, `Client IP` and `Client IP and Protocol` respectively.\n",
          "type": "string"
        },
        "loadbalancerId": {
          "description": "The ID of the Load Balancer in which to create the Rule.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the LB Rule.\n",
          "type": "string"
        },
        "probeId": {
          "description": "A reference to a Probe used by this Load Balancing Rule.\n",
          "type": "string"
        },
        "protocol": {
          "description": "The transport protocol for the external endpoint. Possible values are `Tcp`, `Udp` or `All`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource.\n",
          "type": "string"
        }
      },
      "properties": {
        "backendAddressPoolId": {
          "description": "A reference to a Backend Address Pool over which this Load Balancing Rule operates.\n",
          "type": "string"
        },
        "backendPort": {
          "description": "The port used for internal connections on the endpoint. Possible values range between 0 and 65535, inclusive.\n",
          "type": "integer"
        },
        "disableOutboundSnat": {
          "description": "Is snat enabled for this Load Balancer Rule? Default `false`.\n",
          "type": "boolean"
        },
        "enableFloatingIp": {
          "description": "Are the Floating IPs enabled for this Load Balncer Rule? A \"floating” IP is reassigned to a secondary server in case the primary server fails. Required to configure a SQL AlwaysOn Availability Group. Defaults to `false`.\n",
          "type": "boolean"
        },
        "enableTcpReset": {
          "description": "Is TCP Reset enabled for this Load Balancer Rule? Defaults to `false`.\n",
          "type": "boolean"
        },
        "frontendIpConfigurationId": {
          "type": "string"
        },
        "frontendIpConfigurationName": {
          "description": "The name of the frontend IP configuration to which the rule is associated.\n",
          "type": "string"
        },
        "frontendPort": {
          "description": "The port for the external endpoint. Port numbers for each Rule must be unique within the Load Balancer. Possible values range between 0 and 65534, inclusive.\n",
          "type": "integer"
        },
        "idleTimeoutInMinutes": {
          "description": "Specifies the idle timeout in minutes for TCP connections. Valid values are between `4` and `30` minutes. Defaults to `4` minutes.\n",
          "type": "integer"
        },
        "loadDistribution": {
          "description": "Specifies the load balancing distribution type to be used by the Load Balancer. Possible values are: `Default` – The load balancer is configured to use a 5 tuple hash to map traffic to available servers. `SourceIP` – The load balancer is configured to use a 2 tuple hash to map traffic to available servers. `SourceIPProtocol` – The load balancer is configured to use a 3 tuple hash to map traffic to available servers. Also known as Session Persistence, where  the options are called `None`, `Client IP` and `Client IP and Protocol` respectively.\n",
          "type": "string"
        },
        "loadbalancerId": {
          "description": "The ID of the Load Balancer in which to create the Rule.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the LB Rule.\n",
          "type": "string"
        },
        "probeId": {
          "description": "A reference to a Probe used by this Load Balancing Rule.\n",
          "type": "string"
        },
        "protocol": {
          "description": "The transport protocol for the external endpoint. Possible values are `Tcp`, `Udp` or `All`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource.\n",
          "type": "string"
        }
      },
      "required": [
        "backendAddressPoolId",
        "backendPort",
        "frontendIpConfigurationId",
        "frontendIpConfigurationName",
        "frontendPort",
        "idleTimeoutInMinutes",
        "loadDistribution",
        "loadbalancerId",
        "name",
        "probeId",
        "protocol",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "backendPort",
        "frontendIpConfigurationName",
        "frontendPort",
        "loadbalancerId",
        "protocol",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Rule resources.\n",
        "properties": {
          "backendAddressPoolId": {
            "description": "A reference to a Backend Address Pool over which this Load Balancing Rule operates.\n",
            "type": "string"
          },
          "backendPort": {
            "description": "The port used for internal connections on the endpoint. Possible values range between 0 and 65535, inclusive.\n",
            "type": "integer"
          },
          "disableOutboundSnat": {
            "description": "Is snat enabled for this Load Balancer Rule? Default `false`.\n",
            "type": "boolean"
          },
          "enableFloatingIp": {
            "description": "Are the Floating IPs enabled for this Load Balncer Rule? A \"floating” IP is reassigned to a secondary server in case the primary server fails. Required to configure a SQL AlwaysOn Availability Group. Defaults to `false`.\n",
            "type": "boolean"
          },
          "enableTcpReset": {
            "description": "Is TCP Reset enabled for this Load Balancer Rule? Defaults to `false`.\n",
            "type": "boolean"
          },
          "frontendIpConfigurationId": {
            "type": "string"
          },
          "frontendIpConfigurationName": {
            "description": "The name of the frontend IP configuration to which the rule is associated.\n",
            "type": "string"
          },
          "frontendPort": {
            "description": "The port for the external endpoint. Port numbers for each Rule must be unique within the Load Balancer. Possible values range between 0 and 65534, inclusive.\n",
            "type": "integer"
          },
          "idleTimeoutInMinutes": {
            "description": "Specifies the idle timeout in minutes for TCP connections. Valid values are between `4` and `30` minutes. Defaults to `4` minutes.\n",
            "type": "integer"
          },
          "loadDistribution": {
            "description": "Specifies the load balancing distribution type to be used by the Load Balancer. Possible values are: `Default` – The load balancer is configured to use a 5 tuple hash to map traffic to available servers. `SourceIP` – The load balancer is configured to use a 2 tuple hash to map traffic to available servers. `SourceIPProtocol` – The load balancer is configured to use a 3 tuple hash to map traffic to available servers. Also known as Session Persistence, where  the options are called `None`, `Client IP` and `Client IP and Protocol` respectively.\n",
            "type": "string"
          },
          "loadbalancerId": {
            "description": "The ID of the Load Balancer in which to create the Rule.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the LB Rule.\n",
            "type": "string"
          },
          "probeId": {
            "description": "A reference to a Probe used by this Load Balancing Rule.\n",
            "type": "string"
          },
          "protocol": {
            "description": "The transport protocol for the external endpoint. Possible values are `Tcp`, `Udp` or `All`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the resource.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:lighthouse/assignment:Assignment": {
      "description": "Manages a [Lighthouse](https://docs.microsoft.com/en-us/azure/lighthouse) Assignment to a subscription, or to a resource group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.lighthouse.Assignment(\"example\", {\n    lighthouseDefinitionId: \"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ManagedServices/registrationDefinitions/00000000-0000-0000-0000-000000000000\",\n    scope: \"/subscription/00000000-0000-0000-0000-000000000000\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.lighthouse.Assignment(\"example\",\n    lighthouse_definition_id=\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ManagedServices/registrationDefinitions/00000000-0000-0000-0000-000000000000\",\n    scope=\"/subscription/00000000-0000-0000-0000-000000000000\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Lighthouse.Assignment(\"example\", new Azure.Lighthouse.AssignmentArgs\n        {\n            LighthouseDefinitionId = \"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ManagedServices/registrationDefinitions/00000000-0000-0000-0000-000000000000\",\n            Scope = \"/subscription/00000000-0000-0000-0000-000000000000\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lighthouse\"\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 := lighthouse.NewAssignment(ctx, \"example\", \u0026lighthouse.AssignmentArgs{\n\t\t\tLighthouseDefinitionId: pulumi.String(\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ManagedServices/registrationDefinitions/00000000-0000-0000-0000-000000000000\"),\n\t\t\tScope:                  pulumi.String(\"/subscription/00000000-0000-0000-0000-000000000000\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLighthouse Assignments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:lighthouse/assignment:Assignment example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ManagedServices/registrationAssignments/00000000-0000-0000-0000-000000000000\n```\n\n ",
      "inputProperties": {
        "lighthouseDefinitionId": {
          "description": "A Fully qualified path of the lighthouse definition, such as `/subscriptions/0afefe50-734e-4610-8c82-a144aff49dea/providers/Microsoft.ManagedServices/registrationDefinitions/26c128c2-fefa-4340-9bb1-8e081c90ada2`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "A unique UUID/GUID which identifies this lighthouse assignment- one will be generated if not specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "The scope at which the Lighthouse Assignment applies too, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333` or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "lighthouseDefinitionId": {
          "description": "A Fully qualified path of the lighthouse definition, such as `/subscriptions/0afefe50-734e-4610-8c82-a144aff49dea/providers/Microsoft.ManagedServices/registrationDefinitions/26c128c2-fefa-4340-9bb1-8e081c90ada2`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "A unique UUID/GUID which identifies this lighthouse assignment- one will be generated if not specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "The scope at which the Lighthouse Assignment applies too, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333` or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "lighthouseDefinitionId",
        "name",
        "scope"
      ],
      "requiredInputs": [
        "lighthouseDefinitionId",
        "scope"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Assignment resources.\n",
        "properties": {
          "lighthouseDefinitionId": {
            "description": "A Fully qualified path of the lighthouse definition, such as `/subscriptions/0afefe50-734e-4610-8c82-a144aff49dea/providers/Microsoft.ManagedServices/registrationDefinitions/26c128c2-fefa-4340-9bb1-8e081c90ada2`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "A unique UUID/GUID which identifies this lighthouse assignment- one will be generated if not specified. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scope": {
            "description": "The scope at which the Lighthouse Assignment applies too, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333` or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:lighthouse/definition:Definition": {
      "description": "Manages a [Lighthouse](https://docs.microsoft.com/en-us/azure/lighthouse) Definition.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst contributor = azure.authorization.getRoleDefinition({\n    roleDefinitionId: \"b24988ac-6180-42a0-ab88-20f7382dd24c\",\n});\nconst example = new azure.lighthouse.Definition(\"example\", {\n    description: \"This is a lighthouse definition created IaC\",\n    managingTenantId: \"00000000-0000-0000-0000-000000000000\",\n    scope: \"/subscriptions/00000000-0000-0000-0000-000000000000\",\n    authorizations: [{\n        principalId: \"00000000-0000-0000-0000-000000000000\",\n        roleDefinitionId: contributor.then(contributor =\u003e contributor.roleDefinitionId),\n        principalDisplayName: \"Tier 1 Support\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncontributor = azure.authorization.get_role_definition(role_definition_id=\"b24988ac-6180-42a0-ab88-20f7382dd24c\")\nexample = azure.lighthouse.Definition(\"example\",\n    description=\"This is a lighthouse definition created IaC\",\n    managing_tenant_id=\"00000000-0000-0000-0000-000000000000\",\n    scope=\"/subscriptions/00000000-0000-0000-0000-000000000000\",\n    authorizations=[azure.lighthouse.DefinitionAuthorizationArgs(\n        principal_id=\"00000000-0000-0000-0000-000000000000\",\n        role_definition_id=contributor.role_definition_id,\n        principal_display_name=\"Tier 1 Support\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var contributor = Output.Create(Azure.Authorization.GetRoleDefinition.InvokeAsync(new Azure.Authorization.GetRoleDefinitionArgs\n        {\n            RoleDefinitionId = \"b24988ac-6180-42a0-ab88-20f7382dd24c\",\n        }));\n        var example = new Azure.Lighthouse.Definition(\"example\", new Azure.Lighthouse.DefinitionArgs\n        {\n            Description = \"This is a lighthouse definition created IaC\",\n            ManagingTenantId = \"00000000-0000-0000-0000-000000000000\",\n            Scope = \"/subscriptions/00000000-0000-0000-0000-000000000000\",\n            Authorizations = \n            {\n                new Azure.Lighthouse.Inputs.DefinitionAuthorizationArgs\n                {\n                    PrincipalId = \"00000000-0000-0000-0000-000000000000\",\n                    RoleDefinitionId = contributor.Apply(contributor =\u003e contributor.RoleDefinitionId),\n                    PrincipalDisplayName = \"Tier 1 Support\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lighthouse\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\n\t\tcontributor, err := authorization.LookupRoleDefinition(ctx, \u0026authorization.LookupRoleDefinitionArgs{\n\t\t\tRoleDefinitionId: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lighthouse.NewDefinition(ctx, \"example\", \u0026lighthouse.DefinitionArgs{\n\t\t\tDescription:      pulumi.String(\"This is a lighthouse definition created IaC\"),\n\t\t\tManagingTenantId: pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tScope:            pulumi.String(\"/subscriptions/00000000-0000-0000-0000-000000000000\"),\n\t\t\tAuthorizations: lighthouse.DefinitionAuthorizationArray{\n\t\t\t\t\u0026lighthouse.DefinitionAuthorizationArgs{\n\t\t\t\t\tPrincipalId:          pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t\t\tRoleDefinitionId:     pulumi.String(contributor.RoleDefinitionId),\n\t\t\t\t\tPrincipalDisplayName: pulumi.String(\"Tier 1 Support\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLighthouse Definitions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:lighthouse/definition:Definition example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ManagedServices/registrationDefinitions/00000000-0000-0000-0000-000000000000\n```\n\n ",
      "inputProperties": {
        "authorizations": {
          "description": "An authorization block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:lighthouse/DefinitionAuthorization:DefinitionAuthorization"
          },
          "type": "array"
        },
        "description": {
          "description": "A description of the Lighthouse Definition.\n",
          "type": "string"
        },
        "lighthouseDefinitionId": {
          "description": "A unique UUID/GUID which identifies this lighthouse definition - one will be generated if not specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managingTenantId": {
          "description": "The ID of the managing tenant. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Lighthouse Definition. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "plan": {
          "$ref": "#/types/azure:lighthouse/DefinitionPlan:DefinitionPlan",
          "description": "A `plan` block as defined below.\n"
        },
        "scope": {
          "description": "The ID of the managed subscription. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "authorizations": {
          "description": "An authorization block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:lighthouse/DefinitionAuthorization:DefinitionAuthorization"
          },
          "type": "array"
        },
        "description": {
          "description": "A description of the Lighthouse Definition.\n",
          "type": "string"
        },
        "lighthouseDefinitionId": {
          "description": "A unique UUID/GUID which identifies this lighthouse definition - one will be generated if not specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managingTenantId": {
          "description": "The ID of the managing tenant. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Lighthouse Definition. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "plan": {
          "$ref": "#/types/azure:lighthouse/DefinitionPlan:DefinitionPlan",
          "description": "A `plan` block as defined below.\n"
        },
        "scope": {
          "description": "The ID of the managed subscription. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "authorizations",
        "lighthouseDefinitionId",
        "managingTenantId",
        "name",
        "scope"
      ],
      "requiredInputs": [
        "authorizations",
        "managingTenantId",
        "scope"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Definition resources.\n",
        "properties": {
          "authorizations": {
            "description": "An authorization block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:lighthouse/DefinitionAuthorization:DefinitionAuthorization"
            },
            "type": "array"
          },
          "description": {
            "description": "A description of the Lighthouse Definition.\n",
            "type": "string"
          },
          "lighthouseDefinitionId": {
            "description": "A unique UUID/GUID which identifies this lighthouse definition - one will be generated if not specified. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "managingTenantId": {
            "description": "The ID of the managing tenant. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Lighthouse Definition. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "plan": {
            "$ref": "#/types/azure:lighthouse/DefinitionPlan:DefinitionPlan",
            "description": "A `plan` block as defined below.\n"
          },
          "scope": {
            "description": "The ID of the managed subscription. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:loganalytics/cluster:Cluster": {
      "description": "!\u003e **Important** Due to capacity constraints, Microsoft requires you to pre-register your subscription IDs before you are allowed to create a Log Analytics cluster. Contact Microsoft, or open a support request to register your subscription IDs.\n\n\u003e **Note:** Log Analytics Clusters are subject to 14-day soft delete policy. Clusters created with the same resource group \u0026 name as a previously deleted cluster will be recovered rather than creating anew. \n\nManages a Log Analytics Cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleCluster = new azure.loganalytics.Cluster(\"exampleCluster\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_cluster = azure.loganalytics.Cluster(\"exampleCluster\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    identity=azure.loganalytics.ClusterIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleCluster = new Azure.LogAnalytics.Cluster(\"exampleCluster\", new Azure.LogAnalytics.ClusterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Identity = new Azure.LogAnalytics.Inputs.ClusterIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/loganalytics\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loganalytics.NewCluster(ctx, \"exampleCluster\", \u0026loganalytics.ClusterArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tIdentity: \u0026loganalytics.ClusterIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLog Analytics Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:loganalytics/cluster:Cluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.OperationalInsights/clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:loganalytics/ClusterIdentity:ClusterIdentity",
          "description": "A `identity` block as defined below. Changing this forces a new Log Analytics Cluster to be created.\n"
        },
        "location": {
          "description": "The Azure Region where the Log Analytics Cluster should exist. Changing this forces a new Log Analytics Cluster to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Log Analytics Cluster. Changing this forces a new Log Analytics Cluster to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Log Analytics Cluster should exist. Changing this forces a new Log Analytics Cluster to be created.\n",
          "type": "string"
        },
        "sizeGb": {
          "description": "The capacity of the Log Analytics Cluster specified in GB/day. Defaults to 1000.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Log Analytics Cluster.\n",
          "type": "object"
        }
      },
      "properties": {
        "clusterId": {
          "description": "The GUID of the cluster.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:loganalytics/ClusterIdentity:ClusterIdentity",
          "description": "A `identity` block as defined below. Changing this forces a new Log Analytics Cluster to be created.\n"
        },
        "location": {
          "description": "The Azure Region where the Log Analytics Cluster should exist. Changing this forces a new Log Analytics Cluster to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Log Analytics Cluster. Changing this forces a new Log Analytics Cluster to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Log Analytics Cluster should exist. Changing this forces a new Log Analytics Cluster to be created.\n",
          "type": "string"
        },
        "sizeGb": {
          "description": "The capacity of the Log Analytics Cluster specified in GB/day. Defaults to 1000.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Log Analytics Cluster.\n",
          "type": "object"
        }
      },
      "required": [
        "clusterId",
        "identity",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "identity",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Cluster resources.\n",
        "properties": {
          "clusterId": {
            "description": "The GUID of the cluster.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:loganalytics/ClusterIdentity:ClusterIdentity",
            "description": "A `identity` block as defined below. Changing this forces a new Log Analytics Cluster to be created.\n"
          },
          "location": {
            "description": "The Azure Region where the Log Analytics Cluster should exist. Changing this forces a new Log Analytics Cluster to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Log Analytics Cluster. Changing this forces a new Log Analytics Cluster to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Log Analytics Cluster should exist. Changing this forces a new Log Analytics Cluster to be created.\n",
            "type": "string"
          },
          "sizeGb": {
            "description": "The capacity of the Log Analytics Cluster specified in GB/day. Defaults to 1000.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Log Analytics Cluster.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:loganalytics/clusterCustomerManagedKey:ClusterCustomerManagedKey": {
      "description": "Manages a Log Analytics Cluster Customer Managed Key.\n\n\n## Import\n\nLog Analytics Cluster Customer Managed Keys can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:loganalytics/clusterCustomerManagedKey:ClusterCustomerManagedKey example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.OperationalInsights/clusters/cluster1/CMK\n```\n\n ",
      "inputProperties": {
        "keyVaultKeyId": {
          "description": "The ID of the Key Vault Key to use for encryption.\n",
          "type": "string"
        },
        "logAnalyticsClusterId": {
          "description": "The ID of the Log Analytics Cluster. Changing this forces a new Log Analytics Cluster Customer Managed Key to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "keyVaultKeyId": {
          "description": "The ID of the Key Vault Key to use for encryption.\n",
          "type": "string"
        },
        "logAnalyticsClusterId": {
          "description": "The ID of the Log Analytics Cluster. Changing this forces a new Log Analytics Cluster Customer Managed Key to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "keyVaultKeyId",
        "logAnalyticsClusterId"
      ],
      "requiredInputs": [
        "keyVaultKeyId",
        "logAnalyticsClusterId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ClusterCustomerManagedKey resources.\n",
        "properties": {
          "keyVaultKeyId": {
            "description": "The ID of the Key Vault Key to use for encryption.\n",
            "type": "string"
          },
          "logAnalyticsClusterId": {
            "description": "The ID of the Log Analytics Cluster. Changing this forces a new Log Analytics Cluster Customer Managed Key to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:loganalytics/dataExportRule:DataExportRule": {
      "description": "Manages a Log Analytics Data Export Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n    retentionInDays: 30,\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleDataExportRule = new azure.loganalytics.DataExportRule(\"exampleDataExportRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    workspaceResourceId: exampleAnalyticsWorkspace.id,\n    destinationResourceId: exampleAccount.id,\n    tableNames: [\"Heartbeat\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\",\n    retention_in_days=30)\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_data_export_rule = azure.loganalytics.DataExportRule(\"exampleDataExportRule\",\n    resource_group_name=example_resource_group.name,\n    workspace_resource_id=example_analytics_workspace.id,\n    destination_resource_id=example_account.id,\n    table_names=[\"Heartbeat\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n            RetentionInDays = 30,\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleDataExportRule = new Azure.LogAnalytics.DataExportRule(\"exampleDataExportRule\", new Azure.LogAnalytics.DataExportRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            WorkspaceResourceId = exampleAnalyticsWorkspace.Id,\n            DestinationResourceId = exampleAccount.Id,\n            TableNames = \n            {\n                \"Heartbeat\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/loganalytics\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t\tRetentionInDays:   pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loganalytics.NewDataExportRule(ctx, \"exampleDataExportRule\", \u0026loganalytics.DataExportRuleArgs{\n\t\t\tResourceGroupName:     exampleResourceGroup.Name,\n\t\t\tWorkspaceResourceId:   exampleAnalyticsWorkspace.ID(),\n\t\t\tDestinationResourceId: exampleAccount.ID(),\n\t\t\tTableNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Heartbeat\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLog Analytics Data Export Rule can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:loganalytics/dataExportRule:DataExportRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/dataExports/dataExport1\n```\n\n ",
      "inputProperties": {
        "destinationResourceId": {
          "description": "The destination resource ID. It should be a storage account, an event hub namespace or an event hub. If the destination is an event hub namespace, an event hub would be created for each table automatically.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is this Log Analytics Data Export Rule enabled? Possible values include `true` or `false`. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the Log Analytics Data Export Rule. Changing this forces a new Log Analytics Data Export Rule to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Log Analytics Data Export should exist. Changing this forces a new Log Analytics Data Export Rule to be created.\n",
          "type": "string"
        },
        "tableNames": {
          "description": "A list of table names to export to the destination resource, for example: `[\"Heartbeat\", \"SecurityEvent\"]`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "workspaceResourceId": {
          "description": "The resource ID of the workspace. Changing this forces a new Log Analytics Data Export Rule to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "destinationResourceId": {
          "description": "The destination resource ID. It should be a storage account, an event hub namespace or an event hub. If the destination is an event hub namespace, an event hub would be created for each table automatically.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is this Log Analytics Data Export Rule enabled? Possible values include `true` or `false`. Defaults to `false`.\n",
          "type": "boolean"
        },
        "exportRuleId": {
          "description": "The ID of the created Data Export Rule.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Log Analytics Data Export Rule. Changing this forces a new Log Analytics Data Export Rule to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Log Analytics Data Export should exist. Changing this forces a new Log Analytics Data Export Rule to be created.\n",
          "type": "string"
        },
        "tableNames": {
          "description": "A list of table names to export to the destination resource, for example: `[\"Heartbeat\", \"SecurityEvent\"]`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "workspaceResourceId": {
          "description": "The resource ID of the workspace. Changing this forces a new Log Analytics Data Export Rule to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "destinationResourceId",
        "exportRuleId",
        "name",
        "resourceGroupName",
        "tableNames",
        "workspaceResourceId"
      ],
      "requiredInputs": [
        "destinationResourceId",
        "resourceGroupName",
        "tableNames",
        "workspaceResourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataExportRule resources.\n",
        "properties": {
          "destinationResourceId": {
            "description": "The destination resource ID. It should be a storage account, an event hub namespace or an event hub. If the destination is an event hub namespace, an event hub would be created for each table automatically.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Is this Log Analytics Data Export Rule enabled? Possible values include `true` or `false`. Defaults to `false`.\n",
            "type": "boolean"
          },
          "exportRuleId": {
            "description": "The ID of the created Data Export Rule.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Log Analytics Data Export Rule. Changing this forces a new Log Analytics Data Export Rule to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Log Analytics Data Export should exist. Changing this forces a new Log Analytics Data Export Rule to be created.\n",
            "type": "string"
          },
          "tableNames": {
            "description": "A list of table names to export to the destination resource, for example: `[\"Heartbeat\", \"SecurityEvent\"]`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "workspaceResourceId": {
            "description": "The resource ID of the workspace. Changing this forces a new Log Analytics Data Export Rule to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:loganalytics/dataSourceWindowsEvent:DataSourceWindowsEvent": {
      "description": "Manages a Log Analytics Windows Event DataSource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n});\nconst exampleDataSourceWindowsEvent = new azure.loganalytics.DataSourceWindowsEvent(\"exampleDataSourceWindowsEvent\", {\n    resourceGroupName: exampleResourceGroup.name,\n    workspaceName: exampleAnalyticsWorkspace.name,\n    eventLogName: \"Application\",\n    eventTypes: [\"error\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\")\nexample_data_source_windows_event = azure.loganalytics.DataSourceWindowsEvent(\"exampleDataSourceWindowsEvent\",\n    resource_group_name=example_resource_group.name,\n    workspace_name=example_analytics_workspace.name,\n    event_log_name=\"Application\",\n    event_types=[\"error\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n        });\n        var exampleDataSourceWindowsEvent = new Azure.LogAnalytics.DataSourceWindowsEvent(\"exampleDataSourceWindowsEvent\", new Azure.LogAnalytics.DataSourceWindowsEventArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            WorkspaceName = exampleAnalyticsWorkspace.Name,\n            EventLogName = \"Application\",\n            EventTypes = \n            {\n                \"error\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/loganalytics\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loganalytics.NewDataSourceWindowsEvent(ctx, \"exampleDataSourceWindowsEvent\", \u0026loganalytics.DataSourceWindowsEventArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tWorkspaceName:     exampleAnalyticsWorkspace.Name,\n\t\t\tEventLogName:      pulumi.String(\"Application\"),\n\t\t\tEventTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"error\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLog Analytics Windows Event DataSources can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:loganalytics/dataSourceWindowsEvent:DataSourceWindowsEvent example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/datasources/datasource1\n```\n\n ",
      "inputProperties": {
        "eventLogName": {
          "description": "Specifies the name of the Windows Event Log to collect events from.\n",
          "type": "string"
        },
        "eventTypes": {
          "description": "Specifies an array of event types applied to the specified event log. Possible values include `error`, `warning` and `information`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this Log Analytics Windows Event DataSource. Changing this forces a new Log Analytics Windows Event DataSource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Log Analytics Windows Event DataSource should exist. Changing this forces a new Log Analytics Windows Event DataSource to be created.\n",
          "type": "string"
        },
        "workspaceName": {
          "description": "The name of the Log Analytics Workspace where the Log Analytics Windows Event DataSource should exist. Changing this forces a new Log Analytics Windows Event DataSource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "eventLogName": {
          "description": "Specifies the name of the Windows Event Log to collect events from.\n",
          "type": "string"
        },
        "eventTypes": {
          "description": "Specifies an array of event types applied to the specified event log. Possible values include `error`, `warning` and `information`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this Log Analytics Windows Event DataSource. Changing this forces a new Log Analytics Windows Event DataSource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Log Analytics Windows Event DataSource should exist. Changing this forces a new Log Analytics Windows Event DataSource to be created.\n",
          "type": "string"
        },
        "workspaceName": {
          "description": "The name of the Log Analytics Workspace where the Log Analytics Windows Event DataSource should exist. Changing this forces a new Log Analytics Windows Event DataSource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "eventLogName",
        "eventTypes",
        "name",
        "resourceGroupName",
        "workspaceName"
      ],
      "requiredInputs": [
        "eventLogName",
        "eventTypes",
        "resourceGroupName",
        "workspaceName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataSourceWindowsEvent resources.\n",
        "properties": {
          "eventLogName": {
            "description": "Specifies the name of the Windows Event Log to collect events from.\n",
            "type": "string"
          },
          "eventTypes": {
            "description": "Specifies an array of event types applied to the specified event log. Possible values include `error`, `warning` and `information`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name which should be used for this Log Analytics Windows Event DataSource. Changing this forces a new Log Analytics Windows Event DataSource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Log Analytics Windows Event DataSource should exist. Changing this forces a new Log Analytics Windows Event DataSource to be created.\n",
            "type": "string"
          },
          "workspaceName": {
            "description": "The name of the Log Analytics Workspace where the Log Analytics Windows Event DataSource should exist. Changing this forces a new Log Analytics Windows Event DataSource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:loganalytics/dataSourceWindowsPerformanceCounter:DataSourceWindowsPerformanceCounter": {
      "description": "Manages a Log Analytics (formally Operational Insights) Windows Performance Counter DataSource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n});\nconst exampleDataSourceWindowsPerformanceCounter = new azure.loganalytics.DataSourceWindowsPerformanceCounter(\"exampleDataSourceWindowsPerformanceCounter\", {\n    resourceGroupName: exampleResourceGroup.name,\n    workspaceName: exampleAnalyticsWorkspace.name,\n    objectName: \"CPU\",\n    instanceName: \"*\",\n    counterName: \"CPU\",\n    intervalSeconds: 10,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\")\nexample_data_source_windows_performance_counter = azure.loganalytics.DataSourceWindowsPerformanceCounter(\"exampleDataSourceWindowsPerformanceCounter\",\n    resource_group_name=example_resource_group.name,\n    workspace_name=example_analytics_workspace.name,\n    object_name=\"CPU\",\n    instance_name=\"*\",\n    counter_name=\"CPU\",\n    interval_seconds=10)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n        });\n        var exampleDataSourceWindowsPerformanceCounter = new Azure.LogAnalytics.DataSourceWindowsPerformanceCounter(\"exampleDataSourceWindowsPerformanceCounter\", new Azure.LogAnalytics.DataSourceWindowsPerformanceCounterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            WorkspaceName = exampleAnalyticsWorkspace.Name,\n            ObjectName = \"CPU\",\n            InstanceName = \"*\",\n            CounterName = \"CPU\",\n            IntervalSeconds = 10,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/loganalytics\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loganalytics.NewDataSourceWindowsPerformanceCounter(ctx, \"exampleDataSourceWindowsPerformanceCounter\", \u0026loganalytics.DataSourceWindowsPerformanceCounterArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tWorkspaceName:     exampleAnalyticsWorkspace.Name,\n\t\t\tObjectName:        pulumi.String(\"CPU\"),\n\t\t\tInstanceName:      pulumi.String(\"*\"),\n\t\t\tCounterName:       pulumi.String(\"CPU\"),\n\t\t\tIntervalSeconds:   pulumi.Int(10),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLog Analytics Windows Performance Counter DataSources can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:loganalytics/dataSourceWindowsPerformanceCounter:DataSourceWindowsPerformanceCounter example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/datasources/datasource1\n```\n\n ",
      "inputProperties": {
        "counterName": {
          "description": "The friendly name of the performance counter.\n",
          "type": "string"
        },
        "instanceName": {
          "description": "The name of the virtual machine instance to which the Windows Performance Counter DataSource be applied. Specify a `*` will apply to all instances.\n",
          "type": "string"
        },
        "intervalSeconds": {
          "description": "The time of sample interval in seconds. Supports values between 10 and 2147483647.\n",
          "type": "integer"
        },
        "name": {
          "description": "The Name which should be used for this Log Analytics Windows Performance Counter DataSource. Changing this forces a new Log Analytics Windows Performance Counter DataSource to be created.\n",
          "type": "string"
        },
        "objectName": {
          "description": "The object name of the Log Analytics Windows Performance Counter DataSource.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Log Analytics Windows Performance Counter DataSource should exist. Changing this forces a new Log Analytics Windows Performance Counter DataSource to be created.\n",
          "type": "string"
        },
        "workspaceName": {
          "description": "The name of the Log Analytics Workspace where the Log Analytics Windows Performance Counter DataSource should exist. Changing this forces a new Log Analytics Windows Performance Counter DataSource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "counterName": {
          "description": "The friendly name of the performance counter.\n",
          "type": "string"
        },
        "instanceName": {
          "description": "The name of the virtual machine instance to which the Windows Performance Counter DataSource be applied. Specify a `*` will apply to all instances.\n",
          "type": "string"
        },
        "intervalSeconds": {
          "description": "The time of sample interval in seconds. Supports values between 10 and 2147483647.\n",
          "type": "integer"
        },
        "name": {
          "description": "The Name which should be used for this Log Analytics Windows Performance Counter DataSource. Changing this forces a new Log Analytics Windows Performance Counter DataSource to be created.\n",
          "type": "string"
        },
        "objectName": {
          "description": "The object name of the Log Analytics Windows Performance Counter DataSource.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Log Analytics Windows Performance Counter DataSource should exist. Changing this forces a new Log Analytics Windows Performance Counter DataSource to be created.\n",
          "type": "string"
        },
        "workspaceName": {
          "description": "The name of the Log Analytics Workspace where the Log Analytics Windows Performance Counter DataSource should exist. Changing this forces a new Log Analytics Windows Performance Counter DataSource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "counterName",
        "instanceName",
        "intervalSeconds",
        "name",
        "objectName",
        "resourceGroupName",
        "workspaceName"
      ],
      "requiredInputs": [
        "counterName",
        "instanceName",
        "intervalSeconds",
        "objectName",
        "resourceGroupName",
        "workspaceName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataSourceWindowsPerformanceCounter resources.\n",
        "properties": {
          "counterName": {
            "description": "The friendly name of the performance counter.\n",
            "type": "string"
          },
          "instanceName": {
            "description": "The name of the virtual machine instance to which the Windows Performance Counter DataSource be applied. Specify a `*` will apply to all instances.\n",
            "type": "string"
          },
          "intervalSeconds": {
            "description": "The time of sample interval in seconds. Supports values between 10 and 2147483647.\n",
            "type": "integer"
          },
          "name": {
            "description": "The Name which should be used for this Log Analytics Windows Performance Counter DataSource. Changing this forces a new Log Analytics Windows Performance Counter DataSource to be created.\n",
            "type": "string"
          },
          "objectName": {
            "description": "The object name of the Log Analytics Windows Performance Counter DataSource.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Log Analytics Windows Performance Counter DataSource should exist. Changing this forces a new Log Analytics Windows Performance Counter DataSource to be created.\n",
            "type": "string"
          },
          "workspaceName": {
            "description": "The name of the Log Analytics Workspace where the Log Analytics Windows Performance Counter DataSource should exist. Changing this forces a new Log Analytics Windows Performance Counter DataSource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:loganalytics/linkedService:LinkedService": {
      "description": "Manages a Log Analytics Linked Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.automation.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Basic\",\n    tags: {\n        environment: \"development\",\n    },\n});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n    retentionInDays: 30,\n});\nconst exampleLinkedService = new azure.loganalytics.LinkedService(\"exampleLinkedService\", {\n    resourceGroupName: exampleResourceGroup.name,\n    workspaceId: exampleAnalyticsWorkspace.id,\n    readAccessId: exampleAccount.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.automation.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Basic\",\n    tags={\n        \"environment\": \"development\",\n    })\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\",\n    retention_in_days=30)\nexample_linked_service = azure.loganalytics.LinkedService(\"exampleLinkedService\",\n    resource_group_name=example_resource_group.name,\n    workspace_id=example_analytics_workspace.id,\n    read_access_id=example_account.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Automation.Account(\"exampleAccount\", new Azure.Automation.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Basic\",\n            Tags = \n            {\n                { \"environment\", \"development\" },\n            },\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n            RetentionInDays = 30,\n        });\n        var exampleLinkedService = new Azure.LogAnalytics.LinkedService(\"exampleLinkedService\", new Azure.LogAnalytics.LinkedServiceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            WorkspaceId = exampleAnalyticsWorkspace.Id,\n            ReadAccessId = exampleAccount.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/automation\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/loganalytics\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := automation.NewAccount(ctx, \"exampleAccount\", \u0026automation.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"Basic\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"development\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t\tRetentionInDays:   pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loganalytics.NewLinkedService(ctx, \"exampleLinkedService\", \u0026loganalytics.LinkedServiceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tWorkspaceId:       exampleAnalyticsWorkspace.ID(),\n\t\t\tReadAccessId:      exampleAccount.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLog Analytics Workspaces can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:loganalytics/linkedService:LinkedService example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.OperationalInsights/workspaces/workspace1/linkedServices/Automation\n```\n\n ",
      "inputProperties": {
        "linkedServiceName": {
          "deprecationMessage": "This field has been deprecated and will be removed in a future version of the provider",
          "description": "Name of the type of linkedServices resource to connect to the Log Analytics Workspace specified in workspace_name. Accepted values are `automation` and `cluster`. Defaults to `automation`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "readAccessId": {
          "description": "The ID of the readable Resource that will be linked to the workspace. This should be used for linking to an Automation Account resource.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Log Analytics Linked Service is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceId": {
          "deprecationMessage": "This field has been deprecated in favour of `read_access_id` and will be removed in a future version of the provider",
          "description": "The ID of the Resource that will be linked to the workspace. This should be used for linking to an Automation Account resource.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "workspaceId": {
          "description": "The ID of the Log Analytics Workspace that will contain the Log Analytics Linked Service resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "workspaceName": {
          "deprecationMessage": "This field has been deprecated in favour of `workspace_id` and will be removed in a future version of the provider",
          "description": "The name of the Log Analytics Workspace that will contain the Log Analytics Linked Service resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "writeAccessId": {
          "description": "The ID of the writable Resource that will be linked to the workspace. This should be used for linking to a Log Analytics Cluster resource.\n",
          "type": "string"
        }
      },
      "properties": {
        "linkedServiceName": {
          "deprecationMessage": "This field has been deprecated and will be removed in a future version of the provider",
          "description": "Name of the type of linkedServices resource to connect to the Log Analytics Workspace specified in workspace_name. Accepted values are `automation` and `cluster`. Defaults to `automation`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The generated name of the Linked Service. The format for this attribute is always `\u003cworkspace name\u003e/\u003clinked service type\u003e`(e.g. `workspace1/Automation` or `workspace1/Cluster`)\n",
          "type": "string"
        },
        "readAccessId": {
          "description": "The ID of the readable Resource that will be linked to the workspace. This should be used for linking to an Automation Account resource.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Log Analytics Linked Service is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceId": {
          "deprecationMessage": "This field has been deprecated in favour of `read_access_id` and will be removed in a future version of the provider",
          "description": "The ID of the Resource that will be linked to the workspace. This should be used for linking to an Automation Account resource.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "workspaceId": {
          "description": "The ID of the Log Analytics Workspace that will contain the Log Analytics Linked Service resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "workspaceName": {
          "deprecationMessage": "This field has been deprecated in favour of `workspace_id` and will be removed in a future version of the provider",
          "description": "The name of the Log Analytics Workspace that will contain the Log Analytics Linked Service resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "writeAccessId": {
          "description": "The ID of the writable Resource that will be linked to the workspace. This should be used for linking to a Log Analytics Cluster resource.\n",
          "type": "string"
        }
      },
      "required": [
        "linkedServiceName",
        "name",
        "readAccessId",
        "resourceGroupName",
        "resourceId",
        "workspaceId",
        "workspaceName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedService resources.\n",
        "properties": {
          "linkedServiceName": {
            "deprecationMessage": "This field has been deprecated and will be removed in a future version of the provider",
            "description": "Name of the type of linkedServices resource to connect to the Log Analytics Workspace specified in workspace_name. Accepted values are `automation` and `cluster`. Defaults to `automation`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The generated name of the Linked Service. The format for this attribute is always `\u003cworkspace name\u003e/\u003clinked service type\u003e`(e.g. `workspace1/Automation` or `workspace1/Cluster`)\n",
            "type": "string"
          },
          "readAccessId": {
            "description": "The ID of the readable Resource that will be linked to the workspace. This should be used for linking to an Automation Account resource.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Log Analytics Linked Service is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceId": {
            "deprecationMessage": "This field has been deprecated in favour of `read_access_id` and will be removed in a future version of the provider",
            "description": "The ID of the Resource that will be linked to the workspace. This should be used for linking to an Automation Account resource.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "workspaceId": {
            "description": "The ID of the Log Analytics Workspace that will contain the Log Analytics Linked Service resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "workspaceName": {
            "deprecationMessage": "This field has been deprecated in favour of `workspace_id` and will be removed in a future version of the provider",
            "description": "The name of the Log Analytics Workspace that will contain the Log Analytics Linked Service resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "writeAccessId": {
            "description": "The ID of the writable Resource that will be linked to the workspace. This should be used for linking to a Log Analytics Cluster resource.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:loganalytics/linkedStorageAccount:LinkedStorageAccount": {
      "description": "Manages a Log Analytics Linked Storage Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n});\nconst exampleLinkedStorageAccount = new azure.loganalytics.LinkedStorageAccount(\"exampleLinkedStorageAccount\", {\n    dataSourceType: \"customlogs\",\n    resourceGroupName: exampleResourceGroup.name,\n    workspaceResourceId: exampleAnalyticsWorkspace.id,\n    storageAccountIds: [exampleAccount.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\")\nexample_linked_storage_account = azure.loganalytics.LinkedStorageAccount(\"exampleLinkedStorageAccount\",\n    data_source_type=\"customlogs\",\n    resource_group_name=example_resource_group.name,\n    workspace_resource_id=example_analytics_workspace.id,\n    storage_account_ids=[example_account.id])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n        });\n        var exampleLinkedStorageAccount = new Azure.LogAnalytics.LinkedStorageAccount(\"exampleLinkedStorageAccount\", new Azure.LogAnalytics.LinkedStorageAccountArgs\n        {\n            DataSourceType = \"customlogs\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            WorkspaceResourceId = exampleAnalyticsWorkspace.Id,\n            StorageAccountIds = \n            {\n                exampleAccount.Id,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/loganalytics\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loganalytics.NewLinkedStorageAccount(ctx, \"exampleLinkedStorageAccount\", \u0026loganalytics.LinkedStorageAccountArgs{\n\t\t\tDataSourceType:      pulumi.String(\"customlogs\"),\n\t\t\tResourceGroupName:   exampleResourceGroup.Name,\n\t\t\tWorkspaceResourceId: exampleAnalyticsWorkspace.ID(),\n\t\t\tStorageAccountIds: pulumi.StringArray{\n\t\t\t\texampleAccount.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLog Analytics Linked Storage Accounts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:loganalytics/linkedStorageAccount:LinkedStorageAccount example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/linkedStorageAccounts/{dataSourceType}\n```\n\n ",
      "inputProperties": {
        "dataSourceType": {
          "description": "The data source type which should be used for this Log Analytics Linked Storage Account. Possible values are \"customlogs\", \"azurewatson\", \"query\", \"ingestion\" and \"alerts\". Changing this forces a new Log Analytics Linked Storage Account to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Log Analytics Linked Storage Account should exist. Changing this forces a new Log Analytics Linked Storage Account to be created.\n",
          "type": "string"
        },
        "storageAccountIds": {
          "description": "The storage account resource ids to be linked.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "workspaceResourceId": {
          "description": "The resource ID of the Log Analytics Workspace. Changing this forces a new Log Analytics Linked Storage Account to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "dataSourceType": {
          "description": "The data source type which should be used for this Log Analytics Linked Storage Account. Possible values are \"customlogs\", \"azurewatson\", \"query\", \"ingestion\" and \"alerts\". Changing this forces a new Log Analytics Linked Storage Account to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Log Analytics Linked Storage Account should exist. Changing this forces a new Log Analytics Linked Storage Account to be created.\n",
          "type": "string"
        },
        "storageAccountIds": {
          "description": "The storage account resource ids to be linked.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "workspaceResourceId": {
          "description": "The resource ID of the Log Analytics Workspace. Changing this forces a new Log Analytics Linked Storage Account to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "dataSourceType",
        "resourceGroupName",
        "storageAccountIds",
        "workspaceResourceId"
      ],
      "requiredInputs": [
        "dataSourceType",
        "resourceGroupName",
        "storageAccountIds",
        "workspaceResourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedStorageAccount resources.\n",
        "properties": {
          "dataSourceType": {
            "description": "The data source type which should be used for this Log Analytics Linked Storage Account. Possible values are \"customlogs\", \"azurewatson\", \"query\", \"ingestion\" and \"alerts\". Changing this forces a new Log Analytics Linked Storage Account to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Log Analytics Linked Storage Account should exist. Changing this forces a new Log Analytics Linked Storage Account to be created.\n",
            "type": "string"
          },
          "storageAccountIds": {
            "description": "The storage account resource ids to be linked.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "workspaceResourceId": {
            "description": "The resource ID of the Log Analytics Workspace. Changing this forces a new Log Analytics Linked Storage Account to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:loganalytics/savedSearch:SavedSearch": {
      "description": "Manages a Log Analytics (formally Operational Insights) Saved Search.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n    retentionInDays: 30,\n});\nconst exampleSavedSearch = new azure.loganalytics.SavedSearch(\"exampleSavedSearch\", {\n    logAnalyticsWorkspaceId: azurerm_log_analytics_workspace.test.id,\n    category: \"exampleCategory\",\n    displayName: \"exampleDisplayName\",\n    query: \"exampleQuery\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\",\n    retention_in_days=30)\nexample_saved_search = azure.loganalytics.SavedSearch(\"exampleSavedSearch\",\n    log_analytics_workspace_id=azurerm_log_analytics_workspace[\"test\"][\"id\"],\n    category=\"exampleCategory\",\n    display_name=\"exampleDisplayName\",\n    query=\"exampleQuery\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n            RetentionInDays = 30,\n        });\n        var exampleSavedSearch = new Azure.LogAnalytics.SavedSearch(\"exampleSavedSearch\", new Azure.LogAnalytics.SavedSearchArgs\n        {\n            LogAnalyticsWorkspaceId = azurerm_log_analytics_workspace.Test.Id,\n            Category = \"exampleCategory\",\n            DisplayName = \"exampleDisplayName\",\n            Query = \"exampleQuery\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/loganalytics\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t\tRetentionInDays:   pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loganalytics.NewSavedSearch(ctx, \"exampleSavedSearch\", \u0026loganalytics.SavedSearchArgs{\n\t\t\tLogAnalyticsWorkspaceId: pulumi.Any(azurerm_log_analytics_workspace.Test.Id),\n\t\t\tCategory:                pulumi.String(\"exampleCategory\"),\n\t\t\tDisplayName:             pulumi.String(\"exampleDisplayName\"),\n\t\t\tQuery:                   pulumi.String(\"exampleQuery\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLog Analytics Saved Searches can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:loganalytics/savedSearch:SavedSearch search1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.OperationalInsights/workspaces/workspace1/savedSearches/search1\n```\n\n ",
      "inputProperties": {
        "category": {
          "description": "The category that the Saved Search will be listed under. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The name that Saved Search will be displayed as. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "functionAlias": {
          "description": "The function alias if the query serves as a function. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "functionParameters": {
          "description": "The function parameters if the query serves as a function. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "logAnalyticsWorkspaceId": {
          "description": "Specifies the ID of the Log Analytics Workspace that the Saved Search will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Log Analytics Saved Search. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "query": {
          "description": "The query expression for the saved search. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Logs Analytics Saved Search.\n",
          "type": "object"
        }
      },
      "properties": {
        "category": {
          "description": "The category that the Saved Search will be listed under. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The name that Saved Search will be displayed as. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "functionAlias": {
          "description": "The function alias if the query serves as a function. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "functionParameters": {
          "description": "The function parameters if the query serves as a function. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "logAnalyticsWorkspaceId": {
          "description": "Specifies the ID of the Log Analytics Workspace that the Saved Search will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Log Analytics Saved Search. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "query": {
          "description": "The query expression for the saved search. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Logs Analytics Saved Search.\n",
          "type": "object"
        }
      },
      "required": [
        "category",
        "displayName",
        "logAnalyticsWorkspaceId",
        "name",
        "query"
      ],
      "requiredInputs": [
        "category",
        "displayName",
        "logAnalyticsWorkspaceId",
        "query"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SavedSearch resources.\n",
        "properties": {
          "category": {
            "description": "The category that the Saved Search will be listed under. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The name that Saved Search will be displayed as. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "functionAlias": {
            "description": "The function alias if the query serves as a function. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "functionParameters": {
            "description": "The function parameters if the query serves as a function. Changing this forces a new resource to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "logAnalyticsWorkspaceId": {
            "description": "Specifies the ID of the Log Analytics Workspace that the Saved Search will be associated with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Log Analytics Saved Search. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "query": {
            "description": "The query expression for the saved search. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Logs Analytics Saved Search.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:loganalytics/storageInsights:StorageInsights": {
      "description": "Manages a Log Analytics Storage Insights resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n    retentionInDays: 30,\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleStorageInsights = new azure.loganalytics.StorageInsights(\"exampleStorageInsights\", {\n    resourceGroupName: exampleResourceGroup.name,\n    workspaceId: exampleAnalyticsWorkspace.id,\n    storageAccountId: exampleAccount.id,\n    storageAccountKey: exampleAccount.primaryAccessKey,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\",\n    retention_in_days=30)\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_storage_insights = azure.loganalytics.StorageInsights(\"exampleStorageInsights\",\n    resource_group_name=example_resource_group.name,\n    workspace_id=example_analytics_workspace.id,\n    storage_account_id=example_account.id,\n    storage_account_key=example_account.primary_access_key)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n            RetentionInDays = 30,\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleStorageInsights = new Azure.LogAnalytics.StorageInsights(\"exampleStorageInsights\", new Azure.LogAnalytics.StorageInsightsArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            WorkspaceId = exampleAnalyticsWorkspace.Id,\n            StorageAccountId = exampleAccount.Id,\n            StorageAccountKey = exampleAccount.PrimaryAccessKey,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/loganalytics\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t\tRetentionInDays:   pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loganalytics.NewStorageInsights(ctx, \"exampleStorageInsights\", \u0026loganalytics.StorageInsightsArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tWorkspaceId:       exampleAnalyticsWorkspace.ID(),\n\t\t\tStorageAccountId:  exampleAccount.ID(),\n\t\t\tStorageAccountKey: exampleAccount.PrimaryAccessKey,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLog Analytics Storage Insight Configs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:loganalytics/storageInsights:StorageInsights example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/storageInsightConfigs/storageInsight1\n```\n\n ",
      "inputProperties": {
        "blobContainerNames": {
          "description": "The names of the blob containers that the workspace should read.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this Log Analytics Storage Insights. Changing this forces a new Log Analytics Storage Insights to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Log Analytics Storage Insights should exist. Changing this forces a new Log Analytics Storage Insights to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account used by this Log Analytics Storage Insights.\n",
          "type": "string"
        },
        "storageAccountKey": {
          "description": "The storage access key to be used to connect to the storage account.\n",
          "type": "string"
        },
        "tableNames": {
          "description": "The names of the Azure tables that the workspace should read.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Log Analytics Storage Insights.\n",
          "type": "object"
        },
        "workspaceId": {
          "description": "The ID of the Log Analytics Workspace within which the Storage Insights should exist. Changing this forces a new Log Analytics Storage Insights to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "blobContainerNames": {
          "description": "The names of the blob containers that the workspace should read.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this Log Analytics Storage Insights. Changing this forces a new Log Analytics Storage Insights to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Log Analytics Storage Insights should exist. Changing this forces a new Log Analytics Storage Insights to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account used by this Log Analytics Storage Insights.\n",
          "type": "string"
        },
        "storageAccountKey": {
          "description": "The storage access key to be used to connect to the storage account.\n",
          "type": "string"
        },
        "tableNames": {
          "description": "The names of the Azure tables that the workspace should read.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Log Analytics Storage Insights.\n",
          "type": "object"
        },
        "workspaceId": {
          "description": "The ID of the Log Analytics Workspace within which the Storage Insights should exist. Changing this forces a new Log Analytics Storage Insights to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "storageAccountId",
        "storageAccountKey",
        "workspaceId"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "storageAccountId",
        "storageAccountKey",
        "workspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StorageInsights resources.\n",
        "properties": {
          "blobContainerNames": {
            "description": "The names of the blob containers that the workspace should read.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name which should be used for this Log Analytics Storage Insights. Changing this forces a new Log Analytics Storage Insights to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Log Analytics Storage Insights should exist. Changing this forces a new Log Analytics Storage Insights to be created.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of the Storage Account used by this Log Analytics Storage Insights.\n",
            "type": "string"
          },
          "storageAccountKey": {
            "description": "The storage access key to be used to connect to the storage account.\n",
            "type": "string"
          },
          "tableNames": {
            "description": "The names of the Azure tables that the workspace should read.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Log Analytics Storage Insights.\n",
            "type": "object"
          },
          "workspaceId": {
            "description": "The ID of the Log Analytics Workspace within which the Storage Insights should exist. Changing this forces a new Log Analytics Storage Insights to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/actionCustom:ActionCustom": {
      "description": "Manages a Custom Action within a Logic App Workflow\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleWorkflow = new azure.logicapps.Workflow(\"exampleWorkflow\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleActionCustom = new azure.logicapps.ActionCustom(\"exampleActionCustom\", {\n    logicAppId: exampleWorkflow.id,\n    body: `{\n    \"description\": \"A variable to configure the auto expiration age in days. Configured in negative number. Default is -30 (30 days old).\",\n    \"inputs\": {\n        \"variables\": [\n            {\n                \"name\": \"ExpirationAgeInDays\",\n                \"type\": \"Integer\",\n                \"value\": -30\n            }\n        ]\n    },\n    \"runAfter\": {},\n    \"type\": \"InitializeVariable\"\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_workflow = azure.logicapps.Workflow(\"exampleWorkflow\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_action_custom = azure.logicapps.ActionCustom(\"exampleActionCustom\",\n    logic_app_id=example_workflow.id,\n    body=\"\"\"{\n    \"description\": \"A variable to configure the auto expiration age in days. Configured in negative number. Default is -30 (30 days old).\",\n    \"inputs\": {\n        \"variables\": [\n            {\n                \"name\": \"ExpirationAgeInDays\",\n                \"type\": \"Integer\",\n                \"value\": -30\n            }\n        ]\n    },\n    \"runAfter\": {},\n    \"type\": \"InitializeVariable\"\n}\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleWorkflow = new Azure.LogicApps.Workflow(\"exampleWorkflow\", new Azure.LogicApps.WorkflowArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleActionCustom = new Azure.LogicApps.ActionCustom(\"exampleActionCustom\", new Azure.LogicApps.ActionCustomArgs\n        {\n            LogicAppId = exampleWorkflow.Id,\n            Body = @\"{\n    \"\"description\"\": \"\"A variable to configure the auto expiration age in days. Configured in negative number. Default is -30 (30 days old).\"\",\n    \"\"inputs\"\": {\n        \"\"variables\"\": [\n            {\n                \"\"name\"\": \"\"ExpirationAgeInDays\"\",\n                \"\"type\"\": \"\"Integer\"\",\n                \"\"value\"\": -30\n            }\n        ]\n    },\n    \"\"runAfter\"\": {},\n    \"\"type\"\": \"\"InitializeVariable\"\"\n}\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/logicapps\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkflow, err := logicapps.NewWorkflow(ctx, \"exampleWorkflow\", \u0026logicapps.WorkflowArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = logicapps.NewActionCustom(ctx, \"exampleActionCustom\", \u0026logicapps.ActionCustomArgs{\n\t\t\tLogicAppId: exampleWorkflow.ID(),\n\t\t\tBody:       pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \"    \\\"description\\\": \\\"A variable to configure the auto expiration age in days. Configured in negative number. Default is -30 (30 days old).\\\",\\n\", \"    \\\"inputs\\\": {\\n\", \"        \\\"variables\\\": [\\n\", \"            {\\n\", \"                \\\"name\\\": \\\"ExpirationAgeInDays\\\",\\n\", \"                \\\"type\\\": \\\"Integer\\\",\\n\", \"                \\\"value\\\": -30\\n\", \"            }\\n\", \"        ]\\n\", \"    },\\n\", \"    \\\"runAfter\\\": {},\\n\", \"    \\\"type\\\": \\\"InitializeVariable\\\"\\n\", \"}\\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogic App Custom Actions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/actionCustom:ActionCustom custom1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Logic/workflows/workflow1/actions/custom1\n```\n\n ",
      "inputProperties": {
        "body": {
          "description": "Specifies the JSON Blob defining the Body of this Custom Action.\n",
          "type": "string"
        },
        "logicAppId": {
          "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the HTTP Action to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "body": {
          "description": "Specifies the JSON Blob defining the Body of this Custom Action.\n",
          "type": "string"
        },
        "logicAppId": {
          "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the HTTP Action to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "body",
        "logicAppId",
        "name"
      ],
      "requiredInputs": [
        "body",
        "logicAppId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ActionCustom resources.\n",
        "properties": {
          "body": {
            "description": "Specifies the JSON Blob defining the Body of this Custom Action.\n",
            "type": "string"
          },
          "logicAppId": {
            "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the HTTP Action to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/actionHttp:ActionHttp": {
      "description": "Manages an HTTP Action within a Logic App Workflow\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleWorkflow = new azure.logicapps.Workflow(\"exampleWorkflow\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleActionHttp = new azure.logicapps.ActionHttp(\"exampleActionHttp\", {\n    logicAppId: exampleWorkflow.id,\n    method: \"GET\",\n    uri: \"http://example.com/some-webhook\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_workflow = azure.logicapps.Workflow(\"exampleWorkflow\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_action_http = azure.logicapps.ActionHttp(\"exampleActionHttp\",\n    logic_app_id=example_workflow.id,\n    method=\"GET\",\n    uri=\"http://example.com/some-webhook\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleWorkflow = new Azure.LogicApps.Workflow(\"exampleWorkflow\", new Azure.LogicApps.WorkflowArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleActionHttp = new Azure.LogicApps.ActionHttp(\"exampleActionHttp\", new Azure.LogicApps.ActionHttpArgs\n        {\n            LogicAppId = exampleWorkflow.Id,\n            Method = \"GET\",\n            Uri = \"http://example.com/some-webhook\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/logicapps\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkflow, err := logicapps.NewWorkflow(ctx, \"exampleWorkflow\", \u0026logicapps.WorkflowArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = logicapps.NewActionHttp(ctx, \"exampleActionHttp\", \u0026logicapps.ActionHttpArgs{\n\t\t\tLogicAppId: exampleWorkflow.ID(),\n\t\t\tMethod:     pulumi.String(\"GET\"),\n\t\t\tUri:        pulumi.String(\"http://example.com/some-webhook\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogic App HTTP Actions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/actionHttp:ActionHttp webhook1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Logic/workflows/workflow1/actions/webhook1\n```\n\n ",
      "inputProperties": {
        "body": {
          "description": "Specifies the HTTP Body that should be sent to the `uri` when this HTTP Action is triggered.\n",
          "type": "string"
        },
        "headers": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies a Map of Key-Value Pairs that should be sent to the `uri` when this HTTP Action is triggered.\n",
          "type": "object"
        },
        "logicAppId": {
          "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "method": {
          "description": "Specifies the HTTP Method which should be used for this HTTP Action. Possible values include `DELETE`, `GET`, `PATCH`, `POST` and `PUT`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the HTTP Action to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "runAfters": {
          "description": "Specifies the place of the HTTP Action in the Logic App Workflow. If not specified, the HTTP Action is right after the Trigger. A `run_after` block is as defined below.\n",
          "items": {
            "$ref": "#/types/azure:logicapps/ActionHttpRunAfter:ActionHttpRunAfter"
          },
          "type": "array"
        },
        "uri": {
          "description": "Specifies the URI which will be called when this HTTP Action is triggered.\n",
          "type": "string"
        }
      },
      "properties": {
        "body": {
          "description": "Specifies the HTTP Body that should be sent to the `uri` when this HTTP Action is triggered.\n",
          "type": "string"
        },
        "headers": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies a Map of Key-Value Pairs that should be sent to the `uri` when this HTTP Action is triggered.\n",
          "type": "object"
        },
        "logicAppId": {
          "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "method": {
          "description": "Specifies the HTTP Method which should be used for this HTTP Action. Possible values include `DELETE`, `GET`, `PATCH`, `POST` and `PUT`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the HTTP Action to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "runAfters": {
          "description": "Specifies the place of the HTTP Action in the Logic App Workflow. If not specified, the HTTP Action is right after the Trigger. A `run_after` block is as defined below.\n",
          "items": {
            "$ref": "#/types/azure:logicapps/ActionHttpRunAfter:ActionHttpRunAfter"
          },
          "type": "array"
        },
        "uri": {
          "description": "Specifies the URI which will be called when this HTTP Action is triggered.\n",
          "type": "string"
        }
      },
      "required": [
        "logicAppId",
        "method",
        "name",
        "uri"
      ],
      "requiredInputs": [
        "logicAppId",
        "method",
        "uri"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ActionHttp resources.\n",
        "properties": {
          "body": {
            "description": "Specifies the HTTP Body that should be sent to the `uri` when this HTTP Action is triggered.\n",
            "type": "string"
          },
          "headers": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies a Map of Key-Value Pairs that should be sent to the `uri` when this HTTP Action is triggered.\n",
            "type": "object"
          },
          "logicAppId": {
            "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "method": {
            "description": "Specifies the HTTP Method which should be used for this HTTP Action. Possible values include `DELETE`, `GET`, `PATCH`, `POST` and `PUT`.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the HTTP Action to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "runAfters": {
            "description": "Specifies the place of the HTTP Action in the Logic App Workflow. If not specified, the HTTP Action is right after the Trigger. A `run_after` block is as defined below.\n",
            "items": {
              "$ref": "#/types/azure:logicapps/ActionHttpRunAfter:ActionHttpRunAfter"
            },
            "type": "array"
          },
          "uri": {
            "description": "Specifies the URI which will be called when this HTTP Action is triggered.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/integrationAccount:IntegrationAccount": {
      "description": "Manages a Logic App Integration Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleIntegrationAccount = new azure.logicapps.IntegrationAccount(\"exampleIntegrationAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    skuName: \"Standard\",\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_integration_account = azure.logicapps.IntegrationAccount(\"exampleIntegrationAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku_name=\"Standard\",\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleIntegrationAccount = new Azure.LogicApps.IntegrationAccount(\"exampleIntegrationAccount\", new Azure.LogicApps.IntegrationAccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            SkuName = \"Standard\",\n            Tags = \n            {\n                { \"foo\", \"bar\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/logicapps\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = logicapps.NewIntegrationAccount(ctx, \"exampleIntegrationAccount\", \u0026logicapps.IntegrationAccountArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSkuName:           pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogic App Integration Accounts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/integrationAccount:IntegrationAccount example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Logic/integrationAccounts/account1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The Azure Region where the Logic App Integration Account should exist. Changing this forces a new Logic App Integration Account to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account. Changing this forces a new Logic App Integration Account to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account should exist. Changing this forces a new Logic App Integration Account to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The sku name of the Logic App Integration Account. Possible Values are `Basic`, `Free` and `Standard`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Logic App Integration Account.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "The Azure Region where the Logic App Integration Account should exist. Changing this forces a new Logic App Integration Account to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account. Changing this forces a new Logic App Integration Account to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account should exist. Changing this forces a new Logic App Integration Account to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The sku name of the Logic App Integration Account. Possible Values are `Basic`, `Free` and `Standard`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Logic App Integration Account.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "skuName"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IntegrationAccount resources.\n",
        "properties": {
          "location": {
            "description": "The Azure Region where the Logic App Integration Account should exist. Changing this forces a new Logic App Integration Account to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Logic App Integration Account. Changing this forces a new Logic App Integration Account to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Logic App Integration Account should exist. Changing this forces a new Logic App Integration Account to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The sku name of the Logic App Integration Account. Possible Values are `Basic`, `Free` and `Standard`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Logic App Integration Account.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/integrationAccountAgreement:IntegrationAccountAgreement": {
      "description": "Manages a Logic App Integration Account Agreement.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * from \"fs\";\n\nconst testResourceGroup = new azure.core.ResourceGroup(\"testResourceGroup\", {location: \"West Europe\"});\nconst testIntegrationAccount = new azure.logicapps.IntegrationAccount(\"testIntegrationAccount\", {\n    location: testResourceGroup.location,\n    resourceGroupName: testResourceGroup.name,\n    skuName: \"Standard\",\n});\nconst host = new azure.logicapps.IntegrationAccountPartner(\"host\", {\n    resourceGroupName: testResourceGroup.name,\n    integrationAccountName: testIntegrationAccount.name,\n    businessIdentities: [{\n        qualifier: \"AS2Identity\",\n        value: \"FabrikamNY\",\n    }],\n});\nconst guest = new azure.logicapps.IntegrationAccountPartner(\"guest\", {\n    resourceGroupName: testResourceGroup.name,\n    integrationAccountName: testIntegrationAccount.name,\n    businessIdentities: [{\n        qualifier: \"AS2Identity\",\n        value: \"FabrikamDC\",\n    }],\n});\nconst testIntegrationAccountAgreement = new azure.logicapps.IntegrationAccountAgreement(\"testIntegrationAccountAgreement\", {\n    resourceGroupName: testResourceGroup.name,\n    integrationAccountName: testIntegrationAccount.name,\n    agreementType: \"AS2\",\n    hostPartnerName: host.name,\n    guestPartnerName: guest.name,\n    content: fs.readFileSync(\"testdata/integration_account_agreement_content_as2.json\"),\n    hostIdentity: {\n        qualifier: \"AS2Identity\",\n        value: \"FabrikamNY\",\n    },\n    guestIdentity: {\n        qualifier: \"AS2Identity\",\n        value: \"FabrikamDC\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ntest_resource_group = azure.core.ResourceGroup(\"testResourceGroup\", location=\"West Europe\")\ntest_integration_account = azure.logicapps.IntegrationAccount(\"testIntegrationAccount\",\n    location=test_resource_group.location,\n    resource_group_name=test_resource_group.name,\n    sku_name=\"Standard\")\nhost = azure.logicapps.IntegrationAccountPartner(\"host\",\n    resource_group_name=test_resource_group.name,\n    integration_account_name=test_integration_account.name,\n    business_identities=[azure.logicapps.IntegrationAccountPartnerBusinessIdentityArgs(\n        qualifier=\"AS2Identity\",\n        value=\"FabrikamNY\",\n    )])\nguest = azure.logicapps.IntegrationAccountPartner(\"guest\",\n    resource_group_name=test_resource_group.name,\n    integration_account_name=test_integration_account.name,\n    business_identities=[azure.logicapps.IntegrationAccountPartnerBusinessIdentityArgs(\n        qualifier=\"AS2Identity\",\n        value=\"FabrikamDC\",\n    )])\ntest_integration_account_agreement = azure.logicapps.IntegrationAccountAgreement(\"testIntegrationAccountAgreement\",\n    resource_group_name=test_resource_group.name,\n    integration_account_name=test_integration_account.name,\n    agreement_type=\"AS2\",\n    host_partner_name=host.name,\n    guest_partner_name=guest.name,\n    content=(lambda path: open(path).read())(\"testdata/integration_account_agreement_content_as2.json\"),\n    host_identity=azure.logicapps.IntegrationAccountAgreementHostIdentityArgs(\n        qualifier=\"AS2Identity\",\n        value=\"FabrikamNY\",\n    ),\n    guest_identity=azure.logicapps.IntegrationAccountAgreementGuestIdentityArgs(\n        qualifier=\"AS2Identity\",\n        value=\"FabrikamDC\",\n    ))\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var testResourceGroup = new Azure.Core.ResourceGroup(\"testResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var testIntegrationAccount = new Azure.LogicApps.IntegrationAccount(\"testIntegrationAccount\", new Azure.LogicApps.IntegrationAccountArgs\n        {\n            Location = testResourceGroup.Location,\n            ResourceGroupName = testResourceGroup.Name,\n            SkuName = \"Standard\",\n        });\n        var host = new Azure.LogicApps.IntegrationAccountPartner(\"host\", new Azure.LogicApps.IntegrationAccountPartnerArgs\n        {\n            ResourceGroupName = testResourceGroup.Name,\n            IntegrationAccountName = testIntegrationAccount.Name,\n            BusinessIdentities = \n            {\n                new Azure.LogicApps.Inputs.IntegrationAccountPartnerBusinessIdentityArgs\n                {\n                    Qualifier = \"AS2Identity\",\n                    Value = \"FabrikamNY\",\n                },\n            },\n        });\n        var guest = new Azure.LogicApps.IntegrationAccountPartner(\"guest\", new Azure.LogicApps.IntegrationAccountPartnerArgs\n        {\n            ResourceGroupName = testResourceGroup.Name,\n            IntegrationAccountName = testIntegrationAccount.Name,\n            BusinessIdentities = \n            {\n                new Azure.LogicApps.Inputs.IntegrationAccountPartnerBusinessIdentityArgs\n                {\n                    Qualifier = \"AS2Identity\",\n                    Value = \"FabrikamDC\",\n                },\n            },\n        });\n        var testIntegrationAccountAgreement = new Azure.LogicApps.IntegrationAccountAgreement(\"testIntegrationAccountAgreement\", new Azure.LogicApps.IntegrationAccountAgreementArgs\n        {\n            ResourceGroupName = testResourceGroup.Name,\n            IntegrationAccountName = testIntegrationAccount.Name,\n            AgreementType = \"AS2\",\n            HostPartnerName = host.Name,\n            GuestPartnerName = guest.Name,\n            Content = File.ReadAllText(\"testdata/integration_account_agreement_content_as2.json\"),\n            HostIdentity = new Azure.LogicApps.Inputs.IntegrationAccountAgreementHostIdentityArgs\n            {\n                Qualifier = \"AS2Identity\",\n                Value = \"FabrikamNY\",\n            },\n            GuestIdentity = new Azure.LogicApps.Inputs.IntegrationAccountAgreementGuestIdentityArgs\n            {\n                Qualifier = \"AS2Identity\",\n                Value = \"FabrikamDC\",\n            },\n        });\n    }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogic App Integration Account Agreements can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/integrationAccountAgreement:IntegrationAccountAgreement example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Logic/integrationAccounts/account1/agreements/agreement1\n```\n\n ",
      "inputProperties": {
        "agreementType": {
          "description": "The type of the Logic App Integration Account Agreement. Possible values are `AS2`, `X12` and `Edifact`.\n",
          "type": "string"
        },
        "content": {
          "description": "The content of the Logic App Integration Account Agreement.\n",
          "type": "string"
        },
        "guestIdentity": {
          "$ref": "#/types/azure:logicapps/IntegrationAccountAgreementGuestIdentity:IntegrationAccountAgreementGuestIdentity",
          "description": "A `guest_identity` block as documented below.\n"
        },
        "guestPartnerName": {
          "description": "The name of the guest Logic App Integration Account Partner.\n",
          "type": "string"
        },
        "hostIdentity": {
          "$ref": "#/types/azure:logicapps/IntegrationAccountAgreementHostIdentity:IntegrationAccountAgreementHostIdentity",
          "description": "A `host_identity` block as documented below.\n"
        },
        "hostPartnerName": {
          "description": "The name of the host Logic App Integration Account Partner.\n",
          "type": "string"
        },
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The metadata of the Logic App Integration Account Agreement.\n",
          "type": "object"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Agreement. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Agreement should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "agreementType": {
          "description": "The type of the Logic App Integration Account Agreement. Possible values are `AS2`, `X12` and `Edifact`.\n",
          "type": "string"
        },
        "content": {
          "description": "The content of the Logic App Integration Account Agreement.\n",
          "type": "string"
        },
        "guestIdentity": {
          "$ref": "#/types/azure:logicapps/IntegrationAccountAgreementGuestIdentity:IntegrationAccountAgreementGuestIdentity",
          "description": "A `guest_identity` block as documented below.\n"
        },
        "guestPartnerName": {
          "description": "The name of the guest Logic App Integration Account Partner.\n",
          "type": "string"
        },
        "hostIdentity": {
          "$ref": "#/types/azure:logicapps/IntegrationAccountAgreementHostIdentity:IntegrationAccountAgreementHostIdentity",
          "description": "A `host_identity` block as documented below.\n"
        },
        "hostPartnerName": {
          "description": "The name of the host Logic App Integration Account Partner.\n",
          "type": "string"
        },
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The metadata of the Logic App Integration Account Agreement.\n",
          "type": "object"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Agreement. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Agreement should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "agreementType",
        "content",
        "guestIdentity",
        "guestPartnerName",
        "hostIdentity",
        "hostPartnerName",
        "integrationAccountName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "agreementType",
        "content",
        "guestIdentity",
        "guestPartnerName",
        "hostIdentity",
        "hostPartnerName",
        "integrationAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IntegrationAccountAgreement resources.\n",
        "properties": {
          "agreementType": {
            "description": "The type of the Logic App Integration Account Agreement. Possible values are `AS2`, `X12` and `Edifact`.\n",
            "type": "string"
          },
          "content": {
            "description": "The content of the Logic App Integration Account Agreement.\n",
            "type": "string"
          },
          "guestIdentity": {
            "$ref": "#/types/azure:logicapps/IntegrationAccountAgreementGuestIdentity:IntegrationAccountAgreementGuestIdentity",
            "description": "A `guest_identity` block as documented below.\n"
          },
          "guestPartnerName": {
            "description": "The name of the guest Logic App Integration Account Partner.\n",
            "type": "string"
          },
          "hostIdentity": {
            "$ref": "#/types/azure:logicapps/IntegrationAccountAgreementHostIdentity:IntegrationAccountAgreementHostIdentity",
            "description": "A `host_identity` block as documented below.\n"
          },
          "hostPartnerName": {
            "description": "The name of the host Logic App Integration Account Partner.\n",
            "type": "string"
          },
          "integrationAccountName": {
            "description": "The name of the Logic App Integration Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The metadata of the Logic App Integration Account Agreement.\n",
            "type": "object"
          },
          "name": {
            "description": "The name which should be used for this Logic App Integration Account Agreement. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Logic App Integration Account Agreement should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/integrationAccountAssembly:IntegrationAccountAssembly": {
      "description": "Manages a Logic App Integration Account Assembly.\n\n\n## Import\n\nLogic App Integration Account Assemblies can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/integrationAccountAssembly:IntegrationAccountAssembly example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Logic/integrationAccounts/account1/assemblies/assembly1\n```\n\n ",
      "inputProperties": {
        "assemblyName": {
          "description": "The name of the Logic App Integration Account Assembly.\n",
          "type": "string"
        },
        "assemblyVersion": {
          "description": "The version of the Logic App Integration Account Assembly. Defaults to `0.0.0.0`.\n",
          "type": "string"
        },
        "content": {
          "description": "The content of the Logic App Integration Account Assembly.\n",
          "type": "string"
        },
        "contentLinkUri": {
          "description": "The content link URI of the Logic App Integration Account Assembly.\n",
          "type": "string"
        },
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The metadata of the Logic App Integration Account Assembly.\n",
          "type": "object"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Assembly Artifact. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Assembly Artifact should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "assemblyName": {
          "description": "The name of the Logic App Integration Account Assembly.\n",
          "type": "string"
        },
        "assemblyVersion": {
          "description": "The version of the Logic App Integration Account Assembly. Defaults to `0.0.0.0`.\n",
          "type": "string"
        },
        "content": {
          "description": "The content of the Logic App Integration Account Assembly.\n",
          "type": "string"
        },
        "contentLinkUri": {
          "description": "The content link URI of the Logic App Integration Account Assembly.\n",
          "type": "string"
        },
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The metadata of the Logic App Integration Account Assembly.\n",
          "type": "object"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Assembly Artifact. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Assembly Artifact should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "assemblyName",
        "integrationAccountName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "assemblyName",
        "integrationAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IntegrationAccountAssembly resources.\n",
        "properties": {
          "assemblyName": {
            "description": "The name of the Logic App Integration Account Assembly.\n",
            "type": "string"
          },
          "assemblyVersion": {
            "description": "The version of the Logic App Integration Account Assembly. Defaults to `0.0.0.0`.\n",
            "type": "string"
          },
          "content": {
            "description": "The content of the Logic App Integration Account Assembly.\n",
            "type": "string"
          },
          "contentLinkUri": {
            "description": "The content link URI of the Logic App Integration Account Assembly.\n",
            "type": "string"
          },
          "integrationAccountName": {
            "description": "The name of the Logic App Integration Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The metadata of the Logic App Integration Account Assembly.\n",
            "type": "object"
          },
          "name": {
            "description": "The name which should be used for this Logic App Integration Account Assembly Artifact. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Logic App Integration Account Assembly Artifact should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/integrationAccountBatchConfiguration:IntegrationAccountBatchConfiguration": {
      "description": "Manages a Logic App Integration Account Batch Configuration.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleIntegrationAccount = new azure.logicapps.IntegrationAccount(\"exampleIntegrationAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Standard\",\n});\nconst exampleIntegrationAccountBatchConfiguration = new azure.logicapps.IntegrationAccountBatchConfiguration(\"exampleIntegrationAccountBatchConfiguration\", {\n    resourceGroupName: exampleResourceGroup.name,\n    integrationAccountName: exampleIntegrationAccount.name,\n    batchGroupName: \"TestBatchGroup\",\n    releaseCriteria: {\n        messageCount: 80,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_integration_account = azure.logicapps.IntegrationAccount(\"exampleIntegrationAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Standard\")\nexample_integration_account_batch_configuration = azure.logicapps.IntegrationAccountBatchConfiguration(\"exampleIntegrationAccountBatchConfiguration\",\n    resource_group_name=example_resource_group.name,\n    integration_account_name=example_integration_account.name,\n    batch_group_name=\"TestBatchGroup\",\n    release_criteria=azure.logicapps.IntegrationAccountBatchConfigurationReleaseCriteriaArgs(\n        message_count=80,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleIntegrationAccount = new Azure.LogicApps.IntegrationAccount(\"exampleIntegrationAccount\", new Azure.LogicApps.IntegrationAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Standard\",\n        });\n        var exampleIntegrationAccountBatchConfiguration = new Azure.LogicApps.IntegrationAccountBatchConfiguration(\"exampleIntegrationAccountBatchConfiguration\", new Azure.LogicApps.IntegrationAccountBatchConfigurationArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IntegrationAccountName = exampleIntegrationAccount.Name,\n            BatchGroupName = \"TestBatchGroup\",\n            ReleaseCriteria = new Azure.LogicApps.Inputs.IntegrationAccountBatchConfigurationReleaseCriteriaArgs\n            {\n                MessageCount = 80,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/logicapps\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIntegrationAccount, err := logicapps.NewIntegrationAccount(ctx, \"exampleIntegrationAccount\", \u0026logicapps.IntegrationAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = logicapps.NewIntegrationAccountBatchConfiguration(ctx, \"exampleIntegrationAccountBatchConfiguration\", \u0026logicapps.IntegrationAccountBatchConfigurationArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tIntegrationAccountName: exampleIntegrationAccount.Name,\n\t\t\tBatchGroupName:         pulumi.String(\"TestBatchGroup\"),\n\t\t\tReleaseCriteria: \u0026logicapps.IntegrationAccountBatchConfigurationReleaseCriteriaArgs{\n\t\t\t\tMessageCount: pulumi.Int(80),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogic App Integration Account Batch Configurations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/integrationAccountBatchConfiguration:IntegrationAccountBatchConfiguration example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Logic/integrationAccounts/account1/batchConfigurations/batchConfiguration1\n```\n\n ",
      "inputProperties": {
        "batchGroupName": {
          "description": "The batch group name of the Logic App Integration Batch Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A JSON mapping of any Metadata for this Logic App Integration Account Batch Configuration.\n",
          "type": "object"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Batch Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "releaseCriteria": {
          "$ref": "#/types/azure:logicapps/IntegrationAccountBatchConfigurationReleaseCriteria:IntegrationAccountBatchConfigurationReleaseCriteria",
          "description": "A `release_criteria` block as documented below, which is used to select the criteria to meet before processing each batch.\n"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Batch Configuration should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "batchGroupName": {
          "description": "The batch group name of the Logic App Integration Batch Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A JSON mapping of any Metadata for this Logic App Integration Account Batch Configuration.\n",
          "type": "object"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Batch Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "releaseCriteria": {
          "$ref": "#/types/azure:logicapps/IntegrationAccountBatchConfigurationReleaseCriteria:IntegrationAccountBatchConfigurationReleaseCriteria",
          "description": "A `release_criteria` block as documented below, which is used to select the criteria to meet before processing each batch.\n"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Batch Configuration should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "batchGroupName",
        "integrationAccountName",
        "name",
        "releaseCriteria",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "batchGroupName",
        "integrationAccountName",
        "releaseCriteria",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IntegrationAccountBatchConfiguration resources.\n",
        "properties": {
          "batchGroupName": {
            "description": "The batch group name of the Logic App Integration Batch Configuration. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "integrationAccountName": {
            "description": "The name of the Logic App Integration Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A JSON mapping of any Metadata for this Logic App Integration Account Batch Configuration.\n",
            "type": "object"
          },
          "name": {
            "description": "The name which should be used for this Logic App Integration Account Batch Configuration. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "releaseCriteria": {
            "$ref": "#/types/azure:logicapps/IntegrationAccountBatchConfigurationReleaseCriteria:IntegrationAccountBatchConfigurationReleaseCriteria",
            "description": "A `release_criteria` block as documented below, which is used to select the criteria to meet before processing each batch.\n"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Logic App Integration Account Batch Configuration should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/integrationAccountCertificate:IntegrationAccountCertificate": {
      "description": "Manages a Logic App Integration Account Certificate.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleIntegrationAccount = new azure.logicapps.IntegrationAccount(\"exampleIntegrationAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Standard\",\n});\nconst exampleIntegrationAccountCertificate = new azure.logicapps.IntegrationAccountCertificate(\"exampleIntegrationAccountCertificate\", {\n    resourceGroupName: exampleResourceGroup.name,\n    integrationAccountName: exampleIntegrationAccount.name,\n    publicCertificate: \"MIIDbzCCAlegAwIBAgIJAIzjRD36sIbbMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMRIwEAYDVQQKDAl0ZXJyYWZvcm0xFTATBgNVBAMMDHRlcnJhZm9ybS5pbzAgFw0xNzA0MjEyMDA1MjdaGA8yMTE3MDMyODIwMDUyN1owTTELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxEjAQBgNVBAoMCXRlcnJhZm9ybTEVMBMGA1UEAwwMdGVycmFmb3JtLmlvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3L9L5szT4+FLykTFNyyPjy/k3BQTYAfRQzP2dhnsuUKm3cdPC0NyZ+wEXIUGhoDO2YG6EYChOl8fsDqDOjloSUGKqYw++nlpHIuUgJx8IxxG2XkALCjFU7EmF+w7kn76d0ezpEIYxnLP+KG2DVornoEt1aLhv1MLmpgEZZPhDbMSLhSYWeTVRMayXLwqtfgnDumQSB+8d/1JuJqrSI4pD12JozVThzb6hsjfb6RMX4epPmrGn0PbTPEEA6awmsxBCXB0s13nNQt/O0hLM2agwvAyozilQV+s616Ckgk6DJoUkqZhDy7vPYMIRSr98fBws6zkrV6tTLjmD8xAvobePQIDAQABo1AwTjAdBgNVHQ4EFgQUXIqO421zMMmbcRRX9wctZFCQuPIwHwYDVR0jBBgwFoAUXIqO421zMMmbcRRX9wctZFCQuPIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAr82NeT3BYJOKLlUL6Om5LjUF66ewcJjG9ltdvyQwVneMcq7t5UAPxgChzqNRVk4da8PzkXpjBJyWezHupdJNX3XqeUk2kSxqQ6/gmhqvfI3y7djrwoO6jvMEY26WqtkTNORWDP3THJJVimC3zV+KMU5UBVrEzhOVhHSU709lBP75o0BBn3xGsPqSq9k8IotIFfyAc6a+XP3+ZMpvh7wqAUml7vWa5wlcXExCx39h1balfDSLGNC4swWPCp9AMnQR0p+vMay9hNP1Eh+9QYUai14d5KS3cFV+KxE1cJR5HD/iLltnnOEbpMsB0eVOZWkFvE7Y5lW0oVSAfin5TwTJMQ==\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_integration_account = azure.logicapps.IntegrationAccount(\"exampleIntegrationAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Standard\")\nexample_integration_account_certificate = azure.logicapps.IntegrationAccountCertificate(\"exampleIntegrationAccountCertificate\",\n    resource_group_name=example_resource_group.name,\n    integration_account_name=example_integration_account.name,\n    public_certificate=\"MIIDbzCCAlegAwIBAgIJAIzjRD36sIbbMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMRIwEAYDVQQKDAl0ZXJyYWZvcm0xFTATBgNVBAMMDHRlcnJhZm9ybS5pbzAgFw0xNzA0MjEyMDA1MjdaGA8yMTE3MDMyODIwMDUyN1owTTELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxEjAQBgNVBAoMCXRlcnJhZm9ybTEVMBMGA1UEAwwMdGVycmFmb3JtLmlvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3L9L5szT4+FLykTFNyyPjy/k3BQTYAfRQzP2dhnsuUKm3cdPC0NyZ+wEXIUGhoDO2YG6EYChOl8fsDqDOjloSUGKqYw++nlpHIuUgJx8IxxG2XkALCjFU7EmF+w7kn76d0ezpEIYxnLP+KG2DVornoEt1aLhv1MLmpgEZZPhDbMSLhSYWeTVRMayXLwqtfgnDumQSB+8d/1JuJqrSI4pD12JozVThzb6hsjfb6RMX4epPmrGn0PbTPEEA6awmsxBCXB0s13nNQt/O0hLM2agwvAyozilQV+s616Ckgk6DJoUkqZhDy7vPYMIRSr98fBws6zkrV6tTLjmD8xAvobePQIDAQABo1AwTjAdBgNVHQ4EFgQUXIqO421zMMmbcRRX9wctZFCQuPIwHwYDVR0jBBgwFoAUXIqO421zMMmbcRRX9wctZFCQuPIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAr82NeT3BYJOKLlUL6Om5LjUF66ewcJjG9ltdvyQwVneMcq7t5UAPxgChzqNRVk4da8PzkXpjBJyWezHupdJNX3XqeUk2kSxqQ6/gmhqvfI3y7djrwoO6jvMEY26WqtkTNORWDP3THJJVimC3zV+KMU5UBVrEzhOVhHSU709lBP75o0BBn3xGsPqSq9k8IotIFfyAc6a+XP3+ZMpvh7wqAUml7vWa5wlcXExCx39h1balfDSLGNC4swWPCp9AMnQR0p+vMay9hNP1Eh+9QYUai14d5KS3cFV+KxE1cJR5HD/iLltnnOEbpMsB0eVOZWkFvE7Y5lW0oVSAfin5TwTJMQ==\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleIntegrationAccount = new Azure.LogicApps.IntegrationAccount(\"exampleIntegrationAccount\", new Azure.LogicApps.IntegrationAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Standard\",\n        });\n        var exampleIntegrationAccountCertificate = new Azure.LogicApps.IntegrationAccountCertificate(\"exampleIntegrationAccountCertificate\", new Azure.LogicApps.IntegrationAccountCertificateArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IntegrationAccountName = exampleIntegrationAccount.Name,\n            PublicCertificate = \"MIIDbzCCAlegAwIBAgIJAIzjRD36sIbbMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMRIwEAYDVQQKDAl0ZXJyYWZvcm0xFTATBgNVBAMMDHRlcnJhZm9ybS5pbzAgFw0xNzA0MjEyMDA1MjdaGA8yMTE3MDMyODIwMDUyN1owTTELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxEjAQBgNVBAoMCXRlcnJhZm9ybTEVMBMGA1UEAwwMdGVycmFmb3JtLmlvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3L9L5szT4+FLykTFNyyPjy/k3BQTYAfRQzP2dhnsuUKm3cdPC0NyZ+wEXIUGhoDO2YG6EYChOl8fsDqDOjloSUGKqYw++nlpHIuUgJx8IxxG2XkALCjFU7EmF+w7kn76d0ezpEIYxnLP+KG2DVornoEt1aLhv1MLmpgEZZPhDbMSLhSYWeTVRMayXLwqtfgnDumQSB+8d/1JuJqrSI4pD12JozVThzb6hsjfb6RMX4epPmrGn0PbTPEEA6awmsxBCXB0s13nNQt/O0hLM2agwvAyozilQV+s616Ckgk6DJoUkqZhDy7vPYMIRSr98fBws6zkrV6tTLjmD8xAvobePQIDAQABo1AwTjAdBgNVHQ4EFgQUXIqO421zMMmbcRRX9wctZFCQuPIwHwYDVR0jBBgwFoAUXIqO421zMMmbcRRX9wctZFCQuPIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAr82NeT3BYJOKLlUL6Om5LjUF66ewcJjG9ltdvyQwVneMcq7t5UAPxgChzqNRVk4da8PzkXpjBJyWezHupdJNX3XqeUk2kSxqQ6/gmhqvfI3y7djrwoO6jvMEY26WqtkTNORWDP3THJJVimC3zV+KMU5UBVrEzhOVhHSU709lBP75o0BBn3xGsPqSq9k8IotIFfyAc6a+XP3+ZMpvh7wqAUml7vWa5wlcXExCx39h1balfDSLGNC4swWPCp9AMnQR0p+vMay9hNP1Eh+9QYUai14d5KS3cFV+KxE1cJR5HD/iLltnnOEbpMsB0eVOZWkFvE7Y5lW0oVSAfin5TwTJMQ==\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/logicapps\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIntegrationAccount, err := logicapps.NewIntegrationAccount(ctx, \"exampleIntegrationAccount\", \u0026logicapps.IntegrationAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = logicapps.NewIntegrationAccountCertificate(ctx, \"exampleIntegrationAccountCertificate\", \u0026logicapps.IntegrationAccountCertificateArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tIntegrationAccountName: exampleIntegrationAccount.Name,\n\t\t\tPublicCertificate:      pulumi.String(\"MIIDbzCCAlegAwIBAgIJAIzjRD36sIbbMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMRIwEAYDVQQKDAl0ZXJyYWZvcm0xFTATBgNVBAMMDHRlcnJhZm9ybS5pbzAgFw0xNzA0MjEyMDA1MjdaGA8yMTE3MDMyODIwMDUyN1owTTELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxEjAQBgNVBAoMCXRlcnJhZm9ybTEVMBMGA1UEAwwMdGVycmFmb3JtLmlvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3L9L5szT4+FLykTFNyyPjy/k3BQTYAfRQzP2dhnsuUKm3cdPC0NyZ+wEXIUGhoDO2YG6EYChOl8fsDqDOjloSUGKqYw++nlpHIuUgJx8IxxG2XkALCjFU7EmF+w7kn76d0ezpEIYxnLP+KG2DVornoEt1aLhv1MLmpgEZZPhDbMSLhSYWeTVRMayXLwqtfgnDumQSB+8d/1JuJqrSI4pD12JozVThzb6hsjfb6RMX4epPmrGn0PbTPEEA6awmsxBCXB0s13nNQt/O0hLM2agwvAyozilQV+s616Ckgk6DJoUkqZhDy7vPYMIRSr98fBws6zkrV6tTLjmD8xAvobePQIDAQABo1AwTjAdBgNVHQ4EFgQUXIqO421zMMmbcRRX9wctZFCQuPIwHwYDVR0jBBgwFoAUXIqO421zMMmbcRRX9wctZFCQuPIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAr82NeT3BYJOKLlUL6Om5LjUF66ewcJjG9ltdvyQwVneMcq7t5UAPxgChzqNRVk4da8PzkXpjBJyWezHupdJNX3XqeUk2kSxqQ6/gmhqvfI3y7djrwoO6jvMEY26WqtkTNORWDP3THJJVimC3zV+KMU5UBVrEzhOVhHSU709lBP75o0BBn3xGsPqSq9k8IotIFfyAc6a+XP3+ZMpvh7wqAUml7vWa5wlcXExCx39h1balfDSLGNC4swWPCp9AMnQR0p+vMay9hNP1Eh+9QYUai14d5KS3cFV+KxE1cJR5HD/iLltnnOEbpMsB0eVOZWkFvE7Y5lW0oVSAfin5TwTJMQ==\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogic App Integration Account Certificates can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/integrationAccountCertificate:IntegrationAccountCertificate example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Logic/integrationAccounts/account1/certificates/certificate1\n```\n\n ",
      "inputProperties": {
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Certificate to be created.\n",
          "type": "string"
        },
        "keyVaultKey": {
          "$ref": "#/types/azure:logicapps/IntegrationAccountCertificateKeyVaultKey:IntegrationAccountCertificateKeyVaultKey",
          "description": "A `key_vault_key` block as documented below.\n"
        },
        "metadata": {
          "description": "A JSON mapping of any Metadata for this Logic App Integration Account Certificate.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Certificate. Changing this forces a new Logic App Integration Account Certificate to be created.\n",
          "type": "string"
        },
        "publicCertificate": {
          "description": "The public certificate for the Logic App Integration Account Certificate.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Certificate should exist. Changing this forces a new Logic App Integration Account Certificate to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Certificate to be created.\n",
          "type": "string"
        },
        "keyVaultKey": {
          "$ref": "#/types/azure:logicapps/IntegrationAccountCertificateKeyVaultKey:IntegrationAccountCertificateKeyVaultKey",
          "description": "A `key_vault_key` block as documented below.\n"
        },
        "metadata": {
          "description": "A JSON mapping of any Metadata for this Logic App Integration Account Certificate.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Certificate. Changing this forces a new Logic App Integration Account Certificate to be created.\n",
          "type": "string"
        },
        "publicCertificate": {
          "description": "The public certificate for the Logic App Integration Account Certificate.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Certificate should exist. Changing this forces a new Logic App Integration Account Certificate to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "integrationAccountName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "integrationAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IntegrationAccountCertificate resources.\n",
        "properties": {
          "integrationAccountName": {
            "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Certificate to be created.\n",
            "type": "string"
          },
          "keyVaultKey": {
            "$ref": "#/types/azure:logicapps/IntegrationAccountCertificateKeyVaultKey:IntegrationAccountCertificateKeyVaultKey",
            "description": "A `key_vault_key` block as documented below.\n"
          },
          "metadata": {
            "description": "A JSON mapping of any Metadata for this Logic App Integration Account Certificate.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Logic App Integration Account Certificate. Changing this forces a new Logic App Integration Account Certificate to be created.\n",
            "type": "string"
          },
          "publicCertificate": {
            "description": "The public certificate for the Logic App Integration Account Certificate.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Logic App Integration Account Certificate should exist. Changing this forces a new Logic App Integration Account Certificate to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/integrationAccountMap:IntegrationAccountMap": {
      "description": "Manages a Logic App Integration Account Map.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * from \"fs\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleIntegrationAccount = new azure.logicapps.IntegrationAccount(\"exampleIntegrationAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Standard\",\n});\nconst exampleIntegrationAccountMap = new azure.logicapps.IntegrationAccountMap(\"exampleIntegrationAccountMap\", {\n    resourceGroupName: exampleResourceGroup.name,\n    integrationAccountName: exampleIntegrationAccount.name,\n    mapType: \"Xslt\",\n    content: fs.readFileSync(\"testdata/integration_account_map_content.xsd\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_integration_account = azure.logicapps.IntegrationAccount(\"exampleIntegrationAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Standard\")\nexample_integration_account_map = azure.logicapps.IntegrationAccountMap(\"exampleIntegrationAccountMap\",\n    resource_group_name=example_resource_group.name,\n    integration_account_name=example_integration_account.name,\n    map_type=\"Xslt\",\n    content=(lambda path: open(path).read())(\"testdata/integration_account_map_content.xsd\"))\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleIntegrationAccount = new Azure.LogicApps.IntegrationAccount(\"exampleIntegrationAccount\", new Azure.LogicApps.IntegrationAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Standard\",\n        });\n        var exampleIntegrationAccountMap = new Azure.LogicApps.IntegrationAccountMap(\"exampleIntegrationAccountMap\", new Azure.LogicApps.IntegrationAccountMapArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IntegrationAccountName = exampleIntegrationAccount.Name,\n            MapType = \"Xslt\",\n            Content = File.ReadAllText(\"testdata/integration_account_map_content.xsd\"),\n        });\n    }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogic App Integration Account Maps can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/integrationAccountMap:IntegrationAccountMap example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Logic/integrationAccounts/account1/maps/map1\n```\n\n ",
      "inputProperties": {
        "content": {
          "description": "The content of the Logic App Integration Account Map.\n",
          "type": "string"
        },
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Map to be created.\n",
          "type": "string"
        },
        "mapType": {
          "description": "The type of the Logic App Integration Account Map.\n",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The metadata of the Logic App Integration Account Map.\n",
          "type": "object"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Map. Changing this forces a new Logic App Integration Account Map to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Map should exist. Changing this forces a new Logic App Integration Account Map to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "content": {
          "description": "The content of the Logic App Integration Account Map.\n",
          "type": "string"
        },
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Map to be created.\n",
          "type": "string"
        },
        "mapType": {
          "description": "The type of the Logic App Integration Account Map.\n",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The metadata of the Logic App Integration Account Map.\n",
          "type": "object"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Map. Changing this forces a new Logic App Integration Account Map to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Map should exist. Changing this forces a new Logic App Integration Account Map to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "content",
        "integrationAccountName",
        "mapType",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "content",
        "integrationAccountName",
        "mapType",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IntegrationAccountMap resources.\n",
        "properties": {
          "content": {
            "description": "The content of the Logic App Integration Account Map.\n",
            "type": "string"
          },
          "integrationAccountName": {
            "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Map to be created.\n",
            "type": "string"
          },
          "mapType": {
            "description": "The type of the Logic App Integration Account Map.\n",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The metadata of the Logic App Integration Account Map.\n",
            "type": "object"
          },
          "name": {
            "description": "The name which should be used for this Logic App Integration Account Map. Changing this forces a new Logic App Integration Account Map to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Logic App Integration Account Map should exist. Changing this forces a new Logic App Integration Account Map to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/integrationAccountPartner:IntegrationAccountPartner": {
      "description": "Manages a Logic App Integration Account Partner.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleIntegrationAccount = new azure.logicapps.IntegrationAccount(\"exampleIntegrationAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Standard\",\n});\nconst exampleIntegrationAccountPartner = new azure.logicapps.IntegrationAccountPartner(\"exampleIntegrationAccountPartner\", {\n    resourceGroupName: exampleResourceGroup.name,\n    integrationAccountName: exampleIntegrationAccount.name,\n    businessIdentities: [{\n        qualifier: \"ZZ\",\n        value: \"AA\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_integration_account = azure.logicapps.IntegrationAccount(\"exampleIntegrationAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Standard\")\nexample_integration_account_partner = azure.logicapps.IntegrationAccountPartner(\"exampleIntegrationAccountPartner\",\n    resource_group_name=example_resource_group.name,\n    integration_account_name=example_integration_account.name,\n    business_identities=[azure.logicapps.IntegrationAccountPartnerBusinessIdentityArgs(\n        qualifier=\"ZZ\",\n        value=\"AA\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleIntegrationAccount = new Azure.LogicApps.IntegrationAccount(\"exampleIntegrationAccount\", new Azure.LogicApps.IntegrationAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Standard\",\n        });\n        var exampleIntegrationAccountPartner = new Azure.LogicApps.IntegrationAccountPartner(\"exampleIntegrationAccountPartner\", new Azure.LogicApps.IntegrationAccountPartnerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IntegrationAccountName = exampleIntegrationAccount.Name,\n            BusinessIdentities = \n            {\n                new Azure.LogicApps.Inputs.IntegrationAccountPartnerBusinessIdentityArgs\n                {\n                    Qualifier = \"ZZ\",\n                    Value = \"AA\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/logicapps\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIntegrationAccount, err := logicapps.NewIntegrationAccount(ctx, \"exampleIntegrationAccount\", \u0026logicapps.IntegrationAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = logicapps.NewIntegrationAccountPartner(ctx, \"exampleIntegrationAccountPartner\", \u0026logicapps.IntegrationAccountPartnerArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tIntegrationAccountName: exampleIntegrationAccount.Name,\n\t\t\tBusinessIdentities: logicapps.IntegrationAccountPartnerBusinessIdentityArray{\n\t\t\t\t\u0026logicapps.IntegrationAccountPartnerBusinessIdentityArgs{\n\t\t\t\t\tQualifier: pulumi.String(\"ZZ\"),\n\t\t\t\t\tValue:     pulumi.String(\"AA\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogic App Integration Account Partners can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/integrationAccountPartner:IntegrationAccountPartner example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Logic/integrationAccounts/account1/partners/partner1\n```\n\n ",
      "inputProperties": {
        "businessIdentities": {
          "description": "A `business_identity` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:logicapps/IntegrationAccountPartnerBusinessIdentity:IntegrationAccountPartnerBusinessIdentity"
          },
          "type": "array"
        },
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Partner to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "A JSON mapping of any Metadata for this Logic App Integration Account Partner.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Partner. Changing this forces a new Logic App Integration Account Partner to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Partner should exist. Changing this forces a new Logic App Integration Account Partner to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "businessIdentities": {
          "description": "A `business_identity` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:logicapps/IntegrationAccountPartnerBusinessIdentity:IntegrationAccountPartnerBusinessIdentity"
          },
          "type": "array"
        },
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Partner to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "A JSON mapping of any Metadata for this Logic App Integration Account Partner.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Partner. Changing this forces a new Logic App Integration Account Partner to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Partner should exist. Changing this forces a new Logic App Integration Account Partner to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "businessIdentities",
        "integrationAccountName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "businessIdentities",
        "integrationAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IntegrationAccountPartner resources.\n",
        "properties": {
          "businessIdentities": {
            "description": "A `business_identity` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:logicapps/IntegrationAccountPartnerBusinessIdentity:IntegrationAccountPartnerBusinessIdentity"
            },
            "type": "array"
          },
          "integrationAccountName": {
            "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Partner to be created.\n",
            "type": "string"
          },
          "metadata": {
            "description": "A JSON mapping of any Metadata for this Logic App Integration Account Partner.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Logic App Integration Account Partner. Changing this forces a new Logic App Integration Account Partner to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Logic App Integration Account Partner should exist. Changing this forces a new Logic App Integration Account Partner to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/integrationAccountSchema:IntegrationAccountSchema": {
      "description": "Manages a Logic App Integration Account Schema.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * from \"fs\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleIntegrationAccount = new azure.logicapps.IntegrationAccount(\"exampleIntegrationAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Basic\",\n});\nconst exampleIntegrationAccountSchema = new azure.logicapps.IntegrationAccountSchema(\"exampleIntegrationAccountSchema\", {\n    resourceGroupName: exampleResourceGroup.name,\n    integrationAccountName: exampleIntegrationAccount.name,\n    content: fs.readFileSync(\"testdata/integration_account_schema_content.xsd\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_integration_account = azure.logicapps.IntegrationAccount(\"exampleIntegrationAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Basic\")\nexample_integration_account_schema = azure.logicapps.IntegrationAccountSchema(\"exampleIntegrationAccountSchema\",\n    resource_group_name=example_resource_group.name,\n    integration_account_name=example_integration_account.name,\n    content=(lambda path: open(path).read())(\"testdata/integration_account_schema_content.xsd\"))\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleIntegrationAccount = new Azure.LogicApps.IntegrationAccount(\"exampleIntegrationAccount\", new Azure.LogicApps.IntegrationAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Basic\",\n        });\n        var exampleIntegrationAccountSchema = new Azure.LogicApps.IntegrationAccountSchema(\"exampleIntegrationAccountSchema\", new Azure.LogicApps.IntegrationAccountSchemaArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            IntegrationAccountName = exampleIntegrationAccount.Name,\n            Content = File.ReadAllText(\"testdata/integration_account_schema_content.xsd\"),\n        });\n    }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogic App Integration Account Schemas can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/integrationAccountSchema:IntegrationAccountSchema example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Logic/integrationAccounts/account1/schemas/schema1\n```\n\n ",
      "inputProperties": {
        "content": {
          "description": "The content of the Logic App Integration Account Schema.\n",
          "type": "string"
        },
        "fileName": {
          "description": "The file name of the Logic App Integration Account Schema.\n",
          "type": "string"
        },
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Schema to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "The metadata of the Logic App Integration Account Schema.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Schema. Changing this forces a new Logic App Integration Account Schema to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Schema should exist. Changing this forces a new Logic App Integration Account Schema to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "content": {
          "description": "The content of the Logic App Integration Account Schema.\n",
          "type": "string"
        },
        "fileName": {
          "description": "The file name of the Logic App Integration Account Schema.\n",
          "type": "string"
        },
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Schema to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "The metadata of the Logic App Integration Account Schema.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Schema. Changing this forces a new Logic App Integration Account Schema to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Schema should exist. Changing this forces a new Logic App Integration Account Schema to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "content",
        "integrationAccountName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "content",
        "integrationAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IntegrationAccountSchema resources.\n",
        "properties": {
          "content": {
            "description": "The content of the Logic App Integration Account Schema.\n",
            "type": "string"
          },
          "fileName": {
            "description": "The file name of the Logic App Integration Account Schema.\n",
            "type": "string"
          },
          "integrationAccountName": {
            "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Schema to be created.\n",
            "type": "string"
          },
          "metadata": {
            "description": "The metadata of the Logic App Integration Account Schema.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Logic App Integration Account Schema. Changing this forces a new Logic App Integration Account Schema to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Logic App Integration Account Schema should exist. Changing this forces a new Logic App Integration Account Schema to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/integrationAccountSession:IntegrationAccountSession": {
      "description": "Manages a Logic App Integration Account Session.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleIntegrationAccount = new azure.logicapps.IntegrationAccount(\"exampleIntegrationAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Basic\",\n});\nconst exampleIntegrationAccountSession = new azure.logicapps.IntegrationAccountSession(\"exampleIntegrationAccountSession\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    integrationAccountName: exampleIntegrationAccount.name,\n    content: `\t{\n       \"controlNumber\": \"1234\"\n    }\n`,\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogic App Integration Account Sessions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/integrationAccountSession:IntegrationAccountSession example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Logic/integrationAccounts/account1/sessions/session1\n```\n\n ",
      "inputProperties": {
        "content": {
          "description": "The content of the Logic App Integration Account Session.\n",
          "type": "string"
        },
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Session to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Session. Changing this forces a new Logic App Integration Account Session to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Session should exist. Changing this forces a new Logic App Integration Account Session to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "content": {
          "description": "The content of the Logic App Integration Account Session.\n",
          "type": "string"
        },
        "integrationAccountName": {
          "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Session to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Logic App Integration Account Session. Changing this forces a new Logic App Integration Account Session to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Logic App Integration Account Session should exist. Changing this forces a new Logic App Integration Account Session to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "content",
        "integrationAccountName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "content",
        "integrationAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IntegrationAccountSession resources.\n",
        "properties": {
          "content": {
            "description": "The content of the Logic App Integration Account Session.\n",
            "type": "string"
          },
          "integrationAccountName": {
            "description": "The name of the Logic App Integration Account. Changing this forces a new Logic App Integration Account Session to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Logic App Integration Account Session. Changing this forces a new Logic App Integration Account Session to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Logic App Integration Account Session should exist. Changing this forces a new Logic App Integration Account Session to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/interationServiceEnvironment:InterationServiceEnvironment": {
      "description": "Manages private and isolated Logic App instances within an Azure virtual network.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"10.0.0.0/22\"],\n});\nconst isesubnet1 = new azure.network.Subnet(\"isesubnet1\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/26\"],\n    delegations: [{\n        name: \"integrationServiceEnvironments\",\n        serviceDelegation: {\n            name: \"Microsoft.Logic/integrationServiceEnvironments\",\n        },\n    }],\n});\nconst isesubnet2 = new azure.network.Subnet(\"isesubnet2\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.64/26\"],\n});\nconst isesubnet3 = new azure.network.Subnet(\"isesubnet3\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.128/26\"],\n});\nconst isesubnet4 = new azure.network.Subnet(\"isesubnet4\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.192/26\"],\n});\nconst exampleInterationServiceEnvironment = new azure.logicapps.InterationServiceEnvironment(\"exampleInterationServiceEnvironment\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Developer_0\",\n    accessEndpointType: \"Internal\",\n    virtualNetworkSubnetIds: [\n        isesubnet1.id,\n        isesubnet2.id,\n        isesubnet3.id,\n        isesubnet4.id,\n    ],\n    tags: {\n        environment: \"development\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    address_spaces=[\"10.0.0.0/22\"])\nisesubnet1 = azure.network.Subnet(\"isesubnet1\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/26\"],\n    delegations=[azure.network.SubnetDelegationArgs(\n        name=\"integrationServiceEnvironments\",\n        service_delegation=azure.network.SubnetDelegationServiceDelegationArgs(\n            name=\"Microsoft.Logic/integrationServiceEnvironments\",\n        ),\n    )])\nisesubnet2 = azure.network.Subnet(\"isesubnet2\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.64/26\"])\nisesubnet3 = azure.network.Subnet(\"isesubnet3\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.128/26\"])\nisesubnet4 = azure.network.Subnet(\"isesubnet4\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.192/26\"])\nexample_interation_service_environment = azure.logicapps.InterationServiceEnvironment(\"exampleInterationServiceEnvironment\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Developer_0\",\n    access_endpoint_type=\"Internal\",\n    virtual_network_subnet_ids=[\n        isesubnet1.id,\n        isesubnet2.id,\n        isesubnet3.id,\n        isesubnet4.id,\n    ],\n    tags={\n        \"environment\": \"development\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"10.0.0.0/22\",\n            },\n        });\n        var isesubnet1 = new Azure.Network.Subnet(\"isesubnet1\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/26\",\n            },\n            Delegations = \n            {\n                new Azure.Network.Inputs.SubnetDelegationArgs\n                {\n                    Name = \"integrationServiceEnvironments\",\n                    ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs\n                    {\n                        Name = \"Microsoft.Logic/integrationServiceEnvironments\",\n                    },\n                },\n            },\n        });\n        var isesubnet2 = new Azure.Network.Subnet(\"isesubnet2\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.64/26\",\n            },\n        });\n        var isesubnet3 = new Azure.Network.Subnet(\"isesubnet3\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.128/26\",\n            },\n        });\n        var isesubnet4 = new Azure.Network.Subnet(\"isesubnet4\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.192/26\",\n            },\n        });\n        var exampleInterationServiceEnvironment = new Azure.LogicApps.InterationServiceEnvironment(\"exampleInterationServiceEnvironment\", new Azure.LogicApps.InterationServiceEnvironmentArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Developer_0\",\n            AccessEndpointType = \"Internal\",\n            VirtualNetworkSubnetIds = \n            {\n                isesubnet1.Id,\n                isesubnet2.Id,\n                isesubnet3.Id,\n                isesubnet4.Id,\n            },\n            Tags = \n            {\n                { \"environment\", \"development\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/logicapps\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/22\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tisesubnet1, err := network.NewSubnet(ctx, \"isesubnet1\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/26\"),\n\t\t\t},\n\t\t\tDelegations: network.SubnetDelegationArray{\n\t\t\t\t\u0026network.SubnetDelegationArgs{\n\t\t\t\t\tName: pulumi.String(\"integrationServiceEnvironments\"),\n\t\t\t\t\tServiceDelegation: \u0026network.SubnetDelegationServiceDelegationArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Microsoft.Logic/integrationServiceEnvironments\"),\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\tisesubnet2, err := network.NewSubnet(ctx, \"isesubnet2\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.64/26\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tisesubnet3, err := network.NewSubnet(ctx, \"isesubnet3\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.128/26\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tisesubnet4, err := network.NewSubnet(ctx, \"isesubnet4\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.192/26\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = logicapps.NewInterationServiceEnvironment(ctx, \"exampleInterationServiceEnvironment\", \u0026logicapps.InterationServiceEnvironmentArgs{\n\t\t\tLocation:           exampleResourceGroup.Location,\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tSkuName:            pulumi.String(\"Developer_0\"),\n\t\t\tAccessEndpointType: pulumi.String(\"Internal\"),\n\t\t\tVirtualNetworkSubnetIds: pulumi.StringArray{\n\t\t\t\tisesubnet1.ID(),\n\t\t\t\tisesubnet2.ID(),\n\t\t\t\tisesubnet3.ID(),\n\t\t\t\tisesubnet4.ID(),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"development\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIntegration Service Environments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/interationServiceEnvironment:InterationServiceEnvironment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Logic/integrationServiceEnvironments/ise1\n```\n\n ",
      "inputProperties": {
        "accessEndpointType": {
          "description": "The type of access endpoint to use for the Integration Service Environment. Possible Values are `Internal` and `External`. Changing this forces a new Integration Service Environment to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Integration Service Environment should exist. Changing this forces a new Integration Service Environment to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Integration Service Environment. Changing this forces a new Integration Service Environment to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Integration Service Environment should exist. Changing this forces a new Integration Service Environment to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The sku name and capacity of the Integration Service Environment. Possible Values for `sku` element are `Developer` and `Premium` and possible values for the `capacity` element are from `0` to `10`.  Defaults to `sku` of `Developer` with a `Capacity` of `0` (e.g. `Developer_0`). Changing this forces a new Integration Service Environment to be created when `sku` element is not the same with existing one.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Integration Service Environment.\n",
          "type": "object"
        },
        "virtualNetworkSubnetIds": {
          "description": "A list of virtual network subnet ids to be used by Integration Service Environment. Exactly four distinct ids to subnets must be provided. Changing this forces a new Integration Service Environment to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "accessEndpointType": {
          "description": "The type of access endpoint to use for the Integration Service Environment. Possible Values are `Internal` and `External`. Changing this forces a new Integration Service Environment to be created.\n",
          "type": "string"
        },
        "connectorEndpointIpAddresses": {
          "description": "The list of access endpoint ip addresses of connector.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectorOutboundIpAddresses": {
          "description": "The list of outgoing ip addresses of connector.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "The Azure Region where the Integration Service Environment should exist. Changing this forces a new Integration Service Environment to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Integration Service Environment. Changing this forces a new Integration Service Environment to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Integration Service Environment should exist. Changing this forces a new Integration Service Environment to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The sku name and capacity of the Integration Service Environment. Possible Values for `sku` element are `Developer` and `Premium` and possible values for the `capacity` element are from `0` to `10`.  Defaults to `sku` of `Developer` with a `Capacity` of `0` (e.g. `Developer_0`). Changing this forces a new Integration Service Environment to be created when `sku` element is not the same with existing one.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Integration Service Environment.\n",
          "type": "object"
        },
        "virtualNetworkSubnetIds": {
          "description": "A list of virtual network subnet ids to be used by Integration Service Environment. Exactly four distinct ids to subnets must be provided. Changing this forces a new Integration Service Environment to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "workflowEndpointIpAddresses": {
          "description": "The list of access endpoint ip addresses of workflow.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "workflowOutboundIpAddresses": {
          "description": "The list of outgoing ip addresses of workflow.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "accessEndpointType",
        "connectorEndpointIpAddresses",
        "connectorOutboundIpAddresses",
        "location",
        "name",
        "resourceGroupName",
        "virtualNetworkSubnetIds",
        "workflowEndpointIpAddresses",
        "workflowOutboundIpAddresses"
      ],
      "requiredInputs": [
        "accessEndpointType",
        "resourceGroupName",
        "virtualNetworkSubnetIds"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering InterationServiceEnvironment resources.\n",
        "properties": {
          "accessEndpointType": {
            "description": "The type of access endpoint to use for the Integration Service Environment. Possible Values are `Internal` and `External`. Changing this forces a new Integration Service Environment to be created.\n",
            "type": "string"
          },
          "connectorEndpointIpAddresses": {
            "description": "The list of access endpoint ip addresses of connector.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "connectorOutboundIpAddresses": {
            "description": "The list of outgoing ip addresses of connector.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "The Azure Region where the Integration Service Environment should exist. Changing this forces a new Integration Service Environment to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Integration Service Environment. Changing this forces a new Integration Service Environment to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Integration Service Environment should exist. Changing this forces a new Integration Service Environment to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The sku name and capacity of the Integration Service Environment. Possible Values for `sku` element are `Developer` and `Premium` and possible values for the `capacity` element are from `0` to `10`.  Defaults to `sku` of `Developer` with a `Capacity` of `0` (e.g. `Developer_0`). Changing this forces a new Integration Service Environment to be created when `sku` element is not the same with existing one.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Integration Service Environment.\n",
            "type": "object"
          },
          "virtualNetworkSubnetIds": {
            "description": "A list of virtual network subnet ids to be used by Integration Service Environment. Exactly four distinct ids to subnets must be provided. Changing this forces a new Integration Service Environment to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "workflowEndpointIpAddresses": {
            "description": "The list of access endpoint ip addresses of workflow.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "workflowOutboundIpAddresses": {
            "description": "The list of outgoing ip addresses of workflow.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/triggerCustom:TriggerCustom": {
      "description": "Manages a Custom Trigger within a Logic App Workflow\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleWorkflow = new azure.logicapps.Workflow(\"exampleWorkflow\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleTriggerCustom = new azure.logicapps.TriggerCustom(\"exampleTriggerCustom\", {\n    logicAppId: exampleWorkflow.id,\n    body: `{\n  \"recurrence\": {\n    \"frequency\": \"Day\",\n    \"interval\": 1\n  },\n  \"type\": \"Recurrence\"\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_workflow = azure.logicapps.Workflow(\"exampleWorkflow\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_trigger_custom = azure.logicapps.TriggerCustom(\"exampleTriggerCustom\",\n    logic_app_id=example_workflow.id,\n    body=\"\"\"{\n  \"recurrence\": {\n    \"frequency\": \"Day\",\n    \"interval\": 1\n  },\n  \"type\": \"Recurrence\"\n}\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleWorkflow = new Azure.LogicApps.Workflow(\"exampleWorkflow\", new Azure.LogicApps.WorkflowArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleTriggerCustom = new Azure.LogicApps.TriggerCustom(\"exampleTriggerCustom\", new Azure.LogicApps.TriggerCustomArgs\n        {\n            LogicAppId = exampleWorkflow.Id,\n            Body = @\"{\n  \"\"recurrence\"\": {\n    \"\"frequency\"\": \"\"Day\"\",\n    \"\"interval\"\": 1\n  },\n  \"\"type\"\": \"\"Recurrence\"\"\n}\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/logicapps\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkflow, err := logicapps.NewWorkflow(ctx, \"exampleWorkflow\", \u0026logicapps.WorkflowArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = logicapps.NewTriggerCustom(ctx, \"exampleTriggerCustom\", \u0026logicapps.TriggerCustomArgs{\n\t\t\tLogicAppId: exampleWorkflow.ID(),\n\t\t\tBody:       pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v\", \"{\\n\", \"  \\\"recurrence\\\": {\\n\", \"    \\\"frequency\\\": \\\"Day\\\",\\n\", \"    \\\"interval\\\": 1\\n\", \"  },\\n\", \"  \\\"type\\\": \\\"Recurrence\\\"\\n\", \"}\\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogic App Custom Triggers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/triggerCustom:TriggerCustom custom1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Logic/workflows/workflow1/triggers/custom1\n```\n\n ",
      "inputProperties": {
        "body": {
          "description": "Specifies the JSON Blob defining the Body of this Custom Trigger.\n",
          "type": "string"
        },
        "logicAppId": {
          "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the HTTP Trigger to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "body": {
          "description": "Specifies the JSON Blob defining the Body of this Custom Trigger.\n",
          "type": "string"
        },
        "logicAppId": {
          "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the HTTP Trigger to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "body",
        "logicAppId",
        "name"
      ],
      "requiredInputs": [
        "body",
        "logicAppId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TriggerCustom resources.\n",
        "properties": {
          "body": {
            "description": "Specifies the JSON Blob defining the Body of this Custom Trigger.\n",
            "type": "string"
          },
          "logicAppId": {
            "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the HTTP Trigger to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/triggerHttpRequest:TriggerHttpRequest": {
      "description": "Manages a HTTP Request Trigger within a Logic App Workflow\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleWorkflow = new azure.logicapps.Workflow(\"exampleWorkflow\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleTriggerHttpRequest = new azure.logicapps.TriggerHttpRequest(\"exampleTriggerHttpRequest\", {\n    logicAppId: exampleWorkflow.id,\n    schema: `{\n    \"type\": \"object\",\n    \"properties\": {\n        \"hello\": {\n            \"type\": \"string\"\n        }\n    }\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_workflow = azure.logicapps.Workflow(\"exampleWorkflow\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_trigger_http_request = azure.logicapps.TriggerHttpRequest(\"exampleTriggerHttpRequest\",\n    logic_app_id=example_workflow.id,\n    schema=\"\"\"{\n    \"type\": \"object\",\n    \"properties\": {\n        \"hello\": {\n            \"type\": \"string\"\n        }\n    }\n}\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleWorkflow = new Azure.LogicApps.Workflow(\"exampleWorkflow\", new Azure.LogicApps.WorkflowArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleTriggerHttpRequest = new Azure.LogicApps.TriggerHttpRequest(\"exampleTriggerHttpRequest\", new Azure.LogicApps.TriggerHttpRequestArgs\n        {\n            LogicAppId = exampleWorkflow.Id,\n            Schema = @\"{\n    \"\"type\"\": \"\"object\"\",\n    \"\"properties\"\": {\n        \"\"hello\"\": {\n            \"\"type\"\": \"\"string\"\"\n        }\n    }\n}\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/logicapps\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkflow, err := logicapps.NewWorkflow(ctx, \"exampleWorkflow\", \u0026logicapps.WorkflowArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = logicapps.NewTriggerHttpRequest(ctx, \"exampleTriggerHttpRequest\", \u0026logicapps.TriggerHttpRequestArgs{\n\t\t\tLogicAppId: exampleWorkflow.ID(),\n\t\t\tSchema:     pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v\", \"{\\n\", \"    \\\"type\\\": \\\"object\\\",\\n\", \"    \\\"properties\\\": {\\n\", \"        \\\"hello\\\": {\\n\", \"            \\\"type\\\": \\\"string\\\"\\n\", \"        }\\n\", \"    }\\n\", \"}\\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogic App HTTP Request Triggers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/triggerHttpRequest:TriggerHttpRequest request1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Logic/workflows/workflow1/triggers/request1\n```\n\n ",
      "inputProperties": {
        "logicAppId": {
          "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "method": {
          "description": "Specifies the HTTP Method which the request be using. Possible values include `DELETE`, `GET`, `PATCH`, `POST` or `PUT`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the HTTP Request Trigger to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "relativePath": {
          "description": "Specifies the Relative Path used for this Request.\n",
          "type": "string"
        },
        "schema": {
          "description": "A JSON Blob defining the Schema of the incoming request. This needs to be valid JSON.\n",
          "type": "string"
        }
      },
      "properties": {
        "callbackUrl": {
          "description": "The URL for the workflow trigger\n",
          "type": "string"
        },
        "logicAppId": {
          "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "method": {
          "description": "Specifies the HTTP Method which the request be using. Possible values include `DELETE`, `GET`, `PATCH`, `POST` or `PUT`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the HTTP Request Trigger to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "relativePath": {
          "description": "Specifies the Relative Path used for this Request.\n",
          "type": "string"
        },
        "schema": {
          "description": "A JSON Blob defining the Schema of the incoming request. This needs to be valid JSON.\n",
          "type": "string"
        }
      },
      "required": [
        "callbackUrl",
        "logicAppId",
        "name",
        "schema"
      ],
      "requiredInputs": [
        "logicAppId",
        "schema"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TriggerHttpRequest resources.\n",
        "properties": {
          "callbackUrl": {
            "description": "The URL for the workflow trigger\n",
            "type": "string"
          },
          "logicAppId": {
            "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "method": {
            "description": "Specifies the HTTP Method which the request be using. Possible values include `DELETE`, `GET`, `PATCH`, `POST` or `PUT`.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the HTTP Request Trigger to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "relativePath": {
            "description": "Specifies the Relative Path used for this Request.\n",
            "type": "string"
          },
          "schema": {
            "description": "A JSON Blob defining the Schema of the incoming request. This needs to be valid JSON.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/triggerRecurrence:TriggerRecurrence": {
      "description": "Manages a Recurrence Trigger within a Logic App Workflow\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleWorkflow = new azure.logicapps.Workflow(\"exampleWorkflow\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleTriggerRecurrence = new azure.logicapps.TriggerRecurrence(\"exampleTriggerRecurrence\", {\n    logicAppId: exampleWorkflow.id,\n    frequency: \"Day\",\n    interval: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_workflow = azure.logicapps.Workflow(\"exampleWorkflow\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_trigger_recurrence = azure.logicapps.TriggerRecurrence(\"exampleTriggerRecurrence\",\n    logic_app_id=example_workflow.id,\n    frequency=\"Day\",\n    interval=1)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleWorkflow = new Azure.LogicApps.Workflow(\"exampleWorkflow\", new Azure.LogicApps.WorkflowArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleTriggerRecurrence = new Azure.LogicApps.TriggerRecurrence(\"exampleTriggerRecurrence\", new Azure.LogicApps.TriggerRecurrenceArgs\n        {\n            LogicAppId = exampleWorkflow.Id,\n            Frequency = \"Day\",\n            Interval = 1,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/logicapps\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkflow, err := logicapps.NewWorkflow(ctx, \"exampleWorkflow\", \u0026logicapps.WorkflowArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = logicapps.NewTriggerRecurrence(ctx, \"exampleTriggerRecurrence\", \u0026logicapps.TriggerRecurrenceArgs{\n\t\t\tLogicAppId: exampleWorkflow.ID(),\n\t\t\tFrequency:  pulumi.String(\"Day\"),\n\t\t\tInterval:   pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogic App Recurrence Triggers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/triggerRecurrence:TriggerRecurrence daily /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Logic/workflows/workflow1/triggers/daily\n```\n\n ",
      "inputProperties": {
        "frequency": {
          "description": "Specifies the Frequency at which this Trigger should be run. Possible values include `Month`, `Week`, `Day`, `Hour`, `Minute` and `Second`.\n",
          "type": "string"
        },
        "interval": {
          "description": "Specifies interval used for the Frequency, for example a value of `4` for `interval` and `hour` for `frequency` would run the Trigger every 4 hours.\n",
          "type": "integer"
        },
        "logicAppId": {
          "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Recurrence Triggers to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "schedule": {
          "$ref": "#/types/azure:logicapps/TriggerRecurrenceSchedule:TriggerRecurrenceSchedule",
          "description": "A `schedule` block as specified below.\n"
        },
        "startTime": {
          "description": "Specifies the start date and time for this trigger in RFC3339 format: `2000-01-02T03:04:05Z`.\n",
          "type": "string"
        },
        "timeZone": {
          "description": "Specifies the time zone for this trigger.  Supported time zone options are listed [here](https://support.microsoft.com/en-us/help/973627/microsoft-time-zone-index-values)\n",
          "type": "string"
        }
      },
      "properties": {
        "frequency": {
          "description": "Specifies the Frequency at which this Trigger should be run. Possible values include `Month`, `Week`, `Day`, `Hour`, `Minute` and `Second`.\n",
          "type": "string"
        },
        "interval": {
          "description": "Specifies interval used for the Frequency, for example a value of `4` for `interval` and `hour` for `frequency` would run the Trigger every 4 hours.\n",
          "type": "integer"
        },
        "logicAppId": {
          "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Recurrence Triggers to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "schedule": {
          "$ref": "#/types/azure:logicapps/TriggerRecurrenceSchedule:TriggerRecurrenceSchedule",
          "description": "A `schedule` block as specified below.\n"
        },
        "startTime": {
          "description": "Specifies the start date and time for this trigger in RFC3339 format: `2000-01-02T03:04:05Z`.\n",
          "type": "string"
        },
        "timeZone": {
          "description": "Specifies the time zone for this trigger.  Supported time zone options are listed [here](https://support.microsoft.com/en-us/help/973627/microsoft-time-zone-index-values)\n",
          "type": "string"
        }
      },
      "required": [
        "frequency",
        "interval",
        "logicAppId",
        "name",
        "timeZone"
      ],
      "requiredInputs": [
        "frequency",
        "interval",
        "logicAppId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TriggerRecurrence resources.\n",
        "properties": {
          "frequency": {
            "description": "Specifies the Frequency at which this Trigger should be run. Possible values include `Month`, `Week`, `Day`, `Hour`, `Minute` and `Second`.\n",
            "type": "string"
          },
          "interval": {
            "description": "Specifies interval used for the Frequency, for example a value of `4` for `interval` and `hour` for `frequency` would run the Trigger every 4 hours.\n",
            "type": "integer"
          },
          "logicAppId": {
            "description": "Specifies the ID of the Logic App Workflow. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Recurrence Triggers to be created within the Logic App Workflow. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "schedule": {
            "$ref": "#/types/azure:logicapps/TriggerRecurrenceSchedule:TriggerRecurrenceSchedule",
            "description": "A `schedule` block as specified below.\n"
          },
          "startTime": {
            "description": "Specifies the start date and time for this trigger in RFC3339 format: `2000-01-02T03:04:05Z`.\n",
            "type": "string"
          },
          "timeZone": {
            "description": "Specifies the time zone for this trigger.  Supported time zone options are listed [here](https://support.microsoft.com/en-us/help/973627/microsoft-time-zone-index-values)\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:logicapps/workflow:Workflow": {
      "description": "Manages a Logic App Workflow.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleWorkflow = new azure.logicapps.Workflow(\"exampleWorkflow\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_workflow = azure.logicapps.Workflow(\"exampleWorkflow\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleWorkflow = new Azure.LogicApps.Workflow(\"exampleWorkflow\", new Azure.LogicApps.WorkflowArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/logicapps\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = logicapps.NewWorkflow(ctx, \"exampleWorkflow\", \u0026logicapps.WorkflowArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogic App Workflows can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:logicapps/workflow:Workflow workflow1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Logic/workflows/workflow1\n```\n\n ",
      "inputProperties": {
        "integrationServiceEnvironmentId": {
          "description": "The ID of the Integration Service Environment to which this Logic App Workflow belongs.  Changing this forces a new Logic App Workflow to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the Logic App Workflow exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logicAppIntegrationAccountId": {
          "description": "The ID of the integration account linked by this Logic App Workflow.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Key-Value pairs.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Logic App Workflow should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "workflowParameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies a map of Key-Value pairs of the Parameter Definitions to use for this Logic App Workflow. The key is the parameter name, and the value is a json encoded string of the parameter definition (see: https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-workflow-definition-language#parameters).\n",
          "type": "object"
        },
        "workflowSchema": {
          "description": "Specifies the Schema to use for this Logic App Workflow. Defaults to `https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "workflowVersion": {
          "description": "Specifies the version of the Schema used for this Logic App Workflow. Defaults to `1.0.0.0`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "accessEndpoint": {
          "description": "The Access Endpoint for the Logic App Workflow.\n",
          "type": "string"
        },
        "connectorEndpointIpAddresses": {
          "description": "The list of access endpoint ip addresses of connector.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "connectorOutboundIpAddresses": {
          "description": "The list of outgoing ip addresses of connector.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "integrationServiceEnvironmentId": {
          "description": "The ID of the Integration Service Environment to which this Logic App Workflow belongs.  Changing this forces a new Logic App Workflow to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the Logic App Workflow exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logicAppIntegrationAccountId": {
          "description": "The ID of the integration account linked by this Logic App Workflow.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Logic App Workflow. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Key-Value pairs.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Logic App Workflow should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "workflowEndpointIpAddresses": {
          "description": "The list of access endpoint ip addresses of workflow.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "workflowOutboundIpAddresses": {
          "description": "The list of outgoing ip addresses of workflow.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "workflowParameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specifies a map of Key-Value pairs of the Parameter Definitions to use for this Logic App Workflow. The key is the parameter name, and the value is a json encoded string of the parameter definition (see: https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-workflow-definition-language#parameters).\n",
          "type": "object"
        },
        "workflowSchema": {
          "description": "Specifies the Schema to use for this Logic App Workflow. Defaults to `https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "workflowVersion": {
          "description": "Specifies the version of the Schema used for this Logic App Workflow. Defaults to `1.0.0.0`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "accessEndpoint",
        "connectorEndpointIpAddresses",
        "connectorOutboundIpAddresses",
        "location",
        "name",
        "resourceGroupName",
        "workflowEndpointIpAddresses",
        "workflowOutboundIpAddresses"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Workflow resources.\n",
        "properties": {
          "accessEndpoint": {
            "description": "The Access Endpoint for the Logic App Workflow.\n",
            "type": "string"
          },
          "connectorEndpointIpAddresses": {
            "description": "The list of access endpoint ip addresses of connector.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "connectorOutboundIpAddresses": {
            "description": "The list of outgoing ip addresses of connector.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "integrationServiceEnvironmentId": {
            "description": "The ID of the Integration Service Environment to which this Logic App Workflow belongs.  Changing this forces a new Logic App Workflow to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the Logic App Workflow exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "logicAppIntegrationAccountId": {
            "description": "The ID of the integration account linked by this Logic App Workflow.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Logic App Workflow. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of Key-Value pairs.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Logic App Workflow should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "workflowEndpointIpAddresses": {
            "description": "The list of access endpoint ip addresses of workflow.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "workflowOutboundIpAddresses": {
            "description": "The list of outgoing ip addresses of workflow.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "workflowParameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Specifies a map of Key-Value pairs of the Parameter Definitions to use for this Logic App Workflow. The key is the parameter name, and the value is a json encoded string of the parameter definition (see: https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-workflow-definition-language#parameters).\n",
            "type": "object"
          },
          "workflowSchema": {
            "description": "Specifies the Schema to use for this Logic App Workflow. Defaults to `https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "workflowVersion": {
            "description": "Specifies the version of the Schema used for this Logic App Workflow. Defaults to `1.0.0.0`. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:machinelearning/computeCluster:ComputeCluster": {
      "description": "Manages a Machine Learning Compute Cluster.\n**NOTE:** At this point in time the resource cannot be updated (not supported by the backend Azure Go SDK). Therefore it can only be created and deleted, not updated. At the moment, there is also no possibility to specify ssh User Account Credentials to ssh into the compute cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {\n    location: \"west europe\",\n    tags: {\n        stage: \"example\",\n    },\n});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"web\",\n});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"standard\",\n    purgeProtectionEnabled: true,\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleWorkspace = new azure.machinelearning.Workspace(\"exampleWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationInsightsId: exampleInsights.id,\n    keyVaultId: exampleKeyVault.id,\n    storageAccountId: exampleAccount.id,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.1.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.1.0.0/24\"],\n});\nconst test = new azure.machinelearning.ComputeCluster(\"test\", {\n    location: \"West Europe\",\n    vmPriority: \"LowPriority\",\n    vmSize: \"Standard_DS2_v2\",\n    machineLearningWorkspaceId: exampleWorkspace.id,\n    subnetResourceId: exampleSubnet.id,\n    scaleSettings: {\n        minNodeCount: 0,\n        maxNodeCount: 1,\n        scaleDownNodesAfterIdleDuration: \"PT30S\",\n    },\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\",\n    location=\"west europe\",\n    tags={\n        \"stage\": \"example\",\n    })\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_type=\"web\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"standard\",\n    purge_protection_enabled=True)\nexample_account = azure.storage.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_workspace = azure.machinelearning.Workspace(\"exampleWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_insights_id=example_insights.id,\n    key_vault_id=example_key_vault.id,\n    storage_account_id=example_account.id,\n    identity=azure.machinelearning.WorkspaceIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.1.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.1.0.0/24\"])\ntest = azure.machinelearning.ComputeCluster(\"test\",\n    location=\"West Europe\",\n    vm_priority=\"LowPriority\",\n    vm_size=\"Standard_DS2_v2\",\n    machine_learning_workspace_id=example_workspace.id,\n    subnet_resource_id=example_subnet.id,\n    scale_settings=azure.machinelearning.ComputeClusterScaleSettingsArgs(\n        min_node_count=0,\n        max_node_count=1,\n        scale_down_nodes_after_idle_duration=\"PT30S\",\n    ),\n    identity=azure.machinelearning.ComputeClusterIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"west europe\",\n            Tags = \n            {\n                { \"stage\", \"example\" },\n            },\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"web\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"standard\",\n            PurgeProtectionEnabled = true,\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleWorkspace = new Azure.MachineLearning.Workspace(\"exampleWorkspace\", new Azure.MachineLearning.WorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationInsightsId = exampleInsights.Id,\n            KeyVaultId = exampleKeyVault.Id,\n            StorageAccountId = exampleAccount.Id,\n            Identity = new Azure.MachineLearning.Inputs.WorkspaceIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.1.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.1.0.0/24\",\n            },\n        });\n        var test = new Azure.MachineLearning.ComputeCluster(\"test\", new Azure.MachineLearning.ComputeClusterArgs\n        {\n            Location = \"West Europe\",\n            VmPriority = \"LowPriority\",\n            VmSize = \"Standard_DS2_v2\",\n            MachineLearningWorkspaceId = exampleWorkspace.Id,\n            SubnetResourceId = exampleSubnet.Id,\n            ScaleSettings = new Azure.MachineLearning.Inputs.ComputeClusterScaleSettingsArgs\n            {\n                MinNodeCount = 0,\n                MaxNodeCount = 1,\n                ScaleDownNodesAfterIdleDuration = \"PT30S\",\n            },\n            Identity = new Azure.MachineLearning.Inputs.ComputeClusterIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/machinelearning\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"west europe\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"stage\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tTenantId:               pulumi.String(current.TenantId),\n\t\t\tSkuName:                pulumi.String(\"standard\"),\n\t\t\tPurgeProtectionEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkspace, err := machinelearning.NewWorkspace(ctx, \"exampleWorkspace\", \u0026machinelearning.WorkspaceArgs{\n\t\t\tLocation:              exampleResourceGroup.Location,\n\t\t\tResourceGroupName:     exampleResourceGroup.Name,\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tKeyVaultId:            exampleKeyVault.ID(),\n\t\t\tStorageAccountId:      exampleAccount.ID(),\n\t\t\tIdentity: \u0026machinelearning.WorkspaceIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = machinelearning.NewComputeCluster(ctx, \"test\", \u0026machinelearning.ComputeClusterArgs{\n\t\t\tLocation:                   pulumi.String(\"West Europe\"),\n\t\t\tVmPriority:                 pulumi.String(\"LowPriority\"),\n\t\t\tVmSize:                     pulumi.String(\"Standard_DS2_v2\"),\n\t\t\tMachineLearningWorkspaceId: exampleWorkspace.ID(),\n\t\t\tSubnetResourceId:           exampleSubnet.ID(),\n\t\t\tScaleSettings: \u0026machinelearning.ComputeClusterScaleSettingsArgs{\n\t\t\t\tMinNodeCount:                    pulumi.Int(0),\n\t\t\t\tMaxNodeCount:                    pulumi.Int(1),\n\t\t\t\tScaleDownNodesAfterIdleDuration: pulumi.String(\"PT30S\"),\n\t\t\t},\n\t\t\tIdentity: \u0026machinelearning.ComputeClusterIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMachine Learning Compute Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:machinelearning/computeCluster:ComputeCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.MachineLearningServices/workspaces/workspace1/computes/cluster1\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "The description of the Machine Learning compute. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:machinelearning/ComputeClusterIdentity:ComputeClusterIdentity",
          "description": "A `identity` block as defined below. Changing this forces a new Machine Learning Compute Cluster to be created.\n"
        },
        "location": {
          "description": "The Azure Region where the Machine Learning Compute Cluster should exist. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "string"
        },
        "machineLearningWorkspaceId": {
          "description": "The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Machine Learning Compute Cluster. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "string"
        },
        "scaleSettings": {
          "$ref": "#/types/azure:machinelearning/ComputeClusterScaleSettings:ComputeClusterScaleSettings",
          "description": "A `scale_settings` block as defined below. Changing this forces a new Machine Learning Compute Cluster to be created.\n"
        },
        "subnetResourceId": {
          "description": "The ID of the Subnet that the Compute Cluster should reside in. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Machine Learning Compute Cluster. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "object"
        },
        "vmPriority": {
          "description": "The priority of the VM. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "string"
        },
        "vmSize": {
          "description": "The size of the VM. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "description": {
          "description": "The description of the Machine Learning compute. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:machinelearning/ComputeClusterIdentity:ComputeClusterIdentity",
          "description": "A `identity` block as defined below. Changing this forces a new Machine Learning Compute Cluster to be created.\n"
        },
        "location": {
          "description": "The Azure Region where the Machine Learning Compute Cluster should exist. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "string"
        },
        "machineLearningWorkspaceId": {
          "description": "The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Machine Learning Compute Cluster. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "string"
        },
        "scaleSettings": {
          "$ref": "#/types/azure:machinelearning/ComputeClusterScaleSettings:ComputeClusterScaleSettings",
          "description": "A `scale_settings` block as defined below. Changing this forces a new Machine Learning Compute Cluster to be created.\n"
        },
        "subnetResourceId": {
          "description": "The ID of the Subnet that the Compute Cluster should reside in. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Machine Learning Compute Cluster. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "object"
        },
        "vmPriority": {
          "description": "The priority of the VM. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "string"
        },
        "vmSize": {
          "description": "The size of the VM. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "identity",
        "location",
        "machineLearningWorkspaceId",
        "name",
        "scaleSettings",
        "vmPriority",
        "vmSize"
      ],
      "requiredInputs": [
        "identity",
        "machineLearningWorkspaceId",
        "scaleSettings",
        "vmPriority",
        "vmSize"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeCluster resources.\n",
        "properties": {
          "description": {
            "description": "The description of the Machine Learning compute. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:machinelearning/ComputeClusterIdentity:ComputeClusterIdentity",
            "description": "A `identity` block as defined below. Changing this forces a new Machine Learning Compute Cluster to be created.\n"
          },
          "location": {
            "description": "The Azure Region where the Machine Learning Compute Cluster should exist. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
            "type": "string"
          },
          "machineLearningWorkspaceId": {
            "description": "The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Machine Learning Compute Cluster. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
            "type": "string"
          },
          "scaleSettings": {
            "$ref": "#/types/azure:machinelearning/ComputeClusterScaleSettings:ComputeClusterScaleSettings",
            "description": "A `scale_settings` block as defined below. Changing this forces a new Machine Learning Compute Cluster to be created.\n"
          },
          "subnetResourceId": {
            "description": "The ID of the Subnet that the Compute Cluster should reside in. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Machine Learning Compute Cluster. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
            "type": "object"
          },
          "vmPriority": {
            "description": "The priority of the VM. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
            "type": "string"
          },
          "vmSize": {
            "description": "The size of the VM. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:machinelearning/computeInstance:ComputeInstance": {
      "description": "Manages a Machine Learning Compute Instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {\n    location: \"west europe\",\n    tags: {\n        stage: \"example\",\n    },\n});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"web\",\n});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"standard\",\n    purgeProtectionEnabled: true,\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleWorkspace = new azure.machinelearning.Workspace(\"exampleWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationInsightsId: exampleInsights.id,\n    keyVaultId: exampleKeyVault.id,\n    storageAccountId: exampleAccount.id,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.1.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.1.0.0/24\"],\n});\nconst config = new pulumi.Config();\nconst sshKey = config.get(\"sshKey\") || \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+L2NxRIfQ781rxV6Iq5jSav6b2Q8z5KiseOlvKA/RF2wqU0UPYqQviQhLmW6THTpmrv/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+5N2Ta6UYH3lsDf9R9wTP2K/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+7HTcWfdu0qQqPWY5ujyMw/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt terraform@demo.tld\";\nconst exampleComputeInstance = new azure.machinelearning.ComputeInstance(\"exampleComputeInstance\", {\n    location: exampleResourceGroup.location,\n    machineLearningWorkspaceId: exampleWorkspace.id,\n    virtualMachineSize: \"STANDARD_DS2_V2\",\n    authorizationType: \"personal\",\n    ssh: {\n        publicKey: sshKey,\n    },\n    subnetResourceId: exampleSubnet.id,\n    description: \"foo\",\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\",\n    location=\"west europe\",\n    tags={\n        \"stage\": \"example\",\n    })\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_type=\"web\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"standard\",\n    purge_protection_enabled=True)\nexample_account = azure.storage.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_workspace = azure.machinelearning.Workspace(\"exampleWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_insights_id=example_insights.id,\n    key_vault_id=example_key_vault.id,\n    storage_account_id=example_account.id,\n    identity=azure.machinelearning.WorkspaceIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.1.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.1.0.0/24\"])\nconfig = pulumi.Config()\nssh_key = config.get(\"sshKey\")\nif ssh_key is None:\n    ssh_key = \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+L2NxRIfQ781rxV6Iq5jSav6b2Q8z5KiseOlvKA/RF2wqU0UPYqQviQhLmW6THTpmrv/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+5N2Ta6UYH3lsDf9R9wTP2K/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+7HTcWfdu0qQqPWY5ujyMw/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt terraform@demo.tld\"\nexample_compute_instance = azure.machinelearning.ComputeInstance(\"exampleComputeInstance\",\n    location=example_resource_group.location,\n    machine_learning_workspace_id=example_workspace.id,\n    virtual_machine_size=\"STANDARD_DS2_V2\",\n    authorization_type=\"personal\",\n    ssh=azure.machinelearning.ComputeInstanceSshArgs(\n        public_key=ssh_key,\n    ),\n    subnet_resource_id=example_subnet.id,\n    description=\"foo\",\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"west europe\",\n            Tags = \n            {\n                { \"stage\", \"example\" },\n            },\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"web\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"standard\",\n            PurgeProtectionEnabled = true,\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleWorkspace = new Azure.MachineLearning.Workspace(\"exampleWorkspace\", new Azure.MachineLearning.WorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationInsightsId = exampleInsights.Id,\n            KeyVaultId = exampleKeyVault.Id,\n            StorageAccountId = exampleAccount.Id,\n            Identity = new Azure.MachineLearning.Inputs.WorkspaceIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.1.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.1.0.0/24\",\n            },\n        });\n        var config = new Config();\n        var sshKey = config.Get(\"sshKey\") ?? \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+L2NxRIfQ781rxV6Iq5jSav6b2Q8z5KiseOlvKA/RF2wqU0UPYqQviQhLmW6THTpmrv/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+5N2Ta6UYH3lsDf9R9wTP2K/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+7HTcWfdu0qQqPWY5ujyMw/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt terraform@demo.tld\";\n        var exampleComputeInstance = new Azure.MachineLearning.ComputeInstance(\"exampleComputeInstance\", new Azure.MachineLearning.ComputeInstanceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            MachineLearningWorkspaceId = exampleWorkspace.Id,\n            VirtualMachineSize = \"STANDARD_DS2_V2\",\n            AuthorizationType = \"personal\",\n            Ssh = new Azure.MachineLearning.Inputs.ComputeInstanceSshArgs\n            {\n                PublicKey = sshKey,\n            },\n            SubnetResourceId = exampleSubnet.Id,\n            Description = \"foo\",\n            Tags = \n            {\n                { \"foo\", \"bar\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/machinelearning\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"west europe\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"stage\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tTenantId:               pulumi.String(current.TenantId),\n\t\t\tSkuName:                pulumi.String(\"standard\"),\n\t\t\tPurgeProtectionEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkspace, err := machinelearning.NewWorkspace(ctx, \"exampleWorkspace\", \u0026machinelearning.WorkspaceArgs{\n\t\t\tLocation:              exampleResourceGroup.Location,\n\t\t\tResourceGroupName:     exampleResourceGroup.Name,\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tKeyVaultId:            exampleKeyVault.ID(),\n\t\t\tStorageAccountId:      exampleAccount.ID(),\n\t\t\tIdentity: \u0026machinelearning.WorkspaceIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\tsshKey := \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+L2NxRIfQ781rxV6Iq5jSav6b2Q8z5KiseOlvKA/RF2wqU0UPYqQviQhLmW6THTpmrv/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+5N2Ta6UYH3lsDf9R9wTP2K/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+7HTcWfdu0qQqPWY5ujyMw/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt terraform@demo.tld\"\n\t\tif param := cfg.Get(\"sshKey\"); param != \"\" {\n\t\t\tsshKey = param\n\t\t}\n\t\t_, err = machinelearning.NewComputeInstance(ctx, \"exampleComputeInstance\", \u0026machinelearning.ComputeInstanceArgs{\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tMachineLearningWorkspaceId: exampleWorkspace.ID(),\n\t\t\tVirtualMachineSize:         pulumi.String(\"STANDARD_DS2_V2\"),\n\t\t\tAuthorizationType:          pulumi.String(\"personal\"),\n\t\t\tSsh: \u0026machinelearning.ComputeInstanceSshArgs{\n\t\t\t\tPublicKey: pulumi.String(sshKey),\n\t\t\t},\n\t\t\tSubnetResourceId: exampleSubnet.ID(),\n\t\t\tDescription:      pulumi.String(\"foo\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMachine Learning Compute Instances can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:machinelearning/computeInstance:ComputeInstance example C:/Program Files/Git/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.MachineLearningServices/workspaces/workspace1/computes/compute1\n```\n\n ",
      "inputProperties": {
        "assignToUser": {
          "$ref": "#/types/azure:machinelearning/ComputeInstanceAssignToUser:ComputeInstanceAssignToUser",
          "description": "A `assign_to_user` block as defined below. A user explicitly assigned to a personal compute instance. Changing this forces a new Machine Learning Compute Instance to be created.\n"
        },
        "authorizationType": {
          "description": "The Compute Instance Authorization type. Possible values include: `personal`. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:machinelearning/ComputeInstanceIdentity:ComputeInstanceIdentity",
          "description": "A `identity` block as defined below. Changing this forces a new Machine Learning Compute Instance to be created.\n"
        },
        "location": {
          "description": "The Azure Region where the Machine Learning Compute Instance should exist. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "string"
        },
        "machineLearningWorkspaceId": {
          "description": "The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "string"
        },
        "ssh": {
          "$ref": "#/types/azure:machinelearning/ComputeInstanceSsh:ComputeInstanceSsh",
          "description": "A `ssh` block as defined below. Specifies policy and settings for SSH access. Changing this forces a new Machine Learning Compute Instance to be created.\n"
        },
        "subnetResourceId": {
          "description": "Virtual network subnet resource ID the compute nodes belong to. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "object"
        },
        "virtualMachineSize": {
          "description": "The Virtual Machine Size. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "assignToUser": {
          "$ref": "#/types/azure:machinelearning/ComputeInstanceAssignToUser:ComputeInstanceAssignToUser",
          "description": "A `assign_to_user` block as defined below. A user explicitly assigned to a personal compute instance. Changing this forces a new Machine Learning Compute Instance to be created.\n"
        },
        "authorizationType": {
          "description": "The Compute Instance Authorization type. Possible values include: `personal`. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:machinelearning/ComputeInstanceIdentity:ComputeInstanceIdentity",
          "description": "A `identity` block as defined below. Changing this forces a new Machine Learning Compute Instance to be created.\n"
        },
        "location": {
          "description": "The Azure Region where the Machine Learning Compute Instance should exist. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "string"
        },
        "machineLearningWorkspaceId": {
          "description": "The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "string"
        },
        "ssh": {
          "$ref": "#/types/azure:machinelearning/ComputeInstanceSsh:ComputeInstanceSsh",
          "description": "A `ssh` block as defined below. Specifies policy and settings for SSH access. Changing this forces a new Machine Learning Compute Instance to be created.\n"
        },
        "subnetResourceId": {
          "description": "Virtual network subnet resource ID the compute nodes belong to. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "object"
        },
        "virtualMachineSize": {
          "description": "The Virtual Machine Size. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "machineLearningWorkspaceId",
        "name",
        "virtualMachineSize"
      ],
      "requiredInputs": [
        "machineLearningWorkspaceId",
        "virtualMachineSize"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ComputeInstance resources.\n",
        "properties": {
          "assignToUser": {
            "$ref": "#/types/azure:machinelearning/ComputeInstanceAssignToUser:ComputeInstanceAssignToUser",
            "description": "A `assign_to_user` block as defined below. A user explicitly assigned to a personal compute instance. Changing this forces a new Machine Learning Compute Instance to be created.\n"
          },
          "authorizationType": {
            "description": "The Compute Instance Authorization type. Possible values include: `personal`. Changing this forces a new Machine Learning Compute Instance to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:machinelearning/ComputeInstanceIdentity:ComputeInstanceIdentity",
            "description": "A `identity` block as defined below. Changing this forces a new Machine Learning Compute Instance to be created.\n"
          },
          "location": {
            "description": "The Azure Region where the Machine Learning Compute Instance should exist. Changing this forces a new Machine Learning Compute Instance to be created.\n",
            "type": "string"
          },
          "machineLearningWorkspaceId": {
            "description": "The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Compute Instance to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.\n",
            "type": "string"
          },
          "ssh": {
            "$ref": "#/types/azure:machinelearning/ComputeInstanceSsh:ComputeInstanceSsh",
            "description": "A `ssh` block as defined below. Specifies policy and settings for SSH access. Changing this forces a new Machine Learning Compute Instance to be created.\n"
          },
          "subnetResourceId": {
            "description": "Virtual network subnet resource ID the compute nodes belong to. Changing this forces a new Machine Learning Compute Instance to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.\n",
            "type": "object"
          },
          "virtualMachineSize": {
            "description": "The Virtual Machine Size. Changing this forces a new Machine Learning Compute Instance to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:machinelearning/inferenceCluster:InferenceCluster": {
      "description": "Manages a Machine Learning Inference Cluster.\n\n\u003e **NOTE:** The Machine Learning Inference Cluster resource is used to attach an existing AKS cluster to the Machine Learning Workspace, it doesn't create the AKS cluster itself. Therefore it can only be created and deleted, not updated. Any change to the configuration will recreate the resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {\n    location: \"west europe\",\n    tags: {\n        stage: \"example\",\n    },\n});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"web\",\n});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"standard\",\n    purgeProtectionEnabled: true,\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleWorkspace = new azure.machinelearning.Workspace(\"exampleWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationInsightsId: exampleInsights.id,\n    keyVaultId: exampleKeyVault.id,\n    storageAccountId: exampleAccount.id,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.1.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefix: \"10.1.0.0/24\",\n});\nconst exampleKubernetesCluster = new azure.containerservice.KubernetesCluster(\"exampleKubernetesCluster\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    defaultNodePool: {\n        name: \"default\",\n        nodeCount: 3,\n        vmSize: \"Standard_D3_v2\",\n        vnetSubnetId: exampleSubnet.id,\n    },\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\nconst exampleInferenceCluster = new azure.machinelearning.InferenceCluster(\"exampleInferenceCluster\", {\n    location: exampleResourceGroup.location,\n    clusterPurpose: \"FastProd\",\n    kubernetesClusterId: exampleKubernetesCluster.id,\n    description: \"This is an example cluster used with Terraform\",\n    machineLearningWorkspaceId: exampleWorkspace.id,\n    tags: {\n        stage: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\",\n    location=\"west europe\",\n    tags={\n        \"stage\": \"example\",\n    })\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_type=\"web\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"standard\",\n    purge_protection_enabled=True)\nexample_account = azure.storage.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_workspace = azure.machinelearning.Workspace(\"exampleWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_insights_id=example_insights.id,\n    key_vault_id=example_key_vault.id,\n    storage_account_id=example_account.id,\n    identity=azure.machinelearning.WorkspaceIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.1.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefix=\"10.1.0.0/24\")\nexample_kubernetes_cluster = azure.containerservice.KubernetesCluster(\"exampleKubernetesCluster\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    default_node_pool=azure.containerservice.KubernetesClusterDefaultNodePoolArgs(\n        name=\"default\",\n        node_count=3,\n        vm_size=\"Standard_D3_v2\",\n        vnet_subnet_id=example_subnet.id,\n    ),\n    identity=azure.containerservice.KubernetesClusterIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\nexample_inference_cluster = azure.machinelearning.InferenceCluster(\"exampleInferenceCluster\",\n    location=example_resource_group.location,\n    cluster_purpose=\"FastProd\",\n    kubernetes_cluster_id=example_kubernetes_cluster.id,\n    description=\"This is an example cluster used with Terraform\",\n    machine_learning_workspace_id=example_workspace.id,\n    tags={\n        \"stage\": \"example\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"west europe\",\n            Tags = \n            {\n                { \"stage\", \"example\" },\n            },\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"web\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"standard\",\n            PurgeProtectionEnabled = true,\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleWorkspace = new Azure.MachineLearning.Workspace(\"exampleWorkspace\", new Azure.MachineLearning.WorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationInsightsId = exampleInsights.Id,\n            KeyVaultId = exampleKeyVault.Id,\n            StorageAccountId = exampleAccount.Id,\n            Identity = new Azure.MachineLearning.Inputs.WorkspaceIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.1.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefix = \"10.1.0.0/24\",\n        });\n        var exampleKubernetesCluster = new Azure.ContainerService.KubernetesCluster(\"exampleKubernetesCluster\", new Azure.ContainerService.KubernetesClusterArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            DefaultNodePool = new Azure.ContainerService.Inputs.KubernetesClusterDefaultNodePoolArgs\n            {\n                Name = \"default\",\n                NodeCount = 3,\n                VmSize = \"Standard_D3_v2\",\n                VnetSubnetId = exampleSubnet.Id,\n            },\n            Identity = new Azure.ContainerService.Inputs.KubernetesClusterIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n        var exampleInferenceCluster = new Azure.MachineLearning.InferenceCluster(\"exampleInferenceCluster\", new Azure.MachineLearning.InferenceClusterArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ClusterPurpose = \"FastProd\",\n            KubernetesClusterId = exampleKubernetesCluster.Id,\n            Description = \"This is an example cluster used with Terraform\",\n            MachineLearningWorkspaceId = exampleWorkspace.Id,\n            Tags = \n            {\n                { \"stage\", \"example\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/machinelearning\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"west europe\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"stage\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tTenantId:               pulumi.String(current.TenantId),\n\t\t\tSkuName:                pulumi.String(\"standard\"),\n\t\t\tPurgeProtectionEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkspace, err := machinelearning.NewWorkspace(ctx, \"exampleWorkspace\", \u0026machinelearning.WorkspaceArgs{\n\t\t\tLocation:              exampleResourceGroup.Location,\n\t\t\tResourceGroupName:     exampleResourceGroup.Name,\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tKeyVaultId:            exampleKeyVault.ID(),\n\t\t\tStorageAccountId:      exampleAccount.ID(),\n\t\t\tIdentity: \u0026machinelearning.WorkspaceIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefix:      pulumi.String(\"10.1.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKubernetesCluster, err := containerservice.NewKubernetesCluster(ctx, \"exampleKubernetesCluster\", \u0026containerservice.KubernetesClusterArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDefaultNodePool: \u0026containerservice.KubernetesClusterDefaultNodePoolArgs{\n\t\t\t\tName:         pulumi.String(\"default\"),\n\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\tVmSize:       pulumi.String(\"Standard_D3_v2\"),\n\t\t\t\tVnetSubnetId: exampleSubnet.ID(),\n\t\t\t},\n\t\t\tIdentity: \u0026containerservice.KubernetesClusterIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = machinelearning.NewInferenceCluster(ctx, \"exampleInferenceCluster\", \u0026machinelearning.InferenceClusterArgs{\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tClusterPurpose:             pulumi.String(\"FastProd\"),\n\t\t\tKubernetesClusterId:        exampleKubernetesCluster.ID(),\n\t\t\tDescription:                pulumi.String(\"This is an example cluster used with Terraform\"),\n\t\t\tMachineLearningWorkspaceId: exampleWorkspace.ID(),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"stage\": pulumi.String(\"example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMachine Learning Inference Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:machinelearning/inferenceCluster:InferenceCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.MachineLearningServices/workspaces/workspace1/computes/cluster1\n```\n\n ",
      "inputProperties": {
        "clusterPurpose": {
          "description": "The purpose of the Inference Cluster. Options are `DevTest`, `DenseProd` and `FastProd`. If used for Development or Testing, use `DevTest` here. Default purpose is `FastProd`, which is recommended for production workloads. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Machine Learning compute. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "type": "string"
        },
        "kubernetesClusterId": {
          "description": "The ID of the Kubernetes Cluster. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Machine Learning Inference Cluster should exist. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "type": "string"
        },
        "machineLearningWorkspaceId": {
          "description": "The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Machine Learning Inference Cluster. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "type": "string"
        },
        "ssl": {
          "$ref": "#/types/azure:machinelearning/InferenceClusterSsl:InferenceClusterSsl",
          "description": "A `ssl` block as defined below. Changing this forces a new Machine Learning Inference Cluster to be created.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Machine Learning Inference Cluster. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "type": "object"
        }
      },
      "properties": {
        "clusterPurpose": {
          "description": "The purpose of the Inference Cluster. Options are `DevTest`, `DenseProd` and `FastProd`. If used for Development or Testing, use `DevTest` here. Default purpose is `FastProd`, which is recommended for production workloads. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the Machine Learning compute. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "type": "string"
        },
        "kubernetesClusterId": {
          "description": "The ID of the Kubernetes Cluster. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Machine Learning Inference Cluster should exist. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "type": "string"
        },
        "machineLearningWorkspaceId": {
          "description": "The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Machine Learning Inference Cluster. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "type": "string"
        },
        "ssl": {
          "$ref": "#/types/azure:machinelearning/InferenceClusterSsl:InferenceClusterSsl",
          "description": "A `ssl` block as defined below. Changing this forces a new Machine Learning Inference Cluster to be created.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Machine Learning Inference Cluster. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "type": "object"
        }
      },
      "required": [
        "kubernetesClusterId",
        "location",
        "machineLearningWorkspaceId",
        "name"
      ],
      "requiredInputs": [
        "kubernetesClusterId",
        "machineLearningWorkspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering InferenceCluster resources.\n",
        "properties": {
          "clusterPurpose": {
            "description": "The purpose of the Inference Cluster. Options are `DevTest`, `DenseProd` and `FastProd`. If used for Development or Testing, use `DevTest` here. Default purpose is `FastProd`, which is recommended for production workloads. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the Machine Learning compute. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
            "type": "string"
          },
          "kubernetesClusterId": {
            "description": "The ID of the Kubernetes Cluster. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Machine Learning Inference Cluster should exist. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
            "type": "string"
          },
          "machineLearningWorkspaceId": {
            "description": "The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Machine Learning Inference Cluster. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
            "type": "string"
          },
          "ssl": {
            "$ref": "#/types/azure:machinelearning/InferenceClusterSsl:InferenceClusterSsl",
            "description": "A `ssl` block as defined below. Changing this forces a new Machine Learning Inference Cluster to be created.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Machine Learning Inference Cluster. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:machinelearning/synapseSpark:SynapseSpark": {
      "description": "Manages a Machine Learning Synapse Spark.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {\n    location: \"west europe\",\n    tags: {\n        stage: \"example\",\n    },\n});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"web\",\n});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"standard\",\n    purgeProtectionEnabled: true,\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleWorkspace = new azure.machinelearning.Workspace(\"exampleWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationInsightsId: exampleInsights.id,\n    keyVaultId: exampleKeyVault.id,\n    storageAccountId: exampleAccount.id,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\nconst exampleDataLakeGen2Filesystem = new azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", {storageAccountId: exampleAccount.id});\nconst exampleSynapse_workspaceWorkspace = new azure.synapse.Workspace(\"exampleSynapse/workspaceWorkspace\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    storageDataLakeGen2FilesystemId: exampleDataLakeGen2Filesystem.id,\n    sqlAdministratorLogin: \"sqladminuser\",\n    sqlAdministratorLoginPassword: \"H@Sh1CoR3!\",\n});\nconst exampleSparkPool = new azure.synapse.SparkPool(\"exampleSparkPool\", {\n    synapseWorkspaceId: exampleSynapse / workspaceWorkspace.id,\n    nodeSizeFamily: \"MemoryOptimized\",\n    nodeSize: \"Small\",\n    nodeCount: 3,\n});\nconst exampleSynapseSpark = new azure.machinelearning.SynapseSpark(\"exampleSynapseSpark\", {\n    machineLearningWorkspaceId: exampleWorkspace.id,\n    location: exampleResourceGroup.location,\n    synapseSparkPoolId: exampleSparkPool.id,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\",\n    location=\"west europe\",\n    tags={\n        \"stage\": \"example\",\n    })\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_type=\"web\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"standard\",\n    purge_protection_enabled=True)\nexample_account = azure.storage.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_workspace = azure.machinelearning.Workspace(\"exampleWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_insights_id=example_insights.id,\n    key_vault_id=example_key_vault.id,\n    storage_account_id=example_account.id,\n    identity=azure.machinelearning.WorkspaceIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\nexample_data_lake_gen2_filesystem = azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", storage_account_id=example_account.id)\nexample_synapse_workspace_workspace = azure.synapse.Workspace(\"exampleSynapse/workspaceWorkspace\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    storage_data_lake_gen2_filesystem_id=example_data_lake_gen2_filesystem.id,\n    sql_administrator_login=\"sqladminuser\",\n    sql_administrator_login_password=\"H@Sh1CoR3!\")\nexample_spark_pool = azure.synapse.SparkPool(\"exampleSparkPool\",\n    synapse_workspace_id=example_synapse / workspace_workspace[\"id\"],\n    node_size_family=\"MemoryOptimized\",\n    node_size=\"Small\",\n    node_count=3)\nexample_synapse_spark = azure.machinelearning.SynapseSpark(\"exampleSynapseSpark\",\n    machine_learning_workspace_id=example_workspace.id,\n    location=example_resource_group.location,\n    synapse_spark_pool_id=example_spark_pool.id,\n    identity=azure.machinelearning.SynapseSparkIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"west europe\",\n            Tags = \n            {\n                { \"stage\", \"example\" },\n            },\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"web\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"standard\",\n            PurgeProtectionEnabled = true,\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleWorkspace = new Azure.MachineLearning.Workspace(\"exampleWorkspace\", new Azure.MachineLearning.WorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationInsightsId = exampleInsights.Id,\n            KeyVaultId = exampleKeyVault.Id,\n            StorageAccountId = exampleAccount.Id,\n            Identity = new Azure.MachineLearning.Inputs.WorkspaceIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n        var exampleDataLakeGen2Filesystem = new Azure.Storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", new Azure.Storage.DataLakeGen2FilesystemArgs\n        {\n            StorageAccountId = exampleAccount.Id,\n        });\n        var exampleSynapse_workspaceWorkspace = new Azure.Synapse.Workspace(\"exampleSynapse/workspaceWorkspace\", new Azure.Synapse.WorkspaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            StorageDataLakeGen2FilesystemId = exampleDataLakeGen2Filesystem.Id,\n            SqlAdministratorLogin = \"sqladminuser\",\n            SqlAdministratorLoginPassword = \"H@Sh1CoR3!\",\n        });\n        var exampleSparkPool = new Azure.Synapse.SparkPool(\"exampleSparkPool\", new Azure.Synapse.SparkPoolArgs\n        {\n            SynapseWorkspaceId = exampleSynapse / workspaceWorkspace.Id,\n            NodeSizeFamily = \"MemoryOptimized\",\n            NodeSize = \"Small\",\n            NodeCount = 3,\n        });\n        var exampleSynapseSpark = new Azure.MachineLearning.SynapseSpark(\"exampleSynapseSpark\", new Azure.MachineLearning.SynapseSparkArgs\n        {\n            MachineLearningWorkspaceId = exampleWorkspace.Id,\n            Location = exampleResourceGroup.Location,\n            SynapseSparkPoolId = exampleSparkPool.Id,\n            Identity = new Azure.MachineLearning.Inputs.SynapseSparkIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/machinelearning\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/synapse\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"west europe\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"stage\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tTenantId:               pulumi.String(current.TenantId),\n\t\t\tSkuName:                pulumi.String(\"standard\"),\n\t\t\tPurgeProtectionEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkspace, err := machinelearning.NewWorkspace(ctx, \"exampleWorkspace\", \u0026machinelearning.WorkspaceArgs{\n\t\t\tLocation:              exampleResourceGroup.Location,\n\t\t\tResourceGroupName:     exampleResourceGroup.Name,\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tKeyVaultId:            exampleKeyVault.ID(),\n\t\t\tStorageAccountId:      exampleAccount.ID(),\n\t\t\tIdentity: \u0026machinelearning.WorkspaceIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDataLakeGen2Filesystem, err := storage.NewDataLakeGen2Filesystem(ctx, \"exampleDataLakeGen2Filesystem\", \u0026storage.DataLakeGen2FilesystemArgs{\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = synapse.NewWorkspace(ctx, \"exampleSynapse_workspaceWorkspace\", \u0026synapse.WorkspaceArgs{\n\t\t\tResourceGroupName:               exampleResourceGroup.Name,\n\t\t\tLocation:                        exampleResourceGroup.Location,\n\t\t\tStorageDataLakeGen2FilesystemId: exampleDataLakeGen2Filesystem.ID(),\n\t\t\tSqlAdministratorLogin:           pulumi.String(\"sqladminuser\"),\n\t\t\tSqlAdministratorLoginPassword:   pulumi.String(\"H@Sh1CoR3!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSparkPool, err := synapse.NewSparkPool(ctx, \"exampleSparkPool\", \u0026synapse.SparkPoolArgs{\n\t\t\tSynapseWorkspaceId: exampleSynapse / workspaceWorkspace.Id,\n\t\t\tNodeSizeFamily:     pulumi.String(\"MemoryOptimized\"),\n\t\t\tNodeSize:           pulumi.String(\"Small\"),\n\t\t\tNodeCount:          pulumi.Int(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = machinelearning.NewSynapseSpark(ctx, \"exampleSynapseSpark\", \u0026machinelearning.SynapseSparkArgs{\n\t\t\tMachineLearningWorkspaceId: exampleWorkspace.ID(),\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tSynapseSparkPoolId:         exampleSparkPool.ID(),\n\t\t\tIdentity: \u0026machinelearning.SynapseSparkIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMachine Learning Synapse Sparks can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:machinelearning/synapseSpark:SynapseSpark example C:/Program Files/Git/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.MachineLearningServices/workspaces/workspace1/computes/compute1\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "The description of the Machine Learning Synapse Spark. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:machinelearning/SynapseSparkIdentity:SynapseSparkIdentity",
          "description": "A `identity` block as defined below. Changing this forces a new Machine Learning Synapse Spark to be created.\n"
        },
        "location": {
          "description": "The Azure Region where the Machine Learning Synapse Spark should exist. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
          "type": "string"
        },
        "machineLearningWorkspaceId": {
          "description": "The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Machine Learning Synapse Spark. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
          "type": "string"
        },
        "synapseSparkPoolId": {
          "description": "The ID of the linked Synapse Spark Pool. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Machine Learning Synapse Spark. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
          "type": "object"
        }
      },
      "properties": {
        "description": {
          "description": "The description of the Machine Learning Synapse Spark. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:machinelearning/SynapseSparkIdentity:SynapseSparkIdentity",
          "description": "A `identity` block as defined below. Changing this forces a new Machine Learning Synapse Spark to be created.\n"
        },
        "location": {
          "description": "The Azure Region where the Machine Learning Synapse Spark should exist. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
          "type": "string"
        },
        "machineLearningWorkspaceId": {
          "description": "The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Machine Learning Synapse Spark. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
          "type": "string"
        },
        "synapseSparkPoolId": {
          "description": "The ID of the linked Synapse Spark Pool. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Machine Learning Synapse Spark. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "machineLearningWorkspaceId",
        "name",
        "synapseSparkPoolId"
      ],
      "requiredInputs": [
        "machineLearningWorkspaceId",
        "synapseSparkPoolId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SynapseSpark resources.\n",
        "properties": {
          "description": {
            "description": "The description of the Machine Learning Synapse Spark. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:machinelearning/SynapseSparkIdentity:SynapseSparkIdentity",
            "description": "A `identity` block as defined below. Changing this forces a new Machine Learning Synapse Spark to be created.\n"
          },
          "location": {
            "description": "The Azure Region where the Machine Learning Synapse Spark should exist. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
            "type": "string"
          },
          "machineLearningWorkspaceId": {
            "description": "The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Machine Learning Synapse Spark. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
            "type": "string"
          },
          "synapseSparkPoolId": {
            "description": "The ID of the linked Synapse Spark Pool. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Machine Learning Synapse Spark. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:machinelearning/workspace:Workspace": {
      "description": "Manages a Azure Machine Learning Workspace\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"web\",\n});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"exampleKeyVault\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tenantId: current.then(current =\u003e current.tenantId),\n    skuName: \"premium\",\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleWorkspace = new azure.machinelearning.Workspace(\"exampleWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationInsightsId: exampleInsights.id,\n    keyVaultId: exampleKeyVault.id,\n    storageAccountId: exampleAccount.id,\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_type=\"web\")\nexample_key_vault = azure.keyvault.KeyVault(\"exampleKeyVault\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tenant_id=current.tenant_id,\n    sku_name=\"premium\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_workspace = azure.machinelearning.Workspace(\"exampleWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_insights_id=example_insights.id,\n    key_vault_id=example_key_vault.id,\n    storage_account_id=example_account.id,\n    identity=azure.machinelearning.WorkspaceIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"web\",\n        });\n        var exampleKeyVault = new Azure.KeyVault.KeyVault(\"exampleKeyVault\", new Azure.KeyVault.KeyVaultArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            SkuName = \"premium\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleWorkspace = new Azure.MachineLearning.Workspace(\"exampleWorkspace\", new Azure.MachineLearning.WorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationInsightsId = exampleInsights.Id,\n            KeyVaultId = exampleKeyVault.Id,\n            StorageAccountId = exampleAccount.Id,\n            Identity = new Azure.MachineLearning.Inputs.WorkspaceIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/machinelearning\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"exampleKeyVault\", \u0026keyvault.KeyVaultArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTenantId:          pulumi.String(current.TenantId),\n\t\t\tSkuName:           pulumi.String(\"premium\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = machinelearning.NewWorkspace(ctx, \"exampleWorkspace\", \u0026machinelearning.WorkspaceArgs{\n\t\t\tLocation:              exampleResourceGroup.Location,\n\t\t\tResourceGroupName:     exampleResourceGroup.Name,\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tKeyVaultId:            exampleKeyVault.ID(),\n\t\t\tStorageAccountId:      exampleAccount.ID(),\n\t\t\tIdentity: \u0026machinelearning.WorkspaceIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMachine Learning Workspace can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:machinelearning/workspace:Workspace example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.MachineLearningServices/workspaces/workspace1\n```\n\n ",
      "inputProperties": {
        "applicationInsightsId": {
          "description": "The ID of the Application Insights associated with this Machine Learning Workspace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "containerRegistryId": {
          "description": "The ID of the container registry associated with this Machine Learning Workspace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of this Machine Learning Workspace.\n",
          "type": "string"
        },
        "friendlyName": {
          "description": "Friendly name for this Machine Learning Workspace.\n",
          "type": "string"
        },
        "highBusinessImpact": {
          "description": "Flag to signal High Business Impact (HBI) data in the workspace and reduce diagnostic data collected by the service\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:machinelearning/WorkspaceIdentity:WorkspaceIdentity",
          "description": "An `identity` block defined below.\n"
        },
        "keyVaultId": {
          "description": "The ID of key vault associated with this Machine Learning Workspace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the Machine Learning Workspace should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Machine Learning Workspace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which the Machine Learning Workspace should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "SKU/edition of the Machine Learning Workspace, possible values are `Basic`. Defaults to `Basic`.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account associated with this Machine Learning Workspace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
          "type": "object"
        }
      },
      "properties": {
        "applicationInsightsId": {
          "description": "The ID of the Application Insights associated with this Machine Learning Workspace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "containerRegistryId": {
          "description": "The ID of the container registry associated with this Machine Learning Workspace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of this Machine Learning Workspace.\n",
          "type": "string"
        },
        "friendlyName": {
          "description": "Friendly name for this Machine Learning Workspace.\n",
          "type": "string"
        },
        "highBusinessImpact": {
          "description": "Flag to signal High Business Impact (HBI) data in the workspace and reduce diagnostic data collected by the service\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:machinelearning/WorkspaceIdentity:WorkspaceIdentity",
          "description": "An `identity` block defined below.\n"
        },
        "keyVaultId": {
          "description": "The ID of key vault associated with this Machine Learning Workspace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the Machine Learning Workspace should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Machine Learning Workspace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which the Machine Learning Workspace should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "SKU/edition of the Machine Learning Workspace, possible values are `Basic`. Defaults to `Basic`.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account associated with this Machine Learning Workspace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
          "type": "object"
        }
      },
      "required": [
        "applicationInsightsId",
        "identity",
        "keyVaultId",
        "location",
        "name",
        "resourceGroupName",
        "storageAccountId"
      ],
      "requiredInputs": [
        "applicationInsightsId",
        "identity",
        "keyVaultId",
        "resourceGroupName",
        "storageAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Workspace resources.\n",
        "properties": {
          "applicationInsightsId": {
            "description": "The ID of the Application Insights associated with this Machine Learning Workspace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "containerRegistryId": {
            "description": "The ID of the container registry associated with this Machine Learning Workspace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of this Machine Learning Workspace.\n",
            "type": "string"
          },
          "friendlyName": {
            "description": "Friendly name for this Machine Learning Workspace.\n",
            "type": "string"
          },
          "highBusinessImpact": {
            "description": "Flag to signal High Business Impact (HBI) data in the workspace and reduce diagnostic data collected by the service\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:machinelearning/WorkspaceIdentity:WorkspaceIdentity",
            "description": "An `identity` block defined below.\n"
          },
          "keyVaultId": {
            "description": "The ID of key vault associated with this Machine Learning Workspace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the Machine Learning Workspace should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Machine Learning Workspace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which the Machine Learning Workspace should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "SKU/edition of the Machine Learning Workspace, possible values are `Basic`. Defaults to `Basic`.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of the Storage Account associated with this Machine Learning Workspace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:maintenance/assignmentDedicatedHost:AssignmentDedicatedHost": {
      "description": "Manages a maintenance assignment to Dedicated Host.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleDedicatedHostGroup = new azure.compute.DedicatedHostGroup(\"exampleDedicatedHostGroup\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    platformFaultDomainCount: 2,\n});\nconst exampleDedicatedHost = new azure.compute.DedicatedHost(\"exampleDedicatedHost\", {\n    location: exampleResourceGroup.location,\n    dedicatedHostGroupId: exampleDedicatedHostGroup.id,\n    skuName: \"DSv3-Type1\",\n    platformFaultDomain: 1,\n});\nconst exampleConfiguration = new azure.maintenance.Configuration(\"exampleConfiguration\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    scope: \"All\",\n});\nconst exampleAssignmentDedicatedHost = new azure.maintenance.AssignmentDedicatedHost(\"exampleAssignmentDedicatedHost\", {\n    location: exampleResourceGroup.location,\n    maintenanceConfigurationId: exampleConfiguration.id,\n    dedicatedHostId: exampleDedicatedHost.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_dedicated_host_group = azure.compute.DedicatedHostGroup(\"exampleDedicatedHostGroup\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    platform_fault_domain_count=2)\nexample_dedicated_host = azure.compute.DedicatedHost(\"exampleDedicatedHost\",\n    location=example_resource_group.location,\n    dedicated_host_group_id=example_dedicated_host_group.id,\n    sku_name=\"DSv3-Type1\",\n    platform_fault_domain=1)\nexample_configuration = azure.maintenance.Configuration(\"exampleConfiguration\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    scope=\"All\")\nexample_assignment_dedicated_host = azure.maintenance.AssignmentDedicatedHost(\"exampleAssignmentDedicatedHost\",\n    location=example_resource_group.location,\n    maintenance_configuration_id=example_configuration.id,\n    dedicated_host_id=example_dedicated_host.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleDedicatedHostGroup = new Azure.Compute.DedicatedHostGroup(\"exampleDedicatedHostGroup\", new Azure.Compute.DedicatedHostGroupArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            PlatformFaultDomainCount = 2,\n        });\n        var exampleDedicatedHost = new Azure.Compute.DedicatedHost(\"exampleDedicatedHost\", new Azure.Compute.DedicatedHostArgs\n        {\n            Location = exampleResourceGroup.Location,\n            DedicatedHostGroupId = exampleDedicatedHostGroup.Id,\n            SkuName = \"DSv3-Type1\",\n            PlatformFaultDomain = 1,\n        });\n        var exampleConfiguration = new Azure.Maintenance.Configuration(\"exampleConfiguration\", new Azure.Maintenance.ConfigurationArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Scope = \"All\",\n        });\n        var exampleAssignmentDedicatedHost = new Azure.Maintenance.AssignmentDedicatedHost(\"exampleAssignmentDedicatedHost\", new Azure.Maintenance.AssignmentDedicatedHostArgs\n        {\n            Location = exampleResourceGroup.Location,\n            MaintenanceConfigurationId = exampleConfiguration.Id,\n            DedicatedHostId = exampleDedicatedHost.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/maintenance\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDedicatedHostGroup, err := compute.NewDedicatedHostGroup(ctx, \"exampleDedicatedHostGroup\", \u0026compute.DedicatedHostGroupArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tLocation:                 exampleResourceGroup.Location,\n\t\t\tPlatformFaultDomainCount: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDedicatedHost, err := compute.NewDedicatedHost(ctx, \"exampleDedicatedHost\", \u0026compute.DedicatedHostArgs{\n\t\t\tLocation:             exampleResourceGroup.Location,\n\t\t\tDedicatedHostGroupId: exampleDedicatedHostGroup.ID(),\n\t\t\tSkuName:              pulumi.String(\"DSv3-Type1\"),\n\t\t\tPlatformFaultDomain:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleConfiguration, err := maintenance.NewConfiguration(ctx, \"exampleConfiguration\", \u0026maintenance.ConfigurationArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tScope:             pulumi.String(\"All\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = maintenance.NewAssignmentDedicatedHost(ctx, \"exampleAssignmentDedicatedHost\", \u0026maintenance.AssignmentDedicatedHostArgs{\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tMaintenanceConfigurationId: exampleConfiguration.ID(),\n\t\t\tDedicatedHostId:            exampleDedicatedHost.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMaintenance Assignment can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:maintenance/assignmentDedicatedHost:AssignmentDedicatedHost example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resGroup1/providers/microsoft.compute/hostGroups/group1/hosts/host1/providers/Microsoft.Maintenance/configurationAssignments/assign1\n```\n\n ",
      "inputProperties": {
        "dedicatedHostId": {
          "description": "Specifies the Dedicated Host ID to which the Maintenance Configuration will be assigned. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maintenanceConfigurationId": {
          "description": "Specifies the ID of the Maintenance Configuration Resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "dedicatedHostId": {
          "description": "Specifies the Dedicated Host ID to which the Maintenance Configuration will be assigned. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maintenanceConfigurationId": {
          "description": "Specifies the ID of the Maintenance Configuration Resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "dedicatedHostId",
        "location",
        "maintenanceConfigurationId"
      ],
      "requiredInputs": [
        "dedicatedHostId",
        "maintenanceConfigurationId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AssignmentDedicatedHost resources.\n",
        "properties": {
          "dedicatedHostId": {
            "description": "Specifies the Dedicated Host ID to which the Maintenance Configuration will be assigned. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maintenanceConfigurationId": {
            "description": "Specifies the ID of the Maintenance Configuration Resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:maintenance/assignmentVirtualMachine:AssignmentVirtualMachine": {
      "description": "Manages a maintenance assignment to virtual machine.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * from \"fs\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"internal\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleLinuxVirtualMachine = new azure.compute.LinuxVirtualMachine(\"exampleLinuxVirtualMachine\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    size: \"Standard_F2\",\n    adminUsername: \"adminuser\",\n    networkInterfaceIds: [exampleNetworkInterface.id],\n    adminSshKeys: [{\n        username: \"adminuser\",\n        publicKey: fs.readFileSync(\"~/.ssh/id_rsa.pub\"),\n    }],\n    osDisk: {\n        caching: \"ReadWrite\",\n        storageAccountType: \"Standard_LRS\",\n    },\n    sourceImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04-LTS\",\n        version: \"latest\",\n    },\n});\nconst exampleConfiguration = new azure.maintenance.Configuration(\"exampleConfiguration\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    scope: \"All\",\n});\nconst exampleAssignmentVirtualMachine = new azure.maintenance.AssignmentVirtualMachine(\"exampleAssignmentVirtualMachine\", {\n    location: exampleResourceGroup.location,\n    maintenanceConfigurationId: exampleConfiguration.id,\n    virtualMachineId: exampleLinuxVirtualMachine.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"internal\",\n        subnet_id=example_subnet.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nexample_linux_virtual_machine = azure.compute.LinuxVirtualMachine(\"exampleLinuxVirtualMachine\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    size=\"Standard_F2\",\n    admin_username=\"adminuser\",\n    network_interface_ids=[example_network_interface.id],\n    admin_ssh_keys=[azure.compute.LinuxVirtualMachineAdminSshKeyArgs(\n        username=\"adminuser\",\n        public_key=(lambda path: open(path).read())(\"~/.ssh/id_rsa.pub\"),\n    )],\n    os_disk=azure.compute.LinuxVirtualMachineOsDiskArgs(\n        caching=\"ReadWrite\",\n        storage_account_type=\"Standard_LRS\",\n    ),\n    source_image_reference=azure.compute.LinuxVirtualMachineSourceImageReferenceArgs(\n        publisher=\"Canonical\",\n        offer=\"UbuntuServer\",\n        sku=\"16.04-LTS\",\n        version=\"latest\",\n    ))\nexample_configuration = azure.maintenance.Configuration(\"exampleConfiguration\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    scope=\"All\")\nexample_assignment_virtual_machine = azure.maintenance.AssignmentVirtualMachine(\"exampleAssignmentVirtualMachine\",\n    location=example_resource_group.location,\n    maintenance_configuration_id=example_configuration.id,\n    virtual_machine_id=example_linux_virtual_machine.id)\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"internal\",\n                    SubnetId = exampleSubnet.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var exampleLinuxVirtualMachine = new Azure.Compute.LinuxVirtualMachine(\"exampleLinuxVirtualMachine\", new Azure.Compute.LinuxVirtualMachineArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Size = \"Standard_F2\",\n            AdminUsername = \"adminuser\",\n            NetworkInterfaceIds = \n            {\n                exampleNetworkInterface.Id,\n            },\n            AdminSshKeys = \n            {\n                new Azure.Compute.Inputs.LinuxVirtualMachineAdminSshKeyArgs\n                {\n                    Username = \"adminuser\",\n                    PublicKey = File.ReadAllText(\"~/.ssh/id_rsa.pub\"),\n                },\n            },\n            OsDisk = new Azure.Compute.Inputs.LinuxVirtualMachineOsDiskArgs\n            {\n                Caching = \"ReadWrite\",\n                StorageAccountType = \"Standard_LRS\",\n            },\n            SourceImageReference = new Azure.Compute.Inputs.LinuxVirtualMachineSourceImageReferenceArgs\n            {\n                Publisher = \"Canonical\",\n                Offer = \"UbuntuServer\",\n                Sku = \"16.04-LTS\",\n                Version = \"latest\",\n            },\n        });\n        var exampleConfiguration = new Azure.Maintenance.Configuration(\"exampleConfiguration\", new Azure.Maintenance.ConfigurationArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Scope = \"All\",\n        });\n        var exampleAssignmentVirtualMachine = new Azure.Maintenance.AssignmentVirtualMachine(\"exampleAssignmentVirtualMachine\", new Azure.Maintenance.AssignmentVirtualMachineArgs\n        {\n            Location = exampleResourceGroup.Location,\n            MaintenanceConfigurationId = exampleConfiguration.Id,\n            VirtualMachineId = exampleLinuxVirtualMachine.Id,\n        });\n    }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMaintenance Assignment can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:maintenance/assignmentVirtualMachine:AssignmentVirtualMachine example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resGroup1/providers/microsoft.compute/virtualMachines/vm1/providers/Microsoft.Maintenance/configurationAssignments/assign1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maintenanceConfigurationId": {
          "description": "Specifies the ID of the Maintenance Configuration Resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "Specifies the Virtual Machine ID to which the Maintenance Configuration will be assigned. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maintenanceConfigurationId": {
          "description": "Specifies the ID of the Maintenance Configuration Resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "Specifies the Virtual Machine ID to which the Maintenance Configuration will be assigned. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "maintenanceConfigurationId",
        "virtualMachineId"
      ],
      "requiredInputs": [
        "maintenanceConfigurationId",
        "virtualMachineId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AssignmentVirtualMachine resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maintenanceConfigurationId": {
            "description": "Specifies the ID of the Maintenance Configuration Resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "virtualMachineId": {
            "description": "Specifies the Virtual Machine ID to which the Maintenance Configuration will be assigned. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:maintenance/assignmentVirtualMachineScaleSet:AssignmentVirtualMachineScaleSet": {
      "description": "Manages a maintenance assignment to a virtual machine scale set.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n});\nconst exampleLoadBalancer = new azure.lb.LoadBalancer(\"exampleLoadBalancer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    frontendIpConfigurations: [{\n        name: \"internal\",\n        publicIpAddressId: azurerm_public_ip.test.id,\n    }],\n});\nconst exampleBackendAddressPool = new azure.lb.BackendAddressPool(\"exampleBackendAddressPool\", {\n    resourceGroupName: exampleResourceGroup.name,\n    loadbalancerId: azurerm_lb.test.id,\n});\nconst exampleProbe = new azure.lb.Probe(\"exampleProbe\", {\n    resourceGroupName: exampleResourceGroup.name,\n    loadbalancerId: azurerm_lb.test.id,\n    port: 22,\n    protocol: \"Tcp\",\n});\nconst exampleRule = new azure.lb.Rule(\"exampleRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    loadbalancerId: azurerm_lb.test.id,\n    probeId: azurerm_lb_probe.test.id,\n    backendAddressPoolId: azurerm_lb_backend_address_pool.test.id,\n    frontendIpConfigurationName: \"internal\",\n    protocol: \"Tcp\",\n    frontendPort: 22,\n    backendPort: 22,\n});\nconst exampleConfiguration = new azure.maintenance.Configuration(\"exampleConfiguration\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    scope: \"OSImage\",\n    visibility: \"Custom\",\n    window: {\n        startDateTime: \"2021-12-31 00:00\",\n        expirationDateTime: \"9999-12-31 00:00\",\n        duration: \"06:00\",\n        timeZone: \"Pacific Standard Time\",\n        recurEvery: \"1Days\",\n    },\n});\nconst exampleLinuxVirtualMachineScaleSet = new azure.compute.LinuxVirtualMachineScaleSet(\"exampleLinuxVirtualMachineScaleSet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: \"Standard_F2\",\n    instances: 1,\n    adminUsername: \"adminuser\",\n    adminPassword: \"P@ssword1234!\",\n    upgradeMode: \"Automatic\",\n    healthProbeId: exampleProbe.id,\n    disablePasswordAuthentication: false,\n    sourceImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04-LTS\",\n        version: \"latest\",\n    },\n    osDisk: {\n        storageAccountType: \"Standard_LRS\",\n        caching: \"ReadWrite\",\n    },\n    networkInterfaces: [{\n        name: \"example\",\n        primary: true,\n        ipConfigurations: [{\n            name: \"internal\",\n            primary: true,\n            subnetId: exampleSubnet.id,\n            loadBalancerBackendAddressPoolIds: [exampleBackendAddressPool.id],\n        }],\n    }],\n    automaticOsUpgradePolicy: {\n        disableAutomaticRollback: true,\n        enableAutomaticOsUpgrade: true,\n    },\n    rollingUpgradePolicy: {\n        maxBatchInstancePercent: 20,\n        maxUnhealthyInstancePercent: 20,\n        maxUnhealthyUpgradedInstancePercent: 20,\n        pauseTimeBetweenBatches: \"PT0S\",\n    },\n}, {\n    dependsOn: [\"azurerm_lb_rule.example\"],\n});\nconst exampleAssignmentVirtualMachineScaleSet = new azure.maintenance.AssignmentVirtualMachineScaleSet(\"exampleAssignmentVirtualMachineScaleSet\", {\n    location: exampleResourceGroup.location,\n    maintenanceConfigurationId: exampleConfiguration.id,\n    virtualMachineScaleSetId: azurerm_linux_virtual_machine.example.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\")\nexample_load_balancer = azure.lb.LoadBalancer(\"exampleLoadBalancer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    frontend_ip_configurations=[azure.lb.LoadBalancerFrontendIpConfigurationArgs(\n        name=\"internal\",\n        public_ip_address_id=azurerm_public_ip[\"test\"][\"id\"],\n    )])\nexample_backend_address_pool = azure.lb.BackendAddressPool(\"exampleBackendAddressPool\",\n    resource_group_name=example_resource_group.name,\n    loadbalancer_id=azurerm_lb[\"test\"][\"id\"])\nexample_probe = azure.lb.Probe(\"exampleProbe\",\n    resource_group_name=example_resource_group.name,\n    loadbalancer_id=azurerm_lb[\"test\"][\"id\"],\n    port=22,\n    protocol=\"Tcp\")\nexample_rule = azure.lb.Rule(\"exampleRule\",\n    resource_group_name=example_resource_group.name,\n    loadbalancer_id=azurerm_lb[\"test\"][\"id\"],\n    probe_id=azurerm_lb_probe[\"test\"][\"id\"],\n    backend_address_pool_id=azurerm_lb_backend_address_pool[\"test\"][\"id\"],\n    frontend_ip_configuration_name=\"internal\",\n    protocol=\"Tcp\",\n    frontend_port=22,\n    backend_port=22)\nexample_configuration = azure.maintenance.Configuration(\"exampleConfiguration\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    scope=\"OSImage\",\n    visibility=\"Custom\",\n    window=azure.maintenance.ConfigurationWindowArgs(\n        start_date_time=\"2021-12-31 00:00\",\n        expiration_date_time=\"9999-12-31 00:00\",\n        duration=\"06:00\",\n        time_zone=\"Pacific Standard Time\",\n        recur_every=\"1Days\",\n    ))\nexample_linux_virtual_machine_scale_set = azure.compute.LinuxVirtualMachineScaleSet(\"exampleLinuxVirtualMachineScaleSet\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=\"Standard_F2\",\n    instances=1,\n    admin_username=\"adminuser\",\n    admin_password=\"P@ssword1234!\",\n    upgrade_mode=\"Automatic\",\n    health_probe_id=example_probe.id,\n    disable_password_authentication=False,\n    source_image_reference=azure.compute.LinuxVirtualMachineScaleSetSourceImageReferenceArgs(\n        publisher=\"Canonical\",\n        offer=\"UbuntuServer\",\n        sku=\"16.04-LTS\",\n        version=\"latest\",\n    ),\n    os_disk=azure.compute.LinuxVirtualMachineScaleSetOsDiskArgs(\n        storage_account_type=\"Standard_LRS\",\n        caching=\"ReadWrite\",\n    ),\n    network_interfaces=[azure.compute.LinuxVirtualMachineScaleSetNetworkInterfaceArgs(\n        name=\"example\",\n        primary=True,\n        ip_configurations=[{\n            \"name\": \"internal\",\n            \"primary\": True,\n            \"subnet_id\": example_subnet.id,\n            \"loadBalancerBackendAddressPoolIds\": [example_backend_address_pool.id],\n        }],\n    )],\n    automatic_os_upgrade_policy=azure.compute.LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicyArgs(\n        disable_automatic_rollback=True,\n        enable_automatic_os_upgrade=True,\n    ),\n    rolling_upgrade_policy=azure.compute.LinuxVirtualMachineScaleSetRollingUpgradePolicyArgs(\n        max_batch_instance_percent=20,\n        max_unhealthy_instance_percent=20,\n        max_unhealthy_upgraded_instance_percent=20,\n        pause_time_between_batches=\"PT0S\",\n    ),\n    opts=pulumi.ResourceOptions(depends_on=[\"azurerm_lb_rule.example\"]))\nexample_assignment_virtual_machine_scale_set = azure.maintenance.AssignmentVirtualMachineScaleSet(\"exampleAssignmentVirtualMachineScaleSet\",\n    location=example_resource_group.location,\n    maintenance_configuration_id=example_configuration.id,\n    virtual_machine_scale_set_id=azurerm_linux_virtual_machine[\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n        });\n        var exampleLoadBalancer = new Azure.Lb.LoadBalancer(\"exampleLoadBalancer\", new Azure.Lb.LoadBalancerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            FrontendIpConfigurations = \n            {\n                new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs\n                {\n                    Name = \"internal\",\n                    PublicIpAddressId = azurerm_public_ip.Test.Id,\n                },\n            },\n        });\n        var exampleBackendAddressPool = new Azure.Lb.BackendAddressPool(\"exampleBackendAddressPool\", new Azure.Lb.BackendAddressPoolArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            LoadbalancerId = azurerm_lb.Test.Id,\n        });\n        var exampleProbe = new Azure.Lb.Probe(\"exampleProbe\", new Azure.Lb.ProbeArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            LoadbalancerId = azurerm_lb.Test.Id,\n            Port = 22,\n            Protocol = \"Tcp\",\n        });\n        var exampleRule = new Azure.Lb.Rule(\"exampleRule\", new Azure.Lb.RuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            LoadbalancerId = azurerm_lb.Test.Id,\n            ProbeId = azurerm_lb_probe.Test.Id,\n            BackendAddressPoolId = azurerm_lb_backend_address_pool.Test.Id,\n            FrontendIpConfigurationName = \"internal\",\n            Protocol = \"Tcp\",\n            FrontendPort = 22,\n            BackendPort = 22,\n        });\n        var exampleConfiguration = new Azure.Maintenance.Configuration(\"exampleConfiguration\", new Azure.Maintenance.ConfigurationArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Scope = \"OSImage\",\n            Visibility = \"Custom\",\n            Window = new Azure.Maintenance.Inputs.ConfigurationWindowArgs\n            {\n                StartDateTime = \"2021-12-31 00:00\",\n                ExpirationDateTime = \"9999-12-31 00:00\",\n                Duration = \"06:00\",\n                TimeZone = \"Pacific Standard Time\",\n                RecurEvery = \"1Days\",\n            },\n        });\n        var exampleLinuxVirtualMachineScaleSet = new Azure.Compute.LinuxVirtualMachineScaleSet(\"exampleLinuxVirtualMachineScaleSet\", new Azure.Compute.LinuxVirtualMachineScaleSetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = \"Standard_F2\",\n            Instances = 1,\n            AdminUsername = \"adminuser\",\n            AdminPassword = \"P@ssword1234!\",\n            UpgradeMode = \"Automatic\",\n            HealthProbeId = exampleProbe.Id,\n            DisablePasswordAuthentication = false,\n            SourceImageReference = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetSourceImageReferenceArgs\n            {\n                Publisher = \"Canonical\",\n                Offer = \"UbuntuServer\",\n                Sku = \"16.04-LTS\",\n                Version = \"latest\",\n            },\n            OsDisk = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetOsDiskArgs\n            {\n                StorageAccountType = \"Standard_LRS\",\n                Caching = \"ReadWrite\",\n            },\n            NetworkInterfaces = \n            {\n                new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceArgs\n                {\n                    Name = \"example\",\n                    Primary = true,\n                    IpConfigurations = \n                    {\n                        new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs\n                        {\n                            Name = \"internal\",\n                            Primary = true,\n                            SubnetId = exampleSubnet.Id,\n                            LoadBalancerBackendAddressPoolIds = \n                            {\n                                exampleBackendAddressPool.Id,\n                            },\n                        },\n                    },\n                },\n            },\n            AutomaticOsUpgradePolicy = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicyArgs\n            {\n                DisableAutomaticRollback = true,\n                EnableAutomaticOsUpgrade = true,\n            },\n            RollingUpgradePolicy = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetRollingUpgradePolicyArgs\n            {\n                MaxBatchInstancePercent = 20,\n                MaxUnhealthyInstancePercent = 20,\n                MaxUnhealthyUpgradedInstancePercent = 20,\n                PauseTimeBetweenBatches = \"PT0S\",\n            },\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                \"azurerm_lb_rule.example\",\n            },\n        });\n        var exampleAssignmentVirtualMachineScaleSet = new Azure.Maintenance.AssignmentVirtualMachineScaleSet(\"exampleAssignmentVirtualMachineScaleSet\", new Azure.Maintenance.AssignmentVirtualMachineScaleSetArgs\n        {\n            Location = exampleResourceGroup.Location,\n            MaintenanceConfigurationId = exampleConfiguration.Id,\n            VirtualMachineScaleSetId = azurerm_linux_virtual_machine.Example.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/maintenance\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewLoadBalancer(ctx, \"exampleLoadBalancer\", \u0026lb.LoadBalancerArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tFrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{\n\t\t\t\t\u0026lb.LoadBalancerFrontendIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(\"internal\"),\n\t\t\t\t\tPublicIpAddressId: pulumi.Any(azurerm_public_ip.Test.Id),\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\texampleBackendAddressPool, err := lb.NewBackendAddressPool(ctx, \"exampleBackendAddressPool\", \u0026lb.BackendAddressPoolArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLoadbalancerId:    pulumi.Any(azurerm_lb.Test.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleProbe, err := lb.NewProbe(ctx, \"exampleProbe\", \u0026lb.ProbeArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLoadbalancerId:    pulumi.Any(azurerm_lb.Test.Id),\n\t\t\tPort:              pulumi.Int(22),\n\t\t\tProtocol:          pulumi.String(\"Tcp\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewRule(ctx, \"exampleRule\", \u0026lb.RuleArgs{\n\t\t\tResourceGroupName:           exampleResourceGroup.Name,\n\t\t\tLoadbalancerId:              pulumi.Any(azurerm_lb.Test.Id),\n\t\t\tProbeId:                     pulumi.Any(azurerm_lb_probe.Test.Id),\n\t\t\tBackendAddressPoolId:        pulumi.Any(azurerm_lb_backend_address_pool.Test.Id),\n\t\t\tFrontendIpConfigurationName: pulumi.String(\"internal\"),\n\t\t\tProtocol:                    pulumi.String(\"Tcp\"),\n\t\t\tFrontendPort:                pulumi.Int(22),\n\t\t\tBackendPort:                 pulumi.Int(22),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleConfiguration, err := maintenance.NewConfiguration(ctx, \"exampleConfiguration\", \u0026maintenance.ConfigurationArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tScope:             pulumi.String(\"OSImage\"),\n\t\t\tVisibility:        pulumi.String(\"Custom\"),\n\t\t\tWindow: \u0026maintenance.ConfigurationWindowArgs{\n\t\t\t\tStartDateTime:      pulumi.String(\"2021-12-31 00:00\"),\n\t\t\t\tExpirationDateTime: pulumi.String(\"9999-12-31 00:00\"),\n\t\t\t\tDuration:           pulumi.String(\"06:00\"),\n\t\t\t\tTimeZone:           pulumi.String(\"Pacific Standard Time\"),\n\t\t\t\tRecurEvery:         pulumi.String(\"1Days\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewLinuxVirtualMachineScaleSet(ctx, \"exampleLinuxVirtualMachineScaleSet\", \u0026compute.LinuxVirtualMachineScaleSetArgs{\n\t\t\tResourceGroupName:             exampleResourceGroup.Name,\n\t\t\tLocation:                      exampleResourceGroup.Location,\n\t\t\tSku:                           pulumi.String(\"Standard_F2\"),\n\t\t\tInstances:                     pulumi.Int(1),\n\t\t\tAdminUsername:                 pulumi.String(\"adminuser\"),\n\t\t\tAdminPassword:                 pulumi.String(\"P@ssword1234!\"),\n\t\t\tUpgradeMode:                   pulumi.String(\"Automatic\"),\n\t\t\tHealthProbeId:                 exampleProbe.ID(),\n\t\t\tDisablePasswordAuthentication: pulumi.Bool(false),\n\t\t\tSourceImageReference: \u0026compute.LinuxVirtualMachineScaleSetSourceImageReferenceArgs{\n\t\t\t\tPublisher: pulumi.String(\"Canonical\"),\n\t\t\t\tOffer:     pulumi.String(\"UbuntuServer\"),\n\t\t\t\tSku:       pulumi.String(\"16.04-LTS\"),\n\t\t\t\tVersion:   pulumi.String(\"latest\"),\n\t\t\t},\n\t\t\tOsDisk: \u0026compute.LinuxVirtualMachineScaleSetOsDiskArgs{\n\t\t\t\tStorageAccountType: pulumi.String(\"Standard_LRS\"),\n\t\t\t\tCaching:            pulumi.String(\"ReadWrite\"),\n\t\t\t},\n\t\t\tNetworkInterfaces: compute.LinuxVirtualMachineScaleSetNetworkInterfaceArray{\n\t\t\t\t\u0026compute.LinuxVirtualMachineScaleSetNetworkInterfaceArgs{\n\t\t\t\t\tName:    pulumi.String(\"example\"),\n\t\t\t\t\tPrimary: pulumi.Bool(true),\n\t\t\t\t\tIpConfigurations: compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArray{\n\t\t\t\t\t\t\u0026compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\t\t\tName:     pulumi.String(\"internal\"),\n\t\t\t\t\t\t\tPrimary:  pulumi.Bool(true),\n\t\t\t\t\t\t\tSubnetId: exampleSubnet.ID(),\n\t\t\t\t\t\t\tLoadBalancerBackendAddressPoolIds: pulumi.StringArray{\n\t\t\t\t\t\t\t\texampleBackendAddressPool.ID(),\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\tAutomaticOsUpgradePolicy: \u0026compute.LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicyArgs{\n\t\t\t\tDisableAutomaticRollback: pulumi.Bool(true),\n\t\t\t\tEnableAutomaticOsUpgrade: pulumi.Bool(true),\n\t\t\t},\n\t\t\tRollingUpgradePolicy: \u0026compute.LinuxVirtualMachineScaleSetRollingUpgradePolicyArgs{\n\t\t\t\tMaxBatchInstancePercent:             pulumi.Int(20),\n\t\t\t\tMaxUnhealthyInstancePercent:         pulumi.Int(20),\n\t\t\t\tMaxUnhealthyUpgradedInstancePercent: pulumi.Int(20),\n\t\t\t\tPauseTimeBetweenBatches:             pulumi.String(\"PT0S\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tpulumi.Resource(\"azurerm_lb_rule.example\"),\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = maintenance.NewAssignmentVirtualMachineScaleSet(ctx, \"exampleAssignmentVirtualMachineScaleSet\", \u0026maintenance.AssignmentVirtualMachineScaleSetArgs{\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tMaintenanceConfigurationId: exampleConfiguration.ID(),\n\t\t\tVirtualMachineScaleSetId:   pulumi.Any(azurerm_linux_virtual_machine.Example.Id),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMaintenance Assignment can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:maintenance/assignmentVirtualMachineScaleSet:AssignmentVirtualMachineScaleSet example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resGroup1/providers/microsoft.compute/virtualMachineScaleSets/vmss1/providers/Microsoft.Maintenance/configurationAssignments/assign1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maintenanceConfigurationId": {
          "description": "Specifies the ID of the Maintenance Configuration Resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualMachineScaleSetId": {
          "description": "Specifies the Virtual Machine Scale Set ID to which the Maintenance Configuration will be assigned. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maintenanceConfigurationId": {
          "description": "Specifies the ID of the Maintenance Configuration Resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualMachineScaleSetId": {
          "description": "Specifies the Virtual Machine Scale Set ID to which the Maintenance Configuration will be assigned. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "maintenanceConfigurationId",
        "virtualMachineScaleSetId"
      ],
      "requiredInputs": [
        "maintenanceConfigurationId",
        "virtualMachineScaleSetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AssignmentVirtualMachineScaleSet resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maintenanceConfigurationId": {
            "description": "Specifies the ID of the Maintenance Configuration Resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "virtualMachineScaleSetId": {
            "description": "Specifies the Virtual Machine Scale Set ID to which the Maintenance Configuration will be assigned. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:maintenance/configuration:Configuration": {
      "description": "Manages a maintenance configuration.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleConfiguration = new azure.maintenance.Configuration(\"exampleConfiguration\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    scope: \"All\",\n    tags: {\n        Env: \"prod\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_configuration = azure.maintenance.Configuration(\"exampleConfiguration\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    scope=\"All\",\n    tags={\n        \"Env\": \"prod\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleConfiguration = new Azure.Maintenance.Configuration(\"exampleConfiguration\", new Azure.Maintenance.ConfigurationArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Scope = \"All\",\n            Tags = \n            {\n                { \"Env\", \"prod\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/maintenance\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = maintenance.NewConfiguration(ctx, \"exampleConfiguration\", \u0026maintenance.ConfigurationArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tScope:             pulumi.String(\"All\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Env\": pulumi.String(\"prod\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMaintenance Configuration can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:maintenance/configuration:Configuration example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.maintenance/maintenanceconfigurations/example-mc\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specified the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Maintenance Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "properties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of properties to assign to the resource.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Maintenance Configuration should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "The scope of the Maintenance Configuration. Possible values are `All`, `Extension`, `Host`, `InGuestPatch`, `OSImage`, `SQLDB` or `SQLManagedInstance`. Defaults to `All`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource. The key could not contain upper case letter.\n",
          "type": "object"
        },
        "visibility": {
          "description": "The visibility of the Maintenance Configuration. The only allowable value is `Custom`.\n",
          "type": "string"
        },
        "window": {
          "$ref": "#/types/azure:maintenance/ConfigurationWindow:ConfigurationWindow",
          "description": "A `window` block as defined below.\n"
        }
      },
      "properties": {
        "location": {
          "description": "Specified the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Maintenance Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "properties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of properties to assign to the resource.\n",
          "type": "object"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Maintenance Configuration should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "The scope of the Maintenance Configuration. Possible values are `All`, `Extension`, `Host`, `InGuestPatch`, `OSImage`, `SQLDB` or `SQLManagedInstance`. Defaults to `All`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource. The key could not contain upper case letter.\n",
          "type": "object"
        },
        "visibility": {
          "description": "The visibility of the Maintenance Configuration. The only allowable value is `Custom`.\n",
          "type": "string"
        },
        "window": {
          "$ref": "#/types/azure:maintenance/ConfigurationWindow:ConfigurationWindow",
          "description": "A `window` block as defined below.\n"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Configuration resources.\n",
        "properties": {
          "location": {
            "description": "Specified the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Maintenance Configuration. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "properties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of properties to assign to the resource.\n",
            "type": "object"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Maintenance Configuration should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scope": {
            "description": "The scope of the Maintenance Configuration. Possible values are `All`, `Extension`, `Host`, `InGuestPatch`, `OSImage`, `SQLDB` or `SQLManagedInstance`. Defaults to `All`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource. The key could not contain upper case letter.\n",
            "type": "object"
          },
          "visibility": {
            "description": "The visibility of the Maintenance Configuration. The only allowable value is `Custom`.\n",
            "type": "string"
          },
          "window": {
            "$ref": "#/types/azure:maintenance/ConfigurationWindow:ConfigurationWindow",
            "description": "A `window` block as defined below.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:managedapplication/application:Application": {
      "description": "Manages a Managed Application.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst builtin = azure.authorization.getRoleDefinition({\n    name: \"Contributor\",\n});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleDefinition = new azure.managedapplication.Definition(\"exampleDefinition\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    lockLevel: \"ReadOnly\",\n    packageFileUri: \"https://github.com/Azure/azure-managedapp-samples/raw/master/Managed Application Sample Packages/201-managed-storage-account/managedstorage.zip\",\n    displayName: \"TestManagedAppDefinition\",\n    description: \"Test Managed App Definition\",\n    authorizations: [{\n        servicePrincipalId: current.then(current =\u003e current.objectId),\n        roleDefinitionId: Promise.all([builtin.then(builtin =\u003e builtin.id.split(\"/\")), builtin.then(builtin =\u003e builtin.id.split(\"/\")).length]).then(([split, length]) =\u003e split[length - 1]),\n    }],\n});\nconst exampleApplication = new azure.managedapplication.Application(\"exampleApplication\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    kind: \"ServiceCatalog\",\n    managedResourceGroupName: \"infrastructureGroup\",\n    applicationDefinitionId: exampleDefinition.id,\n    parameters: {\n        location: exampleResourceGroup.location,\n        storageAccountNamePrefix: \"storeNamePrefix\",\n        storageAccountType: \"Standard_LRS\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nbuiltin = azure.authorization.get_role_definition(name=\"Contributor\")\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_definition = azure.managedapplication.Definition(\"exampleDefinition\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    lock_level=\"ReadOnly\",\n    package_file_uri=\"https://github.com/Azure/azure-managedapp-samples/raw/master/Managed Application Sample Packages/201-managed-storage-account/managedstorage.zip\",\n    display_name=\"TestManagedAppDefinition\",\n    description=\"Test Managed App Definition\",\n    authorizations=[azure.managedapplication.DefinitionAuthorizationArgs(\n        service_principal_id=current.object_id,\n        role_definition_id=builtin.id.split(\"/\")[len(builtin.id.split(\"/\")) - 1],\n    )])\nexample_application = azure.managedapplication.Application(\"exampleApplication\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    kind=\"ServiceCatalog\",\n    managed_resource_group_name=\"infrastructureGroup\",\n    application_definition_id=example_definition.id,\n    parameters={\n        \"location\": example_resource_group.location,\n        \"storageAccountNamePrefix\": \"storeNamePrefix\",\n        \"storage_account_type\": \"Standard_LRS\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var builtin = Output.Create(Azure.Authorization.GetRoleDefinition.InvokeAsync(new Azure.Authorization.GetRoleDefinitionArgs\n        {\n            Name = \"Contributor\",\n        }));\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleDefinition = new Azure.ManagedApplication.Definition(\"exampleDefinition\", new Azure.ManagedApplication.DefinitionArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            LockLevel = \"ReadOnly\",\n            PackageFileUri = \"https://github.com/Azure/azure-managedapp-samples/raw/master/Managed Application Sample Packages/201-managed-storage-account/managedstorage.zip\",\n            DisplayName = \"TestManagedAppDefinition\",\n            Description = \"Test Managed App Definition\",\n            Authorizations = \n            {\n                new Azure.ManagedApplication.Inputs.DefinitionAuthorizationArgs\n                {\n                    ServicePrincipalId = current.Apply(current =\u003e current.ObjectId),\n                    RoleDefinitionId = Output.Tuple(builtin.Apply(builtin =\u003e builtin.Id.Split(\"/\")), builtin.Apply(builtin =\u003e builtin.Id.Split(\"/\")).Length).Apply(values =\u003e\n                    {\n                        var split = values.Item1;\n                        var length = values.Item2;\n                        return split[length - 1];\n                    }),\n                },\n            },\n        });\n        var exampleApplication = new Azure.ManagedApplication.Application(\"exampleApplication\", new Azure.ManagedApplication.ApplicationArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Kind = \"ServiceCatalog\",\n            ManagedResourceGroupName = \"infrastructureGroup\",\n            ApplicationDefinitionId = exampleDefinition.Id,\n            Parameters = \n            {\n                { \"location\", exampleResourceGroup.Location },\n                { \"storageAccountNamePrefix\", \"storeNamePrefix\" },\n                { \"storageAccountType\", \"Standard_LRS\" },\n            },\n        });\n    }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nManaged Application can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:managedapplication/application:Application example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Solutions/applications/app1\n```\n\n ",
      "inputProperties": {
        "applicationDefinitionId": {
          "description": "The application definition ID to deploy.\n",
          "type": "string"
        },
        "kind": {
          "description": "The kind of the managed application to deploy. Possible values are `MarketPlace` and `ServiceCatalog`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managedResourceGroupName": {
          "description": "The name of the target resource group where all the resources deployed by the managed application will reside. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Managed Application. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "parameterValues": {
          "description": "The parameter values to pass to the Managed Application. This field is a json object that allows you to assign parameters to this Managed Application.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of name and value pairs to pass to the managed application as parameters.\n",
          "type": "object"
        },
        "plan": {
          "$ref": "#/types/azure:managedapplication/ApplicationPlan:ApplicationPlan",
          "description": "One `plan` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Managed Application should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "applicationDefinitionId": {
          "description": "The application definition ID to deploy.\n",
          "type": "string"
        },
        "kind": {
          "description": "The kind of the managed application to deploy. Possible values are `MarketPlace` and `ServiceCatalog`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managedResourceGroupName": {
          "description": "The name of the target resource group where all the resources deployed by the managed application will reside. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Managed Application. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "outputs": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The name and value pairs that define the managed application outputs.\n",
          "type": "object"
        },
        "parameterValues": {
          "description": "The parameter values to pass to the Managed Application. This field is a json object that allows you to assign parameters to this Managed Application.\n",
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of name and value pairs to pass to the managed application as parameters.\n",
          "type": "object"
        },
        "plan": {
          "$ref": "#/types/azure:managedapplication/ApplicationPlan:ApplicationPlan",
          "description": "One `plan` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Managed Application should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "kind",
        "location",
        "managedResourceGroupName",
        "name",
        "outputs",
        "parameterValues",
        "parameters",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "kind",
        "managedResourceGroupName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Application resources.\n",
        "properties": {
          "applicationDefinitionId": {
            "description": "The application definition ID to deploy.\n",
            "type": "string"
          },
          "kind": {
            "description": "The kind of the managed application to deploy. Possible values are `MarketPlace` and `ServiceCatalog`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "managedResourceGroupName": {
            "description": "The name of the target resource group where all the resources deployed by the managed application will reside. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Managed Application. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "outputs": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The name and value pairs that define the managed application outputs.\n",
            "type": "object"
          },
          "parameterValues": {
            "description": "The parameter values to pass to the Managed Application. This field is a json object that allows you to assign parameters to this Managed Application.\n",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of name and value pairs to pass to the managed application as parameters.\n",
            "type": "object"
          },
          "plan": {
            "$ref": "#/types/azure:managedapplication/ApplicationPlan:ApplicationPlan",
            "description": "One `plan` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Managed Application should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:managedapplication/definition:Definition": {
      "description": "Manages a Managed Application Definition.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleDefinition = new azure.managedapplication.Definition(\"exampleDefinition\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    lockLevel: \"ReadOnly\",\n    packageFileUri: \"https://github.com/Azure/azure-managedapp-samples/raw/master/Managed Application Sample Packages/201-managed-storage-account/managedstorage.zip\",\n    displayName: \"TestManagedApplicationDefinition\",\n    description: \"Test Managed Application Definition\",\n    authorizations: [{\n        servicePrincipalId: current.then(current =\u003e current.objectId),\n        roleDefinitionId: \"a094b430-dad3-424d-ae58-13f72fd72591\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_definition = azure.managedapplication.Definition(\"exampleDefinition\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    lock_level=\"ReadOnly\",\n    package_file_uri=\"https://github.com/Azure/azure-managedapp-samples/raw/master/Managed Application Sample Packages/201-managed-storage-account/managedstorage.zip\",\n    display_name=\"TestManagedApplicationDefinition\",\n    description=\"Test Managed Application Definition\",\n    authorizations=[azure.managedapplication.DefinitionAuthorizationArgs(\n        service_principal_id=current.object_id,\n        role_definition_id=\"a094b430-dad3-424d-ae58-13f72fd72591\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleDefinition = new Azure.ManagedApplication.Definition(\"exampleDefinition\", new Azure.ManagedApplication.DefinitionArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            LockLevel = \"ReadOnly\",\n            PackageFileUri = \"https://github.com/Azure/azure-managedapp-samples/raw/master/Managed Application Sample Packages/201-managed-storage-account/managedstorage.zip\",\n            DisplayName = \"TestManagedApplicationDefinition\",\n            Description = \"Test Managed Application Definition\",\n            Authorizations = \n            {\n                new Azure.ManagedApplication.Inputs.DefinitionAuthorizationArgs\n                {\n                    ServicePrincipalId = current.Apply(current =\u003e current.ObjectId),\n                    RoleDefinitionId = \"a094b430-dad3-424d-ae58-13f72fd72591\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/managedapplication\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = managedapplication.NewDefinition(ctx, \"exampleDefinition\", \u0026managedapplication.DefinitionArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLockLevel:         pulumi.String(\"ReadOnly\"),\n\t\t\tPackageFileUri:    pulumi.String(\"https://github.com/Azure/azure-managedapp-samples/raw/master/Managed Application Sample Packages/201-managed-storage-account/managedstorage.zip\"),\n\t\t\tDisplayName:       pulumi.String(\"TestManagedApplicationDefinition\"),\n\t\t\tDescription:       pulumi.String(\"Test Managed Application Definition\"),\n\t\t\tAuthorizations: managedapplication.DefinitionAuthorizationArray{\n\t\t\t\t\u0026managedapplication.DefinitionAuthorizationArgs{\n\t\t\t\t\tServicePrincipalId: pulumi.String(current.ObjectId),\n\t\t\t\t\tRoleDefinitionId:   pulumi.String(\"a094b430-dad3-424d-ae58-13f72fd72591\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nManaged Application Definition can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:managedapplication/definition:Definition example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Solutions/applicationDefinitions/appDefinition1\n```\n\n ",
      "inputProperties": {
        "authorizations": {
          "description": "One or more `authorization` block defined below.\n",
          "items": {
            "$ref": "#/types/azure:managedapplication/DefinitionAuthorization:DefinitionAuthorization"
          },
          "type": "array"
        },
        "createUiDefinition": {
          "description": "Specifies the `createUiDefinition` json for the backing template with `Microsoft.Solutions/applications` resource.\n",
          "type": "string"
        },
        "description": {
          "description": "Specifies the managed application definition description.\n",
          "type": "string"
        },
        "displayName": {
          "description": "Specifies the managed application definition display name.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "lockLevel": {
          "description": "Specifies the managed application lock level. Valid values include `CanNotDelete`, `None`, `ReadOnly`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mainTemplate": {
          "description": "Specifies the inline main template json which has resources to be provisioned.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Managed Application Definition. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "packageEnabled": {
          "description": "Is the package enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "packageFileUri": {
          "description": "Specifies the managed application definition package file Uri.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Managed Application Definition should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "authorizations": {
          "description": "One or more `authorization` block defined below.\n",
          "items": {
            "$ref": "#/types/azure:managedapplication/DefinitionAuthorization:DefinitionAuthorization"
          },
          "type": "array"
        },
        "createUiDefinition": {
          "description": "Specifies the `createUiDefinition` json for the backing template with `Microsoft.Solutions/applications` resource.\n",
          "type": "string"
        },
        "description": {
          "description": "Specifies the managed application definition description.\n",
          "type": "string"
        },
        "displayName": {
          "description": "Specifies the managed application definition display name.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "lockLevel": {
          "description": "Specifies the managed application lock level. Valid values include `CanNotDelete`, `None`, `ReadOnly`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mainTemplate": {
          "description": "Specifies the inline main template json which has resources to be provisioned.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Managed Application Definition. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "packageEnabled": {
          "description": "Is the package enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "packageFileUri": {
          "description": "Specifies the managed application definition package file Uri.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Managed Application Definition should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "displayName",
        "location",
        "lockLevel",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "displayName",
        "lockLevel",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Definition resources.\n",
        "properties": {
          "authorizations": {
            "description": "One or more `authorization` block defined below.\n",
            "items": {
              "$ref": "#/types/azure:managedapplication/DefinitionAuthorization:DefinitionAuthorization"
            },
            "type": "array"
          },
          "createUiDefinition": {
            "description": "Specifies the `createUiDefinition` json for the backing template with `Microsoft.Solutions/applications` resource.\n",
            "type": "string"
          },
          "description": {
            "description": "Specifies the managed application definition description.\n",
            "type": "string"
          },
          "displayName": {
            "description": "Specifies the managed application definition display name.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "lockLevel": {
            "description": "Specifies the managed application lock level. Valid values include `CanNotDelete`, `None`, `ReadOnly`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "mainTemplate": {
            "description": "Specifies the inline main template json which has resources to be provisioned.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Managed Application Definition. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "packageEnabled": {
            "description": "Is the package enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "packageFileUri": {
            "description": "Specifies the managed application definition package file Uri.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Managed Application Definition should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:management/group:Group": {
      "aliases": [
        {
          "type": "azure:managementgroups/managementGroup:ManagementGroup"
        }
      ],
      "description": "Manages a Management Group.\n\n!\u003e **Note:** Configuring `subscription_ids` is not supported when using the `azure.management.GroupSubscriptionAssociation` resource, results will be unpredictable.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getSubscription({});\nconst exampleParent = new azure.management.Group(\"exampleParent\", {\n    displayName: \"ParentGroup\",\n    subscriptionIds: [current.then(current =\u003e current.subscriptionId)],\n});\nconst exampleChild = new azure.management.Group(\"exampleChild\", {\n    displayName: \"ChildGroup\",\n    parentManagementGroupId: exampleParent.id,\n    subscriptionIds: [current.then(current =\u003e current.subscriptionId)],\n});\n// other subscription IDs can go here\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_subscription()\nexample_parent = azure.management.Group(\"exampleParent\",\n    display_name=\"ParentGroup\",\n    subscription_ids=[current.subscription_id])\nexample_child = azure.management.Group(\"exampleChild\",\n    display_name=\"ChildGroup\",\n    parent_management_group_id=example_parent.id,\n    subscription_ids=[current.subscription_id])\n# other subscription IDs can go here\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var exampleParent = new Azure.Management.Group(\"exampleParent\", new Azure.Management.GroupArgs\n        {\n            DisplayName = \"ParentGroup\",\n            SubscriptionIds = \n            {\n                current.Apply(current =\u003e current.SubscriptionId),\n            },\n        });\n        var exampleChild = new Azure.Management.Group(\"exampleChild\", new Azure.Management.GroupArgs\n        {\n            DisplayName = \"ChildGroup\",\n            ParentManagementGroupId = exampleParent.Id,\n            SubscriptionIds = \n            {\n                current.Apply(current =\u003e current.SubscriptionId),\n            },\n        });\n        // other subscription IDs can go here\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleParent, err := management.NewGroup(ctx, \"exampleParent\", \u0026management.GroupArgs{\n\t\t\tDisplayName: pulumi.String(\"ParentGroup\"),\n\t\t\tSubscriptionIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(current.SubscriptionId),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = management.NewGroup(ctx, \"exampleChild\", \u0026management.GroupArgs{\n\t\t\tDisplayName:             pulumi.String(\"ChildGroup\"),\n\t\t\tParentManagementGroupId: exampleParent.ID(),\n\t\t\tSubscriptionIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(current.SubscriptionId),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nManagement Groups can be imported using the `management group resource id`, e.g.\n\n```sh\n $ pulumi import azure:management/group:Group example /providers/Microsoft.Management/managementGroups/group1\n```\n\n ",
      "inputProperties": {
        "displayName": {
          "description": "A friendly name for this Management Group. If not specified, this'll be the same as the `name`.\n",
          "type": "string"
        },
        "groupId": {
          "deprecationMessage": "Deprecated in favour of `name`",
          "description": "The name or UUID for this Management Group, which needs to be unique across your tenant. A new UUID will be generated if not provided. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name or UUID for this Management Group, which needs to be unique across your tenant. A new UUID will be generated if not provided. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "parentManagementGroupId": {
          "description": "The ID of the Parent Management Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subscriptionIds": {
          "description": "A list of Subscription GUIDs which should be assigned to the Management Group.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "displayName": {
          "description": "A friendly name for this Management Group. If not specified, this'll be the same as the `name`.\n",
          "type": "string"
        },
        "groupId": {
          "deprecationMessage": "Deprecated in favour of `name`",
          "description": "The name or UUID for this Management Group, which needs to be unique across your tenant. A new UUID will be generated if not provided. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name or UUID for this Management Group, which needs to be unique across your tenant. A new UUID will be generated if not provided. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "parentManagementGroupId": {
          "description": "The ID of the Parent Management Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subscriptionIds": {
          "description": "A list of Subscription GUIDs which should be assigned to the Management Group.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "displayName",
        "groupId",
        "name",
        "parentManagementGroupId",
        "subscriptionIds"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Group resources.\n",
        "properties": {
          "displayName": {
            "description": "A friendly name for this Management Group. If not specified, this'll be the same as the `name`.\n",
            "type": "string"
          },
          "groupId": {
            "deprecationMessage": "Deprecated in favour of `name`",
            "description": "The name or UUID for this Management Group, which needs to be unique across your tenant. A new UUID will be generated if not provided. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name or UUID for this Management Group, which needs to be unique across your tenant. A new UUID will be generated if not provided. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "parentManagementGroupId": {
            "description": "The ID of the Parent Management Group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subscriptionIds": {
            "description": "A list of Subscription GUIDs which should be assigned to the Management Group.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:management/groupPolicyAssignment:GroupPolicyAssignment": {
      "description": "Manages a Policy Assignment to a Management Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleGroup = new azure.management.Group(\"exampleGroup\", {displayName: \"Some Management Group\"});\nconst exampleDefinition = new azure.policy.Definition(\"exampleDefinition\", {\n    policyType: \"Custom\",\n    mode: \"All\",\n    managementGroupId: exampleGroup.groupId,\n    policyRule: `\t{\n    \"if\": {\n      \"not\": {\n        \"field\": \"location\",\n        \"equals\": \"westeurope\"\n      }\n    },\n    \"then\": {\n      \"effect\": \"Deny\"\n    }\n  }\n`,\n});\nconst exampleGroupPolicyAssignment = new azure.management.GroupPolicyAssignment(\"exampleGroupPolicyAssignment\", {\n    policyDefinitionId: exampleDefinition.id,\n    managementGroupId: exampleGroup.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_group = azure.management.Group(\"exampleGroup\", display_name=\"Some Management Group\")\nexample_definition = azure.policy.Definition(\"exampleDefinition\",\n    policy_type=\"Custom\",\n    mode=\"All\",\n    management_group_id=example_group.group_id,\n    policy_rule=\"\"\"\t{\n    \"if\": {\n      \"not\": {\n        \"field\": \"location\",\n        \"equals\": \"westeurope\"\n      }\n    },\n    \"then\": {\n      \"effect\": \"Deny\"\n    }\n  }\n\"\"\")\nexample_group_policy_assignment = azure.management.GroupPolicyAssignment(\"exampleGroupPolicyAssignment\",\n    policy_definition_id=example_definition.id,\n    management_group_id=example_group.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleGroup = new Azure.Management.Group(\"exampleGroup\", new Azure.Management.GroupArgs\n        {\n            DisplayName = \"Some Management Group\",\n        });\n        var exampleDefinition = new Azure.Policy.Definition(\"exampleDefinition\", new Azure.Policy.DefinitionArgs\n        {\n            PolicyType = \"Custom\",\n            Mode = \"All\",\n            ManagementGroupId = exampleGroup.GroupId,\n            PolicyRule = @\"\t{\n    \"\"if\"\": {\n      \"\"not\"\": {\n        \"\"field\"\": \"\"location\"\",\n        \"\"equals\"\": \"\"westeurope\"\"\n      }\n    },\n    \"\"then\"\": {\n      \"\"effect\"\": \"\"Deny\"\"\n    }\n  }\n\",\n        });\n        var exampleGroupPolicyAssignment = new Azure.Management.GroupPolicyAssignment(\"exampleGroupPolicyAssignment\", new Azure.Management.GroupPolicyAssignmentArgs\n        {\n            PolicyDefinitionId = exampleDefinition.Id,\n            ManagementGroupId = exampleGroup.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/policy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleGroup, err := management.NewGroup(ctx, \"exampleGroup\", \u0026management.GroupArgs{\n\t\t\tDisplayName: pulumi.String(\"Some Management Group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDefinition, err := policy.NewDefinition(ctx, \"exampleDefinition\", \u0026policy.DefinitionArgs{\n\t\t\tPolicyType:        pulumi.String(\"Custom\"),\n\t\t\tMode:              pulumi.String(\"All\"),\n\t\t\tManagementGroupId: exampleGroup.GroupId,\n\t\t\tPolicyRule: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v\", \"\t{\\n\", \"    \\\"if\\\": {\\n\", \"      \\\"not\\\": {\\n\", \"        \\\"field\\\": \\\"location\\\",\\n\", \"        \\\"equals\\\": \\\"westeurope\\\"\\n\", \"      }\\n\", \"    },\\n\", \"    \\\"then\\\": {\\n\", \"      \\\"effect\\\": \\\"Deny\\\"\\n\", \"    }\\n\", \"  }\\n\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = management.NewGroupPolicyAssignment(ctx, \"exampleGroupPolicyAssignment\", \u0026management.GroupPolicyAssignmentArgs{\n\t\t\tPolicyDefinitionId: exampleDefinition.ID(),\n\t\t\tManagementGroupId:  exampleGroup.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nManagement Group Policy Assignments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:management/groupPolicyAssignment:GroupPolicyAssignment example /providers/Microsoft.Management/managementGroups/group1/providers/Microsoft.Authorization/policyAssignments/assignment1\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "A description which should be used for this Policy Assignment.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The Display Name for this Policy Assignment.\n",
          "type": "string"
        },
        "enforce": {
          "description": "Specifies if this Policy should be enforced or not?\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:management/GroupPolicyAssignmentIdentity:GroupPolicyAssignmentIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Policy Assignment should exist. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "managementGroupId": {
          "description": "The ID of the Management Group. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "A JSON mapping of any Metadata for this Policy.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Policy Assignment. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "notScopes": {
          "description": "Specifies a list of Resource Scopes (for example a Subscription, or a Resource Group) within this Management Group which are excluded from this Policy.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "parameters": {
          "description": "A JSON mapping of any Parameters for this Policy. Changing this forces a new Management Group Policy Assignment to be created.\n",
          "type": "string"
        },
        "policyDefinitionId": {
          "description": "The ID of the Policy Definition or Policy Definition Set. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "description": {
          "description": "A description which should be used for this Policy Assignment.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The Display Name for this Policy Assignment.\n",
          "type": "string"
        },
        "enforce": {
          "description": "Specifies if this Policy should be enforced or not?\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:management/GroupPolicyAssignmentIdentity:GroupPolicyAssignmentIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Policy Assignment should exist. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "managementGroupId": {
          "description": "The ID of the Management Group. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "A JSON mapping of any Metadata for this Policy.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Policy Assignment. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        },
        "notScopes": {
          "description": "Specifies a list of Resource Scopes (for example a Subscription, or a Resource Group) within this Management Group which are excluded from this Policy.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "parameters": {
          "description": "A JSON mapping of any Parameters for this Policy. Changing this forces a new Management Group Policy Assignment to be created.\n",
          "type": "string"
        },
        "policyDefinitionId": {
          "description": "The ID of the Policy Definition or Policy Definition Set. Changing this forces a new Policy Assignment to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "managementGroupId",
        "metadata",
        "name",
        "policyDefinitionId"
      ],
      "requiredInputs": [
        "managementGroupId",
        "policyDefinitionId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GroupPolicyAssignment resources.\n",
        "properties": {
          "description": {
            "description": "A description which should be used for this Policy Assignment.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The Display Name for this Policy Assignment.\n",
            "type": "string"
          },
          "enforce": {
            "description": "Specifies if this Policy should be enforced or not?\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:management/GroupPolicyAssignmentIdentity:GroupPolicyAssignmentIdentity",
            "description": "A `identity` block as defined below.\n"
          },
          "location": {
            "description": "The Azure Region where the Policy Assignment should exist. Changing this forces a new Policy Assignment to be created.\n",
            "type": "string"
          },
          "managementGroupId": {
            "description": "The ID of the Management Group. Changing this forces a new Policy Assignment to be created.\n",
            "type": "string"
          },
          "metadata": {
            "description": "A JSON mapping of any Metadata for this Policy.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Policy Assignment. Changing this forces a new Policy Assignment to be created.\n",
            "type": "string"
          },
          "notScopes": {
            "description": "Specifies a list of Resource Scopes (for example a Subscription, or a Resource Group) within this Management Group which are excluded from this Policy.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "parameters": {
            "description": "A JSON mapping of any Parameters for this Policy. Changing this forces a new Management Group Policy Assignment to be created.\n",
            "type": "string"
          },
          "policyDefinitionId": {
            "description": "The ID of the Policy Definition or Policy Definition Set. Changing this forces a new Policy Assignment to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:management/groupSubscriptionAssociation:GroupSubscriptionAssociation": {
      "description": "Manages a Management Group Subscription Association.\n\n!\u003e **Note:** When using this resource, configuring `subscription_ids` on the `azure.management.Group` resource is not supported.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleGroup = azure.management.getGroup({\n    name: \"exampleManagementGroup\",\n});\nconst exampleSubscription = azure.core.getSubscription({\n    subscriptionId: \"12345678-1234-1234-1234-123456789012\",\n});\nconst exampleGroupSubscriptionAssociation = new azure.management.GroupSubscriptionAssociation(\"exampleGroupSubscriptionAssociation\", {\n    managementGroupId: exampleGroup.then(exampleGroup =\u003e exampleGroup.id),\n    subscriptionId: exampleSubscription.then(exampleSubscription =\u003e exampleSubscription.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_group = azure.management.get_group(name=\"exampleManagementGroup\")\nexample_subscription = azure.core.get_subscription(subscription_id=\"12345678-1234-1234-1234-123456789012\")\nexample_group_subscription_association = azure.management.GroupSubscriptionAssociation(\"exampleGroupSubscriptionAssociation\",\n    management_group_id=example_group.id,\n    subscription_id=example_subscription.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleGroup = Output.Create(Azure.Management.GetGroup.InvokeAsync(new Azure.Management.GetGroupArgs\n        {\n            Name = \"exampleManagementGroup\",\n        }));\n        var exampleSubscription = Output.Create(Azure.Core.GetSubscription.InvokeAsync(new Azure.Core.GetSubscriptionArgs\n        {\n            SubscriptionId = \"12345678-1234-1234-1234-123456789012\",\n        }));\n        var exampleGroupSubscriptionAssociation = new Azure.Management.GroupSubscriptionAssociation(\"exampleGroupSubscriptionAssociation\", new Azure.Management.GroupSubscriptionAssociationArgs\n        {\n            ManagementGroupId = exampleGroup.Apply(exampleGroup =\u003e exampleGroup.Id),\n            SubscriptionId = exampleSubscription.Apply(exampleSubscription =\u003e exampleSubscription.Id),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"exampleManagementGroup\"\n\t\texampleGroup, err := management.LookupGroup(ctx, \u0026management.LookupGroupArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\topt1 := \"12345678-1234-1234-1234-123456789012\"\n\t\texampleSubscription, err := core.LookupSubscription(ctx, \u0026core.LookupSubscriptionArgs{\n\t\t\tSubscriptionId: \u0026opt1,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = management.NewGroupSubscriptionAssociation(ctx, \"exampleGroupSubscriptionAssociation\", \u0026management.GroupSubscriptionAssociationArgs{\n\t\t\tManagementGroupId: pulumi.String(exampleGroup.Id),\n\t\t\tSubscriptionId:    pulumi.String(exampleSubscription.Id),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nManagements can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:management/groupSubscriptionAssociation:GroupSubscriptionAssociation example /managementGroup/MyManagementGroup/subscription/12345678-1234-1234-1234-123456789012\n```\n\n ",
      "inputProperties": {
        "managementGroupId": {
          "description": "The ID of the Management Group to associate the Subscription with. Changing this forces a new Management to be created.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "The ID of the Subscription to be associated with the Management Group. Changing this forces a new Management to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "managementGroupId": {
          "description": "The ID of the Management Group to associate the Subscription with. Changing this forces a new Management to be created.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "The ID of the Subscription to be associated with the Management Group. Changing this forces a new Management to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "managementGroupId",
        "subscriptionId"
      ],
      "requiredInputs": [
        "managementGroupId",
        "subscriptionId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GroupSubscriptionAssociation resources.\n",
        "properties": {
          "managementGroupId": {
            "description": "The ID of the Management Group to associate the Subscription with. Changing this forces a new Management to be created.\n",
            "type": "string"
          },
          "subscriptionId": {
            "description": "The ID of the Subscription to be associated with the Management Group. Changing this forces a new Management to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:management/groupTemplateDeployment:GroupTemplateDeployment": {
      "description": "Manages a Template Deployment at a Management Group Scope.\n\n\u003e **Note:** Deleting a Deployment at the Management Group Scope will not delete any resources created by the deployment. \n\n\u003e **Note:** Deployments to a Management Group are always Incrementally applied. Existing resources that are not part of the template will not be removed.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleGroup = azure.management.getGroup({\n    name: \"00000000-0000-0000-0000-000000000000\",\n});\nconst exampleGroupTemplateDeployment = new azure.management.GroupTemplateDeployment(\"exampleGroupTemplateDeployment\", {\n    location: \"West Europe\",\n    managementGroupId: exampleGroup.then(exampleGroup =\u003e exampleGroup.id),\n    templateContent: `{\n  \"$schema\": \"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#\",\n  \"contentVersion\": \"1.0.0.0\",\n  \"parameters\": {\n    \"policyAssignmentName\": {\n      \"type\": \"string\",\n      \"defaultValue\": \"[guid(parameters('policyDefinitionID'), resourceGroup().name)]\",\n      \"metadata\": {\n        \"description\": \"Specifies the name of the policy assignment, can be used defined or an idempotent name as the defaultValue provides.\"\n      }\n    },\n    \"policyDefinitionID\": {\n      \"type\": \"string\",\n      \"metadata\": {\n        \"description\": \"Specifies the ID of the policy definition or policy set definition being assigned.\"\n      }\n    }\n  },\n  \"resources\": [\n    {\n      \"type\": \"Microsoft.Authorization/policyAssignments\",\n      \"name\": \"[parameters('policyAssignmentName')]\",\n      \"apiVersion\": \"2019-09-01\",\n      \"properties\": {\n        \"scope\": \"[subscriptionResourceId('Microsoft.Resources/resourceGroups', resourceGroup().name)]\",\n        \"policyDefinitionId\": \"[parameters('policyDefinitionID')]\"\n      }\n    }\n  ]\n}\n`,\n    parametersContent: `{\n  \"$schema\": \"https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#\",\n  \"contentVersion\": \"1.0.0.0\",\n  \"parameters\": {\n    \"policyDefinitionID\": {\n      \"value\": \"/providers/Microsoft.Authorization/policyDefinitions/0a914e76-4921-4c19-b460-a2d36003525a\"\n    }\n  }\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_group = azure.management.get_group(name=\"00000000-0000-0000-0000-000000000000\")\nexample_group_template_deployment = azure.management.GroupTemplateDeployment(\"exampleGroupTemplateDeployment\",\n    location=\"West Europe\",\n    management_group_id=example_group.id,\n    template_content=\"\"\"{\n  \"$schema\": \"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#\",\n  \"contentVersion\": \"1.0.0.0\",\n  \"parameters\": {\n    \"policyAssignmentName\": {\n      \"type\": \"string\",\n      \"defaultValue\": \"[guid(parameters('policyDefinitionID'), resourceGroup().name)]\",\n      \"metadata\": {\n        \"description\": \"Specifies the name of the policy assignment, can be used defined or an idempotent name as the defaultValue provides.\"\n      }\n    },\n    \"policyDefinitionID\": {\n      \"type\": \"string\",\n      \"metadata\": {\n        \"description\": \"Specifies the ID of the policy definition or policy set definition being assigned.\"\n      }\n    }\n  },\n  \"resources\": [\n    {\n      \"type\": \"Microsoft.Authorization/policyAssignments\",\n      \"name\": \"[parameters('policyAssignmentName')]\",\n      \"apiVersion\": \"2019-09-01\",\n      \"properties\": {\n        \"scope\": \"[subscriptionResourceId('Microsoft.Resources/resourceGroups', resourceGroup().name)]\",\n        \"policyDefinitionId\": \"[parameters('policyDefinitionID')]\"\n      }\n    }\n  ]\n}\n\"\"\",\n    parameters_content=\"\"\"{\n  \"$schema\": \"https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#\",\n  \"contentVersion\": \"1.0.0.0\",\n  \"parameters\": {\n    \"policyDefinitionID\": {\n      \"value\": \"/providers/Microsoft.Authorization/policyDefinitions/0a914e76-4921-4c19-b460-a2d36003525a\"\n    }\n  }\n}\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleGroup = Output.Create(Azure.Management.GetGroup.InvokeAsync(new Azure.Management.GetGroupArgs\n        {\n            Name = \"00000000-0000-0000-0000-000000000000\",\n        }));\n        var exampleGroupTemplateDeployment = new Azure.Management.GroupTemplateDeployment(\"exampleGroupTemplateDeployment\", new Azure.Management.GroupTemplateDeploymentArgs\n        {\n            Location = \"West Europe\",\n            ManagementGroupId = exampleGroup.Apply(exampleGroup =\u003e exampleGroup.Id),\n            TemplateContent = @\"{\n  \"\"$schema\"\": \"\"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#\"\",\n  \"\"contentVersion\"\": \"\"1.0.0.0\"\",\n  \"\"parameters\"\": {\n    \"\"policyAssignmentName\"\": {\n      \"\"type\"\": \"\"string\"\",\n      \"\"defaultValue\"\": \"\"[guid(parameters('policyDefinitionID'), resourceGroup().name)]\"\",\n      \"\"metadata\"\": {\n        \"\"description\"\": \"\"Specifies the name of the policy assignment, can be used defined or an idempotent name as the defaultValue provides.\"\"\n      }\n    },\n    \"\"policyDefinitionID\"\": {\n      \"\"type\"\": \"\"string\"\",\n      \"\"metadata\"\": {\n        \"\"description\"\": \"\"Specifies the ID of the policy definition or policy set definition being assigned.\"\"\n      }\n    }\n  },\n  \"\"resources\"\": [\n    {\n      \"\"type\"\": \"\"Microsoft.Authorization/policyAssignments\"\",\n      \"\"name\"\": \"\"[parameters('policyAssignmentName')]\"\",\n      \"\"apiVersion\"\": \"\"2019-09-01\"\",\n      \"\"properties\"\": {\n        \"\"scope\"\": \"\"[subscriptionResourceId('Microsoft.Resources/resourceGroups', resourceGroup().name)]\"\",\n        \"\"policyDefinitionId\"\": \"\"[parameters('policyDefinitionID')]\"\"\n      }\n    }\n  ]\n}\n\",\n            ParametersContent = @\"{\n  \"\"$schema\"\": \"\"https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#\"\",\n  \"\"contentVersion\"\": \"\"1.0.0.0\"\",\n  \"\"parameters\"\": {\n    \"\"policyDefinitionID\"\": {\n      \"\"value\"\": \"\"/providers/Microsoft.Authorization/policyDefinitions/0a914e76-4921-4c19-b460-a2d36003525a\"\"\n    }\n  }\n}\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"00000000-0000-0000-0000-000000000000\"\n\t\texampleGroup, err := management.LookupGroup(ctx, \u0026management.LookupGroupArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = management.NewGroupTemplateDeployment(ctx, \"exampleGroupTemplateDeployment\", \u0026management.GroupTemplateDeploymentArgs{\n\t\t\tLocation:          pulumi.String(\"West Europe\"),\n\t\t\tManagementGroupId: pulumi.String(exampleGroup.Id),\n\t\t\tTemplateContent:   pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \"  \\\"\", \"$\", \"schema\\\": \\\"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#\\\",\\n\", \"  \\\"contentVersion\\\": \\\"1.0.0.0\\\",\\n\", \"  \\\"parameters\\\": {\\n\", \"    \\\"policyAssignmentName\\\": {\\n\", \"      \\\"type\\\": \\\"string\\\",\\n\", \"      \\\"defaultValue\\\": \\\"[guid(parameters('policyDefinitionID'), resourceGroup().name)]\\\",\\n\", \"      \\\"metadata\\\": {\\n\", \"        \\\"description\\\": \\\"Specifies the name of the policy assignment, can be used defined or an idempotent name as the defaultValue provides.\\\"\\n\", \"      }\\n\", \"    },\\n\", \"    \\\"policyDefinitionID\\\": {\\n\", \"      \\\"type\\\": \\\"string\\\",\\n\", \"      \\\"metadata\\\": {\\n\", \"        \\\"description\\\": \\\"Specifies the ID of the policy definition or policy set definition being assigned.\\\"\\n\", \"      }\\n\", \"    }\\n\", \"  },\\n\", \"  \\\"resources\\\": [\\n\", \"    {\\n\", \"      \\\"type\\\": \\\"Microsoft.Authorization/policyAssignments\\\",\\n\", \"      \\\"name\\\": \\\"[parameters('policyAssignmentName')]\\\",\\n\", \"      \\\"apiVersion\\\": \\\"2019-09-01\\\",\\n\", \"      \\\"properties\\\": {\\n\", \"        \\\"scope\\\": \\\"[subscriptionResourceId('Microsoft.Resources/resourceGroups', resourceGroup().name)]\\\",\\n\", \"        \\\"policyDefinitionId\\\": \\\"[parameters('policyDefinitionID')]\\\"\\n\", \"      }\\n\", \"    }\\n\", \"  ]\\n\", \"}\\n\")),\n\t\t\tParametersContent: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \"  \\\"\", \"$\", \"schema\\\": \\\"https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#\\\",\\n\", \"  \\\"contentVersion\\\": \\\"1.0.0.0\\\",\\n\", \"  \\\"parameters\\\": {\\n\", \"    \\\"policyDefinitionID\\\": {\\n\", \"      \\\"value\\\": \\\"/providers/Microsoft.Authorization/policyDefinitions/0a914e76-4921-4c19-b460-a2d36003525a\\\"\\n\", \"    }\\n\", \"  }\\n\", \"}\\n\")),\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\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * from \"fs\";\n\nconst exampleGroup = azure.management.getGroup({\n    name: \"00000000-0000-0000-0000-000000000000\",\n});\nconst exampleGroupTemplateDeployment = new azure.management.GroupTemplateDeployment(\"exampleGroupTemplateDeployment\", {\n    location: \"West Europe\",\n    managementGroupId: exampleGroup.then(exampleGroup =\u003e exampleGroup.id),\n    templateContent: fs.readFileSync(\"templates/example-deploy-template.json\"),\n    parametersContent: fs.readFileSync(\"templates/example-deploy-params.json\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_group = azure.management.get_group(name=\"00000000-0000-0000-0000-000000000000\")\nexample_group_template_deployment = azure.management.GroupTemplateDeployment(\"exampleGroupTemplateDeployment\",\n    location=\"West Europe\",\n    management_group_id=example_group.id,\n    template_content=(lambda path: open(path).read())(\"templates/example-deploy-template.json\"),\n    parameters_content=(lambda path: open(path).read())(\"templates/example-deploy-params.json\"))\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleGroup = Output.Create(Azure.Management.GetGroup.InvokeAsync(new Azure.Management.GetGroupArgs\n        {\n            Name = \"00000000-0000-0000-0000-000000000000\",\n        }));\n        var exampleGroupTemplateDeployment = new Azure.Management.GroupTemplateDeployment(\"exampleGroupTemplateDeployment\", new Azure.Management.GroupTemplateDeploymentArgs\n        {\n            Location = \"West Europe\",\n            ManagementGroupId = exampleGroup.Apply(exampleGroup =\u003e exampleGroup.Id),\n            TemplateContent = File.ReadAllText(\"templates/example-deploy-template.json\"),\n            ParametersContent = File.ReadAllText(\"templates/example-deploy-params.json\"),\n        });\n    }\n\n}\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleGroup = azure.management.getGroup({\n    name: \"00000000-0000-0000-0000-000000000000\",\n});\nconst exampleTemplateSpecVersion = azure.core.getTemplateSpecVersion({\n    name: \"exampleTemplateForManagementGroup\",\n    resourceGroupName: \"exampleResourceGroup\",\n    version: \"v1.0.9\",\n});\nconst exampleGroupTemplateDeployment = new azure.management.GroupTemplateDeployment(\"exampleGroupTemplateDeployment\", {\n    location: \"West Europe\",\n    managementGroupId: exampleGroup.then(exampleGroup =\u003e exampleGroup.id),\n    templateSpecVersionId: exampleTemplateSpecVersion.then(exampleTemplateSpecVersion =\u003e exampleTemplateSpecVersion.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_group = azure.management.get_group(name=\"00000000-0000-0000-0000-000000000000\")\nexample_template_spec_version = azure.core.get_template_spec_version(name=\"exampleTemplateForManagementGroup\",\n    resource_group_name=\"exampleResourceGroup\",\n    version=\"v1.0.9\")\nexample_group_template_deployment = azure.management.GroupTemplateDeployment(\"exampleGroupTemplateDeployment\",\n    location=\"West Europe\",\n    management_group_id=example_group.id,\n    template_spec_version_id=example_template_spec_version.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleGroup = Output.Create(Azure.Management.GetGroup.InvokeAsync(new Azure.Management.GetGroupArgs\n        {\n            Name = \"00000000-0000-0000-0000-000000000000\",\n        }));\n        var exampleTemplateSpecVersion = Output.Create(Azure.Core.GetTemplateSpecVersion.InvokeAsync(new Azure.Core.GetTemplateSpecVersionArgs\n        {\n            Name = \"exampleTemplateForManagementGroup\",\n            ResourceGroupName = \"exampleResourceGroup\",\n            Version = \"v1.0.9\",\n        }));\n        var exampleGroupTemplateDeployment = new Azure.Management.GroupTemplateDeployment(\"exampleGroupTemplateDeployment\", new Azure.Management.GroupTemplateDeploymentArgs\n        {\n            Location = \"West Europe\",\n            ManagementGroupId = exampleGroup.Apply(exampleGroup =\u003e exampleGroup.Id),\n            TemplateSpecVersionId = exampleTemplateSpecVersion.Apply(exampleTemplateSpecVersion =\u003e exampleTemplateSpecVersion.Id),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"00000000-0000-0000-0000-000000000000\"\n\t\texampleGroup, err := management.LookupGroup(ctx, \u0026management.LookupGroupArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTemplateSpecVersion, err := core.GetTemplateSpecVersion(ctx, \u0026core.GetTemplateSpecVersionArgs{\n\t\t\tName:              \"exampleTemplateForManagementGroup\",\n\t\t\tResourceGroupName: \"exampleResourceGroup\",\n\t\t\tVersion:           \"v1.0.9\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = management.NewGroupTemplateDeployment(ctx, \"exampleGroupTemplateDeployment\", \u0026management.GroupTemplateDeploymentArgs{\n\t\t\tLocation:              pulumi.String(\"West Europe\"),\n\t\t\tManagementGroupId:     pulumi.String(exampleGroup.Id),\n\t\t\tTemplateSpecVersionId: pulumi.String(exampleTemplateSpecVersion.Id),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nManagement Group Template Deployments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:management/groupTemplateDeployment:GroupTemplateDeployment example /providers/Microsoft.Management/managementGroups/my-management-group-id/providers/Microsoft.Resources/deployments/deploy1\n```\n\n ",
      "inputProperties": {
        "debugLevel": {
          "description": "The Debug Level which should be used for this Resource Group Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Template should exist. Changing this forces a new Template to be created.\n",
          "type": "string"
        },
        "managementGroupId": {
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Template Deployment. Changing this forces a new Template Deployment to be created.\n",
          "type": "string"
        },
        "parametersContent": {
          "description": "The contents of the ARM Template parameters file - containing a JSON list of parameters.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Template.\n",
          "type": "object"
        },
        "templateContent": {
          "description": "The contents of the ARM Template which should be deployed into this Resource Group. Cannot be specified with `template_spec_version_id`.\n",
          "type": "string"
        },
        "templateSpecVersionId": {
          "description": "The ID of the Template Spec Version to deploy. Cannot be specified with `template_content`.\n",
          "type": "string"
        }
      },
      "properties": {
        "debugLevel": {
          "description": "The Debug Level which should be used for this Resource Group Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Template should exist. Changing this forces a new Template to be created.\n",
          "type": "string"
        },
        "managementGroupId": {
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Template Deployment. Changing this forces a new Template Deployment to be created.\n",
          "type": "string"
        },
        "outputContent": {
          "description": "The JSON Content of the Outputs of the ARM Template Deployment.\n",
          "type": "string"
        },
        "parametersContent": {
          "description": "The contents of the ARM Template parameters file - containing a JSON list of parameters.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Template.\n",
          "type": "object"
        },
        "templateContent": {
          "description": "The contents of the ARM Template which should be deployed into this Resource Group. Cannot be specified with `template_spec_version_id`.\n",
          "type": "string"
        },
        "templateSpecVersionId": {
          "description": "The ID of the Template Spec Version to deploy. Cannot be specified with `template_content`.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "managementGroupId",
        "name",
        "outputContent",
        "parametersContent",
        "templateContent"
      ],
      "requiredInputs": [
        "managementGroupId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GroupTemplateDeployment resources.\n",
        "properties": {
          "debugLevel": {
            "description": "The Debug Level which should be used for this Resource Group Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Template should exist. Changing this forces a new Template to be created.\n",
            "type": "string"
          },
          "managementGroupId": {
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Template Deployment. Changing this forces a new Template Deployment to be created.\n",
            "type": "string"
          },
          "outputContent": {
            "description": "The JSON Content of the Outputs of the ARM Template Deployment.\n",
            "type": "string"
          },
          "parametersContent": {
            "description": "The contents of the ARM Template parameters file - containing a JSON list of parameters.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Template.\n",
            "type": "object"
          },
          "templateContent": {
            "description": "The contents of the ARM Template which should be deployed into this Resource Group. Cannot be specified with `template_spec_version_id`.\n",
            "type": "string"
          },
          "templateSpecVersionId": {
            "description": "The ID of the Template Spec Version to deploy. Cannot be specified with `template_content`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:management/lock:Lock": {
      "aliases": [
        {
          "type": "azure:managementresource/manangementLock:ManangementLock"
        }
      ],
      "description": "Manages a Management Lock which is scoped to a Subscription, Resource Group or Resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Subscription Level Lock)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getSubscription({});\nconst subscription_level = new azure.management.Lock(\"subscription-level\", {\n    scope: current.then(current =\u003e current.id),\n    lockLevel: \"CanNotDelete\",\n    notes: \"Items can't be deleted in this subscription!\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_subscription()\nsubscription_level = azure.management.Lock(\"subscription-level\",\n    scope=current.id,\n    lock_level=\"CanNotDelete\",\n    notes=\"Items can't be deleted in this subscription!\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var subscription_level = new Azure.Management.Lock(\"subscription-level\", new Azure.Management.LockArgs\n        {\n            Scope = current.Apply(current =\u003e current.Id),\n            LockLevel = \"CanNotDelete\",\n            Notes = \"Items can't be deleted in this subscription!\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = management.NewLock(ctx, \"subscription_level\", \u0026management.LockArgs{\n\t\t\tScope:     pulumi.String(current.Id),\n\t\t\tLockLevel: pulumi.String(\"CanNotDelete\"),\n\t\t\tNotes:     pulumi.String(\"Items can't be deleted in this subscription!\"),\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\n## Example Usage (Resource Group Level Lock)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst resource_group_level = new azure.management.Lock(\"resource-group-level\", {\n    scope: example.id,\n    lockLevel: \"ReadOnly\",\n    notes: \"This Resource Group is Read-Only\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\nresource_group_level = azure.management.Lock(\"resource-group-level\",\n    scope=example.id,\n    lock_level=\"ReadOnly\",\n    notes=\"This Resource Group is Read-Only\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var resource_group_level = new Azure.Management.Lock(\"resource-group-level\", new Azure.Management.LockArgs\n        {\n            Scope = example.Id,\n            LockLevel = \"ReadOnly\",\n            Notes = \"This Resource Group is Read-Only\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = management.NewLock(ctx, \"resource_group_level\", \u0026management.LockArgs{\n\t\t\tScope:     example.ID(),\n\t\t\tLockLevel: pulumi.String(\"ReadOnly\"),\n\t\t\tNotes:     pulumi.String(\"This Resource Group is Read-Only\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\n{{% /example %}}\n{{% example %}}\n### Resource Level Lock)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n    idleTimeoutInMinutes: 30,\n});\nconst public_ip = new azure.management.Lock(\"public-ip\", {\n    scope: examplePublicIp.id,\n    lockLevel: \"CanNotDelete\",\n    notes: \"Locked because it's needed by a third-party\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\",\n    idle_timeout_in_minutes=30)\npublic_ip = azure.management.Lock(\"public-ip\",\n    scope=example_public_ip.id,\n    lock_level=\"CanNotDelete\",\n    notes=\"Locked because it's needed by a third-party\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n            IdleTimeoutInMinutes = 30,\n        });\n        var public_ip = new Azure.Management.Lock(\"public-ip\", new Azure.Management.LockArgs\n        {\n            Scope = examplePublicIp.Id,\n            LockLevel = \"CanNotDelete\",\n            Notes = \"Locked because it's needed by a third-party\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:             exampleResourceGroup.Location,\n\t\t\tResourceGroupName:    exampleResourceGroup.Name,\n\t\t\tAllocationMethod:     pulumi.String(\"Static\"),\n\t\t\tIdleTimeoutInMinutes: pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = management.NewLock(ctx, \"public_ip\", \u0026management.LockArgs{\n\t\t\tScope:     examplePublicIp.ID(),\n\t\t\tLockLevel: pulumi.String(\"CanNotDelete\"),\n\t\t\tNotes:     pulumi.String(\"Locked because it's needed by a third-party\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nManagement Locks can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:management/lock:Lock lock1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Authorization/locks/lock1\n```\n\n ",
      "inputProperties": {
        "lockLevel": {
          "description": "Specifies the Level to be used for this Lock. Possible values are `CanNotDelete` and `ReadOnly`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Management Lock. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notes": {
          "description": "Specifies some notes about the lock. Maximum of 512 characters. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "Specifies the scope at which the Management Lock should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "lockLevel": {
          "description": "Specifies the Level to be used for this Lock. Possible values are `CanNotDelete` and `ReadOnly`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Management Lock. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notes": {
          "description": "Specifies some notes about the lock. Maximum of 512 characters. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "Specifies the scope at which the Management Lock should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "lockLevel",
        "name",
        "scope"
      ],
      "requiredInputs": [
        "lockLevel",
        "scope"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Lock resources.\n",
        "properties": {
          "lockLevel": {
            "description": "Specifies the Level to be used for this Lock. Possible values are `CanNotDelete` and `ReadOnly`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Management Lock. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "notes": {
            "description": "Specifies some notes about the lock. Maximum of 512 characters. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scope": {
            "description": "Specifies the scope at which the Management Lock should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:managementgroups/managementGroup:ManagementGroup": {
      "deprecationMessage": "azure.managementgroups.ManagementGroup has been deprecated in favor of azure.management.Group",
      "description": "Manages a Management Group.\n\n!\u003e **Note:** Configuring `subscription_ids` is not supported when using the `azure.management.GroupSubscriptionAssociation` resource, results will be unpredictable.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getSubscription({});\nconst exampleParent = new azure.management.Group(\"exampleParent\", {\n    displayName: \"ParentGroup\",\n    subscriptionIds: [current.then(current =\u003e current.subscriptionId)],\n});\nconst exampleChild = new azure.management.Group(\"exampleChild\", {\n    displayName: \"ChildGroup\",\n    parentManagementGroupId: exampleParent.id,\n    subscriptionIds: [current.then(current =\u003e current.subscriptionId)],\n});\n// other subscription IDs can go here\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_subscription()\nexample_parent = azure.management.Group(\"exampleParent\",\n    display_name=\"ParentGroup\",\n    subscription_ids=[current.subscription_id])\nexample_child = azure.management.Group(\"exampleChild\",\n    display_name=\"ChildGroup\",\n    parent_management_group_id=example_parent.id,\n    subscription_ids=[current.subscription_id])\n# other subscription IDs can go here\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var exampleParent = new Azure.Management.Group(\"exampleParent\", new Azure.Management.GroupArgs\n        {\n            DisplayName = \"ParentGroup\",\n            SubscriptionIds = \n            {\n                current.Apply(current =\u003e current.SubscriptionId),\n            },\n        });\n        var exampleChild = new Azure.Management.Group(\"exampleChild\", new Azure.Management.GroupArgs\n        {\n            DisplayName = \"ChildGroup\",\n            ParentManagementGroupId = exampleParent.Id,\n            SubscriptionIds = \n            {\n                current.Apply(current =\u003e current.SubscriptionId),\n            },\n        });\n        // other subscription IDs can go here\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleParent, err := management.NewGroup(ctx, \"exampleParent\", \u0026management.GroupArgs{\n\t\t\tDisplayName: pulumi.String(\"ParentGroup\"),\n\t\t\tSubscriptionIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(current.SubscriptionId),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = management.NewGroup(ctx, \"exampleChild\", \u0026management.GroupArgs{\n\t\t\tDisplayName:             pulumi.String(\"ChildGroup\"),\n\t\t\tParentManagementGroupId: exampleParent.ID(),\n\t\t\tSubscriptionIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(current.SubscriptionId),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nManagement Groups can be imported using the `management group resource id`, e.g.\n\n```sh\n $ pulumi import azure:managementgroups/managementGroup:ManagementGroup example /providers/Microsoft.Management/managementGroups/group1\n```\n\n ",
      "inputProperties": {
        "displayName": {
          "description": "A friendly name for this Management Group. If not specified, this'll be the same as the `name`.\n",
          "type": "string"
        },
        "groupId": {
          "deprecationMessage": "Deprecated in favour of `name`",
          "description": "The name or UUID for this Management Group, which needs to be unique across your tenant. A new UUID will be generated if not provided. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name or UUID for this Management Group, which needs to be unique across your tenant. A new UUID will be generated if not provided. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "parentManagementGroupId": {
          "description": "The ID of the Parent Management Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subscriptionIds": {
          "description": "A list of Subscription GUIDs which should be assigned to the Management Group.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "displayName": {
          "description": "A friendly name for this Management Group. If not specified, this'll be the same as the `name`.\n",
          "type": "string"
        },
        "groupId": {
          "deprecationMessage": "Deprecated in favour of `name`",
          "description": "The name or UUID for this Management Group, which needs to be unique across your tenant. A new UUID will be generated if not provided. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name or UUID for this Management Group, which needs to be unique across your tenant. A new UUID will be generated if not provided. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "parentManagementGroupId": {
          "description": "The ID of the Parent Management Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subscriptionIds": {
          "description": "A list of Subscription GUIDs which should be assigned to the Management Group.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "displayName",
        "groupId",
        "name",
        "parentManagementGroupId",
        "subscriptionIds"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ManagementGroup resources.\n",
        "properties": {
          "displayName": {
            "description": "A friendly name for this Management Group. If not specified, this'll be the same as the `name`.\n",
            "type": "string"
          },
          "groupId": {
            "deprecationMessage": "Deprecated in favour of `name`",
            "description": "The name or UUID for this Management Group, which needs to be unique across your tenant. A new UUID will be generated if not provided. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name or UUID for this Management Group, which needs to be unique across your tenant. A new UUID will be generated if not provided. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "parentManagementGroupId": {
            "description": "The ID of the Parent Management Group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subscriptionIds": {
            "description": "A list of Subscription GUIDs which should be assigned to the Management Group.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:managementresource/manangementLock:ManangementLock": {
      "deprecationMessage": "azure.managementresource.ManangementLock has been deprecated in favor of azure.management.Lock",
      "description": "Manages a Management Lock which is scoped to a Subscription, Resource Group or Resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Subscription Level Lock)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getSubscription({});\nconst subscription_level = new azure.management.Lock(\"subscription-level\", {\n    scope: current.then(current =\u003e current.id),\n    lockLevel: \"CanNotDelete\",\n    notes: \"Items can't be deleted in this subscription!\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_subscription()\nsubscription_level = azure.management.Lock(\"subscription-level\",\n    scope=current.id,\n    lock_level=\"CanNotDelete\",\n    notes=\"Items can't be deleted in this subscription!\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var subscription_level = new Azure.Management.Lock(\"subscription-level\", new Azure.Management.LockArgs\n        {\n            Scope = current.Apply(current =\u003e current.Id),\n            LockLevel = \"CanNotDelete\",\n            Notes = \"Items can't be deleted in this subscription!\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = management.NewLock(ctx, \"subscription_level\", \u0026management.LockArgs{\n\t\t\tScope:     pulumi.String(current.Id),\n\t\t\tLockLevel: pulumi.String(\"CanNotDelete\"),\n\t\t\tNotes:     pulumi.String(\"Items can't be deleted in this subscription!\"),\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\n## Example Usage (Resource Group Level Lock)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst resource_group_level = new azure.management.Lock(\"resource-group-level\", {\n    scope: example.id,\n    lockLevel: \"ReadOnly\",\n    notes: \"This Resource Group is Read-Only\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\nresource_group_level = azure.management.Lock(\"resource-group-level\",\n    scope=example.id,\n    lock_level=\"ReadOnly\",\n    notes=\"This Resource Group is Read-Only\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var resource_group_level = new Azure.Management.Lock(\"resource-group-level\", new Azure.Management.LockArgs\n        {\n            Scope = example.Id,\n            LockLevel = \"ReadOnly\",\n            Notes = \"This Resource Group is Read-Only\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = management.NewLock(ctx, \"resource_group_level\", \u0026management.LockArgs{\n\t\t\tScope:     example.ID(),\n\t\t\tLockLevel: pulumi.String(\"ReadOnly\"),\n\t\t\tNotes:     pulumi.String(\"This Resource Group is Read-Only\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\n{{% /example %}}\n{{% example %}}\n### Resource Level Lock)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n    idleTimeoutInMinutes: 30,\n});\nconst public_ip = new azure.management.Lock(\"public-ip\", {\n    scope: examplePublicIp.id,\n    lockLevel: \"CanNotDelete\",\n    notes: \"Locked because it's needed by a third-party\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\",\n    idle_timeout_in_minutes=30)\npublic_ip = azure.management.Lock(\"public-ip\",\n    scope=example_public_ip.id,\n    lock_level=\"CanNotDelete\",\n    notes=\"Locked because it's needed by a third-party\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n            IdleTimeoutInMinutes = 30,\n        });\n        var public_ip = new Azure.Management.Lock(\"public-ip\", new Azure.Management.LockArgs\n        {\n            Scope = examplePublicIp.Id,\n            LockLevel = \"CanNotDelete\",\n            Notes = \"Locked because it's needed by a third-party\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:             exampleResourceGroup.Location,\n\t\t\tResourceGroupName:    exampleResourceGroup.Name,\n\t\t\tAllocationMethod:     pulumi.String(\"Static\"),\n\t\t\tIdleTimeoutInMinutes: pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = management.NewLock(ctx, \"public_ip\", \u0026management.LockArgs{\n\t\t\tScope:     examplePublicIp.ID(),\n\t\t\tLockLevel: pulumi.String(\"CanNotDelete\"),\n\t\t\tNotes:     pulumi.String(\"Locked because it's needed by a third-party\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nManagement Locks can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:managementresource/manangementLock:ManangementLock lock1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Authorization/locks/lock1\n```\n\n ",
      "inputProperties": {
        "lockLevel": {
          "description": "Specifies the Level to be used for this Lock. Possible values are `CanNotDelete` and `ReadOnly`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Management Lock. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notes": {
          "description": "Specifies some notes about the lock. Maximum of 512 characters. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "Specifies the scope at which the Management Lock should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "lockLevel": {
          "description": "Specifies the Level to be used for this Lock. Possible values are `CanNotDelete` and `ReadOnly`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Management Lock. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notes": {
          "description": "Specifies some notes about the lock. Maximum of 512 characters. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "Specifies the scope at which the Management Lock should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "lockLevel",
        "name",
        "scope"
      ],
      "requiredInputs": [
        "lockLevel",
        "scope"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ManangementLock resources.\n",
        "properties": {
          "lockLevel": {
            "description": "Specifies the Level to be used for this Lock. Possible values are `CanNotDelete` and `ReadOnly`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Management Lock. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "notes": {
            "description": "Specifies some notes about the lock. Maximum of 512 characters. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scope": {
            "description": "Specifies the scope at which the Management Lock should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:maps/account:Account": {
      "description": "Manages an Azure Maps Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.maps.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"S1\",\n    tags: {\n        environment: \"Test\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.maps.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    sku_name=\"S1\",\n    tags={\n        \"environment\": \"Test\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Maps.Account(\"exampleAccount\", new Azure.Maps.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"S1\",\n            Tags = \n            {\n                { \"environment\", \"Test\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/maps\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = maps.NewAccount(ctx, \"exampleAccount\", \u0026maps.AccountArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"S1\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Test\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA Maps Account can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:maps/account:Account example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Maps/accounts/my-maps-account\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the Azure Maps Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Azure Maps Account should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The sku of the Azure Maps Account. Possible values are `S0` and `S1`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Azure Maps Account.\n",
          "type": "object"
        }
      },
      "properties": {
        "name": {
          "description": "The name of the Azure Maps Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryAccessKey": {
          "description": "The primary key used to authenticate and authorize access to the Maps REST APIs.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Azure Maps Account should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryAccessKey": {
          "description": "The secondary key used to authenticate and authorize access to the Maps REST APIs.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The sku of the Azure Maps Account. Possible values are `S0` and `S1`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Azure Maps Account.\n",
          "type": "object"
        },
        "xMsClientId": {
          "description": "A unique identifier for the Maps Account.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "primaryAccessKey",
        "resourceGroupName",
        "secondaryAccessKey",
        "skuName",
        "xMsClientId"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Account resources.\n",
        "properties": {
          "name": {
            "description": "The name of the Azure Maps Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The primary key used to authenticate and authorize access to the Maps REST APIs.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Azure Maps Account should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The secondary key used to authenticate and authorize access to the Maps REST APIs.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The sku of the Azure Maps Account. Possible values are `S0` and `S1`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Azure Maps Account.\n",
            "type": "object"
          },
          "xMsClientId": {
            "description": "A unique identifier for the Maps Account.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mariadb/configuration:Configuration": {
      "description": "Sets a MariaDB Configuration value on a MariaDB Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.mariadb.Server(\"exampleServer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"B_Gen5_2\",\n    storageProfile: {\n        storageMb: 5120,\n        backupRetentionDays: 7,\n        geoRedundantBackup: \"Disabled\",\n    },\n    administratorLogin: \"mariadbadmin\",\n    administratorLoginPassword: \"H@Sh1CoR3!\",\n    version: \"10.2\",\n    sslEnforcement: \"Enabled\",\n});\nconst exampleConfiguration = new azure.mariadb.Configuration(\"exampleConfiguration\", {\n    name: \"interactive_timeout\",\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    value: \"600\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.mariadb.Server(\"exampleServer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"B_Gen5_2\",\n    storage_profile=azure.mariadb.ServerStorageProfileArgs(\n        storage_mb=5120,\n        backup_retention_days=7,\n        geo_redundant_backup=\"Disabled\",\n    ),\n    administrator_login=\"mariadbadmin\",\n    administrator_login_password=\"H@Sh1CoR3!\",\n    version=\"10.2\",\n    ssl_enforcement=\"Enabled\")\nexample_configuration = azure.mariadb.Configuration(\"exampleConfiguration\",\n    name=\"interactive_timeout\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    value=\"600\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.MariaDB.Server(\"exampleServer\", new Azure.MariaDB.ServerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"B_Gen5_2\",\n            StorageProfile = new Azure.MariaDB.Inputs.ServerStorageProfileArgs\n            {\n                StorageMb = 5120,\n                BackupRetentionDays = 7,\n                GeoRedundantBackup = \"Disabled\",\n            },\n            AdministratorLogin = \"mariadbadmin\",\n            AdministratorLoginPassword = \"H@Sh1CoR3!\",\n            Version = \"10.2\",\n            SslEnforcement = \"Enabled\",\n        });\n        var exampleConfiguration = new Azure.MariaDB.Configuration(\"exampleConfiguration\", new Azure.MariaDB.ConfigurationArgs\n        {\n            Name = \"interactive_timeout\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            Value = \"600\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mariadb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mariadb.NewServer(ctx, \"exampleServer\", \u0026mariadb.ServerArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"B_Gen5_2\"),\n\t\t\tStorageProfile: \u0026mariadb.ServerStorageProfileArgs{\n\t\t\t\tStorageMb:           pulumi.Int(5120),\n\t\t\t\tBackupRetentionDays: pulumi.Int(7),\n\t\t\t\tGeoRedundantBackup:  pulumi.String(\"Disabled\"),\n\t\t\t},\n\t\t\tAdministratorLogin:         pulumi.String(\"mariadbadmin\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tVersion:                    pulumi.String(\"10.2\"),\n\t\t\tSslEnforcement:             pulumi.String(\"Enabled\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mariadb.NewConfiguration(ctx, \"exampleConfiguration\", \u0026mariadb.ConfigurationArgs{\n\t\t\tName:              pulumi.String(\"interactive_timeout\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tValue:             pulumi.String(\"600\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMariaDB Configurations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mariadb/configuration:Configuration interactive_timeout /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforMariaDB/servers/server1/configurations/interactive_timeout\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "Specifies the name of the MariaDB Configuration, which needs [to be a valid MariaDB configuration name](https://mariadb.com/kb/en/library/server-system-variables/). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the MariaDB Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the MariaDB Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "Specifies the value of the MariaDB Configuration. See the MariaDB documentation for valid values.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the MariaDB Configuration, which needs [to be a valid MariaDB configuration name](https://mariadb.com/kb/en/library/server-system-variables/). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the MariaDB Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the MariaDB Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "Specifies the value of the MariaDB Configuration. See the MariaDB documentation for valid values.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "serverName",
        "value"
      ],
      "requiredInputs": [
        "name",
        "resourceGroupName",
        "serverName",
        "value"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Configuration resources.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the MariaDB Configuration, which needs [to be a valid MariaDB configuration name](https://mariadb.com/kb/en/library/server-system-variables/). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the MariaDB Server exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "Specifies the name of the MariaDB Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "value": {
            "description": "Specifies the value of the MariaDB Configuration. See the MariaDB documentation for valid values.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mariadb/database:Database": {
      "description": "Manages a MariaDB Database within a MariaDB Server\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.mariadb.Server(\"exampleServer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"B_Gen5_2\",\n    storageMb: 51200,\n    backupRetentionDays: 7,\n    geoRedundantBackupEnabled: false,\n    administratorLogin: \"acctestun\",\n    administratorLoginPassword: \"H@Sh1CoR3!\",\n    version: \"10.2\",\n    sslEnforcementEnabled: true,\n});\nconst exampleDatabase = new azure.mariadb.Database(\"exampleDatabase\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    charset: \"utf8\",\n    collation: \"utf8_general_ci\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.mariadb.Server(\"exampleServer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"B_Gen5_2\",\n    storage_mb=51200,\n    backup_retention_days=7,\n    geo_redundant_backup_enabled=False,\n    administrator_login=\"acctestun\",\n    administrator_login_password=\"H@Sh1CoR3!\",\n    version=\"10.2\",\n    ssl_enforcement_enabled=True)\nexample_database = azure.mariadb.Database(\"exampleDatabase\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    charset=\"utf8\",\n    collation=\"utf8_general_ci\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.MariaDB.Server(\"exampleServer\", new Azure.MariaDB.ServerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"B_Gen5_2\",\n            StorageMb = 51200,\n            BackupRetentionDays = 7,\n            GeoRedundantBackupEnabled = false,\n            AdministratorLogin = \"acctestun\",\n            AdministratorLoginPassword = \"H@Sh1CoR3!\",\n            Version = \"10.2\",\n            SslEnforcementEnabled = true,\n        });\n        var exampleDatabase = new Azure.MariaDB.Database(\"exampleDatabase\", new Azure.MariaDB.DatabaseArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            Charset = \"utf8\",\n            Collation = \"utf8_general_ci\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mariadb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mariadb.NewServer(ctx, \"exampleServer\", \u0026mariadb.ServerArgs{\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tSkuName:                    pulumi.String(\"B_Gen5_2\"),\n\t\t\tStorageMb:                  pulumi.Int(51200),\n\t\t\tBackupRetentionDays:        pulumi.Int(7),\n\t\t\tGeoRedundantBackupEnabled:  pulumi.Bool(false),\n\t\t\tAdministratorLogin:         pulumi.String(\"acctestun\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tVersion:                    pulumi.String(\"10.2\"),\n\t\t\tSslEnforcementEnabled:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mariadb.NewDatabase(ctx, \"exampleDatabase\", \u0026mariadb.DatabaseArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tCharset:           pulumi.String(\"utf8\"),\n\t\t\tCollation:         pulumi.String(\"utf8_general_ci\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMariaDB Database's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mariadb/database:Database database1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforMariaDB/servers/server1/databases/database1\n```\n\n ",
      "inputProperties": {
        "charset": {
          "description": "Specifies the Charset for the MariaDB Database, which needs [to be a valid MariaDB Charset](https://mariadb.com/kb/en/library/setting-character-sets-and-collations). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "collation": {
          "description": "Specifies the Collation for the MariaDB Database, which needs [to be a valid MariaDB Collation](https://mariadb.com/kb/en/library/setting-character-sets-and-collations). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the MariaDB Database, which needs [to be a valid MariaDB identifier](https://mariadb.com/kb/en/library/identifier-names/). Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the MariaDB Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the MariaDB Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "charset": {
          "description": "Specifies the Charset for the MariaDB Database, which needs [to be a valid MariaDB Charset](https://mariadb.com/kb/en/library/setting-character-sets-and-collations). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "collation": {
          "description": "Specifies the Collation for the MariaDB Database, which needs [to be a valid MariaDB Collation](https://mariadb.com/kb/en/library/setting-character-sets-and-collations). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the MariaDB Database, which needs [to be a valid MariaDB identifier](https://mariadb.com/kb/en/library/identifier-names/). Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the MariaDB Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the MariaDB Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "charset",
        "collation",
        "name",
        "resourceGroupName",
        "serverName"
      ],
      "requiredInputs": [
        "charset",
        "collation",
        "resourceGroupName",
        "serverName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Database resources.\n",
        "properties": {
          "charset": {
            "description": "Specifies the Charset for the MariaDB Database, which needs [to be a valid MariaDB Charset](https://mariadb.com/kb/en/library/setting-character-sets-and-collations). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "collation": {
            "description": "Specifies the Collation for the MariaDB Database, which needs [to be a valid MariaDB Collation](https://mariadb.com/kb/en/library/setting-character-sets-and-collations). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the MariaDB Database, which needs [to be a valid MariaDB identifier](https://mariadb.com/kb/en/library/identifier-names/). Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the MariaDB Server exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "Specifies the name of the MariaDB Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mariadb/firewallRule:FirewallRule": {
      "description": "Manages a Firewall Rule for a MariaDB Server\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Single IP Address)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.mariadb.FirewallRule(\"example\", {\n    endIpAddress: \"40.112.8.12\",\n    resourceGroupName: \"test-rg\",\n    serverName: \"test-server\",\n    startIpAddress: \"40.112.8.12\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.mariadb.FirewallRule(\"example\",\n    end_ip_address=\"40.112.8.12\",\n    resource_group_name=\"test-rg\",\n    server_name=\"test-server\",\n    start_ip_address=\"40.112.8.12\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.MariaDB.FirewallRule(\"example\", new Azure.MariaDB.FirewallRuleArgs\n        {\n            EndIpAddress = \"40.112.8.12\",\n            ResourceGroupName = \"test-rg\",\n            ServerName = \"test-server\",\n            StartIpAddress = \"40.112.8.12\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mariadb\"\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 := mariadb.NewFirewallRule(ctx, \"example\", \u0026mariadb.FirewallRuleArgs{\n\t\t\tEndIpAddress:      pulumi.String(\"40.112.8.12\"),\n\t\t\tResourceGroupName: pulumi.String(\"test-rg\"),\n\t\t\tServerName:        pulumi.String(\"test-server\"),\n\t\t\tStartIpAddress:    pulumi.String(\"40.112.8.12\"),\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\n{{% /example %}}\n{{% example %}}\n### IP Range)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.mariadb.FirewallRule(\"example\", {\n    endIpAddress: \"40.112.255.255\",\n    resourceGroupName: \"test-rg\",\n    serverName: \"test-server\",\n    startIpAddress: \"40.112.0.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.mariadb.FirewallRule(\"example\",\n    end_ip_address=\"40.112.255.255\",\n    resource_group_name=\"test-rg\",\n    server_name=\"test-server\",\n    start_ip_address=\"40.112.0.0\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.MariaDB.FirewallRule(\"example\", new Azure.MariaDB.FirewallRuleArgs\n        {\n            EndIpAddress = \"40.112.255.255\",\n            ResourceGroupName = \"test-rg\",\n            ServerName = \"test-server\",\n            StartIpAddress = \"40.112.0.0\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mariadb\"\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 := mariadb.NewFirewallRule(ctx, \"example\", \u0026mariadb.FirewallRuleArgs{\n\t\t\tEndIpAddress:      pulumi.String(\"40.112.255.255\"),\n\t\t\tResourceGroupName: pulumi.String(\"test-rg\"),\n\t\t\tServerName:        pulumi.String(\"test-server\"),\n\t\t\tStartIpAddress:    pulumi.String(\"40.112.0.0\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMariaDB Firewall rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mariadb/firewallRule:FirewallRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforMariaDB/servers/server1/firewallRules/rule1\n```\n\n ",
      "inputProperties": {
        "endIpAddress": {
          "description": "Specifies the End IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the MariaDB Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the MariaDB Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the MariaDB Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "Specifies the Start IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "endIpAddress": {
          "description": "Specifies the End IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the MariaDB Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the MariaDB Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the MariaDB Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "Specifies the Start IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "endIpAddress",
        "name",
        "resourceGroupName",
        "serverName",
        "startIpAddress"
      ],
      "requiredInputs": [
        "endIpAddress",
        "resourceGroupName",
        "serverName",
        "startIpAddress"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FirewallRule resources.\n",
        "properties": {
          "endIpAddress": {
            "description": "Specifies the End IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the MariaDB Firewall Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the MariaDB Server exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "Specifies the name of the MariaDB Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "startIpAddress": {
            "description": "Specifies the Start IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mariadb/server:Server": {
      "description": "Manages a MariaDB Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.mariadb.Server(\"exampleServer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    administratorLogin: \"mariadbadmin\",\n    administratorLoginPassword: \"H@Sh1CoR3!\",\n    skuName: \"B_Gen5_2\",\n    storageMb: 5120,\n    version: \"10.2\",\n    autoGrowEnabled: true,\n    backupRetentionDays: 7,\n    geoRedundantBackupEnabled: false,\n    publicNetworkAccessEnabled: false,\n    sslEnforcementEnabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.mariadb.Server(\"exampleServer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    administrator_login=\"mariadbadmin\",\n    administrator_login_password=\"H@Sh1CoR3!\",\n    sku_name=\"B_Gen5_2\",\n    storage_mb=5120,\n    version=\"10.2\",\n    auto_grow_enabled=True,\n    backup_retention_days=7,\n    geo_redundant_backup_enabled=False,\n    public_network_access_enabled=False,\n    ssl_enforcement_enabled=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.MariaDB.Server(\"exampleServer\", new Azure.MariaDB.ServerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AdministratorLogin = \"mariadbadmin\",\n            AdministratorLoginPassword = \"H@Sh1CoR3!\",\n            SkuName = \"B_Gen5_2\",\n            StorageMb = 5120,\n            Version = \"10.2\",\n            AutoGrowEnabled = true,\n            BackupRetentionDays = 7,\n            GeoRedundantBackupEnabled = false,\n            PublicNetworkAccessEnabled = false,\n            SslEnforcementEnabled = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mariadb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mariadb.NewServer(ctx, \"exampleServer\", \u0026mariadb.ServerArgs{\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tAdministratorLogin:         pulumi.String(\"mariadbadmin\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tSkuName:                    pulumi.String(\"B_Gen5_2\"),\n\t\t\tStorageMb:                  pulumi.Int(5120),\n\t\t\tVersion:                    pulumi.String(\"10.2\"),\n\t\t\tAutoGrowEnabled:            pulumi.Bool(true),\n\t\t\tBackupRetentionDays:        pulumi.Int(7),\n\t\t\tGeoRedundantBackupEnabled:  pulumi.Bool(false),\n\t\t\tPublicNetworkAccessEnabled: pulumi.Bool(false),\n\t\t\tSslEnforcementEnabled:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMariaDB Server's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mariadb/server:Server server1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforMariaDB/servers/server1\n```\n\n ",
      "inputProperties": {
        "administratorLogin": {
          "description": "The Administrator Login for the MariaDB Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "administratorLoginPassword": {
          "description": "The Password associated with the `administrator_login` for the MariaDB Server.\n",
          "type": "string"
        },
        "autoGrowEnabled": {
          "description": "Enable/Disable auto-growing of the storage. Storage auto-grow prevents your server from running out of storage and becoming read-only. If storage auto grow is enabled, the storage automatically grows without impacting the workload. The default value if not explicitly specified is `true`.\n",
          "type": "boolean"
        },
        "backupRetentionDays": {
          "description": "Backup retention days for the server, supported values are between `7` and `35` days.\n",
          "type": "integer"
        },
        "createMode": {
          "description": "The creation mode. Can be used to restore or replicate existing servers. Possible values are `Default`, `Replica`, `GeoRestore`, and `PointInTimeRestore`. Defaults to `Default`.\n",
          "type": "string"
        },
        "creationSourceServerId": {
          "description": "For creation modes other than `Default`, the source server ID to use.\n",
          "type": "string"
        },
        "geoRedundantBackupEnabled": {
          "description": "Turn Geo-redundant server backups on/off. This allows you to choose between locally redundant or geo-redundant backup storage in the General Purpose and Memory Optimized tiers. When the backups are stored in geo-redundant backup storage, they are not only stored within the region in which your server is hosted, but are also replicated to a paired data center. This provides better protection and ability to restore your server in a different region in the event of a disaster. This is not supported for the Basic tier.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the MariaDB Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the MariaDB Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "restorePointInTime": {
          "description": "When `create_mode` is `PointInTimeRestore`, specifies the point in time to restore from `creation_source_server_id`.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this MariaDB Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/mariadb/servers/create#sku).\n",
          "type": "string"
        },
        "sslEnforcement": {
          "deprecationMessage": "this has been moved to the boolean attribute `ssl_enforcement_enabled` and will be removed in version 3.0 of the provider.",
          "type": "string"
        },
        "sslEnforcementEnabled": {
          "description": "Specifies if SSL should be enforced on connections. Possible values are `true` and `false`.\n",
          "type": "boolean"
        },
        "storageMb": {
          "description": "Max storage allowed for a server. Possible values are between `5120` MB (5GB) and `1024000`MB (1TB) for the Basic SKU and between `5120` MB (5GB) and `4096000` MB (4TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/mariadb/servers/create#storageprofile).\n",
          "type": "integer"
        },
        "storageProfile": {
          "$ref": "#/types/azure:mariadb/ServerStorageProfile:ServerStorageProfile",
          "deprecationMessage": "all storage_profile properties have been moved to the top level. This block will be removed in version 3.0 of the provider."
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "version": {
          "description": "Specifies the version of MariaDB to use. Possible values are `10.2` and `10.3`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "administratorLogin": {
          "description": "The Administrator Login for the MariaDB Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "administratorLoginPassword": {
          "description": "The Password associated with the `administrator_login` for the MariaDB Server.\n",
          "type": "string"
        },
        "autoGrowEnabled": {
          "description": "Enable/Disable auto-growing of the storage. Storage auto-grow prevents your server from running out of storage and becoming read-only. If storage auto grow is enabled, the storage automatically grows without impacting the workload. The default value if not explicitly specified is `true`.\n",
          "type": "boolean"
        },
        "backupRetentionDays": {
          "description": "Backup retention days for the server, supported values are between `7` and `35` days.\n",
          "type": "integer"
        },
        "createMode": {
          "description": "The creation mode. Can be used to restore or replicate existing servers. Possible values are `Default`, `Replica`, `GeoRestore`, and `PointInTimeRestore`. Defaults to `Default`.\n",
          "type": "string"
        },
        "creationSourceServerId": {
          "description": "For creation modes other than `Default`, the source server ID to use.\n",
          "type": "string"
        },
        "fqdn": {
          "description": "The FQDN of the MariaDB Server.\n",
          "type": "string"
        },
        "geoRedundantBackupEnabled": {
          "description": "Turn Geo-redundant server backups on/off. This allows you to choose between locally redundant or geo-redundant backup storage in the General Purpose and Memory Optimized tiers. When the backups are stored in geo-redundant backup storage, they are not only stored within the region in which your server is hosted, but are also replicated to a paired data center. This provides better protection and ability to restore your server in a different region in the event of a disaster. This is not supported for the Basic tier.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the MariaDB Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the MariaDB Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "restorePointInTime": {
          "description": "When `create_mode` is `PointInTimeRestore`, specifies the point in time to restore from `creation_source_server_id`.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this MariaDB Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/mariadb/servers/create#sku).\n",
          "type": "string"
        },
        "sslEnforcement": {
          "deprecationMessage": "this has been moved to the boolean attribute `ssl_enforcement_enabled` and will be removed in version 3.0 of the provider.",
          "type": "string"
        },
        "sslEnforcementEnabled": {
          "description": "Specifies if SSL should be enforced on connections. Possible values are `true` and `false`.\n",
          "type": "boolean"
        },
        "storageMb": {
          "description": "Max storage allowed for a server. Possible values are between `5120` MB (5GB) and `1024000`MB (1TB) for the Basic SKU and between `5120` MB (5GB) and `4096000` MB (4TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/mariadb/servers/create#storageprofile).\n",
          "type": "integer"
        },
        "storageProfile": {
          "$ref": "#/types/azure:mariadb/ServerStorageProfile:ServerStorageProfile",
          "deprecationMessage": "all storage_profile properties have been moved to the top level. This block will be removed in version 3.0 of the provider."
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "version": {
          "description": "Specifies the version of MariaDB to use. Possible values are `10.2` and `10.3`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "administratorLogin",
        "autoGrowEnabled",
        "backupRetentionDays",
        "fqdn",
        "geoRedundantBackupEnabled",
        "location",
        "name",
        "resourceGroupName",
        "skuName",
        "sslEnforcement",
        "storageMb",
        "storageProfile",
        "version"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "skuName",
        "version"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Server resources.\n",
        "properties": {
          "administratorLogin": {
            "description": "The Administrator Login for the MariaDB Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "administratorLoginPassword": {
            "description": "The Password associated with the `administrator_login` for the MariaDB Server.\n",
            "type": "string"
          },
          "autoGrowEnabled": {
            "description": "Enable/Disable auto-growing of the storage. Storage auto-grow prevents your server from running out of storage and becoming read-only. If storage auto grow is enabled, the storage automatically grows without impacting the workload. The default value if not explicitly specified is `true`.\n",
            "type": "boolean"
          },
          "backupRetentionDays": {
            "description": "Backup retention days for the server, supported values are between `7` and `35` days.\n",
            "type": "integer"
          },
          "createMode": {
            "description": "The creation mode. Can be used to restore or replicate existing servers. Possible values are `Default`, `Replica`, `GeoRestore`, and `PointInTimeRestore`. Defaults to `Default`.\n",
            "type": "string"
          },
          "creationSourceServerId": {
            "description": "For creation modes other than `Default`, the source server ID to use.\n",
            "type": "string"
          },
          "fqdn": {
            "description": "The FQDN of the MariaDB Server.\n",
            "type": "string"
          },
          "geoRedundantBackupEnabled": {
            "description": "Turn Geo-redundant server backups on/off. This allows you to choose between locally redundant or geo-redundant backup storage in the General Purpose and Memory Optimized tiers. When the backups are stored in geo-redundant backup storage, they are not only stored within the region in which your server is hosted, but are also replicated to a paired data center. This provides better protection and ability to restore your server in a different region in the event of a disaster. This is not supported for the Basic tier.\n",
            "type": "boolean"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the MariaDB Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the MariaDB Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "restorePointInTime": {
            "description": "When `create_mode` is `PointInTimeRestore`, specifies the point in time to restore from `creation_source_server_id`.\n",
            "type": "string"
          },
          "skuName": {
            "description": "Specifies the SKU Name for this MariaDB Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/mariadb/servers/create#sku).\n",
            "type": "string"
          },
          "sslEnforcement": {
            "deprecationMessage": "this has been moved to the boolean attribute `ssl_enforcement_enabled` and will be removed in version 3.0 of the provider.",
            "type": "string"
          },
          "sslEnforcementEnabled": {
            "description": "Specifies if SSL should be enforced on connections. Possible values are `true` and `false`.\n",
            "type": "boolean"
          },
          "storageMb": {
            "description": "Max storage allowed for a server. Possible values are between `5120` MB (5GB) and `1024000`MB (1TB) for the Basic SKU and between `5120` MB (5GB) and `4096000` MB (4TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/mariadb/servers/create#storageprofile).\n",
            "type": "integer"
          },
          "storageProfile": {
            "$ref": "#/types/azure:mariadb/ServerStorageProfile:ServerStorageProfile",
            "deprecationMessage": "all storage_profile properties have been moved to the top level. This block will be removed in version 3.0 of the provider."
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "version": {
            "description": "Specifies the version of MariaDB to use. Possible values are `10.2` and `10.3`. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mariadb/virtualNetworkRule:VirtualNetworkRule": {
      "description": "Manages a MariaDB Virtual Network Rule.\n\n\u003e **NOTE:** MariaDB Virtual Network Rules [can only be used with SKU Tiers of `GeneralPurpose` or `MemoryOptimized`](https://docs.microsoft.com/en-us/azure/mariadb/concepts-data-access-security-vnet)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.7.29.0/29\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst internal = new azure.network.Subnet(\"internal\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.7.29.0/29\"],\n    serviceEndpoints: [\"Microsoft.Sql\"],\n});\nconst exampleServer = new azure.mariadb.Server(\"exampleServer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    administratorLogin: \"mariadbadminun\",\n    administratorLoginPassword: \"H@Sh1CoR3!\",\n    version: \"5.7\",\n    sslEnforcement: \"Enabled\",\n    skuName: \"GP_Gen5_2\",\n    storageProfile: {\n        storageMb: 5120,\n        backupRetentionDays: 7,\n        geoRedundantBackup: \"Disabled\",\n    },\n});\nconst exampleVirtualNetworkRule = new azure.mariadb.VirtualNetworkRule(\"exampleVirtualNetworkRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    subnetId: internal.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.7.29.0/29\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\ninternal = azure.network.Subnet(\"internal\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.7.29.0/29\"],\n    service_endpoints=[\"Microsoft.Sql\"])\nexample_server = azure.mariadb.Server(\"exampleServer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    administrator_login=\"mariadbadminun\",\n    administrator_login_password=\"H@Sh1CoR3!\",\n    version=\"5.7\",\n    ssl_enforcement=\"Enabled\",\n    sku_name=\"GP_Gen5_2\",\n    storage_profile=azure.mariadb.ServerStorageProfileArgs(\n        storage_mb=5120,\n        backup_retention_days=7,\n        geo_redundant_backup=\"Disabled\",\n    ))\nexample_virtual_network_rule = azure.mariadb.VirtualNetworkRule(\"exampleVirtualNetworkRule\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    subnet_id=internal.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.7.29.0/29\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var @internal = new Azure.Network.Subnet(\"internal\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.7.29.0/29\",\n            },\n            ServiceEndpoints = \n            {\n                \"Microsoft.Sql\",\n            },\n        });\n        var exampleServer = new Azure.MariaDB.Server(\"exampleServer\", new Azure.MariaDB.ServerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AdministratorLogin = \"mariadbadminun\",\n            AdministratorLoginPassword = \"H@Sh1CoR3!\",\n            Version = \"5.7\",\n            SslEnforcement = \"Enabled\",\n            SkuName = \"GP_Gen5_2\",\n            StorageProfile = new Azure.MariaDB.Inputs.ServerStorageProfileArgs\n            {\n                StorageMb = 5120,\n                BackupRetentionDays = 7,\n                GeoRedundantBackup = \"Disabled\",\n            },\n        });\n        var exampleVirtualNetworkRule = new Azure.MariaDB.VirtualNetworkRule(\"exampleVirtualNetworkRule\", new Azure.MariaDB.VirtualNetworkRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            SubnetId = @internal.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mariadb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.7.29.0/29\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinternal, err := network.NewSubnet(ctx, \"internal\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.7.29.0/29\"),\n\t\t\t},\n\t\t\tServiceEndpoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Microsoft.Sql\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mariadb.NewServer(ctx, \"exampleServer\", \u0026mariadb.ServerArgs{\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tAdministratorLogin:         pulumi.String(\"mariadbadminun\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tVersion:                    pulumi.String(\"5.7\"),\n\t\t\tSslEnforcement:             pulumi.String(\"Enabled\"),\n\t\t\tSkuName:                    pulumi.String(\"GP_Gen5_2\"),\n\t\t\tStorageProfile: \u0026mariadb.ServerStorageProfileArgs{\n\t\t\t\tStorageMb:           pulumi.Int(5120),\n\t\t\t\tBackupRetentionDays: pulumi.Int(7),\n\t\t\t\tGeoRedundantBackup:  pulumi.String(\"Disabled\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mariadb.NewVirtualNetworkRule(ctx, \"exampleVirtualNetworkRule\", \u0026mariadb.VirtualNetworkRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tSubnetId:          internal.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMariaDB Virtual Network Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mariadb/virtualNetworkRule:VirtualNetworkRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/MariaDB/servers/myserver/virtualNetworkRules/vnetrulename\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the MariaDB Virtual Network Rule. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the MariaDB server resides. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server to which this MariaDB virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet that the MariaDB server will be connected to.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "The name of the MariaDB Virtual Network Rule. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the MariaDB server resides. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server to which this MariaDB virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet that the MariaDB server will be connected to.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "serverName",
        "subnetId"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "serverName",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualNetworkRule resources.\n",
        "properties": {
          "name": {
            "description": "The name of the MariaDB Virtual Network Rule. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the MariaDB server resides. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the SQL Server to which this MariaDB virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the subnet that the MariaDB server will be connected to.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:marketplace/agreement:Agreement": {
      "description": "Allows accepting the Legal Terms for a Marketplace Image.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst barracuda = new azure.marketplace.Agreement(\"barracuda\", {\n    offer: \"waf\",\n    plan: \"hourly\",\n    publisher: \"barracudanetworks\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nbarracuda = azure.marketplace.Agreement(\"barracuda\",\n    offer=\"waf\",\n    plan=\"hourly\",\n    publisher=\"barracudanetworks\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var barracuda = new Azure.Marketplace.Agreement(\"barracuda\", new Azure.Marketplace.AgreementArgs\n        {\n            Offer = \"waf\",\n            Plan = \"hourly\",\n            Publisher = \"barracudanetworks\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/marketplace\"\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 := marketplace.NewAgreement(ctx, \"barracuda\", \u0026marketplace.AgreementArgs{\n\t\t\tOffer:     pulumi.String(\"waf\"),\n\t\t\tPlan:      pulumi.String(\"hourly\"),\n\t\t\tPublisher: pulumi.String(\"barracudanetworks\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMarketplace Agreement can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:marketplace/agreement:Agreement example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.MarketplaceOrdering/agreements/publisher1/offers/offer1/plans/plan1\n```\n\n ",
      "inputProperties": {
        "offer": {
          "description": "The Offer of the Marketplace Image. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "plan": {
          "description": "The Plan of the Marketplace Image. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publisher": {
          "description": "The Publisher of the Marketplace Image. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "licenseTextLink": {
          "type": "string"
        },
        "offer": {
          "description": "The Offer of the Marketplace Image. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "plan": {
          "description": "The Plan of the Marketplace Image. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privacyPolicyLink": {
          "type": "string"
        },
        "publisher": {
          "description": "The Publisher of the Marketplace Image. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "licenseTextLink",
        "offer",
        "plan",
        "privacyPolicyLink",
        "publisher"
      ],
      "requiredInputs": [
        "offer",
        "plan",
        "publisher"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Agreement resources.\n",
        "properties": {
          "licenseTextLink": {
            "type": "string"
          },
          "offer": {
            "description": "The Offer of the Marketplace Image. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "plan": {
            "description": "The Plan of the Marketplace Image. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "privacyPolicyLink": {
            "type": "string"
          },
          "publisher": {
            "description": "The Publisher of the Marketplace Image. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:media/asset:Asset": {
      "description": "Manages a Media Asset.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleServiceAccount = new azure.media.ServiceAccount(\"exampleServiceAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccounts: [{\n        id: exampleAccount.id,\n        isPrimary: true,\n    }],\n});\nconst exampleAsset = new azure.media.Asset(\"exampleAsset\", {\n    resourceGroupName: exampleResourceGroup.name,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    description: \"Asset description\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_service_account = azure.media.ServiceAccount(\"exampleServiceAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_accounts=[azure.media.ServiceAccountStorageAccountArgs(\n        id=example_account.id,\n        is_primary=True,\n    )])\nexample_asset = azure.media.Asset(\"exampleAsset\",\n    resource_group_name=example_resource_group.name,\n    media_services_account_name=example_service_account.name,\n    description=\"Asset description\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleServiceAccount = new Azure.Media.ServiceAccount(\"exampleServiceAccount\", new Azure.Media.ServiceAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccounts = \n            {\n                new Azure.Media.Inputs.ServiceAccountStorageAccountArgs\n                {\n                    Id = exampleAccount.Id,\n                    IsPrimary = true,\n                },\n            },\n        });\n        var exampleAsset = new Azure.Media.Asset(\"exampleAsset\", new Azure.Media.AssetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            Description = \"Asset description\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/media\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceAccount, err := media.NewServiceAccount(ctx, \"exampleServiceAccount\", \u0026media.ServiceAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccounts: media.ServiceAccountStorageAccountArray{\n\t\t\t\t\u0026media.ServiceAccountStorageAccountArgs{\n\t\t\t\t\tId:        exampleAccount.ID(),\n\t\t\t\t\tIsPrimary: pulumi.Bool(true),\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 = media.NewAsset(ctx, \"exampleAsset\", \u0026media.AssetArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tDescription:              pulumi.String(\"Asset description\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMedia Assets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:media/asset:Asset example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Media/mediaservices/account1/assets/asset1\n```\n\n ",
      "inputProperties": {
        "alternateId": {
          "description": "The alternate ID of the Asset.\n",
          "type": "string"
        },
        "container": {
          "description": "The name of the asset blob container. Changing this forces a new Media Asset to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The Asset description.\n",
          "type": "string"
        },
        "mediaServicesAccountName": {
          "description": "Specifies the name of the Media Services Account. Changing this forces a new Media Asset to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Media Asset. Changing this forces a new Media Asset to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Media Asset should exist. Changing this forces a new Media Asset to be created.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The name of the storage account where to store the media asset. Changing this forces a new Media Asset to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "alternateId": {
          "description": "The alternate ID of the Asset.\n",
          "type": "string"
        },
        "container": {
          "description": "The name of the asset blob container. Changing this forces a new Media Asset to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The Asset description.\n",
          "type": "string"
        },
        "mediaServicesAccountName": {
          "description": "Specifies the name of the Media Services Account. Changing this forces a new Media Asset to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Media Asset. Changing this forces a new Media Asset to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Media Asset should exist. Changing this forces a new Media Asset to be created.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The name of the storage account where to store the media asset. Changing this forces a new Media Asset to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "container",
        "mediaServicesAccountName",
        "name",
        "resourceGroupName",
        "storageAccountName"
      ],
      "requiredInputs": [
        "mediaServicesAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Asset resources.\n",
        "properties": {
          "alternateId": {
            "description": "The alternate ID of the Asset.\n",
            "type": "string"
          },
          "container": {
            "description": "The name of the asset blob container. Changing this forces a new Media Asset to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The Asset description.\n",
            "type": "string"
          },
          "mediaServicesAccountName": {
            "description": "Specifies the name of the Media Services Account. Changing this forces a new Media Asset to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Media Asset. Changing this forces a new Media Asset to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Media Asset should exist. Changing this forces a new Media Asset to be created.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "The name of the storage account where to store the media asset. Changing this forces a new Media Asset to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:media/assetFilter:AssetFilter": {
      "description": "Manages an Azure Media Asset Filter.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleServiceAccount = new azure.media.ServiceAccount(\"exampleServiceAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccounts: [{\n        id: exampleAccount.id,\n        isPrimary: true,\n    }],\n});\nconst exampleAsset = new azure.media.Asset(\"exampleAsset\", {\n    resourceGroupName: exampleResourceGroup.name,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    description: \"Asset description\",\n});\nconst exampleAssetFilter = new azure.media.AssetFilter(\"exampleAssetFilter\", {\n    assetId: exampleAsset.id,\n    firstQualityBitrate: 128000,\n    presentationTimeRange: {\n        startInUnits: 0,\n        endInUnits: 15,\n        presentationWindowInUnits: 90,\n        liveBackoffInUnits: 0,\n        unitTimescaleInMiliseconds: 1000,\n        forceEnd: false,\n    },\n    trackSelections: [\n        {\n            conditions: [\n                {\n                    property: \"Type\",\n                    operation: \"Equal\",\n                    value: \"Audio\",\n                },\n                {\n                    property: \"Language\",\n                    operation: \"NotEqual\",\n                    value: \"en\",\n                },\n                {\n                    property: \"FourCC\",\n                    operation: \"NotEqual\",\n                    value: \"EC-3\",\n                },\n            ],\n        },\n        {\n            conditions: [\n                {\n                    property: \"Type\",\n                    operation: \"Equal\",\n                    value: \"Video\",\n                },\n                {\n                    property: \"Bitrate\",\n                    operation: \"Equal\",\n                    value: \"3000000-5000000\",\n                },\n            ],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_service_account = azure.media.ServiceAccount(\"exampleServiceAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_accounts=[azure.media.ServiceAccountStorageAccountArgs(\n        id=example_account.id,\n        is_primary=True,\n    )])\nexample_asset = azure.media.Asset(\"exampleAsset\",\n    resource_group_name=example_resource_group.name,\n    media_services_account_name=example_service_account.name,\n    description=\"Asset description\")\nexample_asset_filter = azure.media.AssetFilter(\"exampleAssetFilter\",\n    asset_id=example_asset.id,\n    first_quality_bitrate=128000,\n    presentation_time_range=azure.media.AssetFilterPresentationTimeRangeArgs(\n        start_in_units=0,\n        end_in_units=15,\n        presentation_window_in_units=90,\n        live_backoff_in_units=0,\n        unit_timescale_in_miliseconds=1000,\n        force_end=False,\n    ),\n    track_selections=[\n        azure.media.AssetFilterTrackSelectionArgs(\n            conditions=[\n                azure.media.AssetFilterTrackSelectionConditionArgs(\n                    property=\"Type\",\n                    operation=\"Equal\",\n                    value=\"Audio\",\n                ),\n                azure.media.AssetFilterTrackSelectionConditionArgs(\n                    property=\"Language\",\n                    operation=\"NotEqual\",\n                    value=\"en\",\n                ),\n                azure.media.AssetFilterTrackSelectionConditionArgs(\n                    property=\"FourCC\",\n                    operation=\"NotEqual\",\n                    value=\"EC-3\",\n                ),\n            ],\n        ),\n        azure.media.AssetFilterTrackSelectionArgs(\n            conditions=[\n                azure.media.AssetFilterTrackSelectionConditionArgs(\n                    property=\"Type\",\n                    operation=\"Equal\",\n                    value=\"Video\",\n                ),\n                azure.media.AssetFilterTrackSelectionConditionArgs(\n                    property=\"Bitrate\",\n                    operation=\"Equal\",\n                    value=\"3000000-5000000\",\n                ),\n            ],\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleServiceAccount = new Azure.Media.ServiceAccount(\"exampleServiceAccount\", new Azure.Media.ServiceAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccounts = \n            {\n                new Azure.Media.Inputs.ServiceAccountStorageAccountArgs\n                {\n                    Id = exampleAccount.Id,\n                    IsPrimary = true,\n                },\n            },\n        });\n        var exampleAsset = new Azure.Media.Asset(\"exampleAsset\", new Azure.Media.AssetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            Description = \"Asset description\",\n        });\n        var exampleAssetFilter = new Azure.Media.AssetFilter(\"exampleAssetFilter\", new Azure.Media.AssetFilterArgs\n        {\n            AssetId = exampleAsset.Id,\n            FirstQualityBitrate = 128000,\n            PresentationTimeRange = new Azure.Media.Inputs.AssetFilterPresentationTimeRangeArgs\n            {\n                StartInUnits = 0,\n                EndInUnits = 15,\n                PresentationWindowInUnits = 90,\n                LiveBackoffInUnits = 0,\n                UnitTimescaleInMiliseconds = 1000,\n                ForceEnd = false,\n            },\n            TrackSelections = \n            {\n                new Azure.Media.Inputs.AssetFilterTrackSelectionArgs\n                {\n                    Conditions = \n                    {\n                        new Azure.Media.Inputs.AssetFilterTrackSelectionConditionArgs\n                        {\n                            Property = \"Type\",\n                            Operation = \"Equal\",\n                            Value = \"Audio\",\n                        },\n                        new Azure.Media.Inputs.AssetFilterTrackSelectionConditionArgs\n                        {\n                            Property = \"Language\",\n                            Operation = \"NotEqual\",\n                            Value = \"en\",\n                        },\n                        new Azure.Media.Inputs.AssetFilterTrackSelectionConditionArgs\n                        {\n                            Property = \"FourCC\",\n                            Operation = \"NotEqual\",\n                            Value = \"EC-3\",\n                        },\n                    },\n                },\n                new Azure.Media.Inputs.AssetFilterTrackSelectionArgs\n                {\n                    Conditions = \n                    {\n                        new Azure.Media.Inputs.AssetFilterTrackSelectionConditionArgs\n                        {\n                            Property = \"Type\",\n                            Operation = \"Equal\",\n                            Value = \"Video\",\n                        },\n                        new Azure.Media.Inputs.AssetFilterTrackSelectionConditionArgs\n                        {\n                            Property = \"Bitrate\",\n                            Operation = \"Equal\",\n                            Value = \"3000000-5000000\",\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/media\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceAccount, err := media.NewServiceAccount(ctx, \"exampleServiceAccount\", \u0026media.ServiceAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccounts: media.ServiceAccountStorageAccountArray{\n\t\t\t\t\u0026media.ServiceAccountStorageAccountArgs{\n\t\t\t\t\tId:        exampleAccount.ID(),\n\t\t\t\t\tIsPrimary: pulumi.Bool(true),\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\texampleAsset, err := media.NewAsset(ctx, \"exampleAsset\", \u0026media.AssetArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tDescription:              pulumi.String(\"Asset description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = media.NewAssetFilter(ctx, \"exampleAssetFilter\", \u0026media.AssetFilterArgs{\n\t\t\tAssetId:             exampleAsset.ID(),\n\t\t\tFirstQualityBitrate: pulumi.Int(128000),\n\t\t\tPresentationTimeRange: \u0026media.AssetFilterPresentationTimeRangeArgs{\n\t\t\t\tStartInUnits:               pulumi.Int(0),\n\t\t\t\tEndInUnits:                 pulumi.Int(15),\n\t\t\t\tPresentationWindowInUnits:  pulumi.Int(90),\n\t\t\t\tLiveBackoffInUnits:         pulumi.Int(0),\n\t\t\t\tUnitTimescaleInMiliseconds: pulumi.Int(1000),\n\t\t\t\tForceEnd:                   pulumi.Bool(false),\n\t\t\t},\n\t\t\tTrackSelections: media.AssetFilterTrackSelectionArray{\n\t\t\t\t\u0026media.AssetFilterTrackSelectionArgs{\n\t\t\t\t\tConditions: media.AssetFilterTrackSelectionConditionArray{\n\t\t\t\t\t\t\u0026media.AssetFilterTrackSelectionConditionArgs{\n\t\t\t\t\t\t\tProperty:  pulumi.String(\"Type\"),\n\t\t\t\t\t\t\tOperation: pulumi.String(\"Equal\"),\n\t\t\t\t\t\t\tValue:     pulumi.String(\"Audio\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026media.AssetFilterTrackSelectionConditionArgs{\n\t\t\t\t\t\t\tProperty:  pulumi.String(\"Language\"),\n\t\t\t\t\t\t\tOperation: pulumi.String(\"NotEqual\"),\n\t\t\t\t\t\t\tValue:     pulumi.String(\"en\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026media.AssetFilterTrackSelectionConditionArgs{\n\t\t\t\t\t\t\tProperty:  pulumi.String(\"FourCC\"),\n\t\t\t\t\t\t\tOperation: pulumi.String(\"NotEqual\"),\n\t\t\t\t\t\t\tValue:     pulumi.String(\"EC-3\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026media.AssetFilterTrackSelectionArgs{\n\t\t\t\t\tConditions: media.AssetFilterTrackSelectionConditionArray{\n\t\t\t\t\t\t\u0026media.AssetFilterTrackSelectionConditionArgs{\n\t\t\t\t\t\t\tProperty:  pulumi.String(\"Type\"),\n\t\t\t\t\t\t\tOperation: pulumi.String(\"Equal\"),\n\t\t\t\t\t\t\tValue:     pulumi.String(\"Video\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026media.AssetFilterTrackSelectionConditionArgs{\n\t\t\t\t\t\t\tProperty:  pulumi.String(\"Bitrate\"),\n\t\t\t\t\t\t\tOperation: pulumi.String(\"Equal\"),\n\t\t\t\t\t\t\tValue:     pulumi.String(\"3000000-5000000\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAsset Filters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:media/assetFilter:AssetFilter example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Media/mediaservices/account1/assets/asset1/assetFilters/filter1\n```\n\n ",
      "inputProperties": {
        "assetId": {
          "description": "The Asset ID for which the Asset Filter should be created. Changing this forces a new Asset Filter to be created.\n",
          "type": "string"
        },
        "firstQualityBitrate": {
          "description": "The first quality bitrate. Sets the first video track to appear in the Live Streaming playlist to allow HLS native players to start downloading from this quality level at the beginning.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name which should be used for this Asset Filter. Changing this forces a new Asset Filter to be created.\n",
          "type": "string"
        },
        "presentationTimeRange": {
          "$ref": "#/types/azure:media/AssetFilterPresentationTimeRange:AssetFilterPresentationTimeRange",
          "description": "A `presentation_time_range` block as defined below.\n"
        },
        "trackSelections": {
          "description": "One or more `track_selection` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:media/AssetFilterTrackSelection:AssetFilterTrackSelection"
          },
          "type": "array"
        }
      },
      "properties": {
        "assetId": {
          "description": "The Asset ID for which the Asset Filter should be created. Changing this forces a new Asset Filter to be created.\n",
          "type": "string"
        },
        "firstQualityBitrate": {
          "description": "The first quality bitrate. Sets the first video track to appear in the Live Streaming playlist to allow HLS native players to start downloading from this quality level at the beginning.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name which should be used for this Asset Filter. Changing this forces a new Asset Filter to be created.\n",
          "type": "string"
        },
        "presentationTimeRange": {
          "$ref": "#/types/azure:media/AssetFilterPresentationTimeRange:AssetFilterPresentationTimeRange",
          "description": "A `presentation_time_range` block as defined below.\n"
        },
        "trackSelections": {
          "description": "One or more `track_selection` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:media/AssetFilterTrackSelection:AssetFilterTrackSelection"
          },
          "type": "array"
        }
      },
      "required": [
        "assetId",
        "name"
      ],
      "requiredInputs": [
        "assetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AssetFilter resources.\n",
        "properties": {
          "assetId": {
            "description": "The Asset ID for which the Asset Filter should be created. Changing this forces a new Asset Filter to be created.\n",
            "type": "string"
          },
          "firstQualityBitrate": {
            "description": "The first quality bitrate. Sets the first video track to appear in the Live Streaming playlist to allow HLS native players to start downloading from this quality level at the beginning.\n",
            "type": "integer"
          },
          "name": {
            "description": "The name which should be used for this Asset Filter. Changing this forces a new Asset Filter to be created.\n",
            "type": "string"
          },
          "presentationTimeRange": {
            "$ref": "#/types/azure:media/AssetFilterPresentationTimeRange:AssetFilterPresentationTimeRange",
            "description": "A `presentation_time_range` block as defined below.\n"
          },
          "trackSelections": {
            "description": "One or more `track_selection` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:media/AssetFilterTrackSelection:AssetFilterTrackSelection"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:media/contentKeyPolicy:ContentKeyPolicy": {
      "description": "Manages a Content Key Policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleServiceAccount = new azure.media.ServiceAccount(\"exampleServiceAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccounts: [{\n        id: exampleAccount.id,\n        isPrimary: true,\n    }],\n});\nconst exampleContentKeyPolicy = new azure.media.ContentKeyPolicy(\"exampleContentKeyPolicy\", {\n    resourceGroupName: exampleResourceGroup.name,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    policyOptions: [\n        {\n            name: \"fairPlay\",\n            fairplayConfiguration: {\n                ask: \"bb566284cc124a21c435a92cd3c108c4\",\n                pfx: \"MIIG7gIBAzCCBqoGCSqGSIb3DQEHAaCCBpsEggaXMIIGkzCCA7wGCSqGSIb3DQEHAaCCA60EggOpMIIDpTCCA6EGCyqGSIb3DQEMCgECoIICtjCCArIwHAYKKoZIhvcNAQwBAzAOBAiV65vFfxLDVgICB9AEggKQx2dxWefICYodVhRLSQVMJRYy5QkM1VySPAXGP744JHrb+s0Y8i/6a+a5itZGlXw3kvxyflHtSsuuBCaYJ1WOCp9jspixJEliFHXTcel96AgZlT5tB7vC6pdZnz8rb+lyxFs99x2CW52EsadoDlRsYrmkmKdnB0cx2JHJbLeXuKV/fjuRJSqCFcDa6Nre8AlBX0zKGIYGLJ1Cfpora4kNTXxu0AwEowzGmoCxqrpKbO1QDi1hZ1qHrtZ1ienAKfiTXaGH4AMQzyut0AaymxalrRbXibJYuefLRvXqx0oLZKVLAX8fR1gnac6Mrr7GkdHaKCsk4eOi98acR7bjiyRRVYYS4B6Y0tCeRJNe6zeYVmLdtatuOlOEVDT6AKrJJMFMyITVS+2D771ge6m37FbJ36K3/eT/HRq1YDsxfD/BY+X7eMIwQrVnD5nK7avXfbIni57n5oWLkE9Vco8uBlMdrx4xHt9vpe42Pz2Yh2O4WtvxcgxrAknvPpV1ZsAJCfvm9TTcg8qZpjyePn3B9TvFVSXMJHn/rzu6OJAgFgVFAe1tPGLh1XBxAvwpB8EqcycIIUUFUBy4HgYCicjI2jp6s8Kk293Uc/TA2623LrWgP/Xm5hVB7lP1k6W9LDivOlAA96D0Cbk08Yv6arkCYj7ONFO8VZbO0zKAAOLHMw/ZQRIutGLrDlqgTDeRXRuReX7TNjDBxp2rzJBY0uU5g9BMFxQrbQwEx9HsnO4dVFG4KLbHmYWhlwS2V2uZtY6D6elOXY3SX50RwhC4+0trUMi/ODtOxAc+lMQk2FNDcNeKIX5wHwFRS+sFBu5Um4Jfj6Ua4w1izmu2KiPfDd3vJsm5Dgcci3fPfdSfpIq4uR6d3JQxgdcwEwYJKoZIhvcNAQkVMQYEBAEAAAAwWwYJKoZIhvcNAQkUMU4eTAB7ADcAMQAxADAANABBADgARgAtADQAQgBFADAALQA0AEEAMgA4AC0AOAAyADIANQAtAEYANwBBADcAMwBGAEMAQQAwAEMARABEAH0wYwYJKwYBBAGCNxEBMVYeVABNAGkAYwByAG8AcwBvAGYAdAAgAEIAYQBzAGUAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByACAAdgAxAC4AMDCCAs8GCSqGSIb3DQEHBqCCAsAwggK8AgEAMIICtQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQMwDgQISS7mG/riQJkCAgfQgIICiPSGg5axP4JM+GmiVEqOHTVAPw2AM8OPnn1q0mIw54oC2WOJw3FFThYHmxTQzQ1feVmnkVCv++eFp+BYTcWTa+ehl/3/Nvr5uLTzDxmCShacKwoWXOKtSLh6mmgydvMqSf6xv1bPsloodtrRxhprI2lBNBW2uw8az9eLdvURYmhjGPf9klEy/6OCA5jDT5XZMunwiQT5mYNMF7wAQ5PCz2dJQqm1n72A6nUHPkHEusN7iH/+mv5d3iaKxn7/ShxLKHfjMd+r/gv27ylshVHiN4mVStAg+MiLrVvr5VH46p6oosImvS3ZO4D5wTmh/6wtus803qN4QB/Y9n4rqEJ4Dn619h+6O7FChzWkx7kvYIzIxvfnj1PCFTEjUwc7jbuF013W/z9zQi2YEq9AzxMcGro0zjdt2sf30zXSfaRNt0UHHRDkLo7yFUJG5Ka1uWU8paLuXUUiiMUf24Bsfdg2A2n+3Qa7g25OvAM1QTpMwmMWL9sY2hxVUGIKVrnj8c4EKuGJjVDXrze5g9O/LfZr5VSjGu5KsN0eYI3mcePF7XM0azMtTNQYVRmeWxYW+XvK5MaoLEkrFG8C5+JccIlN588jowVIPqP321S/EyFiAmrRdAWkqrc9KH+/eINCFqjut2YPkCaTM9mnJAAqWgggUWkrOKT/ByS6IAQwyEBNFbY0TWyxKt6vZL1EW/6HgZCsxeYycNhnPr2qJNZZMNzmdMRp2GRLcfBH8KFw1rAyua0VJoTLHb23ZAsEY74BrEEiK9e/oOjXkHzQjlmrfQ9rSN2eQpRrn0W8I229WmBO2suG+AQ3aY8kDtBMkjmJno7txUh1K5D6tJTO7MQp343A2AhyJkhYA7NPnDA7MB8wBwYFKw4DAhoEFPO82HDlCzlshWlnMoQPStm62TMEBBQsPmvwbZ5OlwC9+NDF1AC+t67WTgICB9A=\",\n                pfxPassword: \"password\",\n                rentalDurationSeconds: 2249,\n                rentalAndLeaseKeyType: \"PersistentUnlimited\",\n            },\n            openRestrictionEnabled: true,\n        },\n        {\n            name: \"playReady\",\n            playreadyConfigurationLicenses: [{\n                allowTestDevices: true,\n                beginDate: \"2017-10-16T18:22:53Z\",\n                playRight: {\n                    scmsRestriction: 2,\n                    digitalVideoOnlyContentRestriction: false,\n                    imageConstraintForAnalogComponentVideoRestriction: false,\n                    imageConstraintForAnalogComputerMonitorRestriction: false,\n                    allowPassingVideoContentToUnknownOutput: \"NotAllowed\",\n                    uncompressedDigitalVideoOpl: 100,\n                    uncompressedDigitalAudioOpl: 100,\n                    analogVideoOpl: 150,\n                    compressedDigitalAudioOpl: 150,\n                },\n                licenseType: \"Persistent\",\n                contentType: \"UltraVioletDownload\",\n                contentKeyLocationFromHeaderEnabled: true,\n            }],\n            openRestrictionEnabled: true,\n        },\n        {\n            name: \"clearKey\",\n            clearKeyConfigurationEnabled: true,\n            tokenRestriction: {\n                issuer: \"urn:issuer\",\n                audience: \"urn:audience\",\n                tokenType: \"Swt\",\n                primarySymmetricTokenKey: \"AAAAAAAAAAAAAAAAAAAAAA==\",\n            },\n        },\n        {\n            name: \"widevine\",\n            widevineConfigurationTemplate: JSON.stringify({\n                allowed_track_types: \"SD_HD\",\n                content_key_specs: [{\n                    track_type: \"SD\",\n                    security_level: 1,\n                    required_output_protection: {\n                        hdcp: \"HDCP_V2\",\n                    },\n                }],\n                policy_overrides: {\n                    can_play: true,\n                    can_persist: true,\n                    can_renew: false,\n                },\n            }),\n            openRestrictionEnabled: true,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_service_account = azure.media.ServiceAccount(\"exampleServiceAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_accounts=[azure.media.ServiceAccountStorageAccountArgs(\n        id=example_account.id,\n        is_primary=True,\n    )])\nexample_content_key_policy = azure.media.ContentKeyPolicy(\"exampleContentKeyPolicy\",\n    resource_group_name=example_resource_group.name,\n    media_services_account_name=example_service_account.name,\n    policy_options=[\n        azure.media.ContentKeyPolicyPolicyOptionArgs(\n            name=\"fairPlay\",\n            fairplay_configuration=azure.media.ContentKeyPolicyPolicyOptionFairplayConfigurationArgs(\n                ask=\"bb566284cc124a21c435a92cd3c108c4\",\n                pfx=\"MIIG7gIBAzCCBqoGCSqGSIb3DQEHAaCCBpsEggaXMIIGkzCCA7wGCSqGSIb3DQEHAaCCA60EggOpMIIDpTCCA6EGCyqGSIb3DQEMCgECoIICtjCCArIwHAYKKoZIhvcNAQwBAzAOBAiV65vFfxLDVgICB9AEggKQx2dxWefICYodVhRLSQVMJRYy5QkM1VySPAXGP744JHrb+s0Y8i/6a+a5itZGlXw3kvxyflHtSsuuBCaYJ1WOCp9jspixJEliFHXTcel96AgZlT5tB7vC6pdZnz8rb+lyxFs99x2CW52EsadoDlRsYrmkmKdnB0cx2JHJbLeXuKV/fjuRJSqCFcDa6Nre8AlBX0zKGIYGLJ1Cfpora4kNTXxu0AwEowzGmoCxqrpKbO1QDi1hZ1qHrtZ1ienAKfiTXaGH4AMQzyut0AaymxalrRbXibJYuefLRvXqx0oLZKVLAX8fR1gnac6Mrr7GkdHaKCsk4eOi98acR7bjiyRRVYYS4B6Y0tCeRJNe6zeYVmLdtatuOlOEVDT6AKrJJMFMyITVS+2D771ge6m37FbJ36K3/eT/HRq1YDsxfD/BY+X7eMIwQrVnD5nK7avXfbIni57n5oWLkE9Vco8uBlMdrx4xHt9vpe42Pz2Yh2O4WtvxcgxrAknvPpV1ZsAJCfvm9TTcg8qZpjyePn3B9TvFVSXMJHn/rzu6OJAgFgVFAe1tPGLh1XBxAvwpB8EqcycIIUUFUBy4HgYCicjI2jp6s8Kk293Uc/TA2623LrWgP/Xm5hVB7lP1k6W9LDivOlAA96D0Cbk08Yv6arkCYj7ONFO8VZbO0zKAAOLHMw/ZQRIutGLrDlqgTDeRXRuReX7TNjDBxp2rzJBY0uU5g9BMFxQrbQwEx9HsnO4dVFG4KLbHmYWhlwS2V2uZtY6D6elOXY3SX50RwhC4+0trUMi/ODtOxAc+lMQk2FNDcNeKIX5wHwFRS+sFBu5Um4Jfj6Ua4w1izmu2KiPfDd3vJsm5Dgcci3fPfdSfpIq4uR6d3JQxgdcwEwYJKoZIhvcNAQkVMQYEBAEAAAAwWwYJKoZIhvcNAQkUMU4eTAB7ADcAMQAxADAANABBADgARgAtADQAQgBFADAALQA0AEEAMgA4AC0AOAAyADIANQAtAEYANwBBADcAMwBGAEMAQQAwAEMARABEAH0wYwYJKwYBBAGCNxEBMVYeVABNAGkAYwByAG8AcwBvAGYAdAAgAEIAYQBzAGUAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByACAAdgAxAC4AMDCCAs8GCSqGSIb3DQEHBqCCAsAwggK8AgEAMIICtQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQMwDgQISS7mG/riQJkCAgfQgIICiPSGg5axP4JM+GmiVEqOHTVAPw2AM8OPnn1q0mIw54oC2WOJw3FFThYHmxTQzQ1feVmnkVCv++eFp+BYTcWTa+ehl/3/Nvr5uLTzDxmCShacKwoWXOKtSLh6mmgydvMqSf6xv1bPsloodtrRxhprI2lBNBW2uw8az9eLdvURYmhjGPf9klEy/6OCA5jDT5XZMunwiQT5mYNMF7wAQ5PCz2dJQqm1n72A6nUHPkHEusN7iH/+mv5d3iaKxn7/ShxLKHfjMd+r/gv27ylshVHiN4mVStAg+MiLrVvr5VH46p6oosImvS3ZO4D5wTmh/6wtus803qN4QB/Y9n4rqEJ4Dn619h+6O7FChzWkx7kvYIzIxvfnj1PCFTEjUwc7jbuF013W/z9zQi2YEq9AzxMcGro0zjdt2sf30zXSfaRNt0UHHRDkLo7yFUJG5Ka1uWU8paLuXUUiiMUf24Bsfdg2A2n+3Qa7g25OvAM1QTpMwmMWL9sY2hxVUGIKVrnj8c4EKuGJjVDXrze5g9O/LfZr5VSjGu5KsN0eYI3mcePF7XM0azMtTNQYVRmeWxYW+XvK5MaoLEkrFG8C5+JccIlN588jowVIPqP321S/EyFiAmrRdAWkqrc9KH+/eINCFqjut2YPkCaTM9mnJAAqWgggUWkrOKT/ByS6IAQwyEBNFbY0TWyxKt6vZL1EW/6HgZCsxeYycNhnPr2qJNZZMNzmdMRp2GRLcfBH8KFw1rAyua0VJoTLHb23ZAsEY74BrEEiK9e/oOjXkHzQjlmrfQ9rSN2eQpRrn0W8I229WmBO2suG+AQ3aY8kDtBMkjmJno7txUh1K5D6tJTO7MQp343A2AhyJkhYA7NPnDA7MB8wBwYFKw4DAhoEFPO82HDlCzlshWlnMoQPStm62TMEBBQsPmvwbZ5OlwC9+NDF1AC+t67WTgICB9A=\",\n                pfx_password=\"password\",\n                rental_duration_seconds=2249,\n                rental_and_lease_key_type=\"PersistentUnlimited\",\n            ),\n            open_restriction_enabled=True,\n        ),\n        azure.media.ContentKeyPolicyPolicyOptionArgs(\n            name=\"playReady\",\n            playready_configuration_licenses=[azure.media.ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicenseArgs(\n                allow_test_devices=True,\n                begin_date=\"2017-10-16T18:22:53Z\",\n                play_right=azure.media.ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicensePlayRightArgs(\n                    scms_restriction=2,\n                    digital_video_only_content_restriction=False,\n                    image_constraint_for_analog_component_video_restriction=False,\n                    image_constraint_for_analog_computer_monitor_restriction=False,\n                    allow_passing_video_content_to_unknown_output=\"NotAllowed\",\n                    uncompressed_digital_video_opl=100,\n                    uncompressed_digital_audio_opl=100,\n                    analog_video_opl=150,\n                    compressed_digital_audio_opl=150,\n                ),\n                license_type=\"Persistent\",\n                content_type=\"UltraVioletDownload\",\n                content_key_location_from_header_enabled=True,\n            )],\n            open_restriction_enabled=True,\n        ),\n        azure.media.ContentKeyPolicyPolicyOptionArgs(\n            name=\"clearKey\",\n            clear_key_configuration_enabled=True,\n            token_restriction=azure.media.ContentKeyPolicyPolicyOptionTokenRestrictionArgs(\n                issuer=\"urn:issuer\",\n                audience=\"urn:audience\",\n                token_type=\"Swt\",\n                primary_symmetric_token_key=\"AAAAAAAAAAAAAAAAAAAAAA==\",\n            ),\n        ),\n        azure.media.ContentKeyPolicyPolicyOptionArgs(\n            name=\"widevine\",\n            widevine_configuration_template=json.dumps({\n                \"allowed_track_types\": \"SD_HD\",\n                \"content_key_specs\": [{\n                    \"track_type\": \"SD\",\n                    \"security_level\": 1,\n                    \"required_output_protection\": {\n                        \"hdcp\": \"HDCP_V2\",\n                    },\n                }],\n                \"policy_overrides\": {\n                    \"can_play\": True,\n                    \"can_persist\": True,\n                    \"can_renew\": False,\n                },\n            }),\n            open_restriction_enabled=True,\n        ),\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleServiceAccount = new Azure.Media.ServiceAccount(\"exampleServiceAccount\", new Azure.Media.ServiceAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccounts = \n            {\n                new Azure.Media.Inputs.ServiceAccountStorageAccountArgs\n                {\n                    Id = exampleAccount.Id,\n                    IsPrimary = true,\n                },\n            },\n        });\n        var exampleContentKeyPolicy = new Azure.Media.ContentKeyPolicy(\"exampleContentKeyPolicy\", new Azure.Media.ContentKeyPolicyArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            PolicyOptions = \n            {\n                new Azure.Media.Inputs.ContentKeyPolicyPolicyOptionArgs\n                {\n                    Name = \"fairPlay\",\n                    FairplayConfiguration = new Azure.Media.Inputs.ContentKeyPolicyPolicyOptionFairplayConfigurationArgs\n                    {\n                        Ask = \"bb566284cc124a21c435a92cd3c108c4\",\n                        Pfx = \"MIIG7gIBAzCCBqoGCSqGSIb3DQEHAaCCBpsEggaXMIIGkzCCA7wGCSqGSIb3DQEHAaCCA60EggOpMIIDpTCCA6EGCyqGSIb3DQEMCgECoIICtjCCArIwHAYKKoZIhvcNAQwBAzAOBAiV65vFfxLDVgICB9AEggKQx2dxWefICYodVhRLSQVMJRYy5QkM1VySPAXGP744JHrb+s0Y8i/6a+a5itZGlXw3kvxyflHtSsuuBCaYJ1WOCp9jspixJEliFHXTcel96AgZlT5tB7vC6pdZnz8rb+lyxFs99x2CW52EsadoDlRsYrmkmKdnB0cx2JHJbLeXuKV/fjuRJSqCFcDa6Nre8AlBX0zKGIYGLJ1Cfpora4kNTXxu0AwEowzGmoCxqrpKbO1QDi1hZ1qHrtZ1ienAKfiTXaGH4AMQzyut0AaymxalrRbXibJYuefLRvXqx0oLZKVLAX8fR1gnac6Mrr7GkdHaKCsk4eOi98acR7bjiyRRVYYS4B6Y0tCeRJNe6zeYVmLdtatuOlOEVDT6AKrJJMFMyITVS+2D771ge6m37FbJ36K3/eT/HRq1YDsxfD/BY+X7eMIwQrVnD5nK7avXfbIni57n5oWLkE9Vco8uBlMdrx4xHt9vpe42Pz2Yh2O4WtvxcgxrAknvPpV1ZsAJCfvm9TTcg8qZpjyePn3B9TvFVSXMJHn/rzu6OJAgFgVFAe1tPGLh1XBxAvwpB8EqcycIIUUFUBy4HgYCicjI2jp6s8Kk293Uc/TA2623LrWgP/Xm5hVB7lP1k6W9LDivOlAA96D0Cbk08Yv6arkCYj7ONFO8VZbO0zKAAOLHMw/ZQRIutGLrDlqgTDeRXRuReX7TNjDBxp2rzJBY0uU5g9BMFxQrbQwEx9HsnO4dVFG4KLbHmYWhlwS2V2uZtY6D6elOXY3SX50RwhC4+0trUMi/ODtOxAc+lMQk2FNDcNeKIX5wHwFRS+sFBu5Um4Jfj6Ua4w1izmu2KiPfDd3vJsm5Dgcci3fPfdSfpIq4uR6d3JQxgdcwEwYJKoZIhvcNAQkVMQYEBAEAAAAwWwYJKoZIhvcNAQkUMU4eTAB7ADcAMQAxADAANABBADgARgAtADQAQgBFADAALQA0AEEAMgA4AC0AOAAyADIANQAtAEYANwBBADcAMwBGAEMAQQAwAEMARABEAH0wYwYJKwYBBAGCNxEBMVYeVABNAGkAYwByAG8AcwBvAGYAdAAgAEIAYQBzAGUAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByACAAdgAxAC4AMDCCAs8GCSqGSIb3DQEHBqCCAsAwggK8AgEAMIICtQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQMwDgQISS7mG/riQJkCAgfQgIICiPSGg5axP4JM+GmiVEqOHTVAPw2AM8OPnn1q0mIw54oC2WOJw3FFThYHmxTQzQ1feVmnkVCv++eFp+BYTcWTa+ehl/3/Nvr5uLTzDxmCShacKwoWXOKtSLh6mmgydvMqSf6xv1bPsloodtrRxhprI2lBNBW2uw8az9eLdvURYmhjGPf9klEy/6OCA5jDT5XZMunwiQT5mYNMF7wAQ5PCz2dJQqm1n72A6nUHPkHEusN7iH/+mv5d3iaKxn7/ShxLKHfjMd+r/gv27ylshVHiN4mVStAg+MiLrVvr5VH46p6oosImvS3ZO4D5wTmh/6wtus803qN4QB/Y9n4rqEJ4Dn619h+6O7FChzWkx7kvYIzIxvfnj1PCFTEjUwc7jbuF013W/z9zQi2YEq9AzxMcGro0zjdt2sf30zXSfaRNt0UHHRDkLo7yFUJG5Ka1uWU8paLuXUUiiMUf24Bsfdg2A2n+3Qa7g25OvAM1QTpMwmMWL9sY2hxVUGIKVrnj8c4EKuGJjVDXrze5g9O/LfZr5VSjGu5KsN0eYI3mcePF7XM0azMtTNQYVRmeWxYW+XvK5MaoLEkrFG8C5+JccIlN588jowVIPqP321S/EyFiAmrRdAWkqrc9KH+/eINCFqjut2YPkCaTM9mnJAAqWgggUWkrOKT/ByS6IAQwyEBNFbY0TWyxKt6vZL1EW/6HgZCsxeYycNhnPr2qJNZZMNzmdMRp2GRLcfBH8KFw1rAyua0VJoTLHb23ZAsEY74BrEEiK9e/oOjXkHzQjlmrfQ9rSN2eQpRrn0W8I229WmBO2suG+AQ3aY8kDtBMkjmJno7txUh1K5D6tJTO7MQp343A2AhyJkhYA7NPnDA7MB8wBwYFKw4DAhoEFPO82HDlCzlshWlnMoQPStm62TMEBBQsPmvwbZ5OlwC9+NDF1AC+t67WTgICB9A=\",\n                        PfxPassword = \"password\",\n                        RentalDurationSeconds = 2249,\n                        RentalAndLeaseKeyType = \"PersistentUnlimited\",\n                    },\n                    OpenRestrictionEnabled = true,\n                },\n                new Azure.Media.Inputs.ContentKeyPolicyPolicyOptionArgs\n                {\n                    Name = \"playReady\",\n                    PlayreadyConfigurationLicenses = \n                    {\n                        new Azure.Media.Inputs.ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicenseArgs\n                        {\n                            AllowTestDevices = true,\n                            BeginDate = \"2017-10-16T18:22:53Z\",\n                            PlayRight = new Azure.Media.Inputs.ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicensePlayRightArgs\n                            {\n                                ScmsRestriction = 2,\n                                DigitalVideoOnlyContentRestriction = false,\n                                ImageConstraintForAnalogComponentVideoRestriction = false,\n                                ImageConstraintForAnalogComputerMonitorRestriction = false,\n                                AllowPassingVideoContentToUnknownOutput = \"NotAllowed\",\n                                UncompressedDigitalVideoOpl = 100,\n                                UncompressedDigitalAudioOpl = 100,\n                                AnalogVideoOpl = 150,\n                                CompressedDigitalAudioOpl = 150,\n                            },\n                            LicenseType = \"Persistent\",\n                            ContentType = \"UltraVioletDownload\",\n                            ContentKeyLocationFromHeaderEnabled = true,\n                        },\n                    },\n                    OpenRestrictionEnabled = true,\n                },\n                new Azure.Media.Inputs.ContentKeyPolicyPolicyOptionArgs\n                {\n                    Name = \"clearKey\",\n                    ClearKeyConfigurationEnabled = true,\n                    TokenRestriction = new Azure.Media.Inputs.ContentKeyPolicyPolicyOptionTokenRestrictionArgs\n                    {\n                        Issuer = \"urn:issuer\",\n                        Audience = \"urn:audience\",\n                        TokenType = \"Swt\",\n                        PrimarySymmetricTokenKey = \"AAAAAAAAAAAAAAAAAAAAAA==\",\n                    },\n                },\n                new Azure.Media.Inputs.ContentKeyPolicyPolicyOptionArgs\n                {\n                    Name = \"widevine\",\n                    WidevineConfigurationTemplate = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                    {\n                        { \"allowed_track_types\", \"SD_HD\" },\n                        { \"content_key_specs\", new[]\n                            {\n                                new Dictionary\u003cstring, object?\u003e\n                                {\n                                    { \"track_type\", \"SD\" },\n                                    { \"security_level\", 1 },\n                                    { \"required_output_protection\", new Dictionary\u003cstring, object?\u003e\n                                    {\n                                        { \"hdcp\", \"HDCP_V2\" },\n                                    } },\n                                },\n                            }\n                         },\n                        { \"policy_overrides\", new Dictionary\u003cstring, object?\u003e\n                        {\n                            { \"can_play\", true },\n                            { \"can_persist\", true },\n                            { \"can_renew\", false },\n                        } },\n                    }),\n                    OpenRestrictionEnabled = true,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/media\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceAccount, err := media.NewServiceAccount(ctx, \"exampleServiceAccount\", \u0026media.ServiceAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccounts: media.ServiceAccountStorageAccountArray{\n\t\t\t\t\u0026media.ServiceAccountStorageAccountArgs{\n\t\t\t\t\tId:        exampleAccount.ID(),\n\t\t\t\t\tIsPrimary: pulumi.Bool(true),\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\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"allowed_track_types\": \"SD_HD\",\n\t\t\t\"content_key_specs\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"track_type\":     \"SD\",\n\t\t\t\t\t\"security_level\": 1,\n\t\t\t\t\t\"required_output_protection\": map[string]interface{}{\n\t\t\t\t\t\t\"hdcp\": \"HDCP_V2\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"policy_overrides\": map[string]interface{}{\n\t\t\t\t\"can_play\":    true,\n\t\t\t\t\"can_persist\": true,\n\t\t\t\t\"can_renew\":   false,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = media.NewContentKeyPolicy(ctx, \"exampleContentKeyPolicy\", \u0026media.ContentKeyPolicyArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tPolicyOptions: media.ContentKeyPolicyPolicyOptionArray{\n\t\t\t\t\u0026media.ContentKeyPolicyPolicyOptionArgs{\n\t\t\t\t\tName: pulumi.String(\"fairPlay\"),\n\t\t\t\t\tFairplayConfiguration: \u0026media.ContentKeyPolicyPolicyOptionFairplayConfigurationArgs{\n\t\t\t\t\t\tAsk:                   pulumi.String(\"bb566284cc124a21c435a92cd3c108c4\"),\n\t\t\t\t\t\tPfx:                   pulumi.String(\"MIIG7gIBAzCCBqoGCSqGSIb3DQEHAaCCBpsEggaXMIIGkzCCA7wGCSqGSIb3DQEHAaCCA60EggOpMIIDpTCCA6EGCyqGSIb3DQEMCgECoIICtjCCArIwHAYKKoZIhvcNAQwBAzAOBAiV65vFfxLDVgICB9AEggKQx2dxWefICYodVhRLSQVMJRYy5QkM1VySPAXGP744JHrb+s0Y8i/6a+a5itZGlXw3kvxyflHtSsuuBCaYJ1WOCp9jspixJEliFHXTcel96AgZlT5tB7vC6pdZnz8rb+lyxFs99x2CW52EsadoDlRsYrmkmKdnB0cx2JHJbLeXuKV/fjuRJSqCFcDa6Nre8AlBX0zKGIYGLJ1Cfpora4kNTXxu0AwEowzGmoCxqrpKbO1QDi1hZ1qHrtZ1ienAKfiTXaGH4AMQzyut0AaymxalrRbXibJYuefLRvXqx0oLZKVLAX8fR1gnac6Mrr7GkdHaKCsk4eOi98acR7bjiyRRVYYS4B6Y0tCeRJNe6zeYVmLdtatuOlOEVDT6AKrJJMFMyITVS+2D771ge6m37FbJ36K3/eT/HRq1YDsxfD/BY+X7eMIwQrVnD5nK7avXfbIni57n5oWLkE9Vco8uBlMdrx4xHt9vpe42Pz2Yh2O4WtvxcgxrAknvPpV1ZsAJCfvm9TTcg8qZpjyePn3B9TvFVSXMJHn/rzu6OJAgFgVFAe1tPGLh1XBxAvwpB8EqcycIIUUFUBy4HgYCicjI2jp6s8Kk293Uc/TA2623LrWgP/Xm5hVB7lP1k6W9LDivOlAA96D0Cbk08Yv6arkCYj7ONFO8VZbO0zKAAOLHMw/ZQRIutGLrDlqgTDeRXRuReX7TNjDBxp2rzJBY0uU5g9BMFxQrbQwEx9HsnO4dVFG4KLbHmYWhlwS2V2uZtY6D6elOXY3SX50RwhC4+0trUMi/ODtOxAc+lMQk2FNDcNeKIX5wHwFRS+sFBu5Um4Jfj6Ua4w1izmu2KiPfDd3vJsm5Dgcci3fPfdSfpIq4uR6d3JQxgdcwEwYJKoZIhvcNAQkVMQYEBAEAAAAwWwYJKoZIhvcNAQkUMU4eTAB7ADcAMQAxADAANABBADgARgAtADQAQgBFADAALQA0AEEAMgA4AC0AOAAyADIANQAtAEYANwBBADcAMwBGAEMAQQAwAEMARABEAH0wYwYJKwYBBAGCNxEBMVYeVABNAGkAYwByAG8AcwBvAGYAdAAgAEIAYQBzAGUAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByACAAdgAxAC4AMDCCAs8GCSqGSIb3DQEHBqCCAsAwggK8AgEAMIICtQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQMwDgQISS7mG/riQJkCAgfQgIICiPSGg5axP4JM+GmiVEqOHTVAPw2AM8OPnn1q0mIw54oC2WOJw3FFThYHmxTQzQ1feVmnkVCv++eFp+BYTcWTa+ehl/3/Nvr5uLTzDxmCShacKwoWXOKtSLh6mmgydvMqSf6xv1bPsloodtrRxhprI2lBNBW2uw8az9eLdvURYmhjGPf9klEy/6OCA5jDT5XZMunwiQT5mYNMF7wAQ5PCz2dJQqm1n72A6nUHPkHEusN7iH/+mv5d3iaKxn7/ShxLKHfjMd+r/gv27ylshVHiN4mVStAg+MiLrVvr5VH46p6oosImvS3ZO4D5wTmh/6wtus803qN4QB/Y9n4rqEJ4Dn619h+6O7FChzWkx7kvYIzIxvfnj1PCFTEjUwc7jbuF013W/z9zQi2YEq9AzxMcGro0zjdt2sf30zXSfaRNt0UHHRDkLo7yFUJG5Ka1uWU8paLuXUUiiMUf24Bsfdg2A2n+3Qa7g25OvAM1QTpMwmMWL9sY2hxVUGIKVrnj8c4EKuGJjVDXrze5g9O/LfZr5VSjGu5KsN0eYI3mcePF7XM0azMtTNQYVRmeWxYW+XvK5MaoLEkrFG8C5+JccIlN588jowVIPqP321S/EyFiAmrRdAWkqrc9KH+/eINCFqjut2YPkCaTM9mnJAAqWgggUWkrOKT/ByS6IAQwyEBNFbY0TWyxKt6vZL1EW/6HgZCsxeYycNhnPr2qJNZZMNzmdMRp2GRLcfBH8KFw1rAyua0VJoTLHb23ZAsEY74BrEEiK9e/oOjXkHzQjlmrfQ9rSN2eQpRrn0W8I229WmBO2suG+AQ3aY8kDtBMkjmJno7txUh1K5D6tJTO7MQp343A2AhyJkhYA7NPnDA7MB8wBwYFKw4DAhoEFPO82HDlCzlshWlnMoQPStm62TMEBBQsPmvwbZ5OlwC9+NDF1AC+t67WTgICB9A=\"),\n\t\t\t\t\t\tPfxPassword:           pulumi.String(\"password\"),\n\t\t\t\t\t\tRentalDurationSeconds: pulumi.Int(2249),\n\t\t\t\t\t\tRentalAndLeaseKeyType: pulumi.String(\"PersistentUnlimited\"),\n\t\t\t\t\t},\n\t\t\t\t\tOpenRestrictionEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026media.ContentKeyPolicyPolicyOptionArgs{\n\t\t\t\t\tName: pulumi.String(\"playReady\"),\n\t\t\t\t\tPlayreadyConfigurationLicenses: media.ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicenseArray{\n\t\t\t\t\t\t\u0026media.ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicenseArgs{\n\t\t\t\t\t\t\tAllowTestDevices: pulumi.Bool(true),\n\t\t\t\t\t\t\tBeginDate:        pulumi.String(\"2017-10-16T18:22:53Z\"),\n\t\t\t\t\t\t\tPlayRight: \u0026media.ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicensePlayRightArgs{\n\t\t\t\t\t\t\t\tScmsRestriction:                                    pulumi.Int(2),\n\t\t\t\t\t\t\t\tDigitalVideoOnlyContentRestriction:                 pulumi.Bool(false),\n\t\t\t\t\t\t\t\tImageConstraintForAnalogComponentVideoRestriction:  pulumi.Bool(false),\n\t\t\t\t\t\t\t\tImageConstraintForAnalogComputerMonitorRestriction: pulumi.Bool(false),\n\t\t\t\t\t\t\t\tAllowPassingVideoContentToUnknownOutput:            pulumi.String(\"NotAllowed\"),\n\t\t\t\t\t\t\t\tUncompressedDigitalVideoOpl:                        pulumi.Int(100),\n\t\t\t\t\t\t\t\tUncompressedDigitalAudioOpl:                        pulumi.Int(100),\n\t\t\t\t\t\t\t\tAnalogVideoOpl:                                     pulumi.Int(150),\n\t\t\t\t\t\t\t\tCompressedDigitalAudioOpl:                          pulumi.Int(150),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tLicenseType:                         pulumi.String(\"Persistent\"),\n\t\t\t\t\t\t\tContentType:                         pulumi.String(\"UltraVioletDownload\"),\n\t\t\t\t\t\t\tContentKeyLocationFromHeaderEnabled: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tOpenRestrictionEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026media.ContentKeyPolicyPolicyOptionArgs{\n\t\t\t\t\tName:                         pulumi.String(\"clearKey\"),\n\t\t\t\t\tClearKeyConfigurationEnabled: pulumi.Bool(true),\n\t\t\t\t\tTokenRestriction: \u0026media.ContentKeyPolicyPolicyOptionTokenRestrictionArgs{\n\t\t\t\t\t\tIssuer:                   pulumi.String(\"urn:issuer\"),\n\t\t\t\t\t\tAudience:                 pulumi.String(\"urn:audience\"),\n\t\t\t\t\t\tTokenType:                pulumi.String(\"Swt\"),\n\t\t\t\t\t\tPrimarySymmetricTokenKey: pulumi.String(\"AAAAAAAAAAAAAAAAAAAAAA==\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026media.ContentKeyPolicyPolicyOptionArgs{\n\t\t\t\t\tName:                          pulumi.String(\"widevine\"),\n\t\t\t\t\tWidevineConfigurationTemplate: pulumi.String(json0),\n\t\t\t\t\tOpenRestrictionEnabled:        pulumi.Bool(true),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nResource Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:media/contentKeyPolicy:ContentKeyPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Media/mediaservices/account1/contentkeypolicies/policy1\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "A description for the Policy.\n",
          "type": "string"
        },
        "mediaServicesAccountName": {
          "description": "The Media Services account name. Changing this forces a new Content Key Policy to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Content Key Policy. Changing this forces a new Content Key Policy to be created.\n",
          "type": "string"
        },
        "policyOptions": {
          "description": "One or more `policy_option` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:media/ContentKeyPolicyPolicyOption:ContentKeyPolicyPolicyOption"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Content Key Policy should exist. Changing this forces a new Content Key Policy to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "description": {
          "description": "A description for the Policy.\n",
          "type": "string"
        },
        "mediaServicesAccountName": {
          "description": "The Media Services account name. Changing this forces a new Content Key Policy to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Content Key Policy. Changing this forces a new Content Key Policy to be created.\n",
          "type": "string"
        },
        "policyOptions": {
          "description": "One or more `policy_option` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:media/ContentKeyPolicyPolicyOption:ContentKeyPolicyPolicyOption"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Content Key Policy should exist. Changing this forces a new Content Key Policy to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "mediaServicesAccountName",
        "name",
        "policyOptions",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "mediaServicesAccountName",
        "policyOptions",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ContentKeyPolicy resources.\n",
        "properties": {
          "description": {
            "description": "A description for the Policy.\n",
            "type": "string"
          },
          "mediaServicesAccountName": {
            "description": "The Media Services account name. Changing this forces a new Content Key Policy to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Content Key Policy. Changing this forces a new Content Key Policy to be created.\n",
            "type": "string"
          },
          "policyOptions": {
            "description": "One or more `policy_option` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:media/ContentKeyPolicyPolicyOption:ContentKeyPolicyPolicyOption"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Content Key Policy should exist. Changing this forces a new Content Key Policy to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:media/job:Job": {
      "description": "Manages a Media Job.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleServiceAccount = new azure.media.ServiceAccount(\"exampleServiceAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccounts: [{\n        id: exampleAccount.id,\n        isPrimary: true,\n    }],\n});\nconst exampleTransform = new azure.media.Transform(\"exampleTransform\", {\n    resourceGroupName: exampleResourceGroup.name,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    description: \"My transform description\",\n    outputs: [{\n        relativePriority: \"Normal\",\n        onErrorAction: \"ContinueJob\",\n        builtinPreset: {\n            presetName: \"AACGoodQualityAudio\",\n        },\n    }],\n});\nconst input = new azure.media.Asset(\"input\", {\n    resourceGroupName: exampleResourceGroup.name,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    description: \"Input Asset description\",\n});\nconst output = new azure.media.Asset(\"output\", {\n    resourceGroupName: exampleResourceGroup.name,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    description: \"Output Asset description\",\n});\nconst exampleJob = new azure.media.Job(\"exampleJob\", {\n    resourceGroupName: exampleResourceGroup.name,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    transformName: exampleTransform.name,\n    description: \"My Job description\",\n    priority: \"Normal\",\n    inputAsset: {\n        name: input.name,\n    },\n    outputAssets: [{\n        name: output.name,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_service_account = azure.media.ServiceAccount(\"exampleServiceAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_accounts=[azure.media.ServiceAccountStorageAccountArgs(\n        id=example_account.id,\n        is_primary=True,\n    )])\nexample_transform = azure.media.Transform(\"exampleTransform\",\n    resource_group_name=example_resource_group.name,\n    media_services_account_name=example_service_account.name,\n    description=\"My transform description\",\n    outputs=[azure.media.TransformOutputArgs(\n        relative_priority=\"Normal\",\n        on_error_action=\"ContinueJob\",\n        builtin_preset=azure.media.TransformOutputBuiltinPresetArgs(\n            preset_name=\"AACGoodQualityAudio\",\n        ),\n    )])\ninput = azure.media.Asset(\"input\",\n    resource_group_name=example_resource_group.name,\n    media_services_account_name=example_service_account.name,\n    description=\"Input Asset description\")\noutput = azure.media.Asset(\"output\",\n    resource_group_name=example_resource_group.name,\n    media_services_account_name=example_service_account.name,\n    description=\"Output Asset description\")\nexample_job = azure.media.Job(\"exampleJob\",\n    resource_group_name=example_resource_group.name,\n    media_services_account_name=example_service_account.name,\n    transform_name=example_transform.name,\n    description=\"My Job description\",\n    priority=\"Normal\",\n    input_asset=azure.media.JobInputAssetArgs(\n        name=input.name,\n    ),\n    output_assets=[azure.media.JobOutputAssetArgs(\n        name=output.name,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleServiceAccount = new Azure.Media.ServiceAccount(\"exampleServiceAccount\", new Azure.Media.ServiceAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccounts = \n            {\n                new Azure.Media.Inputs.ServiceAccountStorageAccountArgs\n                {\n                    Id = exampleAccount.Id,\n                    IsPrimary = true,\n                },\n            },\n        });\n        var exampleTransform = new Azure.Media.Transform(\"exampleTransform\", new Azure.Media.TransformArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            Description = \"My transform description\",\n            Outputs = \n            {\n                new Azure.Media.Inputs.TransformOutputArgs\n                {\n                    RelativePriority = \"Normal\",\n                    OnErrorAction = \"ContinueJob\",\n                    BuiltinPreset = new Azure.Media.Inputs.TransformOutputBuiltinPresetArgs\n                    {\n                        PresetName = \"AACGoodQualityAudio\",\n                    },\n                },\n            },\n        });\n        var input = new Azure.Media.Asset(\"input\", new Azure.Media.AssetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            Description = \"Input Asset description\",\n        });\n        var output = new Azure.Media.Asset(\"output\", new Azure.Media.AssetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            Description = \"Output Asset description\",\n        });\n        var exampleJob = new Azure.Media.Job(\"exampleJob\", new Azure.Media.JobArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            TransformName = exampleTransform.Name,\n            Description = \"My Job description\",\n            Priority = \"Normal\",\n            InputAsset = new Azure.Media.Inputs.JobInputAssetArgs\n            {\n                Name = input.Name,\n            },\n            OutputAssets = \n            {\n                new Azure.Media.Inputs.JobOutputAssetArgs\n                {\n                    Name = output.Name,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/media\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceAccount, err := media.NewServiceAccount(ctx, \"exampleServiceAccount\", \u0026media.ServiceAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccounts: media.ServiceAccountStorageAccountArray{\n\t\t\t\t\u0026media.ServiceAccountStorageAccountArgs{\n\t\t\t\t\tId:        exampleAccount.ID(),\n\t\t\t\t\tIsPrimary: pulumi.Bool(true),\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\texampleTransform, err := media.NewTransform(ctx, \"exampleTransform\", \u0026media.TransformArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tDescription:              pulumi.String(\"My transform description\"),\n\t\t\tOutputs: media.TransformOutputArray{\n\t\t\t\t\u0026media.TransformOutputArgs{\n\t\t\t\t\tRelativePriority: pulumi.String(\"Normal\"),\n\t\t\t\t\tOnErrorAction:    pulumi.String(\"ContinueJob\"),\n\t\t\t\t\tBuiltinPreset: \u0026media.TransformOutputBuiltinPresetArgs{\n\t\t\t\t\t\tPresetName: pulumi.String(\"AACGoodQualityAudio\"),\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\tinput, err := media.NewAsset(ctx, \"input\", \u0026media.AssetArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tDescription:              pulumi.String(\"Input Asset description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\toutput, err := media.NewAsset(ctx, \"output\", \u0026media.AssetArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tDescription:              pulumi.String(\"Output Asset description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = media.NewJob(ctx, \"exampleJob\", \u0026media.JobArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tTransformName:            exampleTransform.Name,\n\t\t\tDescription:              pulumi.String(\"My Job description\"),\n\t\t\tPriority:                 pulumi.String(\"Normal\"),\n\t\t\tInputAsset: \u0026media.JobInputAssetArgs{\n\t\t\t\tName: input.Name,\n\t\t\t},\n\t\t\tOutputAssets: media.JobOutputAssetArray{\n\t\t\t\t\u0026media.JobOutputAssetArgs{\n\t\t\t\t\tName: output.Name,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMedia Jobs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:media/job:Job example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.Media/mediaservices/account1/transforms/transform1/jobs/job1\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "Optional customer supplied description of the Job.\n",
          "type": "string"
        },
        "inputAsset": {
          "$ref": "#/types/azure:media/JobInputAsset:JobInputAsset",
          "description": "A `input_asset` block as defined below. Changing this forces a new Media Job to be created.\n"
        },
        "mediaServicesAccountName": {
          "description": "The Media Services account name. Changing this forces a new Transform to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Media Job. Changing this forces a new Media Job to be created.\n",
          "type": "string"
        },
        "outputAssets": {
          "description": "One or more `output_asset` blocks as defined below. Changing this forces a new Media Job to be created.\n",
          "items": {
            "$ref": "#/types/azure:media/JobOutputAsset:JobOutputAsset"
          },
          "type": "array"
        },
        "priority": {
          "description": "Priority with which the job should be processed. Higher priority jobs are processed before lower priority jobs. If not set, the default is normal. Changing this forces a new Media Job to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Media Job should exist. Changing this forces a new Media Job to be created.\n",
          "type": "string"
        },
        "transformName": {
          "description": "The Transform name. Changing this forces a new Media Job to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "description": {
          "description": "Optional customer supplied description of the Job.\n",
          "type": "string"
        },
        "inputAsset": {
          "$ref": "#/types/azure:media/JobInputAsset:JobInputAsset",
          "description": "A `input_asset` block as defined below. Changing this forces a new Media Job to be created.\n"
        },
        "mediaServicesAccountName": {
          "description": "The Media Services account name. Changing this forces a new Transform to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Media Job. Changing this forces a new Media Job to be created.\n",
          "type": "string"
        },
        "outputAssets": {
          "description": "One or more `output_asset` blocks as defined below. Changing this forces a new Media Job to be created.\n",
          "items": {
            "$ref": "#/types/azure:media/JobOutputAsset:JobOutputAsset"
          },
          "type": "array"
        },
        "priority": {
          "description": "Priority with which the job should be processed. Higher priority jobs are processed before lower priority jobs. If not set, the default is normal. Changing this forces a new Media Job to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Media Job should exist. Changing this forces a new Media Job to be created.\n",
          "type": "string"
        },
        "transformName": {
          "description": "The Transform name. Changing this forces a new Media Job to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "inputAsset",
        "mediaServicesAccountName",
        "name",
        "outputAssets",
        "resourceGroupName",
        "transformName"
      ],
      "requiredInputs": [
        "inputAsset",
        "mediaServicesAccountName",
        "outputAssets",
        "resourceGroupName",
        "transformName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Job resources.\n",
        "properties": {
          "description": {
            "description": "Optional customer supplied description of the Job.\n",
            "type": "string"
          },
          "inputAsset": {
            "$ref": "#/types/azure:media/JobInputAsset:JobInputAsset",
            "description": "A `input_asset` block as defined below. Changing this forces a new Media Job to be created.\n"
          },
          "mediaServicesAccountName": {
            "description": "The Media Services account name. Changing this forces a new Transform to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Media Job. Changing this forces a new Media Job to be created.\n",
            "type": "string"
          },
          "outputAssets": {
            "description": "One or more `output_asset` blocks as defined below. Changing this forces a new Media Job to be created.\n",
            "items": {
              "$ref": "#/types/azure:media/JobOutputAsset:JobOutputAsset"
            },
            "type": "array"
          },
          "priority": {
            "description": "Priority with which the job should be processed. Higher priority jobs are processed before lower priority jobs. If not set, the default is normal. Changing this forces a new Media Job to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Media Job should exist. Changing this forces a new Media Job to be created.\n",
            "type": "string"
          },
          "transformName": {
            "description": "The Transform name. Changing this forces a new Media Job to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:media/liveEvent:LiveEvent": {
      "description": "Manages a Live Event.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleServiceAccount = new azure.media.ServiceAccount(\"exampleServiceAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccounts: [{\n        id: exampleAccount.id,\n        isPrimary: true,\n    }],\n});\nconst exampleLiveEvent = new azure.media.LiveEvent(\"exampleLiveEvent\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    description: \"My Event Description\",\n    input: {\n        streamingProtocol: \"RTMP\",\n        ipAccessControlAllows: [{\n            name: \"AllowAll\",\n            address: \"0.0.0.0\",\n            subnetPrefixLength: 0,\n        }],\n    },\n    encoding: {\n        type: \"Standard\",\n        presetName: \"Default720p\",\n        stretchMode: \"AutoFit\",\n        keyFrameInterval: \"PT2S\",\n    },\n    preview: {\n        ipAccessControlAllows: [{\n            name: \"AllowAll\",\n            address: \"0.0.0.0\",\n            subnetPrefixLength: 0,\n        }],\n    },\n    useStaticHostname: true,\n    hostnamePrefix: \"special-event\",\n    transcriptionLanguages: [\"en-US\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_service_account = azure.media.ServiceAccount(\"exampleServiceAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_accounts=[azure.media.ServiceAccountStorageAccountArgs(\n        id=example_account.id,\n        is_primary=True,\n    )])\nexample_live_event = azure.media.LiveEvent(\"exampleLiveEvent\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    media_services_account_name=example_service_account.name,\n    description=\"My Event Description\",\n    input=azure.media.LiveEventInputArgs(\n        streaming_protocol=\"RTMP\",\n        ip_access_control_allows=[azure.media.LiveEventInputIpAccessControlAllowArgs(\n            name=\"AllowAll\",\n            address=\"0.0.0.0\",\n            subnet_prefix_length=0,\n        )],\n    ),\n    encoding=azure.media.LiveEventEncodingArgs(\n        type=\"Standard\",\n        preset_name=\"Default720p\",\n        stretch_mode=\"AutoFit\",\n        key_frame_interval=\"PT2S\",\n    ),\n    preview=azure.media.LiveEventPreviewArgs(\n        ip_access_control_allows=[azure.media.LiveEventPreviewIpAccessControlAllowArgs(\n            name=\"AllowAll\",\n            address=\"0.0.0.0\",\n            subnet_prefix_length=0,\n        )],\n    ),\n    use_static_hostname=True,\n    hostname_prefix=\"special-event\",\n    transcription_languages=[\"en-US\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleServiceAccount = new Azure.Media.ServiceAccount(\"exampleServiceAccount\", new Azure.Media.ServiceAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccounts = \n            {\n                new Azure.Media.Inputs.ServiceAccountStorageAccountArgs\n                {\n                    Id = exampleAccount.Id,\n                    IsPrimary = true,\n                },\n            },\n        });\n        var exampleLiveEvent = new Azure.Media.LiveEvent(\"exampleLiveEvent\", new Azure.Media.LiveEventArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            Description = \"My Event Description\",\n            Input = new Azure.Media.Inputs.LiveEventInputArgs\n            {\n                StreamingProtocol = \"RTMP\",\n                IpAccessControlAllows = \n                {\n                    new Azure.Media.Inputs.LiveEventInputIpAccessControlAllowArgs\n                    {\n                        Name = \"AllowAll\",\n                        Address = \"0.0.0.0\",\n                        SubnetPrefixLength = 0,\n                    },\n                },\n            },\n            Encoding = new Azure.Media.Inputs.LiveEventEncodingArgs\n            {\n                Type = \"Standard\",\n                PresetName = \"Default720p\",\n                StretchMode = \"AutoFit\",\n                KeyFrameInterval = \"PT2S\",\n            },\n            Preview = new Azure.Media.Inputs.LiveEventPreviewArgs\n            {\n                IpAccessControlAllows = \n                {\n                    new Azure.Media.Inputs.LiveEventPreviewIpAccessControlAllowArgs\n                    {\n                        Name = \"AllowAll\",\n                        Address = \"0.0.0.0\",\n                        SubnetPrefixLength = 0,\n                    },\n                },\n            },\n            UseStaticHostname = true,\n            HostnamePrefix = \"special-event\",\n            TranscriptionLanguages = \n            {\n                \"en-US\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/media\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceAccount, err := media.NewServiceAccount(ctx, \"exampleServiceAccount\", \u0026media.ServiceAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccounts: media.ServiceAccountStorageAccountArray{\n\t\t\t\t\u0026media.ServiceAccountStorageAccountArgs{\n\t\t\t\t\tId:        exampleAccount.ID(),\n\t\t\t\t\tIsPrimary: pulumi.Bool(true),\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 = media.NewLiveEvent(ctx, \"exampleLiveEvent\", \u0026media.LiveEventArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tLocation:                 exampleResourceGroup.Location,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tDescription:              pulumi.String(\"My Event Description\"),\n\t\t\tInput: \u0026media.LiveEventInputArgs{\n\t\t\t\tStreamingProtocol: pulumi.String(\"RTMP\"),\n\t\t\t\tIpAccessControlAllows: media.LiveEventInputIpAccessControlAllowArray{\n\t\t\t\t\t\u0026media.LiveEventInputIpAccessControlAllowArgs{\n\t\t\t\t\t\tName:               pulumi.String(\"AllowAll\"),\n\t\t\t\t\t\tAddress:            pulumi.String(\"0.0.0.0\"),\n\t\t\t\t\t\tSubnetPrefixLength: pulumi.Int(0),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tEncoding: \u0026media.LiveEventEncodingArgs{\n\t\t\t\tType:             pulumi.String(\"Standard\"),\n\t\t\t\tPresetName:       pulumi.String(\"Default720p\"),\n\t\t\t\tStretchMode:      pulumi.String(\"AutoFit\"),\n\t\t\t\tKeyFrameInterval: pulumi.String(\"PT2S\"),\n\t\t\t},\n\t\t\tPreview: \u0026media.LiveEventPreviewArgs{\n\t\t\t\tIpAccessControlAllows: media.LiveEventPreviewIpAccessControlAllowArray{\n\t\t\t\t\t\u0026media.LiveEventPreviewIpAccessControlAllowArgs{\n\t\t\t\t\t\tName:               pulumi.String(\"AllowAll\"),\n\t\t\t\t\t\tAddress:            pulumi.String(\"0.0.0.0\"),\n\t\t\t\t\t\tSubnetPrefixLength: pulumi.Int(0),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tUseStaticHostname: pulumi.Bool(true),\n\t\t\tHostnamePrefix:    pulumi.String(\"special-event\"),\n\t\t\tTranscriptionLanguages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"en-US\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLive Events can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:media/liveEvent:LiveEvent example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.Media/mediaservices/account1/liveevents/event1\n```\n\n ",
      "inputProperties": {
        "autoStartEnabled": {
          "description": "The flag indicates if the resource should be automatically started on creation. Default is `false`.\n",
          "type": "boolean"
        },
        "crossSiteAccessPolicy": {
          "$ref": "#/types/azure:media/LiveEventCrossSiteAccessPolicy:LiveEventCrossSiteAccessPolicy",
          "description": "A `cross_site_access_policy` block as defined below.\n"
        },
        "description": {
          "description": "A description for the live event.\n",
          "type": "string"
        },
        "encoding": {
          "$ref": "#/types/azure:media/LiveEventEncoding:LiveEventEncoding",
          "description": "A `encoding` block as defined below.\n"
        },
        "hostnamePrefix": {
          "description": "When `use_static_hostname` is set to true, the `hostname_prefix` specifies the first part of the hostname assigned to the live event preview and ingest endpoints. The final hostname would be a combination of this prefix, the media service account name and a short code for the Azure Media Services data center.\n",
          "type": "string"
        },
        "input": {
          "$ref": "#/types/azure:media/LiveEventInput:LiveEventInput",
          "description": "A `input` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Live Event should exist. Changing this forces a new Live Event to be created.\n",
          "type": "string"
        },
        "mediaServicesAccountName": {
          "description": "The Media Services account name. Changing this forces a new Live Event to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Live Event. Changing this forces a new Live Event to be created.\n",
          "type": "string"
        },
        "preview": {
          "$ref": "#/types/azure:media/LiveEventPreview:LiveEventPreview",
          "description": "A `preview` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Live Event should exist. Changing this forces a new Live Event to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Live Event.\n",
          "type": "object"
        },
        "transcriptionLanguages": {
          "description": "Specifies a list of languages (locale) to be used for speech-to-text transcription – it should match the spoken language in the audio track. The value should be in `BCP-47` format (e.g: `en-US`). [See the Microsoft Documentation for more information about the live transcription feature and the list of supported languages](https://go.microsoft.com/fwlink/?linkid=2133742 ).\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "useStaticHostname": {
          "description": "Specifies whether a static hostname would be assigned to the live event preview and ingest endpoints. Changing this forces a new Live Event to be created.\n---\n",
          "type": "boolean"
        }
      },
      "properties": {
        "autoStartEnabled": {
          "description": "The flag indicates if the resource should be automatically started on creation. Default is `false`.\n",
          "type": "boolean"
        },
        "crossSiteAccessPolicy": {
          "$ref": "#/types/azure:media/LiveEventCrossSiteAccessPolicy:LiveEventCrossSiteAccessPolicy",
          "description": "A `cross_site_access_policy` block as defined below.\n"
        },
        "description": {
          "description": "A description for the live event.\n",
          "type": "string"
        },
        "encoding": {
          "$ref": "#/types/azure:media/LiveEventEncoding:LiveEventEncoding",
          "description": "A `encoding` block as defined below.\n"
        },
        "hostnamePrefix": {
          "description": "When `use_static_hostname` is set to true, the `hostname_prefix` specifies the first part of the hostname assigned to the live event preview and ingest endpoints. The final hostname would be a combination of this prefix, the media service account name and a short code for the Azure Media Services data center.\n",
          "type": "string"
        },
        "input": {
          "$ref": "#/types/azure:media/LiveEventInput:LiveEventInput",
          "description": "A `input` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Live Event should exist. Changing this forces a new Live Event to be created.\n",
          "type": "string"
        },
        "mediaServicesAccountName": {
          "description": "The Media Services account name. Changing this forces a new Live Event to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Live Event. Changing this forces a new Live Event to be created.\n",
          "type": "string"
        },
        "preview": {
          "$ref": "#/types/azure:media/LiveEventPreview:LiveEventPreview",
          "description": "A `preview` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Live Event should exist. Changing this forces a new Live Event to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Live Event.\n",
          "type": "object"
        },
        "transcriptionLanguages": {
          "description": "Specifies a list of languages (locale) to be used for speech-to-text transcription – it should match the spoken language in the audio track. The value should be in `BCP-47` format (e.g: `en-US`). [See the Microsoft Documentation for more information about the live transcription feature and the list of supported languages](https://go.microsoft.com/fwlink/?linkid=2133742 ).\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "useStaticHostname": {
          "description": "Specifies whether a static hostname would be assigned to the live event preview and ingest endpoints. Changing this forces a new Live Event to be created.\n---\n",
          "type": "boolean"
        }
      },
      "required": [
        "input",
        "location",
        "mediaServicesAccountName",
        "name",
        "preview",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "input",
        "mediaServicesAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LiveEvent resources.\n",
        "properties": {
          "autoStartEnabled": {
            "description": "The flag indicates if the resource should be automatically started on creation. Default is `false`.\n",
            "type": "boolean"
          },
          "crossSiteAccessPolicy": {
            "$ref": "#/types/azure:media/LiveEventCrossSiteAccessPolicy:LiveEventCrossSiteAccessPolicy",
            "description": "A `cross_site_access_policy` block as defined below.\n"
          },
          "description": {
            "description": "A description for the live event.\n",
            "type": "string"
          },
          "encoding": {
            "$ref": "#/types/azure:media/LiveEventEncoding:LiveEventEncoding",
            "description": "A `encoding` block as defined below.\n"
          },
          "hostnamePrefix": {
            "description": "When `use_static_hostname` is set to true, the `hostname_prefix` specifies the first part of the hostname assigned to the live event preview and ingest endpoints. The final hostname would be a combination of this prefix, the media service account name and a short code for the Azure Media Services data center.\n",
            "type": "string"
          },
          "input": {
            "$ref": "#/types/azure:media/LiveEventInput:LiveEventInput",
            "description": "A `input` block as defined below.\n"
          },
          "location": {
            "description": "The Azure Region where the Live Event should exist. Changing this forces a new Live Event to be created.\n",
            "type": "string"
          },
          "mediaServicesAccountName": {
            "description": "The Media Services account name. Changing this forces a new Live Event to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Live Event. Changing this forces a new Live Event to be created.\n",
            "type": "string"
          },
          "preview": {
            "$ref": "#/types/azure:media/LiveEventPreview:LiveEventPreview",
            "description": "A `preview` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Live Event should exist. Changing this forces a new Live Event to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Live Event.\n",
            "type": "object"
          },
          "transcriptionLanguages": {
            "description": "Specifies a list of languages (locale) to be used for speech-to-text transcription – it should match the spoken language in the audio track. The value should be in `BCP-47` format (e.g: `en-US`). [See the Microsoft Documentation for more information about the live transcription feature and the list of supported languages](https://go.microsoft.com/fwlink/?linkid=2133742 ).\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "useStaticHostname": {
            "description": "Specifies whether a static hostname would be assigned to the live event preview and ingest endpoints. Changing this forces a new Live Event to be created.\n---\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:media/liveEventOutput:LiveEventOutput": {
      "inputProperties": {
        "archiveWindowDuration": {
          "type": "string"
        },
        "assetName": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "hlsFragmentsPerTsSegment": {
          "type": "integer"
        },
        "liveEventId": {
          "type": "string"
        },
        "manifestName": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "outputSnapTimeInSeconds": {
          "type": "integer"
        }
      },
      "properties": {
        "archiveWindowDuration": {
          "type": "string"
        },
        "assetName": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "hlsFragmentsPerTsSegment": {
          "type": "integer"
        },
        "liveEventId": {
          "type": "string"
        },
        "manifestName": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "outputSnapTimeInSeconds": {
          "type": "integer"
        }
      },
      "required": [
        "archiveWindowDuration",
        "assetName",
        "liveEventId",
        "manifestName",
        "name"
      ],
      "requiredInputs": [
        "archiveWindowDuration",
        "assetName",
        "liveEventId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LiveEventOutput resources.\n",
        "properties": {
          "archiveWindowDuration": {
            "type": "string"
          },
          "assetName": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "hlsFragmentsPerTsSegment": {
            "type": "integer"
          },
          "liveEventId": {
            "type": "string"
          },
          "manifestName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "outputSnapTimeInSeconds": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:media/serviceAccount:ServiceAccount": {
      "aliases": [
        {
          "type": "azure:mediaservices/account:Account"
        }
      ],
      "description": "Manages a Media Services Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleServiceAccount = new azure.media.ServiceAccount(\"exampleServiceAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccounts: [{\n        id: exampleAccount.id,\n        isPrimary: true,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_service_account = azure.media.ServiceAccount(\"exampleServiceAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_accounts=[azure.media.ServiceAccountStorageAccountArgs(\n        id=example_account.id,\n        is_primary=True,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleServiceAccount = new Azure.Media.ServiceAccount(\"exampleServiceAccount\", new Azure.Media.ServiceAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccounts = \n            {\n                new Azure.Media.Inputs.ServiceAccountStorageAccountArgs\n                {\n                    Id = exampleAccount.Id,\n                    IsPrimary = true,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/media\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = media.NewServiceAccount(ctx, \"exampleServiceAccount\", \u0026media.ServiceAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccounts: media.ServiceAccountStorageAccountArray{\n\t\t\t\t\u0026media.ServiceAccountStorageAccountArgs{\n\t\t\t\t\tId:        exampleAccount.ID(),\n\t\t\t\t\tIsPrimary: pulumi.Bool(true),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMedia Services Accounts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:media/serviceAccount:ServiceAccount account /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Media/mediaservices/account1\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:media/ServiceAccountIdentity:ServiceAccountIdentity",
          "description": "An `identity` block is documented below.\n"
        },
        "keyDeliveryAccessControl": {
          "$ref": "#/types/azure:media/ServiceAccountKeyDeliveryAccessControl:ServiceAccountKeyDeliveryAccessControl",
          "description": "An `key_delivery_access_control` block is documented below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Media Services Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Media Services Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:media/ServiceAccountStorageAccount:ServiceAccountStorageAccount"
          },
          "type": "array"
        },
        "storageAuthenticationType": {
          "description": "Specifies the storage authentication type. \nPossible value is  `ManagedIdentity` or `System`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "identity": {
          "$ref": "#/types/azure:media/ServiceAccountIdentity:ServiceAccountIdentity",
          "description": "An `identity` block is documented below.\n"
        },
        "keyDeliveryAccessControl": {
          "$ref": "#/types/azure:media/ServiceAccountKeyDeliveryAccessControl:ServiceAccountKeyDeliveryAccessControl",
          "description": "An `key_delivery_access_control` block is documented below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Media Services Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Media Services Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:media/ServiceAccountStorageAccount:ServiceAccountStorageAccount"
          },
          "type": "array"
        },
        "storageAuthenticationType": {
          "description": "Specifies the storage authentication type. \nPossible value is  `ManagedIdentity` or `System`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "identity",
        "keyDeliveryAccessControl",
        "location",
        "name",
        "resourceGroupName",
        "storageAccounts",
        "storageAuthenticationType"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "storageAccounts"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ServiceAccount resources.\n",
        "properties": {
          "identity": {
            "$ref": "#/types/azure:media/ServiceAccountIdentity:ServiceAccountIdentity",
            "description": "An `identity` block is documented below.\n"
          },
          "keyDeliveryAccessControl": {
            "$ref": "#/types/azure:media/ServiceAccountKeyDeliveryAccessControl:ServiceAccountKeyDeliveryAccessControl",
            "description": "An `key_delivery_access_control` block is documented below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Media Services Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Media Services Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageAccounts": {
            "description": "One or more `storage_account` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:media/ServiceAccountStorageAccount:ServiceAccountStorageAccount"
            },
            "type": "array"
          },
          "storageAuthenticationType": {
            "description": "Specifies the storage authentication type. \nPossible value is  `ManagedIdentity` or `System`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:media/streamingEndpoint:StreamingEndpoint": {
      "description": "Manages a Streaming Endpoint.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleServiceAccount = new azure.media.ServiceAccount(\"exampleServiceAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccounts: [{\n        id: exampleAccount.id,\n        isPrimary: true,\n    }],\n});\nconst exampleStreamingEndpoint = new azure.media.StreamingEndpoint(\"exampleStreamingEndpoint\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    scaleUnits: 2,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_service_account = azure.media.ServiceAccount(\"exampleServiceAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_accounts=[azure.media.ServiceAccountStorageAccountArgs(\n        id=example_account.id,\n        is_primary=True,\n    )])\nexample_streaming_endpoint = azure.media.StreamingEndpoint(\"exampleStreamingEndpoint\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    media_services_account_name=example_service_account.name,\n    scale_units=2)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleServiceAccount = new Azure.Media.ServiceAccount(\"exampleServiceAccount\", new Azure.Media.ServiceAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccounts = \n            {\n                new Azure.Media.Inputs.ServiceAccountStorageAccountArgs\n                {\n                    Id = exampleAccount.Id,\n                    IsPrimary = true,\n                },\n            },\n        });\n        var exampleStreamingEndpoint = new Azure.Media.StreamingEndpoint(\"exampleStreamingEndpoint\", new Azure.Media.StreamingEndpointArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            ScaleUnits = 2,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/media\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceAccount, err := media.NewServiceAccount(ctx, \"exampleServiceAccount\", \u0026media.ServiceAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccounts: media.ServiceAccountStorageAccountArray{\n\t\t\t\t\u0026media.ServiceAccountStorageAccountArgs{\n\t\t\t\t\tId:        exampleAccount.ID(),\n\t\t\t\t\tIsPrimary: pulumi.Bool(true),\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 = media.NewStreamingEndpoint(ctx, \"exampleStreamingEndpoint\", \u0026media.StreamingEndpointArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tLocation:                 exampleResourceGroup.Location,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tScaleUnits:               pulumi.Int(2),\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\n{{% /example %}}\n{{% example %}}\n### With Access Control\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleServiceAccount = new azure.media.ServiceAccount(\"exampleServiceAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccounts: [{\n        id: exampleAccount.id,\n        isPrimary: true,\n    }],\n});\nconst exampleStreamingEndpoint = new azure.media.StreamingEndpoint(\"exampleStreamingEndpoint\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    scaleUnits: 2,\n    accessControl: {\n        ipAllows: [\n            {\n                name: \"AllowedIP\",\n                address: \"192.168.1.1\",\n            },\n            {\n                name: \"AnotherIp\",\n                address: \"192.168.1.2\",\n            },\n        ],\n        akamaiSignatureHeaderAuthenticationKeys: [\n            {\n                identifier: \"id1\",\n                expiration: \"2030-12-31T16:00:00Z\",\n                base64Key: \"dGVzdGlkMQ==\",\n            },\n            {\n                identifier: \"id2\",\n                expiration: \"2032-01-28T16:00:00Z\",\n                base64Key: \"dGVzdGlkMQ==\",\n            },\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_service_account = azure.media.ServiceAccount(\"exampleServiceAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_accounts=[azure.media.ServiceAccountStorageAccountArgs(\n        id=example_account.id,\n        is_primary=True,\n    )])\nexample_streaming_endpoint = azure.media.StreamingEndpoint(\"exampleStreamingEndpoint\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    media_services_account_name=example_service_account.name,\n    scale_units=2,\n    access_control=azure.media.StreamingEndpointAccessControlArgs(\n        ip_allows=[\n            azure.media.StreamingEndpointAccessControlIpAllowArgs(\n                name=\"AllowedIP\",\n                address=\"192.168.1.1\",\n            ),\n            azure.media.StreamingEndpointAccessControlIpAllowArgs(\n                name=\"AnotherIp\",\n                address=\"192.168.1.2\",\n            ),\n        ],\n        akamai_signature_header_authentication_keys=[\n            azure.media.StreamingEndpointAccessControlAkamaiSignatureHeaderAuthenticationKeyArgs(\n                identifier=\"id1\",\n                expiration=\"2030-12-31T16:00:00Z\",\n                base64_key=\"dGVzdGlkMQ==\",\n            ),\n            azure.media.StreamingEndpointAccessControlAkamaiSignatureHeaderAuthenticationKeyArgs(\n                identifier=\"id2\",\n                expiration=\"2032-01-28T16:00:00Z\",\n                base64_key=\"dGVzdGlkMQ==\",\n            ),\n        ],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleServiceAccount = new Azure.Media.ServiceAccount(\"exampleServiceAccount\", new Azure.Media.ServiceAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccounts = \n            {\n                new Azure.Media.Inputs.ServiceAccountStorageAccountArgs\n                {\n                    Id = exampleAccount.Id,\n                    IsPrimary = true,\n                },\n            },\n        });\n        var exampleStreamingEndpoint = new Azure.Media.StreamingEndpoint(\"exampleStreamingEndpoint\", new Azure.Media.StreamingEndpointArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            ScaleUnits = 2,\n            AccessControl = new Azure.Media.Inputs.StreamingEndpointAccessControlArgs\n            {\n                IpAllows = \n                {\n                    new Azure.Media.Inputs.StreamingEndpointAccessControlIpAllowArgs\n                    {\n                        Name = \"AllowedIP\",\n                        Address = \"192.168.1.1\",\n                    },\n                    new Azure.Media.Inputs.StreamingEndpointAccessControlIpAllowArgs\n                    {\n                        Name = \"AnotherIp\",\n                        Address = \"192.168.1.2\",\n                    },\n                },\n                AkamaiSignatureHeaderAuthenticationKeys = \n                {\n                    new Azure.Media.Inputs.StreamingEndpointAccessControlAkamaiSignatureHeaderAuthenticationKeyArgs\n                    {\n                        Identifier = \"id1\",\n                        Expiration = \"2030-12-31T16:00:00Z\",\n                        Base64Key = \"dGVzdGlkMQ==\",\n                    },\n                    new Azure.Media.Inputs.StreamingEndpointAccessControlAkamaiSignatureHeaderAuthenticationKeyArgs\n                    {\n                        Identifier = \"id2\",\n                        Expiration = \"2032-01-28T16:00:00Z\",\n                        Base64Key = \"dGVzdGlkMQ==\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/media\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceAccount, err := media.NewServiceAccount(ctx, \"exampleServiceAccount\", \u0026media.ServiceAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccounts: media.ServiceAccountStorageAccountArray{\n\t\t\t\t\u0026media.ServiceAccountStorageAccountArgs{\n\t\t\t\t\tId:        exampleAccount.ID(),\n\t\t\t\t\tIsPrimary: pulumi.Bool(true),\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 = media.NewStreamingEndpoint(ctx, \"exampleStreamingEndpoint\", \u0026media.StreamingEndpointArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tLocation:                 exampleResourceGroup.Location,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tScaleUnits:               pulumi.Int(2),\n\t\t\tAccessControl: \u0026media.StreamingEndpointAccessControlArgs{\n\t\t\t\tIpAllows: media.StreamingEndpointAccessControlIpAllowArray{\n\t\t\t\t\t\u0026media.StreamingEndpointAccessControlIpAllowArgs{\n\t\t\t\t\t\tName:    pulumi.String(\"AllowedIP\"),\n\t\t\t\t\t\tAddress: pulumi.String(\"192.168.1.1\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026media.StreamingEndpointAccessControlIpAllowArgs{\n\t\t\t\t\t\tName:    pulumi.String(\"AnotherIp\"),\n\t\t\t\t\t\tAddress: pulumi.String(\"192.168.1.2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tAkamaiSignatureHeaderAuthenticationKeys: media.StreamingEndpointAccessControlAkamaiSignatureHeaderAuthenticationKeyArray{\n\t\t\t\t\t\u0026media.StreamingEndpointAccessControlAkamaiSignatureHeaderAuthenticationKeyArgs{\n\t\t\t\t\t\tIdentifier: pulumi.String(\"id1\"),\n\t\t\t\t\t\tExpiration: pulumi.String(\"2030-12-31T16:00:00Z\"),\n\t\t\t\t\t\tBase64Key:  pulumi.String(\"dGVzdGlkMQ==\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026media.StreamingEndpointAccessControlAkamaiSignatureHeaderAuthenticationKeyArgs{\n\t\t\t\t\t\tIdentifier: pulumi.String(\"id2\"),\n\t\t\t\t\t\tExpiration: pulumi.String(\"2032-01-28T16:00:00Z\"),\n\t\t\t\t\t\tBase64Key:  pulumi.String(\"dGVzdGlkMQ==\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStreaming Endpoints can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:media/streamingEndpoint:StreamingEndpoint example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/mediaservices/service1/streamingendpoints/endpoint1\n```\n\n ",
      "inputProperties": {
        "accessControl": {
          "$ref": "#/types/azure:media/StreamingEndpointAccessControl:StreamingEndpointAccessControl",
          "description": "A `access_control` block as defined below.\n"
        },
        "autoStartEnabled": {
          "description": "The flag indicates if the resource should be automatically started on creation.\n",
          "type": "boolean"
        },
        "cdnEnabled": {
          "description": "The CDN enabled flag.\n",
          "type": "boolean"
        },
        "cdnProfile": {
          "description": "The CDN profile name.\n",
          "type": "string"
        },
        "cdnProvider": {
          "description": "The CDN provider name. Supported value are `StandardVerizon`,`PremiumVerizon` and `StandardAkamai`\n",
          "type": "string"
        },
        "crossSiteAccessPolicy": {
          "$ref": "#/types/azure:media/StreamingEndpointCrossSiteAccessPolicy:StreamingEndpointCrossSiteAccessPolicy",
          "description": "A `cross_site_access_policy` block as defined below.\n"
        },
        "customHostNames": {
          "description": "The custom host names of the streaming endpoint.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "The streaming endpoint description.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Streaming Endpoint should exist. Changing this forces a new Streaming Endpoint to be created.\n",
          "type": "string"
        },
        "maxCacheAgeSeconds": {
          "description": "Max cache age in seconds.\n",
          "type": "integer"
        },
        "mediaServicesAccountName": {
          "description": "The Media Services account name. Changing this forces a new Streaming Endpoint to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Streaming Endpoint maximum length is 24. Changing this forces a new Streaming Endpoint to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Streaming Endpoint should exist. Changing this forces a new Streaming Endpoint to be created.\n",
          "type": "string"
        },
        "scaleUnits": {
          "description": "The number of scale units.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Streaming Endpoint.\n",
          "type": "object"
        }
      },
      "properties": {
        "accessControl": {
          "$ref": "#/types/azure:media/StreamingEndpointAccessControl:StreamingEndpointAccessControl",
          "description": "A `access_control` block as defined below.\n"
        },
        "autoStartEnabled": {
          "description": "The flag indicates if the resource should be automatically started on creation.\n",
          "type": "boolean"
        },
        "cdnEnabled": {
          "description": "The CDN enabled flag.\n",
          "type": "boolean"
        },
        "cdnProfile": {
          "description": "The CDN profile name.\n",
          "type": "string"
        },
        "cdnProvider": {
          "description": "The CDN provider name. Supported value are `StandardVerizon`,`PremiumVerizon` and `StandardAkamai`\n",
          "type": "string"
        },
        "crossSiteAccessPolicy": {
          "$ref": "#/types/azure:media/StreamingEndpointCrossSiteAccessPolicy:StreamingEndpointCrossSiteAccessPolicy",
          "description": "A `cross_site_access_policy` block as defined below.\n"
        },
        "customHostNames": {
          "description": "The custom host names of the streaming endpoint.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "The streaming endpoint description.\n",
          "type": "string"
        },
        "hostName": {
          "description": "The host name of the Streaming Endpoint.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Streaming Endpoint should exist. Changing this forces a new Streaming Endpoint to be created.\n",
          "type": "string"
        },
        "maxCacheAgeSeconds": {
          "description": "Max cache age in seconds.\n",
          "type": "integer"
        },
        "mediaServicesAccountName": {
          "description": "The Media Services account name. Changing this forces a new Streaming Endpoint to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Streaming Endpoint maximum length is 24. Changing this forces a new Streaming Endpoint to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Streaming Endpoint should exist. Changing this forces a new Streaming Endpoint to be created.\n",
          "type": "string"
        },
        "scaleUnits": {
          "description": "The number of scale units.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Streaming Endpoint.\n",
          "type": "object"
        }
      },
      "required": [
        "autoStartEnabled",
        "cdnProfile",
        "cdnProvider",
        "hostName",
        "location",
        "mediaServicesAccountName",
        "name",
        "resourceGroupName",
        "scaleUnits"
      ],
      "requiredInputs": [
        "mediaServicesAccountName",
        "resourceGroupName",
        "scaleUnits"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StreamingEndpoint resources.\n",
        "properties": {
          "accessControl": {
            "$ref": "#/types/azure:media/StreamingEndpointAccessControl:StreamingEndpointAccessControl",
            "description": "A `access_control` block as defined below.\n"
          },
          "autoStartEnabled": {
            "description": "The flag indicates if the resource should be automatically started on creation.\n",
            "type": "boolean"
          },
          "cdnEnabled": {
            "description": "The CDN enabled flag.\n",
            "type": "boolean"
          },
          "cdnProfile": {
            "description": "The CDN profile name.\n",
            "type": "string"
          },
          "cdnProvider": {
            "description": "The CDN provider name. Supported value are `StandardVerizon`,`PremiumVerizon` and `StandardAkamai`\n",
            "type": "string"
          },
          "crossSiteAccessPolicy": {
            "$ref": "#/types/azure:media/StreamingEndpointCrossSiteAccessPolicy:StreamingEndpointCrossSiteAccessPolicy",
            "description": "A `cross_site_access_policy` block as defined below.\n"
          },
          "customHostNames": {
            "description": "The custom host names of the streaming endpoint.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "The streaming endpoint description.\n",
            "type": "string"
          },
          "hostName": {
            "description": "The host name of the Streaming Endpoint.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Streaming Endpoint should exist. Changing this forces a new Streaming Endpoint to be created.\n",
            "type": "string"
          },
          "maxCacheAgeSeconds": {
            "description": "Max cache age in seconds.\n",
            "type": "integer"
          },
          "mediaServicesAccountName": {
            "description": "The Media Services account name. Changing this forces a new Streaming Endpoint to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Streaming Endpoint maximum length is 24. Changing this forces a new Streaming Endpoint to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Streaming Endpoint should exist. Changing this forces a new Streaming Endpoint to be created.\n",
            "type": "string"
          },
          "scaleUnits": {
            "description": "The number of scale units.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Streaming Endpoint.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:media/streamingLocator:StreamingLocator": {
      "description": "Manages a Media Streaming Locator.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleServiceAccount = new azure.media.ServiceAccount(\"exampleServiceAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccounts: [{\n        id: exampleAccount.id,\n        isPrimary: true,\n    }],\n});\nconst exampleAsset = new azure.media.Asset(\"exampleAsset\", {\n    resourceGroupName: exampleResourceGroup.name,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    description: \"Asset description\",\n});\nconst exampleStreamingLocator = new azure.media.StreamingLocator(\"exampleStreamingLocator\", {\n    resourceGroupName: exampleResourceGroup.name,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    assetName: exampleAsset.name,\n    streamingPolicyName: \"Predefined_ClearStreamingOnly\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_service_account = azure.media.ServiceAccount(\"exampleServiceAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_accounts=[azure.media.ServiceAccountStorageAccountArgs(\n        id=example_account.id,\n        is_primary=True,\n    )])\nexample_asset = azure.media.Asset(\"exampleAsset\",\n    resource_group_name=example_resource_group.name,\n    media_services_account_name=example_service_account.name,\n    description=\"Asset description\")\nexample_streaming_locator = azure.media.StreamingLocator(\"exampleStreamingLocator\",\n    resource_group_name=example_resource_group.name,\n    media_services_account_name=example_service_account.name,\n    asset_name=example_asset.name,\n    streaming_policy_name=\"Predefined_ClearStreamingOnly\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleServiceAccount = new Azure.Media.ServiceAccount(\"exampleServiceAccount\", new Azure.Media.ServiceAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccounts = \n            {\n                new Azure.Media.Inputs.ServiceAccountStorageAccountArgs\n                {\n                    Id = exampleAccount.Id,\n                    IsPrimary = true,\n                },\n            },\n        });\n        var exampleAsset = new Azure.Media.Asset(\"exampleAsset\", new Azure.Media.AssetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            Description = \"Asset description\",\n        });\n        var exampleStreamingLocator = new Azure.Media.StreamingLocator(\"exampleStreamingLocator\", new Azure.Media.StreamingLocatorArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            AssetName = exampleAsset.Name,\n            StreamingPolicyName = \"Predefined_ClearStreamingOnly\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/media\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceAccount, err := media.NewServiceAccount(ctx, \"exampleServiceAccount\", \u0026media.ServiceAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccounts: media.ServiceAccountStorageAccountArray{\n\t\t\t\t\u0026media.ServiceAccountStorageAccountArgs{\n\t\t\t\t\tId:        exampleAccount.ID(),\n\t\t\t\t\tIsPrimary: pulumi.Bool(true),\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\texampleAsset, err := media.NewAsset(ctx, \"exampleAsset\", \u0026media.AssetArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tDescription:              pulumi.String(\"Asset description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = media.NewStreamingLocator(ctx, \"exampleStreamingLocator\", \u0026media.StreamingLocatorArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tAssetName:                exampleAsset.Name,\n\t\t\tStreamingPolicyName:      pulumi.String(\"Predefined_ClearStreamingOnly\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStreaming Locators can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:media/streamingLocator:StreamingLocator example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Media/mediaservices/account1/streaminglocators/locator1\n```\n\n ",
      "inputProperties": {
        "alternativeMediaId": {
          "description": "Alternative Media ID of this Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "assetName": {
          "description": "Asset Name. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "contentKeys": {
          "description": "One or more `content_key` blocks as defined below. Changing this forces a new Streaming Locator to be created.\n",
          "items": {
            "$ref": "#/types/azure:media/StreamingLocatorContentKey:StreamingLocatorContentKey"
          },
          "type": "array"
        },
        "defaultContentKeyPolicyName": {
          "description": "Name of the default Content Key Policy used by this Streaming Locator.Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "endTime": {
          "description": "The end time of the Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "mediaServicesAccountName": {
          "description": "The Media Services account name. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Streaming Locator should exist. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "startTime": {
          "description": "The start time of the Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "streamingLocatorId": {
          "description": "The ID of the Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "streamingPolicyName": {
          "description": "Name of the Streaming Policy used by this Streaming Locator. Either specify the name of Streaming Policy you created or use one of the predefined Streaming Policies. The predefined Streaming Policies available are: `Predefined_DownloadOnly`, `Predefined_ClearStreamingOnly`, `Predefined_DownloadAndClearStreaming`, `Predefined_ClearKey`, `Predefined_MultiDrmCencStreaming` and `Predefined_MultiDrmStreaming`. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "alternativeMediaId": {
          "description": "Alternative Media ID of this Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "assetName": {
          "description": "Asset Name. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "contentKeys": {
          "description": "One or more `content_key` blocks as defined below. Changing this forces a new Streaming Locator to be created.\n",
          "items": {
            "$ref": "#/types/azure:media/StreamingLocatorContentKey:StreamingLocatorContentKey"
          },
          "type": "array"
        },
        "defaultContentKeyPolicyName": {
          "description": "Name of the default Content Key Policy used by this Streaming Locator.Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "endTime": {
          "description": "The end time of the Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "mediaServicesAccountName": {
          "description": "The Media Services account name. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Streaming Locator should exist. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "startTime": {
          "description": "The start time of the Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "streamingLocatorId": {
          "description": "The ID of the Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        },
        "streamingPolicyName": {
          "description": "Name of the Streaming Policy used by this Streaming Locator. Either specify the name of Streaming Policy you created or use one of the predefined Streaming Policies. The predefined Streaming Policies available are: `Predefined_DownloadOnly`, `Predefined_ClearStreamingOnly`, `Predefined_DownloadAndClearStreaming`, `Predefined_ClearKey`, `Predefined_MultiDrmCencStreaming` and `Predefined_MultiDrmStreaming`. Changing this forces a new Streaming Locator to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "assetName",
        "endTime",
        "mediaServicesAccountName",
        "name",
        "resourceGroupName",
        "streamingLocatorId",
        "streamingPolicyName"
      ],
      "requiredInputs": [
        "assetName",
        "mediaServicesAccountName",
        "resourceGroupName",
        "streamingPolicyName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StreamingLocator resources.\n",
        "properties": {
          "alternativeMediaId": {
            "description": "Alternative Media ID of this Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
            "type": "string"
          },
          "assetName": {
            "description": "Asset Name. Changing this forces a new Streaming Locator to be created.\n",
            "type": "string"
          },
          "contentKeys": {
            "description": "One or more `content_key` blocks as defined below. Changing this forces a new Streaming Locator to be created.\n",
            "items": {
              "$ref": "#/types/azure:media/StreamingLocatorContentKey:StreamingLocatorContentKey"
            },
            "type": "array"
          },
          "defaultContentKeyPolicyName": {
            "description": "Name of the default Content Key Policy used by this Streaming Locator.Changing this forces a new Streaming Locator to be created.\n",
            "type": "string"
          },
          "endTime": {
            "description": "The end time of the Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
            "type": "string"
          },
          "mediaServicesAccountName": {
            "description": "The Media Services account name. Changing this forces a new Streaming Locator to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Streaming Locator should exist. Changing this forces a new Streaming Locator to be created.\n",
            "type": "string"
          },
          "startTime": {
            "description": "The start time of the Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
            "type": "string"
          },
          "streamingLocatorId": {
            "description": "The ID of the Streaming Locator. Changing this forces a new Streaming Locator to be created.\n",
            "type": "string"
          },
          "streamingPolicyName": {
            "description": "Name of the Streaming Policy used by this Streaming Locator. Either specify the name of Streaming Policy you created or use one of the predefined Streaming Policies. The predefined Streaming Policies available are: `Predefined_DownloadOnly`, `Predefined_ClearStreamingOnly`, `Predefined_DownloadAndClearStreaming`, `Predefined_ClearKey`, `Predefined_MultiDrmCencStreaming` and `Predefined_MultiDrmStreaming`. Changing this forces a new Streaming Locator to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:media/streamingPolicy:StreamingPolicy": {
      "description": "Manages a Streaming Policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleServiceAccount = new azure.media.ServiceAccount(\"exampleServiceAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccounts: [{\n        id: exampleAccount.id,\n        isPrimary: true,\n    }],\n});\nconst exampleStreamingPolicy = new azure.media.StreamingPolicy(\"exampleStreamingPolicy\", {\n    resourceGroupName: exampleResourceGroup.name,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    commonEncryptionCenc: {\n        enabledProtocols: {\n            download: false,\n            dash: true,\n            hls: false,\n            smoothStreaming: false,\n        },\n        drmPlayready: {\n            customLicenseAcquisitionUrlTemplate: \"https://contoso.com/{AssetAlternativeId}/playready/{ContentKeyId}\",\n            customAttributes: \"PlayReady CustomAttributes\",\n        },\n        drmWidevineCustomLicenseAcquisitionUrlTemplate: \"https://contoso.com/{AssetAlternativeId}/widevine/{ContentKeyId}\",\n    },\n    commonEncryptionCbcs: {\n        enabledProtocols: {\n            download: false,\n            dash: true,\n            hls: false,\n            smoothStreaming: false,\n        },\n        drmFairplay: {\n            customLicenseAcquisitionUrlTemplate: \"https://contoso.com/{AssetAlternativeId}/fairplay/{ContentKeyId}\",\n            allowPersistentLicense: true,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_service_account = azure.media.ServiceAccount(\"exampleServiceAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_accounts=[azure.media.ServiceAccountStorageAccountArgs(\n        id=example_account.id,\n        is_primary=True,\n    )])\nexample_streaming_policy = azure.media.StreamingPolicy(\"exampleStreamingPolicy\",\n    resource_group_name=example_resource_group.name,\n    media_services_account_name=example_service_account.name,\n    common_encryption_cenc=azure.media.StreamingPolicyCommonEncryptionCencArgs(\n        enabled_protocols=azure.media.StreamingPolicyCommonEncryptionCencEnabledProtocolsArgs(\n            download=False,\n            dash=True,\n            hls=False,\n            smooth_streaming=False,\n        ),\n        drm_playready=azure.media.StreamingPolicyCommonEncryptionCencDrmPlayreadyArgs(\n            custom_license_acquisition_url_template=\"https://contoso.com/{AssetAlternativeId}/playready/{ContentKeyId}\",\n            custom_attributes=\"PlayReady CustomAttributes\",\n        ),\n        drm_widevine_custom_license_acquisition_url_template=\"https://contoso.com/{AssetAlternativeId}/widevine/{ContentKeyId}\",\n    ),\n    common_encryption_cbcs=azure.media.StreamingPolicyCommonEncryptionCbcsArgs(\n        enabled_protocols=azure.media.StreamingPolicyCommonEncryptionCbcsEnabledProtocolsArgs(\n            download=False,\n            dash=True,\n            hls=False,\n            smooth_streaming=False,\n        ),\n        drm_fairplay=azure.media.StreamingPolicyCommonEncryptionCbcsDrmFairplayArgs(\n            custom_license_acquisition_url_template=\"https://contoso.com/{AssetAlternativeId}/fairplay/{ContentKeyId}\",\n            allow_persistent_license=True,\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleServiceAccount = new Azure.Media.ServiceAccount(\"exampleServiceAccount\", new Azure.Media.ServiceAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccounts = \n            {\n                new Azure.Media.Inputs.ServiceAccountStorageAccountArgs\n                {\n                    Id = exampleAccount.Id,\n                    IsPrimary = true,\n                },\n            },\n        });\n        var exampleStreamingPolicy = new Azure.Media.StreamingPolicy(\"exampleStreamingPolicy\", new Azure.Media.StreamingPolicyArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            CommonEncryptionCenc = new Azure.Media.Inputs.StreamingPolicyCommonEncryptionCencArgs\n            {\n                EnabledProtocols = new Azure.Media.Inputs.StreamingPolicyCommonEncryptionCencEnabledProtocolsArgs\n                {\n                    Download = false,\n                    Dash = true,\n                    Hls = false,\n                    SmoothStreaming = false,\n                },\n                DrmPlayready = new Azure.Media.Inputs.StreamingPolicyCommonEncryptionCencDrmPlayreadyArgs\n                {\n                    CustomLicenseAcquisitionUrlTemplate = \"https://contoso.com/{AssetAlternativeId}/playready/{ContentKeyId}\",\n                    CustomAttributes = \"PlayReady CustomAttributes\",\n                },\n                DrmWidevineCustomLicenseAcquisitionUrlTemplate = \"https://contoso.com/{AssetAlternativeId}/widevine/{ContentKeyId}\",\n            },\n            CommonEncryptionCbcs = new Azure.Media.Inputs.StreamingPolicyCommonEncryptionCbcsArgs\n            {\n                EnabledProtocols = new Azure.Media.Inputs.StreamingPolicyCommonEncryptionCbcsEnabledProtocolsArgs\n                {\n                    Download = false,\n                    Dash = true,\n                    Hls = false,\n                    SmoothStreaming = false,\n                },\n                DrmFairplay = new Azure.Media.Inputs.StreamingPolicyCommonEncryptionCbcsDrmFairplayArgs\n                {\n                    CustomLicenseAcquisitionUrlTemplate = \"https://contoso.com/{AssetAlternativeId}/fairplay/{ContentKeyId}\",\n                    AllowPersistentLicense = true,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/media\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceAccount, err := media.NewServiceAccount(ctx, \"exampleServiceAccount\", \u0026media.ServiceAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccounts: media.ServiceAccountStorageAccountArray{\n\t\t\t\t\u0026media.ServiceAccountStorageAccountArgs{\n\t\t\t\t\tId:        exampleAccount.ID(),\n\t\t\t\t\tIsPrimary: pulumi.Bool(true),\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 = media.NewStreamingPolicy(ctx, \"exampleStreamingPolicy\", \u0026media.StreamingPolicyArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tCommonEncryptionCenc: \u0026media.StreamingPolicyCommonEncryptionCencArgs{\n\t\t\t\tEnabledProtocols: \u0026media.StreamingPolicyCommonEncryptionCencEnabledProtocolsArgs{\n\t\t\t\t\tDownload:        pulumi.Bool(false),\n\t\t\t\t\tDash:            pulumi.Bool(true),\n\t\t\t\t\tHls:             pulumi.Bool(false),\n\t\t\t\t\tSmoothStreaming: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tDrmPlayready: \u0026media.StreamingPolicyCommonEncryptionCencDrmPlayreadyArgs{\n\t\t\t\t\tCustomLicenseAcquisitionUrlTemplate: pulumi.String(\"https://contoso.com/{AssetAlternativeId}/playready/{ContentKeyId}\"),\n\t\t\t\t\tCustomAttributes:                    pulumi.String(\"PlayReady CustomAttributes\"),\n\t\t\t\t},\n\t\t\t\tDrmWidevineCustomLicenseAcquisitionUrlTemplate: pulumi.String(\"https://contoso.com/{AssetAlternativeId}/widevine/{ContentKeyId}\"),\n\t\t\t},\n\t\t\tCommonEncryptionCbcs: \u0026media.StreamingPolicyCommonEncryptionCbcsArgs{\n\t\t\t\tEnabledProtocols: \u0026media.StreamingPolicyCommonEncryptionCbcsEnabledProtocolsArgs{\n\t\t\t\t\tDownload:        pulumi.Bool(false),\n\t\t\t\t\tDash:            pulumi.Bool(true),\n\t\t\t\t\tHls:             pulumi.Bool(false),\n\t\t\t\t\tSmoothStreaming: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tDrmFairplay: \u0026media.StreamingPolicyCommonEncryptionCbcsDrmFairplayArgs{\n\t\t\t\t\tCustomLicenseAcquisitionUrlTemplate: pulumi.String(\"https://contoso.com/{AssetAlternativeId}/fairplay/{ContentKeyId}\"),\n\t\t\t\t\tAllowPersistentLicense:              pulumi.Bool(true),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStreaming Policys can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:media/streamingPolicy:StreamingPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Media/mediaservices/account1/streamingpolicies/policy1\n```\n\n ",
      "inputProperties": {
        "commonEncryptionCbcs": {
          "$ref": "#/types/azure:media/StreamingPolicyCommonEncryptionCbcs:StreamingPolicyCommonEncryptionCbcs",
          "description": "A `common_encryption_cbcs` block as defined below. Changing this forces a new Streaming Policy to be created.\n"
        },
        "commonEncryptionCenc": {
          "$ref": "#/types/azure:media/StreamingPolicyCommonEncryptionCenc:StreamingPolicyCommonEncryptionCenc",
          "description": "A `common_encryption_cenc` block as defined below. Changing this forces a new Streaming Policy to be created.\n"
        },
        "defaultContentKeyPolicyName": {
          "description": "Default Content Key used by current Streaming Policy. Changing this forces a new Streaming Policy to be created.\n",
          "type": "string"
        },
        "mediaServicesAccountName": {
          "description": "The Media Services account name. Changing this forces a new Streaming Policy to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Streaming Policy. Changing this forces a new Streaming Policy to be created.\n",
          "type": "string"
        },
        "noEncryptionEnabledProtocols": {
          "$ref": "#/types/azure:media/StreamingPolicyNoEncryptionEnabledProtocols:StreamingPolicyNoEncryptionEnabledProtocols",
          "description": "A `no_encryption_enabled_protocols` block as defined below. Changing this forces a new Streaming Policy to be created.\n"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Streaming Policy should exist. Changing this forces a new Streaming Policy to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "commonEncryptionCbcs": {
          "$ref": "#/types/azure:media/StreamingPolicyCommonEncryptionCbcs:StreamingPolicyCommonEncryptionCbcs",
          "description": "A `common_encryption_cbcs` block as defined below. Changing this forces a new Streaming Policy to be created.\n"
        },
        "commonEncryptionCenc": {
          "$ref": "#/types/azure:media/StreamingPolicyCommonEncryptionCenc:StreamingPolicyCommonEncryptionCenc",
          "description": "A `common_encryption_cenc` block as defined below. Changing this forces a new Streaming Policy to be created.\n"
        },
        "defaultContentKeyPolicyName": {
          "description": "Default Content Key used by current Streaming Policy. Changing this forces a new Streaming Policy to be created.\n",
          "type": "string"
        },
        "mediaServicesAccountName": {
          "description": "The Media Services account name. Changing this forces a new Streaming Policy to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Streaming Policy. Changing this forces a new Streaming Policy to be created.\n",
          "type": "string"
        },
        "noEncryptionEnabledProtocols": {
          "$ref": "#/types/azure:media/StreamingPolicyNoEncryptionEnabledProtocols:StreamingPolicyNoEncryptionEnabledProtocols",
          "description": "A `no_encryption_enabled_protocols` block as defined below. Changing this forces a new Streaming Policy to be created.\n"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Streaming Policy should exist. Changing this forces a new Streaming Policy to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "mediaServicesAccountName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "mediaServicesAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StreamingPolicy resources.\n",
        "properties": {
          "commonEncryptionCbcs": {
            "$ref": "#/types/azure:media/StreamingPolicyCommonEncryptionCbcs:StreamingPolicyCommonEncryptionCbcs",
            "description": "A `common_encryption_cbcs` block as defined below. Changing this forces a new Streaming Policy to be created.\n"
          },
          "commonEncryptionCenc": {
            "$ref": "#/types/azure:media/StreamingPolicyCommonEncryptionCenc:StreamingPolicyCommonEncryptionCenc",
            "description": "A `common_encryption_cenc` block as defined below. Changing this forces a new Streaming Policy to be created.\n"
          },
          "defaultContentKeyPolicyName": {
            "description": "Default Content Key used by current Streaming Policy. Changing this forces a new Streaming Policy to be created.\n",
            "type": "string"
          },
          "mediaServicesAccountName": {
            "description": "The Media Services account name. Changing this forces a new Streaming Policy to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Streaming Policy. Changing this forces a new Streaming Policy to be created.\n",
            "type": "string"
          },
          "noEncryptionEnabledProtocols": {
            "$ref": "#/types/azure:media/StreamingPolicyNoEncryptionEnabledProtocols:StreamingPolicyNoEncryptionEnabledProtocols",
            "description": "A `no_encryption_enabled_protocols` block as defined below. Changing this forces a new Streaming Policy to be created.\n"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Streaming Policy should exist. Changing this forces a new Streaming Policy to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:media/transform:Transform": {
      "description": "Manages a Transform.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleServiceAccount = new azure.media.ServiceAccount(\"exampleServiceAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccounts: [{\n        id: exampleAccount.id,\n        isPrimary: true,\n    }],\n});\nconst exampleTransform = new azure.media.Transform(\"exampleTransform\", {\n    resourceGroupName: exampleResourceGroup.name,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    description: \"My transform description\",\n    outputs: [{\n        relativePriority: \"Normal\",\n        onErrorAction: \"ContinueJob\",\n        builtinPreset: {\n            presetName: \"AACGoodQualityAudio\",\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_service_account = azure.media.ServiceAccount(\"exampleServiceAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_accounts=[azure.media.ServiceAccountStorageAccountArgs(\n        id=example_account.id,\n        is_primary=True,\n    )])\nexample_transform = azure.media.Transform(\"exampleTransform\",\n    resource_group_name=example_resource_group.name,\n    media_services_account_name=example_service_account.name,\n    description=\"My transform description\",\n    outputs=[azure.media.TransformOutputArgs(\n        relative_priority=\"Normal\",\n        on_error_action=\"ContinueJob\",\n        builtin_preset=azure.media.TransformOutputBuiltinPresetArgs(\n            preset_name=\"AACGoodQualityAudio\",\n        ),\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleServiceAccount = new Azure.Media.ServiceAccount(\"exampleServiceAccount\", new Azure.Media.ServiceAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccounts = \n            {\n                new Azure.Media.Inputs.ServiceAccountStorageAccountArgs\n                {\n                    Id = exampleAccount.Id,\n                    IsPrimary = true,\n                },\n            },\n        });\n        var exampleTransform = new Azure.Media.Transform(\"exampleTransform\", new Azure.Media.TransformArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            Description = \"My transform description\",\n            Outputs = \n            {\n                new Azure.Media.Inputs.TransformOutputArgs\n                {\n                    RelativePriority = \"Normal\",\n                    OnErrorAction = \"ContinueJob\",\n                    BuiltinPreset = new Azure.Media.Inputs.TransformOutputBuiltinPresetArgs\n                    {\n                        PresetName = \"AACGoodQualityAudio\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/media\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceAccount, err := media.NewServiceAccount(ctx, \"exampleServiceAccount\", \u0026media.ServiceAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccounts: media.ServiceAccountStorageAccountArray{\n\t\t\t\t\u0026media.ServiceAccountStorageAccountArgs{\n\t\t\t\t\tId:        exampleAccount.ID(),\n\t\t\t\t\tIsPrimary: pulumi.Bool(true),\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 = media.NewTransform(ctx, \"exampleTransform\", \u0026media.TransformArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tDescription:              pulumi.String(\"My transform description\"),\n\t\t\tOutputs: media.TransformOutputArray{\n\t\t\t\t\u0026media.TransformOutputArgs{\n\t\t\t\t\tRelativePriority: pulumi.String(\"Normal\"),\n\t\t\t\t\tOnErrorAction:    pulumi.String(\"ContinueJob\"),\n\t\t\t\t\tBuiltinPreset: \u0026media.TransformOutputBuiltinPresetArgs{\n\t\t\t\t\t\tPresetName: pulumi.String(\"AACGoodQualityAudio\"),\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\n{{% /example %}}\n{{% example %}}\n### With Multiple Outputs\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleServiceAccount = new azure.media.ServiceAccount(\"exampleServiceAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccounts: [{\n        id: exampleAccount.id,\n        isPrimary: true,\n    }],\n});\nconst exampleTransform = new azure.media.Transform(\"exampleTransform\", {\n    resourceGroupName: exampleResourceGroup.name,\n    mediaServicesAccountName: exampleServiceAccount.name,\n    description: \"My transform description\",\n    outputs: [\n        {\n            relativePriority: \"Normal\",\n            onErrorAction: \"ContinueJob\",\n            builtinPreset: {\n                presetName: \"AACGoodQualityAudio\",\n            },\n        },\n        {\n            relativePriority: \"Low\",\n            onErrorAction: \"ContinueJob\",\n            audioAnalyzerPreset: {\n                audioLanguage: \"en-US\",\n                audioAnalysisMode: \"Basic\",\n            },\n        },\n        {\n            relativePriority: \"Low\",\n            onErrorAction: \"StopProcessingJob\",\n            faceDetectorPreset: {\n                analysisResolution: \"StandardDefinition\",\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_service_account = azure.media.ServiceAccount(\"exampleServiceAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_accounts=[azure.media.ServiceAccountStorageAccountArgs(\n        id=example_account.id,\n        is_primary=True,\n    )])\nexample_transform = azure.media.Transform(\"exampleTransform\",\n    resource_group_name=example_resource_group.name,\n    media_services_account_name=example_service_account.name,\n    description=\"My transform description\",\n    outputs=[\n        azure.media.TransformOutputArgs(\n            relative_priority=\"Normal\",\n            on_error_action=\"ContinueJob\",\n            builtin_preset=azure.media.TransformOutputBuiltinPresetArgs(\n                preset_name=\"AACGoodQualityAudio\",\n            ),\n        ),\n        azure.media.TransformOutputArgs(\n            relative_priority=\"Low\",\n            on_error_action=\"ContinueJob\",\n            audio_analyzer_preset=azure.media.TransformOutputAudioAnalyzerPresetArgs(\n                audio_language=\"en-US\",\n                audio_analysis_mode=\"Basic\",\n            ),\n        ),\n        azure.media.TransformOutputArgs(\n            relative_priority=\"Low\",\n            on_error_action=\"StopProcessingJob\",\n            face_detector_preset=azure.media.TransformOutputFaceDetectorPresetArgs(\n                analysis_resolution=\"StandardDefinition\",\n            ),\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleServiceAccount = new Azure.Media.ServiceAccount(\"exampleServiceAccount\", new Azure.Media.ServiceAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccounts = \n            {\n                new Azure.Media.Inputs.ServiceAccountStorageAccountArgs\n                {\n                    Id = exampleAccount.Id,\n                    IsPrimary = true,\n                },\n            },\n        });\n        var exampleTransform = new Azure.Media.Transform(\"exampleTransform\", new Azure.Media.TransformArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            MediaServicesAccountName = exampleServiceAccount.Name,\n            Description = \"My transform description\",\n            Outputs = \n            {\n                new Azure.Media.Inputs.TransformOutputArgs\n                {\n                    RelativePriority = \"Normal\",\n                    OnErrorAction = \"ContinueJob\",\n                    BuiltinPreset = new Azure.Media.Inputs.TransformOutputBuiltinPresetArgs\n                    {\n                        PresetName = \"AACGoodQualityAudio\",\n                    },\n                },\n                new Azure.Media.Inputs.TransformOutputArgs\n                {\n                    RelativePriority = \"Low\",\n                    OnErrorAction = \"ContinueJob\",\n                    AudioAnalyzerPreset = new Azure.Media.Inputs.TransformOutputAudioAnalyzerPresetArgs\n                    {\n                        AudioLanguage = \"en-US\",\n                        AudioAnalysisMode = \"Basic\",\n                    },\n                },\n                new Azure.Media.Inputs.TransformOutputArgs\n                {\n                    RelativePriority = \"Low\",\n                    OnErrorAction = \"StopProcessingJob\",\n                    FaceDetectorPreset = new Azure.Media.Inputs.TransformOutputFaceDetectorPresetArgs\n                    {\n                        AnalysisResolution = \"StandardDefinition\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/media\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceAccount, err := media.NewServiceAccount(ctx, \"exampleServiceAccount\", \u0026media.ServiceAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccounts: media.ServiceAccountStorageAccountArray{\n\t\t\t\t\u0026media.ServiceAccountStorageAccountArgs{\n\t\t\t\t\tId:        exampleAccount.ID(),\n\t\t\t\t\tIsPrimary: pulumi.Bool(true),\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 = media.NewTransform(ctx, \"exampleTransform\", \u0026media.TransformArgs{\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tMediaServicesAccountName: exampleServiceAccount.Name,\n\t\t\tDescription:              pulumi.String(\"My transform description\"),\n\t\t\tOutputs: media.TransformOutputArray{\n\t\t\t\t\u0026media.TransformOutputArgs{\n\t\t\t\t\tRelativePriority: pulumi.String(\"Normal\"),\n\t\t\t\t\tOnErrorAction:    pulumi.String(\"ContinueJob\"),\n\t\t\t\t\tBuiltinPreset: \u0026media.TransformOutputBuiltinPresetArgs{\n\t\t\t\t\t\tPresetName: pulumi.String(\"AACGoodQualityAudio\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026media.TransformOutputArgs{\n\t\t\t\t\tRelativePriority: pulumi.String(\"Low\"),\n\t\t\t\t\tOnErrorAction:    pulumi.String(\"ContinueJob\"),\n\t\t\t\t\tAudioAnalyzerPreset: \u0026media.TransformOutputAudioAnalyzerPresetArgs{\n\t\t\t\t\t\tAudioLanguage:     pulumi.String(\"en-US\"),\n\t\t\t\t\t\tAudioAnalysisMode: pulumi.String(\"Basic\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026media.TransformOutputArgs{\n\t\t\t\t\tRelativePriority: pulumi.String(\"Low\"),\n\t\t\t\t\tOnErrorAction:    pulumi.String(\"StopProcessingJob\"),\n\t\t\t\t\tFaceDetectorPreset: \u0026media.TransformOutputFaceDetectorPresetArgs{\n\t\t\t\t\t\tAnalysisResolution: pulumi.String(\"StandardDefinition\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nTransforms can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:media/transform:Transform example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Media/mediaservices/media1/transforms/transform1\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "An optional verbose description of the Transform.\n",
          "type": "string"
        },
        "mediaServicesAccountName": {
          "description": "The Media Services account name. Changing this forces a new Transform to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Transform. Changing this forces a new Transform to be created.\n",
          "type": "string"
        },
        "outputs": {
          "description": "One or more `output` blocks as defined below. At least one `output` must be defined.\n",
          "items": {
            "$ref": "#/types/azure:media/TransformOutput:TransformOutput"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Transform should exist. Changing this forces a new Transform to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "description": {
          "description": "An optional verbose description of the Transform.\n",
          "type": "string"
        },
        "mediaServicesAccountName": {
          "description": "The Media Services account name. Changing this forces a new Transform to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Transform. Changing this forces a new Transform to be created.\n",
          "type": "string"
        },
        "outputs": {
          "description": "One or more `output` blocks as defined below. At least one `output` must be defined.\n",
          "items": {
            "$ref": "#/types/azure:media/TransformOutput:TransformOutput"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Transform should exist. Changing this forces a new Transform to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "mediaServicesAccountName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "mediaServicesAccountName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Transform resources.\n",
        "properties": {
          "description": {
            "description": "An optional verbose description of the Transform.\n",
            "type": "string"
          },
          "mediaServicesAccountName": {
            "description": "The Media Services account name. Changing this forces a new Transform to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Transform. Changing this forces a new Transform to be created.\n",
            "type": "string"
          },
          "outputs": {
            "description": "One or more `output` blocks as defined below. At least one `output` must be defined.\n",
            "items": {
              "$ref": "#/types/azure:media/TransformOutput:TransformOutput"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Transform should exist. Changing this forces a new Transform to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mediaservices/account:Account": {
      "deprecationMessage": "azure.mediaservices.Account has been deprecated in favor of azure.media.ServiceAccount",
      "description": "Manages a Media Services Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleServiceAccount = new azure.media.ServiceAccount(\"exampleServiceAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccounts: [{\n        id: exampleAccount.id,\n        isPrimary: true,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_service_account = azure.media.ServiceAccount(\"exampleServiceAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_accounts=[azure.media.ServiceAccountStorageAccountArgs(\n        id=example_account.id,\n        is_primary=True,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleServiceAccount = new Azure.Media.ServiceAccount(\"exampleServiceAccount\", new Azure.Media.ServiceAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccounts = \n            {\n                new Azure.Media.Inputs.ServiceAccountStorageAccountArgs\n                {\n                    Id = exampleAccount.Id,\n                    IsPrimary = true,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/media\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = media.NewServiceAccount(ctx, \"exampleServiceAccount\", \u0026media.ServiceAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccounts: media.ServiceAccountStorageAccountArray{\n\t\t\t\t\u0026media.ServiceAccountStorageAccountArgs{\n\t\t\t\t\tId:        exampleAccount.ID(),\n\t\t\t\t\tIsPrimary: pulumi.Bool(true),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMedia Services Accounts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mediaservices/account:Account account /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Media/mediaservices/account1\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:mediaservices/AccountIdentity:AccountIdentity",
          "description": "An `identity` block is documented below.\n"
        },
        "keyDeliveryAccessControl": {
          "$ref": "#/types/azure:mediaservices/AccountKeyDeliveryAccessControl:AccountKeyDeliveryAccessControl",
          "description": "An `key_delivery_access_control` block is documented below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Media Services Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Media Services Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:mediaservices/AccountStorageAccount:AccountStorageAccount"
          },
          "type": "array"
        },
        "storageAuthenticationType": {
          "description": "Specifies the storage authentication type. \nPossible value is  `ManagedIdentity` or `System`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "identity": {
          "$ref": "#/types/azure:mediaservices/AccountIdentity:AccountIdentity",
          "description": "An `identity` block is documented below.\n"
        },
        "keyDeliveryAccessControl": {
          "$ref": "#/types/azure:mediaservices/AccountKeyDeliveryAccessControl:AccountKeyDeliveryAccessControl",
          "description": "An `key_delivery_access_control` block is documented below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Media Services Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Media Services Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccounts": {
          "description": "One or more `storage_account` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:mediaservices/AccountStorageAccount:AccountStorageAccount"
          },
          "type": "array"
        },
        "storageAuthenticationType": {
          "description": "Specifies the storage authentication type. \nPossible value is  `ManagedIdentity` or `System`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "identity",
        "keyDeliveryAccessControl",
        "location",
        "name",
        "resourceGroupName",
        "storageAccounts",
        "storageAuthenticationType"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "storageAccounts"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Account resources.\n",
        "properties": {
          "identity": {
            "$ref": "#/types/azure:mediaservices/AccountIdentity:AccountIdentity",
            "description": "An `identity` block is documented below.\n"
          },
          "keyDeliveryAccessControl": {
            "$ref": "#/types/azure:mediaservices/AccountKeyDeliveryAccessControl:AccountKeyDeliveryAccessControl",
            "description": "An `key_delivery_access_control` block is documented below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Media Services Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Media Services Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageAccounts": {
            "description": "One or more `storage_account` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:mediaservices/AccountStorageAccount:AccountStorageAccount"
            },
            "type": "array"
          },
          "storageAuthenticationType": {
            "description": "Specifies the storage authentication type. \nPossible value is  `ManagedIdentity` or `System`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:mixedreality/spatialAnchorsAccount:SpatialAnchorsAccount": {
      "description": "Manages an Azure Spatial Anchors Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSpatialAnchorsAccount = new azure.mixedreality.SpatialAnchorsAccount(\"exampleSpatialAnchorsAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_spatial_anchors_account = azure.mixedreality.SpatialAnchorsAccount(\"exampleSpatialAnchorsAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSpatialAnchorsAccount = new Azure.MixedReality.SpatialAnchorsAccount(\"exampleSpatialAnchorsAccount\", new Azure.MixedReality.SpatialAnchorsAccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mixedreality\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mixedreality.NewSpatialAnchorsAccount(ctx, \"exampleSpatialAnchorsAccount\", \u0026mixedreality.SpatialAnchorsAccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSpatial Anchors Account can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mixedreality/spatialAnchorsAccount:SpatialAnchorsAccount example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.MixedReality/spatialAnchorsAccounts/example\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Spatial Anchors Account. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Spatial Anchors Account.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "accountDomain": {
          "description": "The domain of the Spatial Anchors Account.\n",
          "type": "string"
        },
        "accountId": {
          "description": "The account ID of the Spatial Anchors Account.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Spatial Anchors Account. Changing this forces a new resource to be created. Must be globally unique.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Spatial Anchors Account.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "accountDomain",
        "accountId",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SpatialAnchorsAccount resources.\n",
        "properties": {
          "accountDomain": {
            "description": "The domain of the Spatial Anchors Account.\n",
            "type": "string"
          },
          "accountId": {
            "description": "The account ID of the Spatial Anchors Account.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Spatial Anchors Account. Changing this forces a new resource to be created. Must be globally unique.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Spatial Anchors Account.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:monitoring/aadDiagnosticSetting:AadDiagnosticSetting": {
      "description": "Manages an Azure Active Directory Diagnostic Setting for Azure Monitor.\n\n!\u003e **Authentication** The API for this resource does not support service principal authentication. This resource can only be used with Azure CLI authentication.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"west europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountKind: \"StorageV2\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleAadDiagnosticSetting = new azure.monitoring.AadDiagnosticSetting(\"exampleAadDiagnosticSetting\", {\n    storageAccountId: exampleAccount.id,\n    logs: [\n        {\n            category: \"SignInLogs\",\n            enabled: true,\n            retentionPolicy: {\n                enabled: true,\n                days: 1,\n            },\n        },\n        {\n            category: \"AuditLogs\",\n            enabled: true,\n            retentionPolicy: {\n                enabled: true,\n                days: 1,\n            },\n        },\n        {\n            category: \"NonInteractiveUserSignInLogs\",\n            enabled: true,\n            retentionPolicy: {\n                enabled: true,\n                days: 1,\n            },\n        },\n        {\n            category: \"ServicePrincipalSignInLogs\",\n            enabled: true,\n            retentionPolicy: {\n                enabled: true,\n                days: 1,\n            },\n        },\n        {\n            category: \"ManagedIdentitySignInLogs\",\n            enabled: false,\n            retentionPolicy: {},\n        },\n        {\n            category: \"ProvisioningLogs\",\n            enabled: false,\n            retentionPolicy: {},\n        },\n        {\n            category: \"ADFSSignInLogs\",\n            enabled: false,\n            retentionPolicy: {},\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"west europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_kind=\"StorageV2\",\n    account_replication_type=\"LRS\")\nexample_aad_diagnostic_setting = azure.monitoring.AadDiagnosticSetting(\"exampleAadDiagnosticSetting\",\n    storage_account_id=example_account.id,\n    logs=[\n        azure.monitoring.AadDiagnosticSettingLogArgs(\n            category=\"SignInLogs\",\n            enabled=True,\n            retention_policy={\n                \"enabled\": True,\n                \"days\": 1,\n            },\n        ),\n        azure.monitoring.AadDiagnosticSettingLogArgs(\n            category=\"AuditLogs\",\n            enabled=True,\n            retention_policy={\n                \"enabled\": True,\n                \"days\": 1,\n            },\n        ),\n        azure.monitoring.AadDiagnosticSettingLogArgs(\n            category=\"NonInteractiveUserSignInLogs\",\n            enabled=True,\n            retention_policy={\n                \"enabled\": True,\n                \"days\": 1,\n            },\n        ),\n        azure.monitoring.AadDiagnosticSettingLogArgs(\n            category=\"ServicePrincipalSignInLogs\",\n            enabled=True,\n            retention_policy={\n                \"enabled\": True,\n                \"days\": 1,\n            },\n        ),\n        azure.monitoring.AadDiagnosticSettingLogArgs(\n            category=\"ManagedIdentitySignInLogs\",\n            enabled=False,\n            retention_policy={},\n        ),\n        azure.monitoring.AadDiagnosticSettingLogArgs(\n            category=\"ProvisioningLogs\",\n            enabled=False,\n            retention_policy={},\n        ),\n        azure.monitoring.AadDiagnosticSettingLogArgs(\n            category=\"ADFSSignInLogs\",\n            enabled=False,\n            retention_policy={},\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"west europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountKind = \"StorageV2\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleAadDiagnosticSetting = new Azure.Monitoring.AadDiagnosticSetting(\"exampleAadDiagnosticSetting\", new Azure.Monitoring.AadDiagnosticSettingArgs\n        {\n            StorageAccountId = exampleAccount.Id,\n            Logs = \n            {\n                new Azure.Monitoring.Inputs.AadDiagnosticSettingLogArgs\n                {\n                    Category = \"SignInLogs\",\n                    Enabled = true,\n                    RetentionPolicy = new Azure.Monitoring.Inputs.AadDiagnosticSettingLogRetentionPolicyArgs\n                    {\n                        Enabled = true,\n                        Days = 1,\n                    },\n                },\n                new Azure.Monitoring.Inputs.AadDiagnosticSettingLogArgs\n                {\n                    Category = \"AuditLogs\",\n                    Enabled = true,\n                    RetentionPolicy = new Azure.Monitoring.Inputs.AadDiagnosticSettingLogRetentionPolicyArgs\n                    {\n                        Enabled = true,\n                        Days = 1,\n                    },\n                },\n                new Azure.Monitoring.Inputs.AadDiagnosticSettingLogArgs\n                {\n                    Category = \"NonInteractiveUserSignInLogs\",\n                    Enabled = true,\n                    RetentionPolicy = new Azure.Monitoring.Inputs.AadDiagnosticSettingLogRetentionPolicyArgs\n                    {\n                        Enabled = true,\n                        Days = 1,\n                    },\n                },\n                new Azure.Monitoring.Inputs.AadDiagnosticSettingLogArgs\n                {\n                    Category = \"ServicePrincipalSignInLogs\",\n                    Enabled = true,\n                    RetentionPolicy = new Azure.Monitoring.Inputs.AadDiagnosticSettingLogRetentionPolicyArgs\n                    {\n                        Enabled = true,\n                        Days = 1,\n                    },\n                },\n                new Azure.Monitoring.Inputs.AadDiagnosticSettingLogArgs\n                {\n                    Category = \"ManagedIdentitySignInLogs\",\n                    Enabled = false,\n                    RetentionPolicy = ,\n                },\n                new Azure.Monitoring.Inputs.AadDiagnosticSettingLogArgs\n                {\n                    Category = \"ProvisioningLogs\",\n                    Enabled = false,\n                    RetentionPolicy = ,\n                },\n                new Azure.Monitoring.Inputs.AadDiagnosticSettingLogArgs\n                {\n                    Category = \"ADFSSignInLogs\",\n                    Enabled = false,\n                    RetentionPolicy = ,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"west europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountKind:            pulumi.String(\"StorageV2\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.NewAadDiagnosticSetting(ctx, \"exampleAadDiagnosticSetting\", \u0026monitoring.AadDiagnosticSettingArgs{\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t\tLogs: monitoring.AadDiagnosticSettingLogArray{\n\t\t\t\t\u0026monitoring.AadDiagnosticSettingLogArgs{\n\t\t\t\t\tCategory: pulumi.String(\"SignInLogs\"),\n\t\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\t\tRetentionPolicy: \u0026monitoring.AadDiagnosticSettingLogRetentionPolicyArgs{\n\t\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\t\tDays:    pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026monitoring.AadDiagnosticSettingLogArgs{\n\t\t\t\t\tCategory: pulumi.String(\"AuditLogs\"),\n\t\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\t\tRetentionPolicy: \u0026monitoring.AadDiagnosticSettingLogRetentionPolicyArgs{\n\t\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\t\tDays:    pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026monitoring.AadDiagnosticSettingLogArgs{\n\t\t\t\t\tCategory: pulumi.String(\"NonInteractiveUserSignInLogs\"),\n\t\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\t\tRetentionPolicy: \u0026monitoring.AadDiagnosticSettingLogRetentionPolicyArgs{\n\t\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\t\tDays:    pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026monitoring.AadDiagnosticSettingLogArgs{\n\t\t\t\t\tCategory: pulumi.String(\"ServicePrincipalSignInLogs\"),\n\t\t\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\t\t\tRetentionPolicy: \u0026monitoring.AadDiagnosticSettingLogRetentionPolicyArgs{\n\t\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\t\tDays:    pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026monitoring.AadDiagnosticSettingLogArgs{\n\t\t\t\t\tCategory:        pulumi.String(\"ManagedIdentitySignInLogs\"),\n\t\t\t\t\tEnabled:         pulumi.Bool(false),\n\t\t\t\t\tRetentionPolicy: nil,\n\t\t\t\t},\n\t\t\t\t\u0026monitoring.AadDiagnosticSettingLogArgs{\n\t\t\t\t\tCategory:        pulumi.String(\"ProvisioningLogs\"),\n\t\t\t\t\tEnabled:         pulumi.Bool(false),\n\t\t\t\t\tRetentionPolicy: nil,\n\t\t\t\t},\n\t\t\t\t\u0026monitoring.AadDiagnosticSettingLogArgs{\n\t\t\t\t\tCategory:        pulumi.String(\"ADFSSignInLogs\"),\n\t\t\t\t\tEnabled:         pulumi.Bool(false),\n\t\t\t\t\tRetentionPolicy: nil,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMonitor Azure Active Directory Diagnostic Settings can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:monitoring/aadDiagnosticSetting:AadDiagnosticSetting example /providers/Microsoft.AADIAM/diagnosticSettings/setting1\n```\n\n ",
      "inputProperties": {
        "eventhubAuthorizationRuleId": {
          "description": "Specifies the ID of an Event Hub Namespace Authorization Rule used to send Diagnostics Data. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventhubName": {
          "description": "Specifies the name of the Event Hub where Diagnostics Data should be sent. If not specified, the default Event Hub will be used. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logAnalyticsWorkspaceId": {
          "description": "Specifies the ID of a Log Analytics Workspace where Diagnostics Data should be sent.\n",
          "type": "string"
        },
        "logs": {
          "description": "One or more `log` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/AadDiagnosticSettingLog:AadDiagnosticSettingLog"
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this Monitor Azure Active Directory Diagnostic Setting. Changing this forces a new Monitor Azure Active Directory Diagnostic Setting to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account where logs should be sent. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "eventhubAuthorizationRuleId": {
          "description": "Specifies the ID of an Event Hub Namespace Authorization Rule used to send Diagnostics Data. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventhubName": {
          "description": "Specifies the name of the Event Hub where Diagnostics Data should be sent. If not specified, the default Event Hub will be used. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logAnalyticsWorkspaceId": {
          "description": "Specifies the ID of a Log Analytics Workspace where Diagnostics Data should be sent.\n",
          "type": "string"
        },
        "logs": {
          "description": "One or more `log` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/AadDiagnosticSettingLog:AadDiagnosticSettingLog"
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this Monitor Azure Active Directory Diagnostic Setting. Changing this forces a new Monitor Azure Active Directory Diagnostic Setting to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account where logs should be sent. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "logs",
        "name"
      ],
      "requiredInputs": [
        "logs"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AadDiagnosticSetting resources.\n",
        "properties": {
          "eventhubAuthorizationRuleId": {
            "description": "Specifies the ID of an Event Hub Namespace Authorization Rule used to send Diagnostics Data. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "eventhubName": {
            "description": "Specifies the name of the Event Hub where Diagnostics Data should be sent. If not specified, the default Event Hub will be used. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "logAnalyticsWorkspaceId": {
            "description": "Specifies the ID of a Log Analytics Workspace where Diagnostics Data should be sent.\n",
            "type": "string"
          },
          "logs": {
            "description": "One or more `log` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/AadDiagnosticSettingLog:AadDiagnosticSettingLog"
            },
            "type": "array"
          },
          "name": {
            "description": "The name which should be used for this Monitor Azure Active Directory Diagnostic Setting. Changing this forces a new Monitor Azure Active Directory Diagnostic Setting to be created.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of the Storage Account where logs should be sent. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:monitoring/actionGroup:ActionGroup": {
      "description": "Manages an Action Group within Azure Monitor.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleActionGroup = new azure.monitoring.ActionGroup(\"exampleActionGroup\", {\n    resourceGroupName: exampleResourceGroup.name,\n    shortName: \"p0action\",\n    armRoleReceivers: [{\n        name: \"armroleaction\",\n        roleId: \"de139f84-1756-47ae-9be6-808fbbe84772\",\n        useCommonAlertSchema: true,\n    }],\n    automationRunbookReceivers: [{\n        name: \"action_name_1\",\n        automationAccountId: \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-runbooks/providers/microsoft.automation/automationaccounts/aaa001\",\n        runbookName: \"my runbook\",\n        webhookResourceId: \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-runbooks/providers/microsoft.automation/automationaccounts/aaa001/webhooks/webhook_alert\",\n        isGlobalRunbook: true,\n        serviceUri: \"https://s13events.azure-automation.net/webhooks?token=randomtoken\",\n        useCommonAlertSchema: true,\n    }],\n    azureAppPushReceivers: [{\n        name: \"pushtoadmin\",\n        emailAddress: \"admin@contoso.com\",\n    }],\n    azureFunctionReceivers: [{\n        name: \"funcaction\",\n        functionAppResourceId: \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-funcapp/providers/Microsoft.Web/sites/funcapp\",\n        functionName: \"myfunc\",\n        httpTriggerUrl: \"https://example.com/trigger\",\n        useCommonAlertSchema: true,\n    }],\n    emailReceivers: [\n        {\n            name: \"sendtoadmin\",\n            emailAddress: \"admin@contoso.com\",\n        },\n        {\n            name: \"sendtodevops\",\n            emailAddress: \"devops@contoso.com\",\n            useCommonAlertSchema: true,\n        },\n    ],\n    itsmReceivers: [{\n        name: \"createorupdateticket\",\n        workspaceId: \"6eee3a18-aac3-40e4-b98e-1f309f329816\",\n        connectionId: \"53de6956-42b4-41ba-be3c-b154cdf17b13\",\n        ticketConfiguration: \"{}\",\n        region: \"southcentralus\",\n    }],\n    logicAppReceivers: [{\n        name: \"logicappaction\",\n        resourceId: \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-logicapp/providers/Microsoft.Logic/workflows/logicapp\",\n        callbackUrl: \"https://logicapptriggerurl/...\",\n        useCommonAlertSchema: true,\n    }],\n    smsReceivers: [{\n        name: \"oncallmsg\",\n        countryCode: \"1\",\n        phoneNumber: \"1231231234\",\n    }],\n    voiceReceivers: [{\n        name: \"remotesupport\",\n        countryCode: \"86\",\n        phoneNumber: \"13888888888\",\n    }],\n    webhookReceivers: [{\n        name: \"callmyapiaswell\",\n        serviceUri: \"http://example.com/alert\",\n        useCommonAlertSchema: true,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_action_group = azure.monitoring.ActionGroup(\"exampleActionGroup\",\n    resource_group_name=example_resource_group.name,\n    short_name=\"p0action\",\n    arm_role_receivers=[azure.monitoring.ActionGroupArmRoleReceiverArgs(\n        name=\"armroleaction\",\n        role_id=\"de139f84-1756-47ae-9be6-808fbbe84772\",\n        use_common_alert_schema=True,\n    )],\n    automation_runbook_receivers=[azure.monitoring.ActionGroupAutomationRunbookReceiverArgs(\n        name=\"action_name_1\",\n        automation_account_id=\"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-runbooks/providers/microsoft.automation/automationaccounts/aaa001\",\n        runbook_name=\"my runbook\",\n        webhook_resource_id=\"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-runbooks/providers/microsoft.automation/automationaccounts/aaa001/webhooks/webhook_alert\",\n        is_global_runbook=True,\n        service_uri=\"https://s13events.azure-automation.net/webhooks?token=randomtoken\",\n        use_common_alert_schema=True,\n    )],\n    azure_app_push_receivers=[azure.monitoring.ActionGroupAzureAppPushReceiverArgs(\n        name=\"pushtoadmin\",\n        email_address=\"admin@contoso.com\",\n    )],\n    azure_function_receivers=[azure.monitoring.ActionGroupAzureFunctionReceiverArgs(\n        name=\"funcaction\",\n        function_app_resource_id=\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-funcapp/providers/Microsoft.Web/sites/funcapp\",\n        function_name=\"myfunc\",\n        http_trigger_url=\"https://example.com/trigger\",\n        use_common_alert_schema=True,\n    )],\n    email_receivers=[\n        azure.monitoring.ActionGroupEmailReceiverArgs(\n            name=\"sendtoadmin\",\n            email_address=\"admin@contoso.com\",\n        ),\n        azure.monitoring.ActionGroupEmailReceiverArgs(\n            name=\"sendtodevops\",\n            email_address=\"devops@contoso.com\",\n            use_common_alert_schema=True,\n        ),\n    ],\n    itsm_receivers=[azure.monitoring.ActionGroupItsmReceiverArgs(\n        name=\"createorupdateticket\",\n        workspace_id=\"6eee3a18-aac3-40e4-b98e-1f309f329816\",\n        connection_id=\"53de6956-42b4-41ba-be3c-b154cdf17b13\",\n        ticket_configuration=\"{}\",\n        region=\"southcentralus\",\n    )],\n    logic_app_receivers=[azure.monitoring.ActionGroupLogicAppReceiverArgs(\n        name=\"logicappaction\",\n        resource_id=\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-logicapp/providers/Microsoft.Logic/workflows/logicapp\",\n        callback_url=\"https://logicapptriggerurl/...\",\n        use_common_alert_schema=True,\n    )],\n    sms_receivers=[azure.monitoring.ActionGroupSmsReceiverArgs(\n        name=\"oncallmsg\",\n        country_code=\"1\",\n        phone_number=\"1231231234\",\n    )],\n    voice_receivers=[azure.monitoring.ActionGroupVoiceReceiverArgs(\n        name=\"remotesupport\",\n        country_code=\"86\",\n        phone_number=\"13888888888\",\n    )],\n    webhook_receivers=[azure.monitoring.ActionGroupWebhookReceiverArgs(\n        name=\"callmyapiaswell\",\n        service_uri=\"http://example.com/alert\",\n        use_common_alert_schema=True,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleActionGroup = new Azure.Monitoring.ActionGroup(\"exampleActionGroup\", new Azure.Monitoring.ActionGroupArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ShortName = \"p0action\",\n            ArmRoleReceivers = \n            {\n                new Azure.Monitoring.Inputs.ActionGroupArmRoleReceiverArgs\n                {\n                    Name = \"armroleaction\",\n                    RoleId = \"de139f84-1756-47ae-9be6-808fbbe84772\",\n                    UseCommonAlertSchema = true,\n                },\n            },\n            AutomationRunbookReceivers = \n            {\n                new Azure.Monitoring.Inputs.ActionGroupAutomationRunbookReceiverArgs\n                {\n                    Name = \"action_name_1\",\n                    AutomationAccountId = \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-runbooks/providers/microsoft.automation/automationaccounts/aaa001\",\n                    RunbookName = \"my runbook\",\n                    WebhookResourceId = \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-runbooks/providers/microsoft.automation/automationaccounts/aaa001/webhooks/webhook_alert\",\n                    IsGlobalRunbook = true,\n                    ServiceUri = \"https://s13events.azure-automation.net/webhooks?token=randomtoken\",\n                    UseCommonAlertSchema = true,\n                },\n            },\n            AzureAppPushReceivers = \n            {\n                new Azure.Monitoring.Inputs.ActionGroupAzureAppPushReceiverArgs\n                {\n                    Name = \"pushtoadmin\",\n                    EmailAddress = \"admin@contoso.com\",\n                },\n            },\n            AzureFunctionReceivers = \n            {\n                new Azure.Monitoring.Inputs.ActionGroupAzureFunctionReceiverArgs\n                {\n                    Name = \"funcaction\",\n                    FunctionAppResourceId = \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-funcapp/providers/Microsoft.Web/sites/funcapp\",\n                    FunctionName = \"myfunc\",\n                    HttpTriggerUrl = \"https://example.com/trigger\",\n                    UseCommonAlertSchema = true,\n                },\n            },\n            EmailReceivers = \n            {\n                new Azure.Monitoring.Inputs.ActionGroupEmailReceiverArgs\n                {\n                    Name = \"sendtoadmin\",\n                    EmailAddress = \"admin@contoso.com\",\n                },\n                new Azure.Monitoring.Inputs.ActionGroupEmailReceiverArgs\n                {\n                    Name = \"sendtodevops\",\n                    EmailAddress = \"devops@contoso.com\",\n                    UseCommonAlertSchema = true,\n                },\n            },\n            ItsmReceivers = \n            {\n                new Azure.Monitoring.Inputs.ActionGroupItsmReceiverArgs\n                {\n                    Name = \"createorupdateticket\",\n                    WorkspaceId = \"6eee3a18-aac3-40e4-b98e-1f309f329816\",\n                    ConnectionId = \"53de6956-42b4-41ba-be3c-b154cdf17b13\",\n                    TicketConfiguration = \"{}\",\n                    Region = \"southcentralus\",\n                },\n            },\n            LogicAppReceivers = \n            {\n                new Azure.Monitoring.Inputs.ActionGroupLogicAppReceiverArgs\n                {\n                    Name = \"logicappaction\",\n                    ResourceId = \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-logicapp/providers/Microsoft.Logic/workflows/logicapp\",\n                    CallbackUrl = \"https://logicapptriggerurl/...\",\n                    UseCommonAlertSchema = true,\n                },\n            },\n            SmsReceivers = \n            {\n                new Azure.Monitoring.Inputs.ActionGroupSmsReceiverArgs\n                {\n                    Name = \"oncallmsg\",\n                    CountryCode = \"1\",\n                    PhoneNumber = \"1231231234\",\n                },\n            },\n            VoiceReceivers = \n            {\n                new Azure.Monitoring.Inputs.ActionGroupVoiceReceiverArgs\n                {\n                    Name = \"remotesupport\",\n                    CountryCode = \"86\",\n                    PhoneNumber = \"13888888888\",\n                },\n            },\n            WebhookReceivers = \n            {\n                new Azure.Monitoring.Inputs.ActionGroupWebhookReceiverArgs\n                {\n                    Name = \"callmyapiaswell\",\n                    ServiceUri = \"http://example.com/alert\",\n                    UseCommonAlertSchema = true,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.NewActionGroup(ctx, \"exampleActionGroup\", \u0026monitoring.ActionGroupArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tShortName:         pulumi.String(\"p0action\"),\n\t\t\tArmRoleReceivers: monitoring.ActionGroupArmRoleReceiverArray{\n\t\t\t\t\u0026monitoring.ActionGroupArmRoleReceiverArgs{\n\t\t\t\t\tName:                 pulumi.String(\"armroleaction\"),\n\t\t\t\t\tRoleId:               pulumi.String(\"de139f84-1756-47ae-9be6-808fbbe84772\"),\n\t\t\t\t\tUseCommonAlertSchema: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAutomationRunbookReceivers: monitoring.ActionGroupAutomationRunbookReceiverArray{\n\t\t\t\t\u0026monitoring.ActionGroupAutomationRunbookReceiverArgs{\n\t\t\t\t\tName:                 pulumi.String(\"action_name_1\"),\n\t\t\t\t\tAutomationAccountId:  pulumi.String(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-runbooks/providers/microsoft.automation/automationaccounts/aaa001\"),\n\t\t\t\t\tRunbookName:          pulumi.String(\"my runbook\"),\n\t\t\t\t\tWebhookResourceId:    pulumi.String(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-runbooks/providers/microsoft.automation/automationaccounts/aaa001/webhooks/webhook_alert\"),\n\t\t\t\t\tIsGlobalRunbook:      pulumi.Bool(true),\n\t\t\t\t\tServiceUri:           pulumi.String(\"https://s13events.azure-automation.net/webhooks?token=randomtoken\"),\n\t\t\t\t\tUseCommonAlertSchema: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAzureAppPushReceivers: monitoring.ActionGroupAzureAppPushReceiverArray{\n\t\t\t\t\u0026monitoring.ActionGroupAzureAppPushReceiverArgs{\n\t\t\t\t\tName:         pulumi.String(\"pushtoadmin\"),\n\t\t\t\t\tEmailAddress: pulumi.String(\"admin@contoso.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAzureFunctionReceivers: monitoring.ActionGroupAzureFunctionReceiverArray{\n\t\t\t\t\u0026monitoring.ActionGroupAzureFunctionReceiverArgs{\n\t\t\t\t\tName:                  pulumi.String(\"funcaction\"),\n\t\t\t\t\tFunctionAppResourceId: pulumi.String(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-funcapp/providers/Microsoft.Web/sites/funcapp\"),\n\t\t\t\t\tFunctionName:          pulumi.String(\"myfunc\"),\n\t\t\t\t\tHttpTriggerUrl:        pulumi.String(\"https://example.com/trigger\"),\n\t\t\t\t\tUseCommonAlertSchema:  pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEmailReceivers: monitoring.ActionGroupEmailReceiverArray{\n\t\t\t\t\u0026monitoring.ActionGroupEmailReceiverArgs{\n\t\t\t\t\tName:         pulumi.String(\"sendtoadmin\"),\n\t\t\t\t\tEmailAddress: pulumi.String(\"admin@contoso.com\"),\n\t\t\t\t},\n\t\t\t\t\u0026monitoring.ActionGroupEmailReceiverArgs{\n\t\t\t\t\tName:                 pulumi.String(\"sendtodevops\"),\n\t\t\t\t\tEmailAddress:         pulumi.String(\"devops@contoso.com\"),\n\t\t\t\t\tUseCommonAlertSchema: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tItsmReceivers: monitoring.ActionGroupItsmReceiverArray{\n\t\t\t\t\u0026monitoring.ActionGroupItsmReceiverArgs{\n\t\t\t\t\tName:                pulumi.String(\"createorupdateticket\"),\n\t\t\t\t\tWorkspaceId:         pulumi.String(\"6eee3a18-aac3-40e4-b98e-1f309f329816\"),\n\t\t\t\t\tConnectionId:        pulumi.String(\"53de6956-42b4-41ba-be3c-b154cdf17b13\"),\n\t\t\t\t\tTicketConfiguration: pulumi.String(\"{}\"),\n\t\t\t\t\tRegion:              pulumi.String(\"southcentralus\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLogicAppReceivers: monitoring.ActionGroupLogicAppReceiverArray{\n\t\t\t\t\u0026monitoring.ActionGroupLogicAppReceiverArgs{\n\t\t\t\t\tName:                 pulumi.String(\"logicappaction\"),\n\t\t\t\t\tResourceId:           pulumi.String(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-logicapp/providers/Microsoft.Logic/workflows/logicapp\"),\n\t\t\t\t\tCallbackUrl:          pulumi.String(\"https://logicapptriggerurl/...\"),\n\t\t\t\t\tUseCommonAlertSchema: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSmsReceivers: monitoring.ActionGroupSmsReceiverArray{\n\t\t\t\t\u0026monitoring.ActionGroupSmsReceiverArgs{\n\t\t\t\t\tName:        pulumi.String(\"oncallmsg\"),\n\t\t\t\t\tCountryCode: pulumi.String(\"1\"),\n\t\t\t\t\tPhoneNumber: pulumi.String(\"1231231234\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVoiceReceivers: monitoring.ActionGroupVoiceReceiverArray{\n\t\t\t\t\u0026monitoring.ActionGroupVoiceReceiverArgs{\n\t\t\t\t\tName:        pulumi.String(\"remotesupport\"),\n\t\t\t\t\tCountryCode: pulumi.String(\"86\"),\n\t\t\t\t\tPhoneNumber: pulumi.String(\"13888888888\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tWebhookReceivers: monitoring.ActionGroupWebhookReceiverArray{\n\t\t\t\t\u0026monitoring.ActionGroupWebhookReceiverArgs{\n\t\t\t\t\tName:                 pulumi.String(\"callmyapiaswell\"),\n\t\t\t\t\tServiceUri:           pulumi.String(\"http://example.com/alert\"),\n\t\t\t\t\tUseCommonAlertSchema: pulumi.Bool(true),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAction Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:monitoring/actionGroup:ActionGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Insights/actionGroups/myagname\n```\n\n ",
      "inputProperties": {
        "armRoleReceivers": {
          "description": "One or more `arm_role_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupArmRoleReceiver:ActionGroupArmRoleReceiver"
          },
          "type": "array"
        },
        "automationRunbookReceivers": {
          "description": "One or more `automation_runbook_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupAutomationRunbookReceiver:ActionGroupAutomationRunbookReceiver"
          },
          "type": "array"
        },
        "azureAppPushReceivers": {
          "description": "One or more `azure_app_push_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupAzureAppPushReceiver:ActionGroupAzureAppPushReceiver"
          },
          "type": "array"
        },
        "azureFunctionReceivers": {
          "description": "One or more `azure_function_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupAzureFunctionReceiver:ActionGroupAzureFunctionReceiver"
          },
          "type": "array"
        },
        "emailReceivers": {
          "description": "One or more `email_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupEmailReceiver:ActionGroupEmailReceiver"
          },
          "type": "array"
        },
        "enabled": {
          "description": "Whether this action group is enabled. If an action group is not enabled, then none of its receivers will receive communications. Defaults to `true`.\n",
          "type": "boolean"
        },
        "itsmReceivers": {
          "description": "One or more `itsm_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupItsmReceiver:ActionGroupItsmReceiver"
          },
          "type": "array"
        },
        "logicAppReceivers": {
          "description": "One or more `logic_app_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupLogicAppReceiver:ActionGroupLogicAppReceiver"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the Action Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Action Group instance.\n",
          "type": "string"
        },
        "shortName": {
          "description": "The short name of the action group. This will be used in SMS messages.\n",
          "type": "string"
        },
        "smsReceivers": {
          "description": "One or more `sms_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupSmsReceiver:ActionGroupSmsReceiver"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "voiceReceivers": {
          "description": "One or more `voice_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupVoiceReceiver:ActionGroupVoiceReceiver"
          },
          "type": "array"
        },
        "webhookReceivers": {
          "description": "One or more `webhook_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupWebhookReceiver:ActionGroupWebhookReceiver"
          },
          "type": "array"
        }
      },
      "properties": {
        "armRoleReceivers": {
          "description": "One or more `arm_role_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupArmRoleReceiver:ActionGroupArmRoleReceiver"
          },
          "type": "array"
        },
        "automationRunbookReceivers": {
          "description": "One or more `automation_runbook_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupAutomationRunbookReceiver:ActionGroupAutomationRunbookReceiver"
          },
          "type": "array"
        },
        "azureAppPushReceivers": {
          "description": "One or more `azure_app_push_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupAzureAppPushReceiver:ActionGroupAzureAppPushReceiver"
          },
          "type": "array"
        },
        "azureFunctionReceivers": {
          "description": "One or more `azure_function_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupAzureFunctionReceiver:ActionGroupAzureFunctionReceiver"
          },
          "type": "array"
        },
        "emailReceivers": {
          "description": "One or more `email_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupEmailReceiver:ActionGroupEmailReceiver"
          },
          "type": "array"
        },
        "enabled": {
          "description": "Whether this action group is enabled. If an action group is not enabled, then none of its receivers will receive communications. Defaults to `true`.\n",
          "type": "boolean"
        },
        "itsmReceivers": {
          "description": "One or more `itsm_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupItsmReceiver:ActionGroupItsmReceiver"
          },
          "type": "array"
        },
        "logicAppReceivers": {
          "description": "One or more `logic_app_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupLogicAppReceiver:ActionGroupLogicAppReceiver"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the Action Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Action Group instance.\n",
          "type": "string"
        },
        "shortName": {
          "description": "The short name of the action group. This will be used in SMS messages.\n",
          "type": "string"
        },
        "smsReceivers": {
          "description": "One or more `sms_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupSmsReceiver:ActionGroupSmsReceiver"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "voiceReceivers": {
          "description": "One or more `voice_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupVoiceReceiver:ActionGroupVoiceReceiver"
          },
          "type": "array"
        },
        "webhookReceivers": {
          "description": "One or more `webhook_receiver` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActionGroupWebhookReceiver:ActionGroupWebhookReceiver"
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "shortName"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "shortName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ActionGroup resources.\n",
        "properties": {
          "armRoleReceivers": {
            "description": "One or more `arm_role_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/ActionGroupArmRoleReceiver:ActionGroupArmRoleReceiver"
            },
            "type": "array"
          },
          "automationRunbookReceivers": {
            "description": "One or more `automation_runbook_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/ActionGroupAutomationRunbookReceiver:ActionGroupAutomationRunbookReceiver"
            },
            "type": "array"
          },
          "azureAppPushReceivers": {
            "description": "One or more `azure_app_push_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/ActionGroupAzureAppPushReceiver:ActionGroupAzureAppPushReceiver"
            },
            "type": "array"
          },
          "azureFunctionReceivers": {
            "description": "One or more `azure_function_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/ActionGroupAzureFunctionReceiver:ActionGroupAzureFunctionReceiver"
            },
            "type": "array"
          },
          "emailReceivers": {
            "description": "One or more `email_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/ActionGroupEmailReceiver:ActionGroupEmailReceiver"
            },
            "type": "array"
          },
          "enabled": {
            "description": "Whether this action group is enabled. If an action group is not enabled, then none of its receivers will receive communications. Defaults to `true`.\n",
            "type": "boolean"
          },
          "itsmReceivers": {
            "description": "One or more `itsm_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/ActionGroupItsmReceiver:ActionGroupItsmReceiver"
            },
            "type": "array"
          },
          "logicAppReceivers": {
            "description": "One or more `logic_app_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/ActionGroupLogicAppReceiver:ActionGroupLogicAppReceiver"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the Action Group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Action Group instance.\n",
            "type": "string"
          },
          "shortName": {
            "description": "The short name of the action group. This will be used in SMS messages.\n",
            "type": "string"
          },
          "smsReceivers": {
            "description": "One or more `sms_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/ActionGroupSmsReceiver:ActionGroupSmsReceiver"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "voiceReceivers": {
            "description": "One or more `voice_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/ActionGroupVoiceReceiver:ActionGroupVoiceReceiver"
            },
            "type": "array"
          },
          "webhookReceivers": {
            "description": "One or more `webhook_receiver` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/ActionGroupWebhookReceiver:ActionGroupWebhookReceiver"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:monitoring/actionRuleActionGroup:ActionRuleActionGroup": {
      "description": "Manages an Monitor Action Rule which type is action group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleActionGroup = new azure.monitoring.ActionGroup(\"exampleActionGroup\", {\n    resourceGroupName: exampleResourceGroup.name,\n    shortName: \"exampleactiongroup\",\n});\nconst exampleActionRuleActionGroup = new azure.monitoring.ActionRuleActionGroup(\"exampleActionRuleActionGroup\", {\n    resourceGroupName: exampleResourceGroup.name,\n    actionGroupId: exampleActionGroup.id,\n    scope: {\n        type: \"ResourceGroup\",\n        resourceIds: [exampleResourceGroup.id],\n    },\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_action_group = azure.monitoring.ActionGroup(\"exampleActionGroup\",\n    resource_group_name=example_resource_group.name,\n    short_name=\"exampleactiongroup\")\nexample_action_rule_action_group = azure.monitoring.ActionRuleActionGroup(\"exampleActionRuleActionGroup\",\n    resource_group_name=example_resource_group.name,\n    action_group_id=example_action_group.id,\n    scope=azure.monitoring.ActionRuleActionGroupScopeArgs(\n        type=\"ResourceGroup\",\n        resource_ids=[example_resource_group.id],\n    ),\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleActionGroup = new Azure.Monitoring.ActionGroup(\"exampleActionGroup\", new Azure.Monitoring.ActionGroupArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ShortName = \"exampleactiongroup\",\n        });\n        var exampleActionRuleActionGroup = new Azure.Monitoring.ActionRuleActionGroup(\"exampleActionRuleActionGroup\", new Azure.Monitoring.ActionRuleActionGroupArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ActionGroupId = exampleActionGroup.Id,\n            Scope = new Azure.Monitoring.Inputs.ActionRuleActionGroupScopeArgs\n            {\n                Type = \"ResourceGroup\",\n                ResourceIds = \n                {\n                    exampleResourceGroup.Id,\n                },\n            },\n            Tags = \n            {\n                { \"foo\", \"bar\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleActionGroup, err := monitoring.NewActionGroup(ctx, \"exampleActionGroup\", \u0026monitoring.ActionGroupArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tShortName:         pulumi.String(\"exampleactiongroup\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.NewActionRuleActionGroup(ctx, \"exampleActionRuleActionGroup\", \u0026monitoring.ActionRuleActionGroupArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tActionGroupId:     exampleActionGroup.ID(),\n\t\t\tScope: \u0026monitoring.ActionRuleActionGroupScopeArgs{\n\t\t\t\tType: pulumi.String(\"ResourceGroup\"),\n\t\t\t\tResourceIds: pulumi.StringArray{\n\t\t\t\t\texampleResourceGroup.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMonitor Action Rule can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:monitoring/actionRuleActionGroup:ActionRuleActionGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AlertsManagement/actionRules/actionRule1\n```\n\n ",
      "inputProperties": {
        "actionGroupId": {
          "description": "Specifies the resource id of monitor action group.\n",
          "type": "string"
        },
        "condition": {
          "$ref": "#/types/azure:monitoring/ActionRuleActionGroupCondition:ActionRuleActionGroupCondition",
          "description": "A `condition` block as defined below.\n"
        },
        "description": {
          "description": "Specifies a description for the Action Rule.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is the Action Rule enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Monitor Action Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the resource group in which the Monitor Action Rule should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "$ref": "#/types/azure:monitoring/ActionRuleActionGroupScope:ActionRuleActionGroupScope",
          "description": "A `scope` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "actionGroupId": {
          "description": "Specifies the resource id of monitor action group.\n",
          "type": "string"
        },
        "condition": {
          "$ref": "#/types/azure:monitoring/ActionRuleActionGroupCondition:ActionRuleActionGroupCondition",
          "description": "A `condition` block as defined below.\n"
        },
        "description": {
          "description": "Specifies a description for the Action Rule.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is the Action Rule enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Monitor Action Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the resource group in which the Monitor Action Rule should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "$ref": "#/types/azure:monitoring/ActionRuleActionGroupScope:ActionRuleActionGroupScope",
          "description": "A `scope` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "actionGroupId",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "actionGroupId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ActionRuleActionGroup resources.\n",
        "properties": {
          "actionGroupId": {
            "description": "Specifies the resource id of monitor action group.\n",
            "type": "string"
          },
          "condition": {
            "$ref": "#/types/azure:monitoring/ActionRuleActionGroupCondition:ActionRuleActionGroupCondition",
            "description": "A `condition` block as defined below.\n"
          },
          "description": {
            "description": "Specifies a description for the Action Rule.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Is the Action Rule enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the Monitor Action Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group in which the Monitor Action Rule should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scope": {
            "$ref": "#/types/azure:monitoring/ActionRuleActionGroupScope:ActionRuleActionGroupScope",
            "description": "A `scope` block as defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:monitoring/actionRuleSuppression:ActionRuleSuppression": {
      "description": "Manages an Monitor Action Rule which type is suppression.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleActionRuleSuppression = new azure.monitoring.ActionRuleSuppression(\"exampleActionRuleSuppression\", {\n    resourceGroupName: exampleResourceGroup.name,\n    scope: {\n        type: \"ResourceGroup\",\n        resourceIds: [exampleResourceGroup.id],\n    },\n    suppression: {\n        recurrenceType: \"Weekly\",\n        schedule: {\n            startDateUtc: \"2019-01-01T01:02:03Z\",\n            endDateUtc: \"2019-01-03T15:02:07Z\",\n            recurrenceWeeklies: [\n                \"Sunday\",\n                \"Monday\",\n                \"Friday\",\n                \"Saturday\",\n            ],\n        },\n    },\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_action_rule_suppression = azure.monitoring.ActionRuleSuppression(\"exampleActionRuleSuppression\",\n    resource_group_name=example_resource_group.name,\n    scope=azure.monitoring.ActionRuleSuppressionScopeArgs(\n        type=\"ResourceGroup\",\n        resource_ids=[example_resource_group.id],\n    ),\n    suppression=azure.monitoring.ActionRuleSuppressionSuppressionArgs(\n        recurrence_type=\"Weekly\",\n        schedule=azure.monitoring.ActionRuleSuppressionSuppressionScheduleArgs(\n            start_date_utc=\"2019-01-01T01:02:03Z\",\n            end_date_utc=\"2019-01-03T15:02:07Z\",\n            recurrence_weeklies=[\n                \"Sunday\",\n                \"Monday\",\n                \"Friday\",\n                \"Saturday\",\n            ],\n        ),\n    ),\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleActionRuleSuppression = new Azure.Monitoring.ActionRuleSuppression(\"exampleActionRuleSuppression\", new Azure.Monitoring.ActionRuleSuppressionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Scope = new Azure.Monitoring.Inputs.ActionRuleSuppressionScopeArgs\n            {\n                Type = \"ResourceGroup\",\n                ResourceIds = \n                {\n                    exampleResourceGroup.Id,\n                },\n            },\n            Suppression = new Azure.Monitoring.Inputs.ActionRuleSuppressionSuppressionArgs\n            {\n                RecurrenceType = \"Weekly\",\n                Schedule = new Azure.Monitoring.Inputs.ActionRuleSuppressionSuppressionScheduleArgs\n                {\n                    StartDateUtc = \"2019-01-01T01:02:03Z\",\n                    EndDateUtc = \"2019-01-03T15:02:07Z\",\n                    RecurrenceWeeklies = \n                    {\n                        \"Sunday\",\n                        \"Monday\",\n                        \"Friday\",\n                        \"Saturday\",\n                    },\n                },\n            },\n            Tags = \n            {\n                { \"foo\", \"bar\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.NewActionRuleSuppression(ctx, \"exampleActionRuleSuppression\", \u0026monitoring.ActionRuleSuppressionArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tScope: \u0026monitoring.ActionRuleSuppressionScopeArgs{\n\t\t\t\tType: pulumi.String(\"ResourceGroup\"),\n\t\t\t\tResourceIds: pulumi.StringArray{\n\t\t\t\t\texampleResourceGroup.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSuppression: \u0026monitoring.ActionRuleSuppressionSuppressionArgs{\n\t\t\t\tRecurrenceType: pulumi.String(\"Weekly\"),\n\t\t\t\tSchedule: \u0026monitoring.ActionRuleSuppressionSuppressionScheduleArgs{\n\t\t\t\t\tStartDateUtc: pulumi.String(\"2019-01-01T01:02:03Z\"),\n\t\t\t\t\tEndDateUtc:   pulumi.String(\"2019-01-03T15:02:07Z\"),\n\t\t\t\t\tRecurrenceWeeklies: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Sunday\"),\n\t\t\t\t\t\tpulumi.String(\"Monday\"),\n\t\t\t\t\t\tpulumi.String(\"Friday\"),\n\t\t\t\t\t\tpulumi.String(\"Saturday\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMonitor Action Rule can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:monitoring/actionRuleSuppression:ActionRuleSuppression example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AlertsManagement/actionRules/actionRule1\n```\n\n ",
      "inputProperties": {
        "condition": {
          "$ref": "#/types/azure:monitoring/ActionRuleSuppressionCondition:ActionRuleSuppressionCondition",
          "description": "A `condition` block as defined below.\n"
        },
        "description": {
          "description": "Specifies a description for the Action Rule.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is the Action Rule enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Monitor Action Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the resource group in which the Monitor Action Rule should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "$ref": "#/types/azure:monitoring/ActionRuleSuppressionScope:ActionRuleSuppressionScope",
          "description": "A `scope` block as defined below.\n"
        },
        "suppression": {
          "$ref": "#/types/azure:monitoring/ActionRuleSuppressionSuppression:ActionRuleSuppressionSuppression",
          "description": "A `suppression` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "condition": {
          "$ref": "#/types/azure:monitoring/ActionRuleSuppressionCondition:ActionRuleSuppressionCondition",
          "description": "A `condition` block as defined below.\n"
        },
        "description": {
          "description": "Specifies a description for the Action Rule.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is the Action Rule enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Monitor Action Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the resource group in which the Monitor Action Rule should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "$ref": "#/types/azure:monitoring/ActionRuleSuppressionScope:ActionRuleSuppressionScope",
          "description": "A `scope` block as defined below.\n"
        },
        "suppression": {
          "$ref": "#/types/azure:monitoring/ActionRuleSuppressionSuppression:ActionRuleSuppressionSuppression",
          "description": "A `suppression` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "suppression"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "suppression"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ActionRuleSuppression resources.\n",
        "properties": {
          "condition": {
            "$ref": "#/types/azure:monitoring/ActionRuleSuppressionCondition:ActionRuleSuppressionCondition",
            "description": "A `condition` block as defined below.\n"
          },
          "description": {
            "description": "Specifies a description for the Action Rule.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Is the Action Rule enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the Monitor Action Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group in which the Monitor Action Rule should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scope": {
            "$ref": "#/types/azure:monitoring/ActionRuleSuppressionScope:ActionRuleSuppressionScope",
            "description": "A `scope` block as defined below.\n"
          },
          "suppression": {
            "$ref": "#/types/azure:monitoring/ActionRuleSuppressionSuppression:ActionRuleSuppressionSuppression",
            "description": "A `suppression` block as defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:monitoring/activityLogAlert:ActivityLogAlert": {
      "description": "Manages an Activity Log Alert within Azure Monitor.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst mainResourceGroup = new azure.core.ResourceGroup(\"mainResourceGroup\", {location: \"West Europe\"});\nconst mainActionGroup = new azure.monitoring.ActionGroup(\"mainActionGroup\", {\n    resourceGroupName: mainResourceGroup.name,\n    shortName: \"p0action\",\n    webhookReceivers: [{\n        name: \"callmyapi\",\n        serviceUri: \"http://example.com/alert\",\n    }],\n});\nconst toMonitor = new azure.storage.Account(\"toMonitor\", {\n    resourceGroupName: mainResourceGroup.name,\n    location: mainResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst mainActivityLogAlert = new azure.monitoring.ActivityLogAlert(\"mainActivityLogAlert\", {\n    resourceGroupName: mainResourceGroup.name,\n    scopes: [mainResourceGroup.id],\n    description: \"This alert will monitor a specific storage account updates.\",\n    criteria: {\n        resourceId: toMonitor.id,\n        operationName: \"Microsoft.Storage/storageAccounts/write\",\n        category: \"Recommendation\",\n    },\n    actions: [{\n        actionGroupId: mainActionGroup.id,\n        webhookProperties: {\n            from: \"source\",\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nmain_resource_group = azure.core.ResourceGroup(\"mainResourceGroup\", location=\"West Europe\")\nmain_action_group = azure.monitoring.ActionGroup(\"mainActionGroup\",\n    resource_group_name=main_resource_group.name,\n    short_name=\"p0action\",\n    webhook_receivers=[azure.monitoring.ActionGroupWebhookReceiverArgs(\n        name=\"callmyapi\",\n        service_uri=\"http://example.com/alert\",\n    )])\nto_monitor = azure.storage.Account(\"toMonitor\",\n    resource_group_name=main_resource_group.name,\n    location=main_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nmain_activity_log_alert = azure.monitoring.ActivityLogAlert(\"mainActivityLogAlert\",\n    resource_group_name=main_resource_group.name,\n    scopes=[main_resource_group.id],\n    description=\"This alert will monitor a specific storage account updates.\",\n    criteria=azure.monitoring.ActivityLogAlertCriteriaArgs(\n        resource_id=to_monitor.id,\n        operation_name=\"Microsoft.Storage/storageAccounts/write\",\n        category=\"Recommendation\",\n    ),\n    actions=[azure.monitoring.ActivityLogAlertActionArgs(\n        action_group_id=main_action_group.id,\n        webhook_properties={\n            \"from\": \"source\",\n        },\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var mainResourceGroup = new Azure.Core.ResourceGroup(\"mainResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var mainActionGroup = new Azure.Monitoring.ActionGroup(\"mainActionGroup\", new Azure.Monitoring.ActionGroupArgs\n        {\n            ResourceGroupName = mainResourceGroup.Name,\n            ShortName = \"p0action\",\n            WebhookReceivers = \n            {\n                new Azure.Monitoring.Inputs.ActionGroupWebhookReceiverArgs\n                {\n                    Name = \"callmyapi\",\n                    ServiceUri = \"http://example.com/alert\",\n                },\n            },\n        });\n        var toMonitor = new Azure.Storage.Account(\"toMonitor\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = mainResourceGroup.Name,\n            Location = mainResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var mainActivityLogAlert = new Azure.Monitoring.ActivityLogAlert(\"mainActivityLogAlert\", new Azure.Monitoring.ActivityLogAlertArgs\n        {\n            ResourceGroupName = mainResourceGroup.Name,\n            Scopes = \n            {\n                mainResourceGroup.Id,\n            },\n            Description = \"This alert will monitor a specific storage account updates.\",\n            Criteria = new Azure.Monitoring.Inputs.ActivityLogAlertCriteriaArgs\n            {\n                ResourceId = toMonitor.Id,\n                OperationName = \"Microsoft.Storage/storageAccounts/write\",\n                Category = \"Recommendation\",\n            },\n            Actions = \n            {\n                new Azure.Monitoring.Inputs.ActivityLogAlertActionArgs\n                {\n                    ActionGroupId = mainActionGroup.Id,\n                    WebhookProperties = \n                    {\n                        { \"from\", \"source\" },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainResourceGroup, err := core.NewResourceGroup(ctx, \"mainResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainActionGroup, err := monitoring.NewActionGroup(ctx, \"mainActionGroup\", \u0026monitoring.ActionGroupArgs{\n\t\t\tResourceGroupName: mainResourceGroup.Name,\n\t\t\tShortName:         pulumi.String(\"p0action\"),\n\t\t\tWebhookReceivers: monitoring.ActionGroupWebhookReceiverArray{\n\t\t\t\t\u0026monitoring.ActionGroupWebhookReceiverArgs{\n\t\t\t\t\tName:       pulumi.String(\"callmyapi\"),\n\t\t\t\t\tServiceUri: pulumi.String(\"http://example.com/alert\"),\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\ttoMonitor, err := storage.NewAccount(ctx, \"toMonitor\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      mainResourceGroup.Name,\n\t\t\tLocation:               mainResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.NewActivityLogAlert(ctx, \"mainActivityLogAlert\", \u0026monitoring.ActivityLogAlertArgs{\n\t\t\tResourceGroupName: mainResourceGroup.Name,\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tmainResourceGroup.ID(),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"This alert will monitor a specific storage account updates.\"),\n\t\t\tCriteria: \u0026monitoring.ActivityLogAlertCriteriaArgs{\n\t\t\t\tResourceId:    toMonitor.ID(),\n\t\t\t\tOperationName: pulumi.String(\"Microsoft.Storage/storageAccounts/write\"),\n\t\t\t\tCategory:      pulumi.String(\"Recommendation\"),\n\t\t\t},\n\t\t\tActions: monitoring.ActivityLogAlertActionArray{\n\t\t\t\t\u0026monitoring.ActivityLogAlertActionArgs{\n\t\t\t\t\tActionGroupId: mainActionGroup.ID(),\n\t\t\t\t\tWebhookProperties: pulumi.StringMap{\n\t\t\t\t\t\t\"from\": pulumi.String(\"source\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nActivity log alerts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:monitoring/activityLogAlert:ActivityLogAlert example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/microsoft.insights/activityLogAlerts/myalertname\n```\n\n ",
      "inputProperties": {
        "actions": {
          "description": "One or more `action` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActivityLogAlertAction:ActivityLogAlertAction"
          },
          "type": "array"
        },
        "criteria": {
          "$ref": "#/types/azure:monitoring/ActivityLogAlertCriteria:ActivityLogAlertCriteria",
          "description": "A `criteria` block as defined below.\n"
        },
        "description": {
          "description": "The description of this activity log alert.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Should this Activity Log Alert be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the activity log alert. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the activity log alert instance.\n",
          "type": "string"
        },
        "scopes": {
          "description": "The Scope at which the Activity Log should be applied, for example a the Resource ID of a Subscription or a Resource (such as a Storage Account).\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "actions": {
          "description": "One or more `action` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActivityLogAlertAction:ActivityLogAlertAction"
          },
          "type": "array"
        },
        "criteria": {
          "$ref": "#/types/azure:monitoring/ActivityLogAlertCriteria:ActivityLogAlertCriteria",
          "description": "A `criteria` block as defined below.\n"
        },
        "description": {
          "description": "The description of this activity log alert.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Should this Activity Log Alert be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the activity log alert. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the activity log alert instance.\n",
          "type": "string"
        },
        "scopes": {
          "description": "The Scope at which the Activity Log should be applied, for example a the Resource ID of a Subscription or a Resource (such as a Storage Account).\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "criteria",
        "name",
        "resourceGroupName",
        "scopes"
      ],
      "requiredInputs": [
        "criteria",
        "resourceGroupName",
        "scopes"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ActivityLogAlert resources.\n",
        "properties": {
          "actions": {
            "description": "One or more `action` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/ActivityLogAlertAction:ActivityLogAlertAction"
            },
            "type": "array"
          },
          "criteria": {
            "$ref": "#/types/azure:monitoring/ActivityLogAlertCriteria:ActivityLogAlertCriteria",
            "description": "A `criteria` block as defined below.\n"
          },
          "description": {
            "description": "The description of this activity log alert.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Should this Activity Log Alert be enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name of the activity log alert. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the activity log alert instance.\n",
            "type": "string"
          },
          "scopes": {
            "description": "The Scope at which the Activity Log should be applied, for example a the Resource ID of a Subscription or a Resource (such as a Storage Account).\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:monitoring/autoscaleSetting:AutoscaleSetting": {
      "description": "Manages a AutoScale Setting which can be applied to Virtual Machine Scale Sets, App Services and other scalable resources.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleScaleSet = new azure.compute.ScaleSet(\"exampleScaleSet\", {});\n// ...\nconst exampleAutoscaleSetting = new azure.monitoring.AutoscaleSetting(\"exampleAutoscaleSetting\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    targetResourceId: exampleScaleSet.id,\n    profiles: [{\n        name: \"defaultProfile\",\n        capacity: {\n            \"default\": 1,\n            minimum: 1,\n            maximum: 10,\n        },\n        rules: [\n            {\n                metricTrigger: {\n                    metricName: \"Percentage CPU\",\n                    metricResourceId: exampleScaleSet.id,\n                    timeGrain: \"PT1M\",\n                    statistic: \"Average\",\n                    timeWindow: \"PT5M\",\n                    timeAggregation: \"Average\",\n                    operator: \"GreaterThan\",\n                    threshold: 75,\n                    metricNamespace: \"microsoft.compute/virtualmachinescalesets\",\n                    dimensions: [{\n                        name: \"AppName\",\n                        operator: \"Equals\",\n                        values: [\"App1\"],\n                    }],\n                },\n                scaleAction: {\n                    direction: \"Increase\",\n                    type: \"ChangeCount\",\n                    value: \"1\",\n                    cooldown: \"PT1M\",\n                },\n            },\n            {\n                metricTrigger: {\n                    metricName: \"Percentage CPU\",\n                    metricResourceId: exampleScaleSet.id,\n                    timeGrain: \"PT1M\",\n                    statistic: \"Average\",\n                    timeWindow: \"PT5M\",\n                    timeAggregation: \"Average\",\n                    operator: \"LessThan\",\n                    threshold: 25,\n                },\n                scaleAction: {\n                    direction: \"Decrease\",\n                    type: \"ChangeCount\",\n                    value: \"1\",\n                    cooldown: \"PT1M\",\n                },\n            },\n        ],\n    }],\n    notification: {\n        email: {\n            sendToSubscriptionAdministrator: true,\n            sendToSubscriptionCoAdministrator: true,\n            customEmails: [\"admin@contoso.com\"],\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_scale_set = azure.compute.ScaleSet(\"exampleScaleSet\")\n# ...\nexample_autoscale_setting = azure.monitoring.AutoscaleSetting(\"exampleAutoscaleSetting\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    target_resource_id=example_scale_set.id,\n    profiles=[azure.monitoring.AutoscaleSettingProfileArgs(\n        name=\"defaultProfile\",\n        capacity=azure.monitoring.AutoscaleSettingProfileCapacityArgs(\n            default=1,\n            minimum=1,\n            maximum=10,\n        ),\n        rules=[\n            azure.monitoring.AutoscaleSettingProfileRuleArgs(\n                metric_trigger=azure.monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs(\n                    metric_name=\"Percentage CPU\",\n                    metric_resource_id=example_scale_set.id,\n                    time_grain=\"PT1M\",\n                    statistic=\"Average\",\n                    time_window=\"PT5M\",\n                    time_aggregation=\"Average\",\n                    operator=\"GreaterThan\",\n                    threshold=75,\n                    metric_namespace=\"microsoft.compute/virtualmachinescalesets\",\n                    dimensions=[azure.monitoring.AutoscaleSettingProfileRuleMetricTriggerDimensionArgs(\n                        name=\"AppName\",\n                        operator=\"Equals\",\n                        values=[\"App1\"],\n                    )],\n                ),\n                scale_action=azure.monitoring.AutoscaleSettingProfileRuleScaleActionArgs(\n                    direction=\"Increase\",\n                    type=\"ChangeCount\",\n                    value=1,\n                    cooldown=\"PT1M\",\n                ),\n            ),\n            azure.monitoring.AutoscaleSettingProfileRuleArgs(\n                metric_trigger=azure.monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs(\n                    metric_name=\"Percentage CPU\",\n                    metric_resource_id=example_scale_set.id,\n                    time_grain=\"PT1M\",\n                    statistic=\"Average\",\n                    time_window=\"PT5M\",\n                    time_aggregation=\"Average\",\n                    operator=\"LessThan\",\n                    threshold=25,\n                ),\n                scale_action=azure.monitoring.AutoscaleSettingProfileRuleScaleActionArgs(\n                    direction=\"Decrease\",\n                    type=\"ChangeCount\",\n                    value=1,\n                    cooldown=\"PT1M\",\n                ),\n            ),\n        ],\n    )],\n    notification=azure.monitoring.AutoscaleSettingNotificationArgs(\n        email=azure.monitoring.AutoscaleSettingNotificationEmailArgs(\n            send_to_subscription_administrator=True,\n            send_to_subscription_co_administrator=True,\n            custom_emails=[\"admin@contoso.com\"],\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleScaleSet = new Azure.Compute.ScaleSet(\"exampleScaleSet\", new Azure.Compute.ScaleSetArgs\n        {\n        });\n        // ...\n        var exampleAutoscaleSetting = new Azure.Monitoring.AutoscaleSetting(\"exampleAutoscaleSetting\", new Azure.Monitoring.AutoscaleSettingArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            TargetResourceId = exampleScaleSet.Id,\n            Profiles = \n            {\n                new Azure.Monitoring.Inputs.AutoscaleSettingProfileArgs\n                {\n                    Name = \"defaultProfile\",\n                    Capacity = new Azure.Monitoring.Inputs.AutoscaleSettingProfileCapacityArgs\n                    {\n                        Default = 1,\n                        Minimum = 1,\n                        Maximum = 10,\n                    },\n                    Rules = \n                    {\n                        new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleArgs\n                        {\n                            MetricTrigger = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerArgs\n                            {\n                                MetricName = \"Percentage CPU\",\n                                MetricResourceId = exampleScaleSet.Id,\n                                TimeGrain = \"PT1M\",\n                                Statistic = \"Average\",\n                                TimeWindow = \"PT5M\",\n                                TimeAggregation = \"Average\",\n                                Operator = \"GreaterThan\",\n                                Threshold = 75,\n                                MetricNamespace = \"microsoft.compute/virtualmachinescalesets\",\n                                Dimensions = \n                                {\n                                    new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerDimensionArgs\n                                    {\n                                        Name = \"AppName\",\n                                        Operator = \"Equals\",\n                                        Values = \n                                        {\n                                            \"App1\",\n                                        },\n                                    },\n                                },\n                            },\n                            ScaleAction = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleScaleActionArgs\n                            {\n                                Direction = \"Increase\",\n                                Type = \"ChangeCount\",\n                                Value = 1,\n                                Cooldown = \"PT1M\",\n                            },\n                        },\n                        new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleArgs\n                        {\n                            MetricTrigger = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerArgs\n                            {\n                                MetricName = \"Percentage CPU\",\n                                MetricResourceId = exampleScaleSet.Id,\n                                TimeGrain = \"PT1M\",\n                                Statistic = \"Average\",\n                                TimeWindow = \"PT5M\",\n                                TimeAggregation = \"Average\",\n                                Operator = \"LessThan\",\n                                Threshold = 25,\n                            },\n                            ScaleAction = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleScaleActionArgs\n                            {\n                                Direction = \"Decrease\",\n                                Type = \"ChangeCount\",\n                                Value = 1,\n                                Cooldown = \"PT1M\",\n                            },\n                        },\n                    },\n                },\n            },\n            Notification = new Azure.Monitoring.Inputs.AutoscaleSettingNotificationArgs\n            {\n                Email = new Azure.Monitoring.Inputs.AutoscaleSettingNotificationEmailArgs\n                {\n                    SendToSubscriptionAdministrator = true,\n                    SendToSubscriptionCoAdministrator = true,\n                    CustomEmails = \n                    {\n                        \"admin@contoso.com\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleScaleSet, err := compute.NewScaleSet(ctx, \"exampleScaleSet\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.NewAutoscaleSetting(ctx, \"exampleAutoscaleSetting\", \u0026monitoring.AutoscaleSettingArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tTargetResourceId:  exampleScaleSet.ID(),\n\t\t\tProfiles: monitoring.AutoscaleSettingProfileArray{\n\t\t\t\t\u0026monitoring.AutoscaleSettingProfileArgs{\n\t\t\t\t\tName: pulumi.String(\"defaultProfile\"),\n\t\t\t\t\tCapacity: \u0026monitoring.AutoscaleSettingProfileCapacityArgs{\n\t\t\t\t\t\tDefault: pulumi.Int(1),\n\t\t\t\t\t\tMinimum: pulumi.Int(1),\n\t\t\t\t\t\tMaximum: pulumi.Int(10),\n\t\t\t\t\t},\n\t\t\t\t\tRules: monitoring.AutoscaleSettingProfileRuleArray{\n\t\t\t\t\t\t\u0026monitoring.AutoscaleSettingProfileRuleArgs{\n\t\t\t\t\t\t\tMetricTrigger: \u0026monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs{\n\t\t\t\t\t\t\t\tMetricName:       pulumi.String(\"Percentage CPU\"),\n\t\t\t\t\t\t\t\tMetricResourceId: exampleScaleSet.ID(),\n\t\t\t\t\t\t\t\tTimeGrain:        pulumi.String(\"PT1M\"),\n\t\t\t\t\t\t\t\tStatistic:        pulumi.String(\"Average\"),\n\t\t\t\t\t\t\t\tTimeWindow:       pulumi.String(\"PT5M\"),\n\t\t\t\t\t\t\t\tTimeAggregation:  pulumi.String(\"Average\"),\n\t\t\t\t\t\t\t\tOperator:         pulumi.String(\"GreaterThan\"),\n\t\t\t\t\t\t\t\tThreshold:        pulumi.Float64(75),\n\t\t\t\t\t\t\t\tMetricNamespace:  pulumi.String(\"microsoft.compute/virtualmachinescalesets\"),\n\t\t\t\t\t\t\t\tDimensions: monitoring.AutoscaleSettingProfileRuleMetricTriggerDimensionArray{\n\t\t\t\t\t\t\t\t\t\u0026monitoring.AutoscaleSettingProfileRuleMetricTriggerDimensionArgs{\n\t\t\t\t\t\t\t\t\t\tName:     pulumi.String(\"AppName\"),\n\t\t\t\t\t\t\t\t\t\tOperator: pulumi.String(\"Equals\"),\n\t\t\t\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.String(\"App1\"),\n\t\t\t\t\t\t\t\t\t\t},\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\tScaleAction: \u0026monitoring.AutoscaleSettingProfileRuleScaleActionArgs{\n\t\t\t\t\t\t\t\tDirection: pulumi.String(\"Increase\"),\n\t\t\t\t\t\t\t\tType:      pulumi.String(\"ChangeCount\"),\n\t\t\t\t\t\t\t\tValue:     pulumi.Int(1),\n\t\t\t\t\t\t\t\tCooldown:  pulumi.String(\"PT1M\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026monitoring.AutoscaleSettingProfileRuleArgs{\n\t\t\t\t\t\t\tMetricTrigger: \u0026monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs{\n\t\t\t\t\t\t\t\tMetricName:       pulumi.String(\"Percentage CPU\"),\n\t\t\t\t\t\t\t\tMetricResourceId: exampleScaleSet.ID(),\n\t\t\t\t\t\t\t\tTimeGrain:        pulumi.String(\"PT1M\"),\n\t\t\t\t\t\t\t\tStatistic:        pulumi.String(\"Average\"),\n\t\t\t\t\t\t\t\tTimeWindow:       pulumi.String(\"PT5M\"),\n\t\t\t\t\t\t\t\tTimeAggregation:  pulumi.String(\"Average\"),\n\t\t\t\t\t\t\t\tOperator:         pulumi.String(\"LessThan\"),\n\t\t\t\t\t\t\t\tThreshold:        pulumi.Float64(25),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tScaleAction: \u0026monitoring.AutoscaleSettingProfileRuleScaleActionArgs{\n\t\t\t\t\t\t\t\tDirection: pulumi.String(\"Decrease\"),\n\t\t\t\t\t\t\t\tType:      pulumi.String(\"ChangeCount\"),\n\t\t\t\t\t\t\t\tValue:     pulumi.Int(1),\n\t\t\t\t\t\t\t\tCooldown:  pulumi.String(\"PT1M\"),\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\tNotification: \u0026monitoring.AutoscaleSettingNotificationArgs{\n\t\t\t\tEmail: \u0026monitoring.AutoscaleSettingNotificationEmailArgs{\n\t\t\t\t\tSendToSubscriptionAdministrator:   pulumi.Bool(true),\n\t\t\t\t\tSendToSubscriptionCoAdministrator: pulumi.Bool(true),\n\t\t\t\t\tCustomEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"admin@contoso.com\"),\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\n{{% /example %}}\n{{% example %}}\n### Repeating On Weekends)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleScaleSet = new azure.compute.ScaleSet(\"exampleScaleSet\", {});\n// ...\nconst exampleAutoscaleSetting = new azure.monitoring.AutoscaleSetting(\"exampleAutoscaleSetting\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    targetResourceId: exampleScaleSet.id,\n    profiles: [{\n        name: \"Weekends\",\n        capacity: {\n            \"default\": 1,\n            minimum: 1,\n            maximum: 10,\n        },\n        rules: [\n            {\n                metricTrigger: {\n                    metricName: \"Percentage CPU\",\n                    metricResourceId: exampleScaleSet.id,\n                    timeGrain: \"PT1M\",\n                    statistic: \"Average\",\n                    timeWindow: \"PT5M\",\n                    timeAggregation: \"Average\",\n                    operator: \"GreaterThan\",\n                    threshold: 90,\n                },\n                scaleAction: {\n                    direction: \"Increase\",\n                    type: \"ChangeCount\",\n                    value: \"2\",\n                    cooldown: \"PT1M\",\n                },\n            },\n            {\n                metricTrigger: {\n                    metricName: \"Percentage CPU\",\n                    metricResourceId: exampleScaleSet.id,\n                    timeGrain: \"PT1M\",\n                    statistic: \"Average\",\n                    timeWindow: \"PT5M\",\n                    timeAggregation: \"Average\",\n                    operator: \"LessThan\",\n                    threshold: 10,\n                },\n                scaleAction: {\n                    direction: \"Decrease\",\n                    type: \"ChangeCount\",\n                    value: \"2\",\n                    cooldown: \"PT1M\",\n                },\n            },\n        ],\n        recurrence: {\n            frequency: \"Week\",\n            timezone: \"Pacific Standard Time\",\n            days: [\n                \"Saturday\",\n                \"Sunday\",\n            ],\n            hours: [12],\n            minutes: [0],\n        },\n    }],\n    notification: {\n        email: {\n            sendToSubscriptionAdministrator: true,\n            sendToSubscriptionCoAdministrator: true,\n            customEmails: [\"admin@contoso.com\"],\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_scale_set = azure.compute.ScaleSet(\"exampleScaleSet\")\n# ...\nexample_autoscale_setting = azure.monitoring.AutoscaleSetting(\"exampleAutoscaleSetting\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    target_resource_id=example_scale_set.id,\n    profiles=[azure.monitoring.AutoscaleSettingProfileArgs(\n        name=\"Weekends\",\n        capacity=azure.monitoring.AutoscaleSettingProfileCapacityArgs(\n            default=1,\n            minimum=1,\n            maximum=10,\n        ),\n        rules=[\n            azure.monitoring.AutoscaleSettingProfileRuleArgs(\n                metric_trigger=azure.monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs(\n                    metric_name=\"Percentage CPU\",\n                    metric_resource_id=example_scale_set.id,\n                    time_grain=\"PT1M\",\n                    statistic=\"Average\",\n                    time_window=\"PT5M\",\n                    time_aggregation=\"Average\",\n                    operator=\"GreaterThan\",\n                    threshold=90,\n                ),\n                scale_action=azure.monitoring.AutoscaleSettingProfileRuleScaleActionArgs(\n                    direction=\"Increase\",\n                    type=\"ChangeCount\",\n                    value=2,\n                    cooldown=\"PT1M\",\n                ),\n            ),\n            azure.monitoring.AutoscaleSettingProfileRuleArgs(\n                metric_trigger=azure.monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs(\n                    metric_name=\"Percentage CPU\",\n                    metric_resource_id=example_scale_set.id,\n                    time_grain=\"PT1M\",\n                    statistic=\"Average\",\n                    time_window=\"PT5M\",\n                    time_aggregation=\"Average\",\n                    operator=\"LessThan\",\n                    threshold=10,\n                ),\n                scale_action=azure.monitoring.AutoscaleSettingProfileRuleScaleActionArgs(\n                    direction=\"Decrease\",\n                    type=\"ChangeCount\",\n                    value=2,\n                    cooldown=\"PT1M\",\n                ),\n            ),\n        ],\n        recurrence=azure.monitoring.AutoscaleSettingProfileRecurrenceArgs(\n            frequency=\"Week\",\n            timezone=\"Pacific Standard Time\",\n            days=[\n                \"Saturday\",\n                \"Sunday\",\n            ],\n            hours=[12],\n            minutes=[0],\n        ),\n    )],\n    notification=azure.monitoring.AutoscaleSettingNotificationArgs(\n        email=azure.monitoring.AutoscaleSettingNotificationEmailArgs(\n            send_to_subscription_administrator=True,\n            send_to_subscription_co_administrator=True,\n            custom_emails=[\"admin@contoso.com\"],\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleScaleSet = new Azure.Compute.ScaleSet(\"exampleScaleSet\", new Azure.Compute.ScaleSetArgs\n        {\n        });\n        // ...\n        var exampleAutoscaleSetting = new Azure.Monitoring.AutoscaleSetting(\"exampleAutoscaleSetting\", new Azure.Monitoring.AutoscaleSettingArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            TargetResourceId = exampleScaleSet.Id,\n            Profiles = \n            {\n                new Azure.Monitoring.Inputs.AutoscaleSettingProfileArgs\n                {\n                    Name = \"Weekends\",\n                    Capacity = new Azure.Monitoring.Inputs.AutoscaleSettingProfileCapacityArgs\n                    {\n                        Default = 1,\n                        Minimum = 1,\n                        Maximum = 10,\n                    },\n                    Rules = \n                    {\n                        new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleArgs\n                        {\n                            MetricTrigger = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerArgs\n                            {\n                                MetricName = \"Percentage CPU\",\n                                MetricResourceId = exampleScaleSet.Id,\n                                TimeGrain = \"PT1M\",\n                                Statistic = \"Average\",\n                                TimeWindow = \"PT5M\",\n                                TimeAggregation = \"Average\",\n                                Operator = \"GreaterThan\",\n                                Threshold = 90,\n                            },\n                            ScaleAction = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleScaleActionArgs\n                            {\n                                Direction = \"Increase\",\n                                Type = \"ChangeCount\",\n                                Value = 2,\n                                Cooldown = \"PT1M\",\n                            },\n                        },\n                        new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleArgs\n                        {\n                            MetricTrigger = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerArgs\n                            {\n                                MetricName = \"Percentage CPU\",\n                                MetricResourceId = exampleScaleSet.Id,\n                                TimeGrain = \"PT1M\",\n                                Statistic = \"Average\",\n                                TimeWindow = \"PT5M\",\n                                TimeAggregation = \"Average\",\n                                Operator = \"LessThan\",\n                                Threshold = 10,\n                            },\n                            ScaleAction = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleScaleActionArgs\n                            {\n                                Direction = \"Decrease\",\n                                Type = \"ChangeCount\",\n                                Value = 2,\n                                Cooldown = \"PT1M\",\n                            },\n                        },\n                    },\n                    Recurrence = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRecurrenceArgs\n                    {\n                        Frequency = \"Week\",\n                        Timezone = \"Pacific Standard Time\",\n                        Days = \n                        {\n                            \"Saturday\",\n                            \"Sunday\",\n                        },\n                        Hours = \n                        {\n                            12,\n                        },\n                        Minutes = \n                        {\n                            0,\n                        },\n                    },\n                },\n            },\n            Notification = new Azure.Monitoring.Inputs.AutoscaleSettingNotificationArgs\n            {\n                Email = new Azure.Monitoring.Inputs.AutoscaleSettingNotificationEmailArgs\n                {\n                    SendToSubscriptionAdministrator = true,\n                    SendToSubscriptionCoAdministrator = true,\n                    CustomEmails = \n                    {\n                        \"admin@contoso.com\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleScaleSet, err := compute.NewScaleSet(ctx, \"exampleScaleSet\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.NewAutoscaleSetting(ctx, \"exampleAutoscaleSetting\", \u0026monitoring.AutoscaleSettingArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tTargetResourceId:  exampleScaleSet.ID(),\n\t\t\tProfiles: monitoring.AutoscaleSettingProfileArray{\n\t\t\t\t\u0026monitoring.AutoscaleSettingProfileArgs{\n\t\t\t\t\tName: pulumi.String(\"Weekends\"),\n\t\t\t\t\tCapacity: \u0026monitoring.AutoscaleSettingProfileCapacityArgs{\n\t\t\t\t\t\tDefault: pulumi.Int(1),\n\t\t\t\t\t\tMinimum: pulumi.Int(1),\n\t\t\t\t\t\tMaximum: pulumi.Int(10),\n\t\t\t\t\t},\n\t\t\t\t\tRules: monitoring.AutoscaleSettingProfileRuleArray{\n\t\t\t\t\t\t\u0026monitoring.AutoscaleSettingProfileRuleArgs{\n\t\t\t\t\t\t\tMetricTrigger: \u0026monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs{\n\t\t\t\t\t\t\t\tMetricName:       pulumi.String(\"Percentage CPU\"),\n\t\t\t\t\t\t\t\tMetricResourceId: exampleScaleSet.ID(),\n\t\t\t\t\t\t\t\tTimeGrain:        pulumi.String(\"PT1M\"),\n\t\t\t\t\t\t\t\tStatistic:        pulumi.String(\"Average\"),\n\t\t\t\t\t\t\t\tTimeWindow:       pulumi.String(\"PT5M\"),\n\t\t\t\t\t\t\t\tTimeAggregation:  pulumi.String(\"Average\"),\n\t\t\t\t\t\t\t\tOperator:         pulumi.String(\"GreaterThan\"),\n\t\t\t\t\t\t\t\tThreshold:        pulumi.Float64(90),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tScaleAction: \u0026monitoring.AutoscaleSettingProfileRuleScaleActionArgs{\n\t\t\t\t\t\t\t\tDirection: pulumi.String(\"Increase\"),\n\t\t\t\t\t\t\t\tType:      pulumi.String(\"ChangeCount\"),\n\t\t\t\t\t\t\t\tValue:     pulumi.Int(2),\n\t\t\t\t\t\t\t\tCooldown:  pulumi.String(\"PT1M\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026monitoring.AutoscaleSettingProfileRuleArgs{\n\t\t\t\t\t\t\tMetricTrigger: \u0026monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs{\n\t\t\t\t\t\t\t\tMetricName:       pulumi.String(\"Percentage CPU\"),\n\t\t\t\t\t\t\t\tMetricResourceId: exampleScaleSet.ID(),\n\t\t\t\t\t\t\t\tTimeGrain:        pulumi.String(\"PT1M\"),\n\t\t\t\t\t\t\t\tStatistic:        pulumi.String(\"Average\"),\n\t\t\t\t\t\t\t\tTimeWindow:       pulumi.String(\"PT5M\"),\n\t\t\t\t\t\t\t\tTimeAggregation:  pulumi.String(\"Average\"),\n\t\t\t\t\t\t\t\tOperator:         pulumi.String(\"LessThan\"),\n\t\t\t\t\t\t\t\tThreshold:        pulumi.Float64(10),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tScaleAction: \u0026monitoring.AutoscaleSettingProfileRuleScaleActionArgs{\n\t\t\t\t\t\t\t\tDirection: pulumi.String(\"Decrease\"),\n\t\t\t\t\t\t\t\tType:      pulumi.String(\"ChangeCount\"),\n\t\t\t\t\t\t\t\tValue:     pulumi.Int(2),\n\t\t\t\t\t\t\t\tCooldown:  pulumi.String(\"PT1M\"),\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\tRecurrence: \u0026monitoring.AutoscaleSettingProfileRecurrenceArgs{\n\t\t\t\t\t\tFrequency: \"Week\",\n\t\t\t\t\t\tTimezone:  pulumi.String(\"Pacific Standard Time\"),\n\t\t\t\t\t\tDays: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Saturday\"),\n\t\t\t\t\t\t\tpulumi.String(\"Sunday\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tHours: pulumi.Int{\n\t\t\t\t\t\t\t12,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tMinutes: pulumi.Int{\n\t\t\t\t\t\t\t0,\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\tNotification: \u0026monitoring.AutoscaleSettingNotificationArgs{\n\t\t\t\tEmail: \u0026monitoring.AutoscaleSettingNotificationEmailArgs{\n\t\t\t\t\tSendToSubscriptionAdministrator:   pulumi.Bool(true),\n\t\t\t\t\tSendToSubscriptionCoAdministrator: pulumi.Bool(true),\n\t\t\t\t\tCustomEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"admin@contoso.com\"),\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\n{{% /example %}}\n{{% example %}}\n### For Fixed Dates)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleScaleSet = new azure.compute.ScaleSet(\"exampleScaleSet\", {});\n// ...\nconst exampleAutoscaleSetting = new azure.monitoring.AutoscaleSetting(\"exampleAutoscaleSetting\", {\n    enabled: true,\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    targetResourceId: exampleScaleSet.id,\n    profiles: [{\n        name: \"forJuly\",\n        capacity: {\n            \"default\": 1,\n            minimum: 1,\n            maximum: 10,\n        },\n        rules: [\n            {\n                metricTrigger: {\n                    metricName: \"Percentage CPU\",\n                    metricResourceId: exampleScaleSet.id,\n                    timeGrain: \"PT1M\",\n                    statistic: \"Average\",\n                    timeWindow: \"PT5M\",\n                    timeAggregation: \"Average\",\n                    operator: \"GreaterThan\",\n                    threshold: 90,\n                },\n                scaleAction: {\n                    direction: \"Increase\",\n                    type: \"ChangeCount\",\n                    value: \"2\",\n                    cooldown: \"PT1M\",\n                },\n            },\n            {\n                metricTrigger: {\n                    metricName: \"Percentage CPU\",\n                    metricResourceId: exampleScaleSet.id,\n                    timeGrain: \"PT1M\",\n                    statistic: \"Average\",\n                    timeWindow: \"PT5M\",\n                    timeAggregation: \"Average\",\n                    operator: \"LessThan\",\n                    threshold: 10,\n                },\n                scaleAction: {\n                    direction: \"Decrease\",\n                    type: \"ChangeCount\",\n                    value: \"2\",\n                    cooldown: \"PT1M\",\n                },\n            },\n        ],\n        fixedDate: {\n            timezone: \"Pacific Standard Time\",\n            start: \"2020-07-01T00:00:00Z\",\n            end: \"2020-07-31T23:59:59Z\",\n        },\n    }],\n    notification: {\n        email: {\n            sendToSubscriptionAdministrator: true,\n            sendToSubscriptionCoAdministrator: true,\n            customEmails: [\"admin@contoso.com\"],\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_scale_set = azure.compute.ScaleSet(\"exampleScaleSet\")\n# ...\nexample_autoscale_setting = azure.monitoring.AutoscaleSetting(\"exampleAutoscaleSetting\",\n    enabled=True,\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    target_resource_id=example_scale_set.id,\n    profiles=[azure.monitoring.AutoscaleSettingProfileArgs(\n        name=\"forJuly\",\n        capacity=azure.monitoring.AutoscaleSettingProfileCapacityArgs(\n            default=1,\n            minimum=1,\n            maximum=10,\n        ),\n        rules=[\n            azure.monitoring.AutoscaleSettingProfileRuleArgs(\n                metric_trigger=azure.monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs(\n                    metric_name=\"Percentage CPU\",\n                    metric_resource_id=example_scale_set.id,\n                    time_grain=\"PT1M\",\n                    statistic=\"Average\",\n                    time_window=\"PT5M\",\n                    time_aggregation=\"Average\",\n                    operator=\"GreaterThan\",\n                    threshold=90,\n                ),\n                scale_action=azure.monitoring.AutoscaleSettingProfileRuleScaleActionArgs(\n                    direction=\"Increase\",\n                    type=\"ChangeCount\",\n                    value=2,\n                    cooldown=\"PT1M\",\n                ),\n            ),\n            azure.monitoring.AutoscaleSettingProfileRuleArgs(\n                metric_trigger=azure.monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs(\n                    metric_name=\"Percentage CPU\",\n                    metric_resource_id=example_scale_set.id,\n                    time_grain=\"PT1M\",\n                    statistic=\"Average\",\n                    time_window=\"PT5M\",\n                    time_aggregation=\"Average\",\n                    operator=\"LessThan\",\n                    threshold=10,\n                ),\n                scale_action=azure.monitoring.AutoscaleSettingProfileRuleScaleActionArgs(\n                    direction=\"Decrease\",\n                    type=\"ChangeCount\",\n                    value=2,\n                    cooldown=\"PT1M\",\n                ),\n            ),\n        ],\n        fixed_date=azure.monitoring.AutoscaleSettingProfileFixedDateArgs(\n            timezone=\"Pacific Standard Time\",\n            start=\"2020-07-01T00:00:00Z\",\n            end=\"2020-07-31T23:59:59Z\",\n        ),\n    )],\n    notification=azure.monitoring.AutoscaleSettingNotificationArgs(\n        email=azure.monitoring.AutoscaleSettingNotificationEmailArgs(\n            send_to_subscription_administrator=True,\n            send_to_subscription_co_administrator=True,\n            custom_emails=[\"admin@contoso.com\"],\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleScaleSet = new Azure.Compute.ScaleSet(\"exampleScaleSet\", new Azure.Compute.ScaleSetArgs\n        {\n        });\n        // ...\n        var exampleAutoscaleSetting = new Azure.Monitoring.AutoscaleSetting(\"exampleAutoscaleSetting\", new Azure.Monitoring.AutoscaleSettingArgs\n        {\n            Enabled = true,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            TargetResourceId = exampleScaleSet.Id,\n            Profiles = \n            {\n                new Azure.Monitoring.Inputs.AutoscaleSettingProfileArgs\n                {\n                    Name = \"forJuly\",\n                    Capacity = new Azure.Monitoring.Inputs.AutoscaleSettingProfileCapacityArgs\n                    {\n                        Default = 1,\n                        Minimum = 1,\n                        Maximum = 10,\n                    },\n                    Rules = \n                    {\n                        new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleArgs\n                        {\n                            MetricTrigger = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerArgs\n                            {\n                                MetricName = \"Percentage CPU\",\n                                MetricResourceId = exampleScaleSet.Id,\n                                TimeGrain = \"PT1M\",\n                                Statistic = \"Average\",\n                                TimeWindow = \"PT5M\",\n                                TimeAggregation = \"Average\",\n                                Operator = \"GreaterThan\",\n                                Threshold = 90,\n                            },\n                            ScaleAction = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleScaleActionArgs\n                            {\n                                Direction = \"Increase\",\n                                Type = \"ChangeCount\",\n                                Value = 2,\n                                Cooldown = \"PT1M\",\n                            },\n                        },\n                        new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleArgs\n                        {\n                            MetricTrigger = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerArgs\n                            {\n                                MetricName = \"Percentage CPU\",\n                                MetricResourceId = exampleScaleSet.Id,\n                                TimeGrain = \"PT1M\",\n                                Statistic = \"Average\",\n                                TimeWindow = \"PT5M\",\n                                TimeAggregation = \"Average\",\n                                Operator = \"LessThan\",\n                                Threshold = 10,\n                            },\n                            ScaleAction = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleScaleActionArgs\n                            {\n                                Direction = \"Decrease\",\n                                Type = \"ChangeCount\",\n                                Value = 2,\n                                Cooldown = \"PT1M\",\n                            },\n                        },\n                    },\n                    FixedDate = new Azure.Monitoring.Inputs.AutoscaleSettingProfileFixedDateArgs\n                    {\n                        Timezone = \"Pacific Standard Time\",\n                        Start = \"2020-07-01T00:00:00Z\",\n                        End = \"2020-07-31T23:59:59Z\",\n                    },\n                },\n            },\n            Notification = new Azure.Monitoring.Inputs.AutoscaleSettingNotificationArgs\n            {\n                Email = new Azure.Monitoring.Inputs.AutoscaleSettingNotificationEmailArgs\n                {\n                    SendToSubscriptionAdministrator = true,\n                    SendToSubscriptionCoAdministrator = true,\n                    CustomEmails = \n                    {\n                        \"admin@contoso.com\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleScaleSet, err := compute.NewScaleSet(ctx, \"exampleScaleSet\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.NewAutoscaleSetting(ctx, \"exampleAutoscaleSetting\", \u0026monitoring.AutoscaleSettingArgs{\n\t\t\tEnabled:           pulumi.Bool(true),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tTargetResourceId:  exampleScaleSet.ID(),\n\t\t\tProfiles: monitoring.AutoscaleSettingProfileArray{\n\t\t\t\t\u0026monitoring.AutoscaleSettingProfileArgs{\n\t\t\t\t\tName: pulumi.String(\"forJuly\"),\n\t\t\t\t\tCapacity: \u0026monitoring.AutoscaleSettingProfileCapacityArgs{\n\t\t\t\t\t\tDefault: pulumi.Int(1),\n\t\t\t\t\t\tMinimum: pulumi.Int(1),\n\t\t\t\t\t\tMaximum: pulumi.Int(10),\n\t\t\t\t\t},\n\t\t\t\t\tRules: monitoring.AutoscaleSettingProfileRuleArray{\n\t\t\t\t\t\t\u0026monitoring.AutoscaleSettingProfileRuleArgs{\n\t\t\t\t\t\t\tMetricTrigger: \u0026monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs{\n\t\t\t\t\t\t\t\tMetricName:       pulumi.String(\"Percentage CPU\"),\n\t\t\t\t\t\t\t\tMetricResourceId: exampleScaleSet.ID(),\n\t\t\t\t\t\t\t\tTimeGrain:        pulumi.String(\"PT1M\"),\n\t\t\t\t\t\t\t\tStatistic:        pulumi.String(\"Average\"),\n\t\t\t\t\t\t\t\tTimeWindow:       pulumi.String(\"PT5M\"),\n\t\t\t\t\t\t\t\tTimeAggregation:  pulumi.String(\"Average\"),\n\t\t\t\t\t\t\t\tOperator:         pulumi.String(\"GreaterThan\"),\n\t\t\t\t\t\t\t\tThreshold:        pulumi.Float64(90),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tScaleAction: \u0026monitoring.AutoscaleSettingProfileRuleScaleActionArgs{\n\t\t\t\t\t\t\t\tDirection: pulumi.String(\"Increase\"),\n\t\t\t\t\t\t\t\tType:      pulumi.String(\"ChangeCount\"),\n\t\t\t\t\t\t\t\tValue:     pulumi.Int(2),\n\t\t\t\t\t\t\t\tCooldown:  pulumi.String(\"PT1M\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026monitoring.AutoscaleSettingProfileRuleArgs{\n\t\t\t\t\t\t\tMetricTrigger: \u0026monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs{\n\t\t\t\t\t\t\t\tMetricName:       pulumi.String(\"Percentage CPU\"),\n\t\t\t\t\t\t\t\tMetricResourceId: exampleScaleSet.ID(),\n\t\t\t\t\t\t\t\tTimeGrain:        pulumi.String(\"PT1M\"),\n\t\t\t\t\t\t\t\tStatistic:        pulumi.String(\"Average\"),\n\t\t\t\t\t\t\t\tTimeWindow:       pulumi.String(\"PT5M\"),\n\t\t\t\t\t\t\t\tTimeAggregation:  pulumi.String(\"Average\"),\n\t\t\t\t\t\t\t\tOperator:         pulumi.String(\"LessThan\"),\n\t\t\t\t\t\t\t\tThreshold:        pulumi.Float64(10),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tScaleAction: \u0026monitoring.AutoscaleSettingProfileRuleScaleActionArgs{\n\t\t\t\t\t\t\t\tDirection: pulumi.String(\"Decrease\"),\n\t\t\t\t\t\t\t\tType:      pulumi.String(\"ChangeCount\"),\n\t\t\t\t\t\t\t\tValue:     pulumi.Int(2),\n\t\t\t\t\t\t\t\tCooldown:  pulumi.String(\"PT1M\"),\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\tFixedDate: \u0026monitoring.AutoscaleSettingProfileFixedDateArgs{\n\t\t\t\t\t\tTimezone: pulumi.String(\"Pacific Standard Time\"),\n\t\t\t\t\t\tStart:    pulumi.String(\"2020-07-01T00:00:00Z\"),\n\t\t\t\t\t\tEnd:      pulumi.String(\"2020-07-31T23:59:59Z\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tNotification: \u0026monitoring.AutoscaleSettingNotificationArgs{\n\t\t\t\tEmail: \u0026monitoring.AutoscaleSettingNotificationEmailArgs{\n\t\t\t\t\tSendToSubscriptionAdministrator:   pulumi.Bool(true),\n\t\t\t\t\tSendToSubscriptionCoAdministrator: pulumi.Bool(true),\n\t\t\t\t\tCustomEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"admin@contoso.com\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAutoScale Setting can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:monitoring/autoscaleSetting:AutoscaleSetting example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/microsoft.insights/autoscalesettings/setting1\n```\n\n ",
      "inputProperties": {
        "enabled": {
          "description": "Specifies whether automatic scaling is enabled for the target resource. Defaults to `true`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the AutoScale Setting. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notification": {
          "$ref": "#/types/azure:monitoring/AutoscaleSettingNotification:AutoscaleSettingNotification",
          "description": "Specifies a `notification` block as defined below.\n"
        },
        "profiles": {
          "description": "Specifies one or more (up to 20) `profile` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/AutoscaleSettingProfile:AutoscaleSettingProfile"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "targetResourceId": {
          "description": "Specifies the resource ID of the resource that the autoscale setting should be added to.\n",
          "type": "string"
        }
      },
      "properties": {
        "enabled": {
          "description": "Specifies whether automatic scaling is enabled for the target resource. Defaults to `true`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the AutoScale Setting. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notification": {
          "$ref": "#/types/azure:monitoring/AutoscaleSettingNotification:AutoscaleSettingNotification",
          "description": "Specifies a `notification` block as defined below.\n"
        },
        "profiles": {
          "description": "Specifies one or more (up to 20) `profile` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/AutoscaleSettingProfile:AutoscaleSettingProfile"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "targetResourceId": {
          "description": "Specifies the resource ID of the resource that the autoscale setting should be added to.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "profiles",
        "resourceGroupName",
        "targetResourceId"
      ],
      "requiredInputs": [
        "profiles",
        "resourceGroupName",
        "targetResourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AutoscaleSetting resources.\n",
        "properties": {
          "enabled": {
            "description": "Specifies whether automatic scaling is enabled for the target resource. Defaults to `true`.\n",
            "type": "boolean"
          },
          "location": {
            "description": "Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the AutoScale Setting. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "notification": {
            "$ref": "#/types/azure:monitoring/AutoscaleSettingNotification:AutoscaleSettingNotification",
            "description": "Specifies a `notification` block as defined below.\n"
          },
          "profiles": {
            "description": "Specifies one or more (up to 20) `profile` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/AutoscaleSettingProfile:AutoscaleSettingProfile"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "targetResourceId": {
            "description": "Specifies the resource ID of the resource that the autoscale setting should be added to.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:monitoring/diagnosticSetting:DiagnosticSetting": {
      "description": "Manages a Diagnostic Setting for an existing Resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = exampleResourceGroup.name.apply(name =\u003e azure.storage.getAccount({\n    name: \"examplestoracc\",\n    resourceGroupName: name,\n}));\nconst exampleKeyVault = exampleResourceGroup.name.apply(name =\u003e azure.keyvault.getKeyVault({\n    name: \"example-vault\",\n    resourceGroupName: name,\n}));\nconst exampleDiagnosticSetting = new azure.monitoring.DiagnosticSetting(\"exampleDiagnosticSetting\", {\n    targetResourceId: exampleKeyVault.apply(exampleKeyVault =\u003e exampleKeyVault.id),\n    storageAccountId: exampleAccount.apply(exampleAccount =\u003e exampleAccount.id),\n    logs: [{\n        category: \"AuditEvent\",\n        enabled: false,\n        retentionPolicy: {\n            enabled: false,\n        },\n    }],\n    metrics: [{\n        category: \"AllMetrics\",\n        retentionPolicy: {\n            enabled: false,\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = example_resource_group.name.apply(lambda name: azure.storage.get_account(name=\"examplestoracc\",\n    resource_group_name=name))\nexample_key_vault = example_resource_group.name.apply(lambda name: azure.keyvault.get_key_vault(name=\"example-vault\",\n    resource_group_name=name))\nexample_diagnostic_setting = azure.monitoring.DiagnosticSetting(\"exampleDiagnosticSetting\",\n    target_resource_id=example_key_vault.id,\n    storage_account_id=example_account.id,\n    logs=[azure.monitoring.DiagnosticSettingLogArgs(\n        category=\"AuditEvent\",\n        enabled=False,\n        retention_policy={\n            \"enabled\": False,\n        },\n    )],\n    metrics=[azure.monitoring.DiagnosticSettingMetricArgs(\n        category=\"AllMetrics\",\n        retention_policy={\n            \"enabled\": False,\n        },\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = exampleResourceGroup.Name.Apply(name =\u003e Azure.Storage.GetAccount.InvokeAsync(new Azure.Storage.GetAccountArgs\n        {\n            Name = \"examplestoracc\",\n            ResourceGroupName = name,\n        }));\n        var exampleKeyVault = exampleResourceGroup.Name.Apply(name =\u003e Azure.KeyVault.GetKeyVault.InvokeAsync(new Azure.KeyVault.GetKeyVaultArgs\n        {\n            Name = \"example-vault\",\n            ResourceGroupName = name,\n        }));\n        var exampleDiagnosticSetting = new Azure.Monitoring.DiagnosticSetting(\"exampleDiagnosticSetting\", new Azure.Monitoring.DiagnosticSettingArgs\n        {\n            TargetResourceId = exampleKeyVault.Apply(exampleKeyVault =\u003e exampleKeyVault.Id),\n            StorageAccountId = exampleAccount.Apply(exampleAccount =\u003e exampleAccount.Id),\n            Logs = \n            {\n                new Azure.Monitoring.Inputs.DiagnosticSettingLogArgs\n                {\n                    Category = \"AuditEvent\",\n                    Enabled = false,\n                    RetentionPolicy = new Azure.Monitoring.Inputs.DiagnosticSettingLogRetentionPolicyArgs\n                    {\n                        Enabled = false,\n                    },\n                },\n            },\n            Metrics = \n            {\n                new Azure.Monitoring.Inputs.DiagnosticSettingMetricArgs\n                {\n                    Category = \"AllMetrics\",\n                    RetentionPolicy = new Azure.Monitoring.Inputs.DiagnosticSettingMetricRetentionPolicyArgs\n                    {\n                        Enabled = false,\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.NewDiagnosticSetting(ctx, \"exampleDiagnosticSetting\", \u0026monitoring.DiagnosticSettingArgs{\n\t\t\tTargetResourceId: exampleKeyVault.ApplyT(func(exampleKeyVault keyvault.GetKeyVaultResult) (string, error) {\n\t\t\t\treturn exampleKeyVault.Id, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tStorageAccountId: exampleAccount.ApplyT(func(exampleAccount storage.GetAccountResult) (string, error) {\n\t\t\t\treturn exampleAccount.Id, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tLogs: monitoring.DiagnosticSettingLogArray{\n\t\t\t\t\u0026monitoring.DiagnosticSettingLogArgs{\n\t\t\t\t\tCategory: pulumi.String(\"AuditEvent\"),\n\t\t\t\t\tEnabled:  pulumi.Bool(false),\n\t\t\t\t\tRetentionPolicy: \u0026monitoring.DiagnosticSettingLogRetentionPolicyArgs{\n\t\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetrics: monitoring.DiagnosticSettingMetricArray{\n\t\t\t\t\u0026monitoring.DiagnosticSettingMetricArgs{\n\t\t\t\t\tCategory: pulumi.String(\"AllMetrics\"),\n\t\t\t\t\tRetentionPolicy: \u0026monitoring.DiagnosticSettingMetricRetentionPolicyArgs{\n\t\t\t\t\t\tEnabled: pulumi.Bool(false),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDiagnostic Settings can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:monitoring/diagnosticSetting:DiagnosticSetting example \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.KeyVault/vaults/vault1|logMonitoring1\"\n```\n\n ",
      "inputProperties": {
        "eventhubAuthorizationRuleId": {
          "description": "Specifies the ID of an Event Hub Namespace Authorization Rule used to send Diagnostics Data. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventhubName": {
          "description": "Specifies the name of the Event Hub where Diagnostics Data should be sent. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logAnalyticsDestinationType": {
          "description": "When set to 'Dedicated' logs sent to a Log Analytics workspace will go into resource specific tables, instead of the legacy AzureDiagnostics table.\n",
          "type": "string"
        },
        "logAnalyticsWorkspaceId": {
          "description": "Specifies the ID of a Log Analytics Workspace where Diagnostics Data should be sent.\n",
          "type": "string"
        },
        "logs": {
          "description": "One or more `log` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/DiagnosticSettingLog:DiagnosticSettingLog"
          },
          "type": "array"
        },
        "metrics": {
          "description": "One or more `metric` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/DiagnosticSettingMetric:DiagnosticSettingMetric"
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the Diagnostic Setting. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account where logs should be sent. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "targetResourceId": {
          "description": "The ID of an existing Resource on which to configure Diagnostic Settings. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "eventhubAuthorizationRuleId": {
          "description": "Specifies the ID of an Event Hub Namespace Authorization Rule used to send Diagnostics Data. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "eventhubName": {
          "description": "Specifies the name of the Event Hub where Diagnostics Data should be sent. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logAnalyticsDestinationType": {
          "description": "When set to 'Dedicated' logs sent to a Log Analytics workspace will go into resource specific tables, instead of the legacy AzureDiagnostics table.\n",
          "type": "string"
        },
        "logAnalyticsWorkspaceId": {
          "description": "Specifies the ID of a Log Analytics Workspace where Diagnostics Data should be sent.\n",
          "type": "string"
        },
        "logs": {
          "description": "One or more `log` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/DiagnosticSettingLog:DiagnosticSettingLog"
          },
          "type": "array"
        },
        "metrics": {
          "description": "One or more `metric` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/DiagnosticSettingMetric:DiagnosticSettingMetric"
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the Diagnostic Setting. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account where logs should be sent. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "targetResourceId": {
          "description": "The ID of an existing Resource on which to configure Diagnostic Settings. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "targetResourceId"
      ],
      "requiredInputs": [
        "targetResourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DiagnosticSetting resources.\n",
        "properties": {
          "eventhubAuthorizationRuleId": {
            "description": "Specifies the ID of an Event Hub Namespace Authorization Rule used to send Diagnostics Data. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "eventhubName": {
            "description": "Specifies the name of the Event Hub where Diagnostics Data should be sent. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "logAnalyticsDestinationType": {
            "description": "When set to 'Dedicated' logs sent to a Log Analytics workspace will go into resource specific tables, instead of the legacy AzureDiagnostics table.\n",
            "type": "string"
          },
          "logAnalyticsWorkspaceId": {
            "description": "Specifies the ID of a Log Analytics Workspace where Diagnostics Data should be sent.\n",
            "type": "string"
          },
          "logs": {
            "description": "One or more `log` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/DiagnosticSettingLog:DiagnosticSettingLog"
            },
            "type": "array"
          },
          "metrics": {
            "description": "One or more `metric` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/DiagnosticSettingMetric:DiagnosticSettingMetric"
            },
            "type": "array"
          },
          "name": {
            "description": "Specifies the name of the Diagnostic Setting. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of the Storage Account where logs should be sent. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "targetResourceId": {
            "description": "The ID of an existing Resource on which to configure Diagnostic Settings. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:monitoring/logProfile:LogProfile": {
      "description": "Manages a [Log Profile](https://docs.microsoft.com/en-us/azure/monitoring-and-diagnostics/monitoring-overview-activity-logs#export-the-activity-log-with-a-log-profile). A Log Profile configures how Activity Logs are exported.\n\n\u003e **NOTE:** It's only possible to configure one Log Profile per Subscription. If you are trying to create more than one Log Profile, an error with `StatusCode=409` will occur.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleEventHubNamespace = new azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    capacity: 2,\n});\nconst exampleLogProfile = new azure.monitoring.LogProfile(\"exampleLogProfile\", {\n    categories: [\n        \"Action\",\n        \"Delete\",\n        \"Write\",\n    ],\n    locations: [\n        \"westus\",\n        \"global\",\n    ],\n    servicebusRuleId: pulumi.interpolate`${exampleEventHubNamespace.id}/authorizationrules/RootManageSharedAccessKey`,\n    storageAccountId: exampleAccount.id,\n    retentionPolicy: {\n        enabled: true,\n        days: 7,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_event_hub_namespace = azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    capacity=2)\nexample_log_profile = azure.monitoring.LogProfile(\"exampleLogProfile\",\n    categories=[\n        \"Action\",\n        \"Delete\",\n        \"Write\",\n    ],\n    locations=[\n        \"westus\",\n        \"global\",\n    ],\n    servicebus_rule_id=example_event_hub_namespace.id.apply(lambda id: f\"{id}/authorizationrules/RootManageSharedAccessKey\"),\n    storage_account_id=example_account.id,\n    retention_policy=azure.monitoring.LogProfileRetentionPolicyArgs(\n        enabled=True,\n        days=7,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"exampleEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Capacity = 2,\n        });\n        var exampleLogProfile = new Azure.Monitoring.LogProfile(\"exampleLogProfile\", new Azure.Monitoring.LogProfileArgs\n        {\n            Categories = \n            {\n                \"Action\",\n                \"Delete\",\n                \"Write\",\n            },\n            Locations = \n            {\n                \"westus\",\n                \"global\",\n            },\n            ServicebusRuleId = exampleEventHubNamespace.Id.Apply(id =\u003e $\"{id}/authorizationrules/RootManageSharedAccessKey\"),\n            StorageAccountId = exampleAccount.Id,\n            RetentionPolicy = new Azure.Monitoring.Inputs.LogProfileRetentionPolicyArgs\n            {\n                Enabled = true,\n                Days = 7,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHubNamespace, err := eventhub.NewEventHubNamespace(ctx, \"exampleEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tCapacity:          pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.NewLogProfile(ctx, \"exampleLogProfile\", \u0026monitoring.LogProfileArgs{\n\t\t\tCategories: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Action\"),\n\t\t\t\tpulumi.String(\"Delete\"),\n\t\t\t\tpulumi.String(\"Write\"),\n\t\t\t},\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"westus\"),\n\t\t\t\tpulumi.String(\"global\"),\n\t\t\t},\n\t\t\tServicebusRuleId: exampleEventHubNamespace.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v%v\", id, \"/authorizationrules/RootManageSharedAccessKey\"), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t\tRetentionPolicy: \u0026monitoring.LogProfileRetentionPolicyArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tDays:    pulumi.Int(7),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA Log Profile can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:monitoring/logProfile:LogProfile example /subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/logprofiles/test\n```\n\n ",
      "inputProperties": {
        "categories": {
          "description": "List of categories of the logs.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "locations": {
          "description": "List of regions for which Activity Log events are stored or streamed.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the Log Profile. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "retentionPolicy": {
          "$ref": "#/types/azure:monitoring/LogProfileRetentionPolicy:LogProfileRetentionPolicy",
          "description": "A `retention_policy` block as documented below. A retention policy for how long Activity Logs are retained in the storage account.\n"
        },
        "servicebusRuleId": {
          "description": "The service bus (or event hub) rule ID of the service bus (or event hub) namespace in which the Activity Log is streamed to. At least one of `storage_account_id` or `servicebus_rule_id` must be set.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The resource ID of the storage account in which the Activity Log is stored. At least one of `storage_account_id` or `servicebus_rule_id` must be set.\n",
          "type": "string"
        }
      },
      "properties": {
        "categories": {
          "description": "List of categories of the logs.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "locations": {
          "description": "List of regions for which Activity Log events are stored or streamed.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the Log Profile. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "retentionPolicy": {
          "$ref": "#/types/azure:monitoring/LogProfileRetentionPolicy:LogProfileRetentionPolicy",
          "description": "A `retention_policy` block as documented below. A retention policy for how long Activity Logs are retained in the storage account.\n"
        },
        "servicebusRuleId": {
          "description": "The service bus (or event hub) rule ID of the service bus (or event hub) namespace in which the Activity Log is streamed to. At least one of `storage_account_id` or `servicebus_rule_id` must be set.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The resource ID of the storage account in which the Activity Log is stored. At least one of `storage_account_id` or `servicebus_rule_id` must be set.\n",
          "type": "string"
        }
      },
      "required": [
        "categories",
        "locations",
        "name",
        "retentionPolicy"
      ],
      "requiredInputs": [
        "categories",
        "locations",
        "retentionPolicy"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LogProfile resources.\n",
        "properties": {
          "categories": {
            "description": "List of categories of the logs.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "locations": {
            "description": "List of regions for which Activity Log events are stored or streamed.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the Log Profile. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "retentionPolicy": {
            "$ref": "#/types/azure:monitoring/LogProfileRetentionPolicy:LogProfileRetentionPolicy",
            "description": "A `retention_policy` block as documented below. A retention policy for how long Activity Logs are retained in the storage account.\n"
          },
          "servicebusRuleId": {
            "description": "The service bus (or event hub) rule ID of the service bus (or event hub) namespace in which the Activity Log is streamed to. At least one of `storage_account_id` or `servicebus_rule_id` must be set.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The resource ID of the storage account in which the Activity Log is stored. At least one of `storage_account_id` or `servicebus_rule_id` must be set.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:monitoring/metricAlert:MetricAlert": {
      "description": "Manages a Metric Alert within Azure Monitor.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst mainResourceGroup = new azure.core.ResourceGroup(\"mainResourceGroup\", {location: \"West Europe\"});\nconst toMonitor = new azure.storage.Account(\"toMonitor\", {\n    resourceGroupName: mainResourceGroup.name,\n    location: mainResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst mainActionGroup = new azure.monitoring.ActionGroup(\"mainActionGroup\", {\n    resourceGroupName: mainResourceGroup.name,\n    shortName: \"exampleact\",\n    webhookReceivers: [{\n        name: \"callmyapi\",\n        serviceUri: \"http://example.com/alert\",\n    }],\n});\nconst example = new azure.monitoring.MetricAlert(\"example\", {\n    resourceGroupName: mainResourceGroup.name,\n    scopes: [toMonitor.id],\n    description: \"Action will be triggered when Transactions count is greater than 50.\",\n    criterias: [{\n        metricNamespace: \"Microsoft.Storage/storageAccounts\",\n        metricName: \"Transactions\",\n        aggregation: \"Total\",\n        operator: \"GreaterThan\",\n        threshold: 50,\n        dimensions: [{\n            name: \"ApiName\",\n            operator: \"Include\",\n            values: [\"*\"],\n        }],\n    }],\n    actions: [{\n        actionGroupId: mainActionGroup.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nmain_resource_group = azure.core.ResourceGroup(\"mainResourceGroup\", location=\"West Europe\")\nto_monitor = azure.storage.Account(\"toMonitor\",\n    resource_group_name=main_resource_group.name,\n    location=main_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nmain_action_group = azure.monitoring.ActionGroup(\"mainActionGroup\",\n    resource_group_name=main_resource_group.name,\n    short_name=\"exampleact\",\n    webhook_receivers=[azure.monitoring.ActionGroupWebhookReceiverArgs(\n        name=\"callmyapi\",\n        service_uri=\"http://example.com/alert\",\n    )])\nexample = azure.monitoring.MetricAlert(\"example\",\n    resource_group_name=main_resource_group.name,\n    scopes=[to_monitor.id],\n    description=\"Action will be triggered when Transactions count is greater than 50.\",\n    criterias=[azure.monitoring.MetricAlertCriteriaArgs(\n        metric_namespace=\"Microsoft.Storage/storageAccounts\",\n        metric_name=\"Transactions\",\n        aggregation=\"Total\",\n        operator=\"GreaterThan\",\n        threshold=50,\n        dimensions=[azure.monitoring.MetricAlertCriteriaDimensionArgs(\n            name=\"ApiName\",\n            operator=\"Include\",\n            values=[\"*\"],\n        )],\n    )],\n    actions=[azure.monitoring.MetricAlertActionArgs(\n        action_group_id=main_action_group.id,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var mainResourceGroup = new Azure.Core.ResourceGroup(\"mainResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var toMonitor = new Azure.Storage.Account(\"toMonitor\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = mainResourceGroup.Name,\n            Location = mainResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var mainActionGroup = new Azure.Monitoring.ActionGroup(\"mainActionGroup\", new Azure.Monitoring.ActionGroupArgs\n        {\n            ResourceGroupName = mainResourceGroup.Name,\n            ShortName = \"exampleact\",\n            WebhookReceivers = \n            {\n                new Azure.Monitoring.Inputs.ActionGroupWebhookReceiverArgs\n                {\n                    Name = \"callmyapi\",\n                    ServiceUri = \"http://example.com/alert\",\n                },\n            },\n        });\n        var example = new Azure.Monitoring.MetricAlert(\"example\", new Azure.Monitoring.MetricAlertArgs\n        {\n            ResourceGroupName = mainResourceGroup.Name,\n            Scopes = \n            {\n                toMonitor.Id,\n            },\n            Description = \"Action will be triggered when Transactions count is greater than 50.\",\n            Criterias = \n            {\n                new Azure.Monitoring.Inputs.MetricAlertCriteriaArgs\n                {\n                    MetricNamespace = \"Microsoft.Storage/storageAccounts\",\n                    MetricName = \"Transactions\",\n                    Aggregation = \"Total\",\n                    Operator = \"GreaterThan\",\n                    Threshold = 50,\n                    Dimensions = \n                    {\n                        new Azure.Monitoring.Inputs.MetricAlertCriteriaDimensionArgs\n                        {\n                            Name = \"ApiName\",\n                            Operator = \"Include\",\n                            Values = \n                            {\n                                \"*\",\n                            },\n                        },\n                    },\n                },\n            },\n            Actions = \n            {\n                new Azure.Monitoring.Inputs.MetricAlertActionArgs\n                {\n                    ActionGroupId = mainActionGroup.Id,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainResourceGroup, err := core.NewResourceGroup(ctx, \"mainResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttoMonitor, err := storage.NewAccount(ctx, \"toMonitor\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      mainResourceGroup.Name,\n\t\t\tLocation:               mainResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainActionGroup, err := monitoring.NewActionGroup(ctx, \"mainActionGroup\", \u0026monitoring.ActionGroupArgs{\n\t\t\tResourceGroupName: mainResourceGroup.Name,\n\t\t\tShortName:         pulumi.String(\"exampleact\"),\n\t\t\tWebhookReceivers: monitoring.ActionGroupWebhookReceiverArray{\n\t\t\t\t\u0026monitoring.ActionGroupWebhookReceiverArgs{\n\t\t\t\t\tName:       pulumi.String(\"callmyapi\"),\n\t\t\t\t\tServiceUri: pulumi.String(\"http://example.com/alert\"),\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 = monitoring.NewMetricAlert(ctx, \"example\", \u0026monitoring.MetricAlertArgs{\n\t\t\tResourceGroupName: mainResourceGroup.Name,\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\ttoMonitor.ID(),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"Action will be triggered when Transactions count is greater than 50.\"),\n\t\t\tCriterias: monitoring.MetricAlertCriteriaArray{\n\t\t\t\t\u0026monitoring.MetricAlertCriteriaArgs{\n\t\t\t\t\tMetricNamespace: pulumi.String(\"Microsoft.Storage/storageAccounts\"),\n\t\t\t\t\tMetricName:      pulumi.String(\"Transactions\"),\n\t\t\t\t\tAggregation:     pulumi.String(\"Total\"),\n\t\t\t\t\tOperator:        pulumi.String(\"GreaterThan\"),\n\t\t\t\t\tThreshold:       pulumi.Float64(50),\n\t\t\t\t\tDimensions: monitoring.MetricAlertCriteriaDimensionArray{\n\t\t\t\t\t\t\u0026monitoring.MetricAlertCriteriaDimensionArgs{\n\t\t\t\t\t\t\tName:     pulumi.String(\"ApiName\"),\n\t\t\t\t\t\t\tOperator: pulumi.String(\"Include\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"*\"),\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\tActions: monitoring.MetricAlertActionArray{\n\t\t\t\t\u0026monitoring.MetricAlertActionArgs{\n\t\t\t\t\tActionGroupId: mainActionGroup.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMetric Alerts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:monitoring/metricAlert:MetricAlert main /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-resources/providers/microsoft.insights/metricAlerts/example-metricalert\n```\n\n ",
      "inputProperties": {
        "actions": {
          "description": "One or more `action` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/MetricAlertAction:MetricAlertAction"
          },
          "type": "array"
        },
        "applicationInsightsWebTestLocationAvailabilityCriteria": {
          "$ref": "#/types/azure:monitoring/MetricAlertApplicationInsightsWebTestLocationAvailabilityCriteria:MetricAlertApplicationInsightsWebTestLocationAvailabilityCriteria",
          "description": "A `application_insights_web_test_location_availability_criteria` block as defined below.\n"
        },
        "autoMitigate": {
          "description": "Should the alerts in this Metric Alert be auto resolved? Defaults to `true`.\n",
          "type": "boolean"
        },
        "criterias": {
          "description": "One or more (static) `criteria` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/MetricAlertCriteria:MetricAlertCriteria"
          },
          "type": "array"
        },
        "description": {
          "description": "The description of this Metric Alert.\n",
          "type": "string"
        },
        "dynamicCriteria": {
          "$ref": "#/types/azure:monitoring/MetricAlertDynamicCriteria:MetricAlertDynamicCriteria",
          "description": "A `dynamic_criteria` block as defined below.\n"
        },
        "enabled": {
          "description": "Should this Metric Alert be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "frequency": {
          "description": "The evaluation frequency of this Metric Alert, represented in ISO 8601 duration format. Possible values are `PT1M`, `PT5M`, `PT15M`, `PT30M` and `PT1H`. Defaults to `PT1M`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Metric Alert. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Metric Alert instance.\n",
          "type": "string"
        },
        "scopes": {
          "description": "A set of strings of resource IDs at which the metric criteria should be applied.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "severity": {
          "description": "The severity of this Metric Alert. Possible values are `0`, `1`, `2`, `3` and `4`. Defaults to `3`.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "targetResourceLocation": {
          "description": "The location of the target resource.\n",
          "type": "string"
        },
        "targetResourceType": {
          "description": "The resource type (e.g. `Microsoft.Compute/virtualMachines`) of the target resource.\n",
          "type": "string"
        },
        "windowSize": {
          "description": "The period of time that is used to monitor alert activity, represented in ISO 8601 duration format. This value must be greater than `frequency`. Possible values are `PT1M`, `PT5M`, `PT15M`, `PT30M`, `PT1H`, `PT6H`, `PT12H` and `P1D`. Defaults to `PT5M`.\n",
          "type": "string"
        }
      },
      "properties": {
        "actions": {
          "description": "One or more `action` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/MetricAlertAction:MetricAlertAction"
          },
          "type": "array"
        },
        "applicationInsightsWebTestLocationAvailabilityCriteria": {
          "$ref": "#/types/azure:monitoring/MetricAlertApplicationInsightsWebTestLocationAvailabilityCriteria:MetricAlertApplicationInsightsWebTestLocationAvailabilityCriteria",
          "description": "A `application_insights_web_test_location_availability_criteria` block as defined below.\n"
        },
        "autoMitigate": {
          "description": "Should the alerts in this Metric Alert be auto resolved? Defaults to `true`.\n",
          "type": "boolean"
        },
        "criterias": {
          "description": "One or more (static) `criteria` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/MetricAlertCriteria:MetricAlertCriteria"
          },
          "type": "array"
        },
        "description": {
          "description": "The description of this Metric Alert.\n",
          "type": "string"
        },
        "dynamicCriteria": {
          "$ref": "#/types/azure:monitoring/MetricAlertDynamicCriteria:MetricAlertDynamicCriteria",
          "description": "A `dynamic_criteria` block as defined below.\n"
        },
        "enabled": {
          "description": "Should this Metric Alert be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "frequency": {
          "description": "The evaluation frequency of this Metric Alert, represented in ISO 8601 duration format. Possible values are `PT1M`, `PT5M`, `PT15M`, `PT30M` and `PT1H`. Defaults to `PT1M`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Metric Alert. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Metric Alert instance.\n",
          "type": "string"
        },
        "scopes": {
          "description": "A set of strings of resource IDs at which the metric criteria should be applied.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "severity": {
          "description": "The severity of this Metric Alert. Possible values are `0`, `1`, `2`, `3` and `4`. Defaults to `3`.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "targetResourceLocation": {
          "description": "The location of the target resource.\n",
          "type": "string"
        },
        "targetResourceType": {
          "description": "The resource type (e.g. `Microsoft.Compute/virtualMachines`) of the target resource.\n",
          "type": "string"
        },
        "windowSize": {
          "description": "The period of time that is used to monitor alert activity, represented in ISO 8601 duration format. This value must be greater than `frequency`. Possible values are `PT1M`, `PT5M`, `PT15M`, `PT30M`, `PT1H`, `PT6H`, `PT12H` and `P1D`. Defaults to `PT5M`.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "scopes",
        "targetResourceLocation",
        "targetResourceType"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "scopes"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MetricAlert resources.\n",
        "properties": {
          "actions": {
            "description": "One or more `action` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/MetricAlertAction:MetricAlertAction"
            },
            "type": "array"
          },
          "applicationInsightsWebTestLocationAvailabilityCriteria": {
            "$ref": "#/types/azure:monitoring/MetricAlertApplicationInsightsWebTestLocationAvailabilityCriteria:MetricAlertApplicationInsightsWebTestLocationAvailabilityCriteria",
            "description": "A `application_insights_web_test_location_availability_criteria` block as defined below.\n"
          },
          "autoMitigate": {
            "description": "Should the alerts in this Metric Alert be auto resolved? Defaults to `true`.\n",
            "type": "boolean"
          },
          "criterias": {
            "description": "One or more (static) `criteria` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:monitoring/MetricAlertCriteria:MetricAlertCriteria"
            },
            "type": "array"
          },
          "description": {
            "description": "The description of this Metric Alert.\n",
            "type": "string"
          },
          "dynamicCriteria": {
            "$ref": "#/types/azure:monitoring/MetricAlertDynamicCriteria:MetricAlertDynamicCriteria",
            "description": "A `dynamic_criteria` block as defined below.\n"
          },
          "enabled": {
            "description": "Should this Metric Alert be enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "frequency": {
            "description": "The evaluation frequency of this Metric Alert, represented in ISO 8601 duration format. Possible values are `PT1M`, `PT5M`, `PT15M`, `PT30M` and `PT1H`. Defaults to `PT1M`.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Metric Alert. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Metric Alert instance.\n",
            "type": "string"
          },
          "scopes": {
            "description": "A set of strings of resource IDs at which the metric criteria should be applied.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "severity": {
            "description": "The severity of this Metric Alert. Possible values are `0`, `1`, `2`, `3` and `4`. Defaults to `3`.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "targetResourceLocation": {
            "description": "The location of the target resource.\n",
            "type": "string"
          },
          "targetResourceType": {
            "description": "The resource type (e.g. `Microsoft.Compute/virtualMachines`) of the target resource.\n",
            "type": "string"
          },
          "windowSize": {
            "description": "The period of time that is used to monitor alert activity, represented in ISO 8601 duration format. This value must be greater than `frequency`. Possible values are `PT1M`, `PT5M`, `PT15M`, `PT30M`, `PT1H`, `PT6H`, `PT12H` and `P1D`. Defaults to `PT5M`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:monitoring/scheduledQueryRulesAlert:ScheduledQueryRulesAlert": {
      "description": "Manages an AlertingAction Scheduled Query Rules resource within Azure Monitor.\n\n\n## Import\n\nScheduled Query Rule Alerts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:monitoring/scheduledQueryRulesAlert:ScheduledQueryRulesAlert example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Insights/scheduledQueryRules/myrulename\n```\n\n ",
      "inputProperties": {
        "action": {
          "$ref": "#/types/azure:monitoring/ScheduledQueryRulesAlertAction:ScheduledQueryRulesAlertAction",
          "description": "An `action` block as defined below.\n"
        },
        "authorizedResourceIds": {
          "description": "List of Resource IDs referred into query.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataSourceId": {
          "description": "The resource URI over which log search query is to be run.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the scheduled query rule.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Whether this scheduled query rule is enabled.  Default is `true`.\n",
          "type": "boolean"
        },
        "frequency": {
          "description": "Frequency (in minutes) at which rule condition should be evaluated.  Values must be between 5 and 1440 (inclusive).\n",
          "type": "integer"
        },
        "location": {
          "type": "string"
        },
        "name": {
          "description": "The name of the scheduled query rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "query": {
          "description": "Log search query.\n",
          "type": "string"
        },
        "queryType": {
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the scheduled query rule instance.\n",
          "type": "string"
        },
        "severity": {
          "description": "Severity of the alert. Possible values include: 0, 1, 2, 3, or 4.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "throttling": {
          "description": "Time (in minutes) for which Alerts should be throttled or suppressed.  Values must be between 0 and 10000 (inclusive).\n",
          "type": "integer"
        },
        "timeWindow": {
          "description": "Time window for which data needs to be fetched for query (must be greater than or equal to `frequency`).  Values must be between 5 and 2880 (inclusive).\n",
          "type": "integer"
        },
        "trigger": {
          "$ref": "#/types/azure:monitoring/ScheduledQueryRulesAlertTrigger:ScheduledQueryRulesAlertTrigger",
          "description": "The condition that results in the alert rule being run.\n"
        }
      },
      "properties": {
        "action": {
          "$ref": "#/types/azure:monitoring/ScheduledQueryRulesAlertAction:ScheduledQueryRulesAlertAction",
          "description": "An `action` block as defined below.\n"
        },
        "authorizedResourceIds": {
          "description": "List of Resource IDs referred into query.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dataSourceId": {
          "description": "The resource URI over which log search query is to be run.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the scheduled query rule.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Whether this scheduled query rule is enabled.  Default is `true`.\n",
          "type": "boolean"
        },
        "frequency": {
          "description": "Frequency (in minutes) at which rule condition should be evaluated.  Values must be between 5 and 1440 (inclusive).\n",
          "type": "integer"
        },
        "location": {
          "type": "string"
        },
        "name": {
          "description": "The name of the scheduled query rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "query": {
          "description": "Log search query.\n",
          "type": "string"
        },
        "queryType": {
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the scheduled query rule instance.\n",
          "type": "string"
        },
        "severity": {
          "description": "Severity of the alert. Possible values include: 0, 1, 2, 3, or 4.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "throttling": {
          "description": "Time (in minutes) for which Alerts should be throttled or suppressed.  Values must be between 0 and 10000 (inclusive).\n",
          "type": "integer"
        },
        "timeWindow": {
          "description": "Time window for which data needs to be fetched for query (must be greater than or equal to `frequency`).  Values must be between 5 and 2880 (inclusive).\n",
          "type": "integer"
        },
        "trigger": {
          "$ref": "#/types/azure:monitoring/ScheduledQueryRulesAlertTrigger:ScheduledQueryRulesAlertTrigger",
          "description": "The condition that results in the alert rule being run.\n"
        }
      },
      "required": [
        "action",
        "dataSourceId",
        "frequency",
        "location",
        "name",
        "query",
        "resourceGroupName",
        "timeWindow",
        "trigger"
      ],
      "requiredInputs": [
        "action",
        "dataSourceId",
        "frequency",
        "query",
        "resourceGroupName",
        "timeWindow",
        "trigger"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ScheduledQueryRulesAlert resources.\n",
        "properties": {
          "action": {
            "$ref": "#/types/azure:monitoring/ScheduledQueryRulesAlertAction:ScheduledQueryRulesAlertAction",
            "description": "An `action` block as defined below.\n"
          },
          "authorizedResourceIds": {
            "description": "List of Resource IDs referred into query.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataSourceId": {
            "description": "The resource URI over which log search query is to be run.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the scheduled query rule.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Whether this scheduled query rule is enabled.  Default is `true`.\n",
            "type": "boolean"
          },
          "frequency": {
            "description": "Frequency (in minutes) at which rule condition should be evaluated.  Values must be between 5 and 1440 (inclusive).\n",
            "type": "integer"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "description": "The name of the scheduled query rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "query": {
            "description": "Log search query.\n",
            "type": "string"
          },
          "queryType": {
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the scheduled query rule instance.\n",
            "type": "string"
          },
          "severity": {
            "description": "Severity of the alert. Possible values include: 0, 1, 2, 3, or 4.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "throttling": {
            "description": "Time (in minutes) for which Alerts should be throttled or suppressed.  Values must be between 0 and 10000 (inclusive).\n",
            "type": "integer"
          },
          "timeWindow": {
            "description": "Time window for which data needs to be fetched for query (must be greater than or equal to `frequency`).  Values must be between 5 and 2880 (inclusive).\n",
            "type": "integer"
          },
          "trigger": {
            "$ref": "#/types/azure:monitoring/ScheduledQueryRulesAlertTrigger:ScheduledQueryRulesAlertTrigger",
            "description": "The condition that results in the alert rule being run.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:monitoring/scheduledQueryRulesLog:ScheduledQueryRulesLog": {
      "description": "Manages a LogToMetricAction Scheduled Query Rules resource within Azure Monitor.\n\n\n## Import\n\nScheduled Query Rule Log can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:monitoring/scheduledQueryRulesLog:ScheduledQueryRulesLog example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Insights/scheduledQueryRules/myrulename\n```\n\n ",
      "inputProperties": {
        "authorizedResourceIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "criteria": {
          "$ref": "#/types/azure:monitoring/ScheduledQueryRulesLogCriteria:ScheduledQueryRulesLogCriteria",
          "description": "A `criteria` block as defined below.\n"
        },
        "dataSourceId": {
          "description": "The resource uri over which log search query is to be run.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the scheduled query rule.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Whether this scheduled query rule is enabled.  Default is `true`.\n",
          "type": "boolean"
        },
        "location": {
          "type": "string"
        },
        "name": {
          "description": "The name of the scheduled query rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the scheduled query rule instance.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "properties": {
        "authorizedResourceIds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "criteria": {
          "$ref": "#/types/azure:monitoring/ScheduledQueryRulesLogCriteria:ScheduledQueryRulesLogCriteria",
          "description": "A `criteria` block as defined below.\n"
        },
        "dataSourceId": {
          "description": "The resource uri over which log search query is to be run.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of the scheduled query rule.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Whether this scheduled query rule is enabled.  Default is `true`.\n",
          "type": "boolean"
        },
        "location": {
          "type": "string"
        },
        "name": {
          "description": "The name of the scheduled query rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the scheduled query rule instance.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "required": [
        "criteria",
        "dataSourceId",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "criteria",
        "dataSourceId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ScheduledQueryRulesLog resources.\n",
        "properties": {
          "authorizedResourceIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "criteria": {
            "$ref": "#/types/azure:monitoring/ScheduledQueryRulesLogCriteria:ScheduledQueryRulesLogCriteria",
            "description": "A `criteria` block as defined below.\n"
          },
          "dataSourceId": {
            "description": "The resource uri over which log search query is to be run.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of the scheduled query rule.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Whether this scheduled query rule is enabled.  Default is `true`.\n",
            "type": "boolean"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "description": "The name of the scheduled query rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the scheduled query rule instance.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:monitoring/smartDetectorAlertRule:SmartDetectorAlertRule": {
      "description": "Manages an Monitor Smart Detector Alert Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleInsights = new azure.appinsights.Insights(\"exampleInsights\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    applicationType: \"web\",\n});\nconst exampleActionGroup = new azure.monitoring.ActionGroup(\"exampleActionGroup\", {\n    resourceGroupName: exampleResourceGroup.name,\n    shortName: \"exampleactiongroup\",\n});\nconst exampleSmartDetectorAlertRule = new azure.monitoring.SmartDetectorAlertRule(\"exampleSmartDetectorAlertRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    severity: \"Sev0\",\n    scopeResourceIds: [exampleInsights.id],\n    frequency: \"PT1M\",\n    detectorType: \"FailureAnomaliesDetector\",\n    actionGroup: {\n        ids: [azurerm_monitor_action_group.test.id],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_insights = azure.appinsights.Insights(\"exampleInsights\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    application_type=\"web\")\nexample_action_group = azure.monitoring.ActionGroup(\"exampleActionGroup\",\n    resource_group_name=example_resource_group.name,\n    short_name=\"exampleactiongroup\")\nexample_smart_detector_alert_rule = azure.monitoring.SmartDetectorAlertRule(\"exampleSmartDetectorAlertRule\",\n    resource_group_name=example_resource_group.name,\n    severity=\"Sev0\",\n    scope_resource_ids=[example_insights.id],\n    frequency=\"PT1M\",\n    detector_type=\"FailureAnomaliesDetector\",\n    action_group=azure.monitoring.SmartDetectorAlertRuleActionGroupArgs(\n        ids=[azurerm_monitor_action_group[\"test\"][\"id\"]],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleInsights = new Azure.AppInsights.Insights(\"exampleInsights\", new Azure.AppInsights.InsightsArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ApplicationType = \"web\",\n        });\n        var exampleActionGroup = new Azure.Monitoring.ActionGroup(\"exampleActionGroup\", new Azure.Monitoring.ActionGroupArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ShortName = \"exampleactiongroup\",\n        });\n        var exampleSmartDetectorAlertRule = new Azure.Monitoring.SmartDetectorAlertRule(\"exampleSmartDetectorAlertRule\", new Azure.Monitoring.SmartDetectorAlertRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Severity = \"Sev0\",\n            ScopeResourceIds = \n            {\n                exampleInsights.Id,\n            },\n            Frequency = \"PT1M\",\n            DetectorType = \"FailureAnomaliesDetector\",\n            ActionGroup = new Azure.Monitoring.Inputs.SmartDetectorAlertRuleActionGroupArgs\n            {\n                Ids = \n                {\n                    azurerm_monitor_action_group.Test.Id,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/monitoring\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"exampleInsights\", \u0026appinsights.InsightsArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType:   pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.NewActionGroup(ctx, \"exampleActionGroup\", \u0026monitoring.ActionGroupArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tShortName:         pulumi.String(\"exampleactiongroup\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.NewSmartDetectorAlertRule(ctx, \"exampleSmartDetectorAlertRule\", \u0026monitoring.SmartDetectorAlertRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSeverity:          pulumi.String(\"Sev0\"),\n\t\t\tScopeResourceIds: pulumi.StringArray{\n\t\t\t\texampleInsights.ID(),\n\t\t\t},\n\t\t\tFrequency:    pulumi.String(\"PT1M\"),\n\t\t\tDetectorType: pulumi.String(\"FailureAnomaliesDetector\"),\n\t\t\tActionGroup: \u0026monitoring.SmartDetectorAlertRuleActionGroupArgs{\n\t\t\t\tIds: pulumi.StringArray{\n\t\t\t\t\tpulumi.Any(azurerm_monitor_action_group.Test.Id),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMonitor Smart Detector Alert Rule can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:monitoring/smartDetectorAlertRule:SmartDetectorAlertRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AlertsManagement/smartdetectoralertrules/rule1\n```\n\n ",
      "inputProperties": {
        "actionGroup": {
          "$ref": "#/types/azure:monitoring/SmartDetectorAlertRuleActionGroup:SmartDetectorAlertRuleActionGroup",
          "description": "An `action_group` block as defined below.\n"
        },
        "description": {
          "description": "Specifies a description for the Smart Detector Alert Rule.\n",
          "type": "string"
        },
        "detectorType": {
          "description": "Specifies the Built-In Smart Detector type that this alert rule will use. Currently the only possible value is `FailureAnomaliesDetector`.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is the Smart Detector Alert Rule enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "frequency": {
          "description": "Specifies the frequency of this Smart Detector Alert Rule in ISO8601 format.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Monitor Smart Detector Alert Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the resource group in which the Monitor Smart Detector Alert Rule should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scopeResourceIds": {
          "description": "Specifies the scopes of this Smart Detector Alert Rule.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "severity": {
          "description": "Specifies the severity of this Smart Detector Alert Rule. Possible values are `Sev0`, `Sev1`, `Sev2`, `Sev3` or `Sev4`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "throttlingDuration": {
          "description": "Specifies the duration (in ISO8601 format) to wait before notifying on the alert rule again.\n",
          "type": "string"
        }
      },
      "properties": {
        "actionGroup": {
          "$ref": "#/types/azure:monitoring/SmartDetectorAlertRuleActionGroup:SmartDetectorAlertRuleActionGroup",
          "description": "An `action_group` block as defined below.\n"
        },
        "description": {
          "description": "Specifies a description for the Smart Detector Alert Rule.\n",
          "type": "string"
        },
        "detectorType": {
          "description": "Specifies the Built-In Smart Detector type that this alert rule will use. Currently the only possible value is `FailureAnomaliesDetector`.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Is the Smart Detector Alert Rule enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "frequency": {
          "description": "Specifies the frequency of this Smart Detector Alert Rule in ISO8601 format.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Monitor Smart Detector Alert Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the resource group in which the Monitor Smart Detector Alert Rule should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scopeResourceIds": {
          "description": "Specifies the scopes of this Smart Detector Alert Rule.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "severity": {
          "description": "Specifies the severity of this Smart Detector Alert Rule. Possible values are `Sev0`, `Sev1`, `Sev2`, `Sev3` or `Sev4`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "throttlingDuration": {
          "description": "Specifies the duration (in ISO8601 format) to wait before notifying on the alert rule again.\n",
          "type": "string"
        }
      },
      "required": [
        "actionGroup",
        "detectorType",
        "frequency",
        "name",
        "resourceGroupName",
        "scopeResourceIds",
        "severity"
      ],
      "requiredInputs": [
        "actionGroup",
        "detectorType",
        "frequency",
        "resourceGroupName",
        "scopeResourceIds",
        "severity"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SmartDetectorAlertRule resources.\n",
        "properties": {
          "actionGroup": {
            "$ref": "#/types/azure:monitoring/SmartDetectorAlertRuleActionGroup:SmartDetectorAlertRuleActionGroup",
            "description": "An `action_group` block as defined below.\n"
          },
          "description": {
            "description": "Specifies a description for the Smart Detector Alert Rule.\n",
            "type": "string"
          },
          "detectorType": {
            "description": "Specifies the Built-In Smart Detector type that this alert rule will use. Currently the only possible value is `FailureAnomaliesDetector`.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Is the Smart Detector Alert Rule enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "frequency": {
            "description": "Specifies the frequency of this Smart Detector Alert Rule in ISO8601 format.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Monitor Smart Detector Alert Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the resource group in which the Monitor Smart Detector Alert Rule should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scopeResourceIds": {
            "description": "Specifies the scopes of this Smart Detector Alert Rule.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "severity": {
            "description": "Specifies the severity of this Smart Detector Alert Rule. Possible values are `Sev0`, `Sev1`, `Sev2`, `Sev3` or `Sev4`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "throttlingDuration": {
            "description": "Specifies the duration (in ISO8601 format) to wait before notifying on the alert rule again.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:msi/userAssignedIdentity:UserAssignedIdentity": {
      "deprecationMessage": "azure.msi.UserAssignedIdentity has been deprecated in favor of azure.authorization.UserAssignedIdentity",
      "inputProperties": {
        "location": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "resourceGroupName": {
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "properties": {
        "clientId": {
          "type": "string"
        },
        "location": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "principalId": {
          "type": "string"
        },
        "resourceGroupName": {
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "tenantId": {
          "type": "string"
        }
      },
      "required": [
        "clientId",
        "location",
        "name",
        "principalId",
        "resourceGroupName",
        "tenantId"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering UserAssignedIdentity resources.\n",
        "properties": {
          "clientId": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "principalId": {
            "type": "string"
          },
          "resourceGroupName": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "tenantId": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mssql/database:Database": {
      "description": "Manages a MS SQL Database.\n\n\u003e **NOTE:** The Database Extended Auditing Policy Can be set inline here as well as with the mssql_database_extended_auditing_policy resource resource. You can only use one or the other and using both will cause a conflict.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleServer = new azure.mssql.Server(\"exampleServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"4dm1n157r470r\",\n    administratorLoginPassword: \"4-v3ry-53cr37-p455w0rd\",\n});\nconst test = new azure.mssql.Database(\"test\", {\n    serverId: exampleServer.id,\n    collation: \"SQL_Latin1_General_CP1_CI_AS\",\n    licenseType: \"LicenseIncluded\",\n    maxSizeGb: 4,\n    readScale: true,\n    skuName: \"BC_Gen5_2\",\n    zoneRedundant: true,\n    extendedAuditingPolicy: {\n        storageEndpoint: exampleAccount.primaryBlobEndpoint,\n        storageAccountAccessKey: exampleAccount.primaryAccessKey,\n        storageAccountAccessKeyIsSecondary: true,\n        retentionInDays: 6,\n    },\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_server = azure.mssql.Server(\"exampleServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"4dm1n157r470r\",\n    administrator_login_password=\"4-v3ry-53cr37-p455w0rd\")\ntest = azure.mssql.Database(\"test\",\n    server_id=example_server.id,\n    collation=\"SQL_Latin1_General_CP1_CI_AS\",\n    license_type=\"LicenseIncluded\",\n    max_size_gb=4,\n    read_scale=True,\n    sku_name=\"BC_Gen5_2\",\n    zone_redundant=True,\n    extended_auditing_policy=azure.mssql.DatabaseExtendedAuditingPolicyArgs(\n        storage_endpoint=example_account.primary_blob_endpoint,\n        storage_account_access_key=example_account.primary_access_key,\n        storage_account_access_key_is_secondary=True,\n        retention_in_days=6,\n    ),\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleServer = new Azure.MSSql.Server(\"exampleServer\", new Azure.MSSql.ServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"4dm1n157r470r\",\n            AdministratorLoginPassword = \"4-v3ry-53cr37-p455w0rd\",\n        });\n        var test = new Azure.MSSql.Database(\"test\", new Azure.MSSql.DatabaseArgs\n        {\n            ServerId = exampleServer.Id,\n            Collation = \"SQL_Latin1_General_CP1_CI_AS\",\n            LicenseType = \"LicenseIncluded\",\n            MaxSizeGb = 4,\n            ReadScale = true,\n            SkuName = \"BC_Gen5_2\",\n            ZoneRedundant = true,\n            ExtendedAuditingPolicy = new Azure.MSSql.Inputs.DatabaseExtendedAuditingPolicyArgs\n            {\n                StorageEndpoint = exampleAccount.PrimaryBlobEndpoint,\n                StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n                StorageAccountAccessKeyIsSecondary = true,\n                RetentionInDays = 6,\n            },\n            Tags = \n            {\n                { \"foo\", \"bar\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mssql.NewServer(ctx, \"exampleServer\", \u0026mssql.ServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"4dm1n157r470r\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"4-v3ry-53cr37-p455w0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewDatabase(ctx, \"test\", \u0026mssql.DatabaseArgs{\n\t\t\tServerId:      exampleServer.ID(),\n\t\t\tCollation:     pulumi.String(\"SQL_Latin1_General_CP1_CI_AS\"),\n\t\t\tLicenseType:   pulumi.String(\"LicenseIncluded\"),\n\t\t\tMaxSizeGb:     pulumi.Int(4),\n\t\t\tReadScale:     pulumi.Bool(true),\n\t\t\tSkuName:       pulumi.String(\"BC_Gen5_2\"),\n\t\t\tZoneRedundant: pulumi.Bool(true),\n\t\t\tExtendedAuditingPolicy: \u0026mssql.DatabaseExtendedAuditingPolicyArgs{\n\t\t\t\tStorageEndpoint:                    exampleAccount.PrimaryBlobEndpoint,\n\t\t\t\tStorageAccountAccessKey:            exampleAccount.PrimaryAccessKey,\n\t\t\t\tStorageAccountAccessKeyIsSecondary: pulumi.Bool(true),\n\t\t\t\tRetentionInDays:                    pulumi.Int(6),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL Database can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mssql/database:Database example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/databases/example1\n```\n\n ",
      "inputProperties": {
        "autoPauseDelayInMinutes": {
          "description": "Time in minutes after which database is automatically paused. A value of `-1` means that automatic pause is disabled. This property is only settable for General Purpose Serverless databases.\n",
          "type": "integer"
        },
        "collation": {
          "description": "Specifies the collation of the database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "createMode": {
          "description": "The create mode of the database. Possible values are `Copy`, `Default`, `OnlineSecondary`, `PointInTimeRestore`, `Recovery`, `Restore`, `RestoreExternalBackup`, `RestoreExternalBackupSecondary`, `RestoreLongTermRetentionBackup` and `Secondary`.\n",
          "type": "string"
        },
        "creationSourceDatabaseId": {
          "description": "The id of the source database to be referred to create the new database. This should only be used for databases with `create_mode` values that use another database as reference. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "elasticPoolId": {
          "description": "Specifies the ID of the elastic pool containing this database.\n",
          "type": "string"
        },
        "extendedAuditingPolicy": {
          "$ref": "#/types/azure:mssql/DatabaseExtendedAuditingPolicy:DatabaseExtendedAuditingPolicy",
          "deprecationMessage": "the `extended_auditing_policy` block has been moved to `azurerm_mssql_server_extended_auditing_policy` and `azurerm_mssql_database_extended_auditing_policy`. This block will be removed in version 3.0 of the provider.",
          "description": "A `extended_auditing_policy` block as defined below.\n"
        },
        "geoBackupEnabled": {
          "description": "A boolean that specifies if the Geo Backup Policy is enabled.\n",
          "type": "boolean"
        },
        "licenseType": {
          "description": "Specifies the license type applied to this database. Possible values are `LicenseIncluded` and `BasePrice`.\n",
          "type": "string"
        },
        "longTermRetentionPolicy": {
          "$ref": "#/types/azure:mssql/DatabaseLongTermRetentionPolicy:DatabaseLongTermRetentionPolicy",
          "description": "A `long_term_retention_policy` block as defined below.\n"
        },
        "maxSizeGb": {
          "description": "The max size of the database in gigabytes.\n",
          "type": "integer"
        },
        "minCapacity": {
          "description": "Minimal capacity that database will always have allocated, if not paused. This property is only settable for General Purpose Serverless databases.\n",
          "type": "number"
        },
        "name": {
          "description": "The name of the Ms SQL Database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "readReplicaCount": {
          "description": "The number of readonly secondary replicas associated with the database to which readonly application intent connections may be routed. This property is only settable for Hyperscale edition databases.\n",
          "type": "integer"
        },
        "readScale": {
          "description": "If enabled, connections that have application intent set to readonly in their connection string may be routed to a readonly secondary replica. This property is only settable for Premium and Business Critical databases.\n",
          "type": "boolean"
        },
        "recoverDatabaseId": {
          "description": "The ID of the database to be recovered. This property is only applicable when the `create_mode` is `Recovery`.\n",
          "type": "string"
        },
        "restoreDroppedDatabaseId": {
          "description": "The ID of the database to be restored. This property is only applicable when the `create_mode` is `Restore`.\n",
          "type": "string"
        },
        "restorePointInTime": {
          "description": "Specifies the point in time (ISO8601 format) of the source database that will be restored to create the new database. This property is only settable for `create_mode`= `PointInTimeRestore`  databases.\n",
          "type": "string"
        },
        "sampleName": {
          "description": "Specifies the name of the sample schema to apply when creating this database. Possible value is `AdventureWorksLT`.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The id of the Ms SQL Server on which to create the database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "shortTermRetentionPolicy": {
          "$ref": "#/types/azure:mssql/DatabaseShortTermRetentionPolicy:DatabaseShortTermRetentionPolicy",
          "description": "A `short_term_retention_policy` block as defined below.\n"
        },
        "skuName": {
          "description": "Specifies the name of the sku used by the database. Only changing this from tier `Hyperscale` to another tier will force a new resource to be created. For example, `GP_S_Gen5_2`,`HS_Gen4_1`,`BC_Gen5_2`, `ElasticPool`, `Basic`,`S0`, `P2` ,`DW100c`, `DS100`.\n",
          "type": "string"
        },
        "storageAccountType": {
          "description": "Specifies the storage account type used to store backups for this database. Changing this forces a new resource to be created.  Possible values are `GRS`, `LRS` and `ZRS`.  The default value is `GRS`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "threatDetectionPolicy": {
          "$ref": "#/types/azure:mssql/DatabaseThreatDetectionPolicy:DatabaseThreatDetectionPolicy",
          "description": "Threat detection policy configuration. The `threat_detection_policy` block supports fields documented below.\n"
        },
        "zoneRedundant": {
          "description": "Whether or not this database is zone redundant, which means the replicas of this database will be spread across multiple availability zones. This property is only settable for Premium and Business Critical databases.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "autoPauseDelayInMinutes": {
          "description": "Time in minutes after which database is automatically paused. A value of `-1` means that automatic pause is disabled. This property is only settable for General Purpose Serverless databases.\n",
          "type": "integer"
        },
        "collation": {
          "description": "Specifies the collation of the database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "createMode": {
          "description": "The create mode of the database. Possible values are `Copy`, `Default`, `OnlineSecondary`, `PointInTimeRestore`, `Recovery`, `Restore`, `RestoreExternalBackup`, `RestoreExternalBackupSecondary`, `RestoreLongTermRetentionBackup` and `Secondary`.\n",
          "type": "string"
        },
        "creationSourceDatabaseId": {
          "description": "The id of the source database to be referred to create the new database. This should only be used for databases with `create_mode` values that use another database as reference. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "elasticPoolId": {
          "description": "Specifies the ID of the elastic pool containing this database.\n",
          "type": "string"
        },
        "extendedAuditingPolicy": {
          "$ref": "#/types/azure:mssql/DatabaseExtendedAuditingPolicy:DatabaseExtendedAuditingPolicy",
          "deprecationMessage": "the `extended_auditing_policy` block has been moved to `azurerm_mssql_server_extended_auditing_policy` and `azurerm_mssql_database_extended_auditing_policy`. This block will be removed in version 3.0 of the provider.",
          "description": "A `extended_auditing_policy` block as defined below.\n"
        },
        "geoBackupEnabled": {
          "description": "A boolean that specifies if the Geo Backup Policy is enabled.\n",
          "type": "boolean"
        },
        "licenseType": {
          "description": "Specifies the license type applied to this database. Possible values are `LicenseIncluded` and `BasePrice`.\n",
          "type": "string"
        },
        "longTermRetentionPolicy": {
          "$ref": "#/types/azure:mssql/DatabaseLongTermRetentionPolicy:DatabaseLongTermRetentionPolicy",
          "description": "A `long_term_retention_policy` block as defined below.\n"
        },
        "maxSizeGb": {
          "description": "The max size of the database in gigabytes.\n",
          "type": "integer"
        },
        "minCapacity": {
          "description": "Minimal capacity that database will always have allocated, if not paused. This property is only settable for General Purpose Serverless databases.\n",
          "type": "number"
        },
        "name": {
          "description": "The name of the Ms SQL Database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "readReplicaCount": {
          "description": "The number of readonly secondary replicas associated with the database to which readonly application intent connections may be routed. This property is only settable for Hyperscale edition databases.\n",
          "type": "integer"
        },
        "readScale": {
          "description": "If enabled, connections that have application intent set to readonly in their connection string may be routed to a readonly secondary replica. This property is only settable for Premium and Business Critical databases.\n",
          "type": "boolean"
        },
        "recoverDatabaseId": {
          "description": "The ID of the database to be recovered. This property is only applicable when the `create_mode` is `Recovery`.\n",
          "type": "string"
        },
        "restoreDroppedDatabaseId": {
          "description": "The ID of the database to be restored. This property is only applicable when the `create_mode` is `Restore`.\n",
          "type": "string"
        },
        "restorePointInTime": {
          "description": "Specifies the point in time (ISO8601 format) of the source database that will be restored to create the new database. This property is only settable for `create_mode`= `PointInTimeRestore`  databases.\n",
          "type": "string"
        },
        "sampleName": {
          "description": "Specifies the name of the sample schema to apply when creating this database. Possible value is `AdventureWorksLT`.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The id of the Ms SQL Server on which to create the database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "shortTermRetentionPolicy": {
          "$ref": "#/types/azure:mssql/DatabaseShortTermRetentionPolicy:DatabaseShortTermRetentionPolicy",
          "description": "A `short_term_retention_policy` block as defined below.\n"
        },
        "skuName": {
          "description": "Specifies the name of the sku used by the database. Only changing this from tier `Hyperscale` to another tier will force a new resource to be created. For example, `GP_S_Gen5_2`,`HS_Gen4_1`,`BC_Gen5_2`, `ElasticPool`, `Basic`,`S0`, `P2` ,`DW100c`, `DS100`.\n",
          "type": "string"
        },
        "storageAccountType": {
          "description": "Specifies the storage account type used to store backups for this database. Changing this forces a new resource to be created.  Possible values are `GRS`, `LRS` and `ZRS`.  The default value is `GRS`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "threatDetectionPolicy": {
          "$ref": "#/types/azure:mssql/DatabaseThreatDetectionPolicy:DatabaseThreatDetectionPolicy",
          "description": "Threat detection policy configuration. The `threat_detection_policy` block supports fields documented below.\n"
        },
        "zoneRedundant": {
          "description": "Whether or not this database is zone redundant, which means the replicas of this database will be spread across multiple availability zones. This property is only settable for Premium and Business Critical databases.\n",
          "type": "boolean"
        }
      },
      "required": [
        "autoPauseDelayInMinutes",
        "collation",
        "creationSourceDatabaseId",
        "extendedAuditingPolicy",
        "licenseType",
        "longTermRetentionPolicy",
        "maxSizeGb",
        "minCapacity",
        "name",
        "readReplicaCount",
        "readScale",
        "restorePointInTime",
        "sampleName",
        "serverId",
        "shortTermRetentionPolicy",
        "skuName",
        "threatDetectionPolicy",
        "zoneRedundant"
      ],
      "requiredInputs": [
        "serverId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Database resources.\n",
        "properties": {
          "autoPauseDelayInMinutes": {
            "description": "Time in minutes after which database is automatically paused. A value of `-1` means that automatic pause is disabled. This property is only settable for General Purpose Serverless databases.\n",
            "type": "integer"
          },
          "collation": {
            "description": "Specifies the collation of the database. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "createMode": {
            "description": "The create mode of the database. Possible values are `Copy`, `Default`, `OnlineSecondary`, `PointInTimeRestore`, `Recovery`, `Restore`, `RestoreExternalBackup`, `RestoreExternalBackupSecondary`, `RestoreLongTermRetentionBackup` and `Secondary`.\n",
            "type": "string"
          },
          "creationSourceDatabaseId": {
            "description": "The id of the source database to be referred to create the new database. This should only be used for databases with `create_mode` values that use another database as reference. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "elasticPoolId": {
            "description": "Specifies the ID of the elastic pool containing this database.\n",
            "type": "string"
          },
          "extendedAuditingPolicy": {
            "$ref": "#/types/azure:mssql/DatabaseExtendedAuditingPolicy:DatabaseExtendedAuditingPolicy",
            "deprecationMessage": "the `extended_auditing_policy` block has been moved to `azurerm_mssql_server_extended_auditing_policy` and `azurerm_mssql_database_extended_auditing_policy`. This block will be removed in version 3.0 of the provider.",
            "description": "A `extended_auditing_policy` block as defined below.\n"
          },
          "geoBackupEnabled": {
            "description": "A boolean that specifies if the Geo Backup Policy is enabled.\n",
            "type": "boolean"
          },
          "licenseType": {
            "description": "Specifies the license type applied to this database. Possible values are `LicenseIncluded` and `BasePrice`.\n",
            "type": "string"
          },
          "longTermRetentionPolicy": {
            "$ref": "#/types/azure:mssql/DatabaseLongTermRetentionPolicy:DatabaseLongTermRetentionPolicy",
            "description": "A `long_term_retention_policy` block as defined below.\n"
          },
          "maxSizeGb": {
            "description": "The max size of the database in gigabytes.\n",
            "type": "integer"
          },
          "minCapacity": {
            "description": "Minimal capacity that database will always have allocated, if not paused. This property is only settable for General Purpose Serverless databases.\n",
            "type": "number"
          },
          "name": {
            "description": "The name of the Ms SQL Database. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "readReplicaCount": {
            "description": "The number of readonly secondary replicas associated with the database to which readonly application intent connections may be routed. This property is only settable for Hyperscale edition databases.\n",
            "type": "integer"
          },
          "readScale": {
            "description": "If enabled, connections that have application intent set to readonly in their connection string may be routed to a readonly secondary replica. This property is only settable for Premium and Business Critical databases.\n",
            "type": "boolean"
          },
          "recoverDatabaseId": {
            "description": "The ID of the database to be recovered. This property is only applicable when the `create_mode` is `Recovery`.\n",
            "type": "string"
          },
          "restoreDroppedDatabaseId": {
            "description": "The ID of the database to be restored. This property is only applicable when the `create_mode` is `Restore`.\n",
            "type": "string"
          },
          "restorePointInTime": {
            "description": "Specifies the point in time (ISO8601 format) of the source database that will be restored to create the new database. This property is only settable for `create_mode`= `PointInTimeRestore`  databases.\n",
            "type": "string"
          },
          "sampleName": {
            "description": "Specifies the name of the sample schema to apply when creating this database. Possible value is `AdventureWorksLT`.\n",
            "type": "string"
          },
          "serverId": {
            "description": "The id of the Ms SQL Server on which to create the database. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "shortTermRetentionPolicy": {
            "$ref": "#/types/azure:mssql/DatabaseShortTermRetentionPolicy:DatabaseShortTermRetentionPolicy",
            "description": "A `short_term_retention_policy` block as defined below.\n"
          },
          "skuName": {
            "description": "Specifies the name of the sku used by the database. Only changing this from tier `Hyperscale` to another tier will force a new resource to be created. For example, `GP_S_Gen5_2`,`HS_Gen4_1`,`BC_Gen5_2`, `ElasticPool`, `Basic`,`S0`, `P2` ,`DW100c`, `DS100`.\n",
            "type": "string"
          },
          "storageAccountType": {
            "description": "Specifies the storage account type used to store backups for this database. Changing this forces a new resource to be created.  Possible values are `GRS`, `LRS` and `ZRS`.  The default value is `GRS`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "threatDetectionPolicy": {
            "$ref": "#/types/azure:mssql/DatabaseThreatDetectionPolicy:DatabaseThreatDetectionPolicy",
            "description": "Threat detection policy configuration. The `threat_detection_policy` block supports fields documented below.\n"
          },
          "zoneRedundant": {
            "description": "Whether or not this database is zone redundant, which means the replicas of this database will be spread across multiple availability zones. This property is only settable for Premium and Business Critical databases.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:mssql/databaseExtendedAuditingPolicy:DatabaseExtendedAuditingPolicy": {
      "description": "Manages a Ms Sql Database Extended Auditing Policy.\n\n\u003e **NOTE:** The Database Extended Auditing Policy Can be set inline here as well as with the mssql_database_extended_auditing_policy resource resource. You can only use one or the other and using both will cause a conflict.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.mssql.Server(\"exampleServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"missadministrator\",\n    administratorLoginPassword: \"AdminPassword123!\",\n});\nconst exampleDatabase = new azure.mssql.Database(\"exampleDatabase\", {serverId: exampleServer.id});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleDatabaseExtendedAuditingPolicy = new azure.mssql.DatabaseExtendedAuditingPolicy(\"exampleDatabaseExtendedAuditingPolicy\", {\n    databaseId: exampleDatabase.id,\n    storageEndpoint: exampleAccount.primaryBlobEndpoint,\n    storageAccountAccessKey: exampleAccount.primaryAccessKey,\n    storageAccountAccessKeyIsSecondary: false,\n    retentionInDays: 6,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.mssql.Server(\"exampleServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"missadministrator\",\n    administrator_login_password=\"AdminPassword123!\")\nexample_database = azure.mssql.Database(\"exampleDatabase\", server_id=example_server.id)\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_database_extended_auditing_policy = azure.mssql.DatabaseExtendedAuditingPolicy(\"exampleDatabaseExtendedAuditingPolicy\",\n    database_id=example_database.id,\n    storage_endpoint=example_account.primary_blob_endpoint,\n    storage_account_access_key=example_account.primary_access_key,\n    storage_account_access_key_is_secondary=False,\n    retention_in_days=6)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.MSSql.Server(\"exampleServer\", new Azure.MSSql.ServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"missadministrator\",\n            AdministratorLoginPassword = \"AdminPassword123!\",\n        });\n        var exampleDatabase = new Azure.MSSql.Database(\"exampleDatabase\", new Azure.MSSql.DatabaseArgs\n        {\n            ServerId = exampleServer.Id,\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleDatabaseExtendedAuditingPolicy = new Azure.MSSql.DatabaseExtendedAuditingPolicy(\"exampleDatabaseExtendedAuditingPolicy\", new Azure.MSSql.DatabaseExtendedAuditingPolicyArgs\n        {\n            DatabaseId = exampleDatabase.Id,\n            StorageEndpoint = exampleAccount.PrimaryBlobEndpoint,\n            StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n            StorageAccountAccessKeyIsSecondary = false,\n            RetentionInDays = 6,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mssql.NewServer(ctx, \"exampleServer\", \u0026mssql.ServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"missadministrator\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"AdminPassword123!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDatabase, err := mssql.NewDatabase(ctx, \"exampleDatabase\", \u0026mssql.DatabaseArgs{\n\t\t\tServerId: exampleServer.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewDatabaseExtendedAuditingPolicy(ctx, \"exampleDatabaseExtendedAuditingPolicy\", \u0026mssql.DatabaseExtendedAuditingPolicyArgs{\n\t\t\tDatabaseId:                         exampleDatabase.ID(),\n\t\t\tStorageEndpoint:                    exampleAccount.PrimaryBlobEndpoint,\n\t\t\tStorageAccountAccessKey:            exampleAccount.PrimaryAccessKey,\n\t\t\tStorageAccountAccessKeyIsSecondary: pulumi.Bool(false),\n\t\t\tRetentionInDays:                    pulumi.Int(6),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMs Sql Database Extended Auditing Policys can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mssql/databaseExtendedAuditingPolicy:DatabaseExtendedAuditingPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Sql/servers/sqlServer1/databases/db1/extendedAuditingSettings/default\n```\n\n ",
      "inputProperties": {
        "databaseId": {
          "description": "The ID of the sql database to set the extended auditing policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logMonitoringEnabled": {
          "type": "boolean"
        },
        "retentionInDays": {
          "description": "The number of days to retain logs for in the storage account.\n",
          "type": "integer"
        },
        "storageAccountAccessKey": {
          "description": "The access key to use for the auditing storage account.\n",
          "type": "string"
        },
        "storageAccountAccessKeyIsSecondary": {
          "description": "Is `storage_account_access_key` value the storage's secondary key?\n",
          "type": "boolean"
        },
        "storageEndpoint": {
          "description": "The blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all extended auditing logs.\n",
          "type": "string"
        }
      },
      "properties": {
        "databaseId": {
          "description": "The ID of the sql database to set the extended auditing policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "logMonitoringEnabled": {
          "type": "boolean"
        },
        "retentionInDays": {
          "description": "The number of days to retain logs for in the storage account.\n",
          "type": "integer"
        },
        "storageAccountAccessKey": {
          "description": "The access key to use for the auditing storage account.\n",
          "type": "string"
        },
        "storageAccountAccessKeyIsSecondary": {
          "description": "Is `storage_account_access_key` value the storage's secondary key?\n",
          "type": "boolean"
        },
        "storageEndpoint": {
          "description": "The blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all extended auditing logs.\n",
          "type": "string"
        }
      },
      "required": [
        "databaseId"
      ],
      "requiredInputs": [
        "databaseId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatabaseExtendedAuditingPolicy resources.\n",
        "properties": {
          "databaseId": {
            "description": "The ID of the sql database to set the extended auditing policy. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "logMonitoringEnabled": {
            "type": "boolean"
          },
          "retentionInDays": {
            "description": "The number of days to retain logs for in the storage account.\n",
            "type": "integer"
          },
          "storageAccountAccessKey": {
            "description": "The access key to use for the auditing storage account.\n",
            "type": "string"
          },
          "storageAccountAccessKeyIsSecondary": {
            "description": "Is `storage_account_access_key` value the storage's secondary key?\n",
            "type": "boolean"
          },
          "storageEndpoint": {
            "description": "The blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all extended auditing logs.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mssql/databaseVulnerabilityAssessmentRuleBaseline:DatabaseVulnerabilityAssessmentRuleBaseline": {
      "description": "Manages a Database Vulnerability Assessment Rule Baseline.\n\n\u003e **NOTE** Database Vulnerability Assessment is currently only available for MS SQL databases.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSqlServer = new azure.sql.SqlServer(\"exampleSqlServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"4dm1n157r470r\",\n    administratorLoginPassword: \"4-v3ry-53cr37-p455w0rd\",\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleServerSecurityAlertPolicy = new azure.mssql.ServerSecurityAlertPolicy(\"exampleServerSecurityAlertPolicy\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleSqlServer.name,\n    state: \"Enabled\",\n});\nconst exampleDatabase = new azure.sql.Database(\"exampleDatabase\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleSqlServer.name,\n    location: exampleResourceGroup.location,\n    edition: \"Standard\",\n});\nconst exampleServerVulnerabilityAssessment = new azure.mssql.ServerVulnerabilityAssessment(\"exampleServerVulnerabilityAssessment\", {\n    serverSecurityAlertPolicyId: exampleServerSecurityAlertPolicy.id,\n    storageContainerPath: pulumi.interpolate`${exampleAccount.primaryBlobEndpoint}${exampleContainer.name}/`,\n    storageAccountAccessKey: exampleAccount.primaryAccessKey,\n});\nconst exampleDatabaseVulnerabilityAssessmentRuleBaseline = new azure.mssql.DatabaseVulnerabilityAssessmentRuleBaseline(\"exampleDatabaseVulnerabilityAssessmentRuleBaseline\", {\n    serverVulnerabilityAssessmentId: exampleServerVulnerabilityAssessment.id,\n    databaseName: exampleDatabase.name,\n    ruleId: \"VA2065\",\n    baselineName: \"master\",\n    baselineResults: [\n        {\n            results: [\n                \"allowedip1\",\n                \"123.123.123.123\",\n                \"123.123.123.123\",\n            ],\n        },\n        {\n            results: [\n                \"allowedip2\",\n                \"255.255.255.255\",\n                \"255.255.255.255\",\n            ],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_sql_server = azure.sql.SqlServer(\"exampleSqlServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"4dm1n157r470r\",\n    administrator_login_password=\"4-v3ry-53cr37-p455w0rd\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_server_security_alert_policy = azure.mssql.ServerSecurityAlertPolicy(\"exampleServerSecurityAlertPolicy\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_sql_server.name,\n    state=\"Enabled\")\nexample_database = azure.sql.Database(\"exampleDatabase\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_sql_server.name,\n    location=example_resource_group.location,\n    edition=\"Standard\")\nexample_server_vulnerability_assessment = azure.mssql.ServerVulnerabilityAssessment(\"exampleServerVulnerabilityAssessment\",\n    server_security_alert_policy_id=example_server_security_alert_policy.id,\n    storage_container_path=pulumi.Output.all(example_account.primary_blob_endpoint, example_container.name).apply(lambda primary_blob_endpoint, name: f\"{primary_blob_endpoint}{name}/\"),\n    storage_account_access_key=example_account.primary_access_key)\nexample_database_vulnerability_assessment_rule_baseline = azure.mssql.DatabaseVulnerabilityAssessmentRuleBaseline(\"exampleDatabaseVulnerabilityAssessmentRuleBaseline\",\n    server_vulnerability_assessment_id=example_server_vulnerability_assessment.id,\n    database_name=example_database.name,\n    rule_id=\"VA2065\",\n    baseline_name=\"master\",\n    baseline_results=[\n        azure.mssql.DatabaseVulnerabilityAssessmentRuleBaselineBaselineResultArgs(\n            results=[\n                \"allowedip1\",\n                \"123.123.123.123\",\n                \"123.123.123.123\",\n            ],\n        ),\n        azure.mssql.DatabaseVulnerabilityAssessmentRuleBaselineBaselineResultArgs(\n            results=[\n                \"allowedip2\",\n                \"255.255.255.255\",\n                \"255.255.255.255\",\n            ],\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSqlServer = new Azure.Sql.SqlServer(\"exampleSqlServer\", new Azure.Sql.SqlServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"4dm1n157r470r\",\n            AdministratorLoginPassword = \"4-v3ry-53cr37-p455w0rd\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleServerSecurityAlertPolicy = new Azure.MSSql.ServerSecurityAlertPolicy(\"exampleServerSecurityAlertPolicy\", new Azure.MSSql.ServerSecurityAlertPolicyArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleSqlServer.Name,\n            State = \"Enabled\",\n        });\n        var exampleDatabase = new Azure.Sql.Database(\"exampleDatabase\", new Azure.Sql.DatabaseArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleSqlServer.Name,\n            Location = exampleResourceGroup.Location,\n            Edition = \"Standard\",\n        });\n        var exampleServerVulnerabilityAssessment = new Azure.MSSql.ServerVulnerabilityAssessment(\"exampleServerVulnerabilityAssessment\", new Azure.MSSql.ServerVulnerabilityAssessmentArgs\n        {\n            ServerSecurityAlertPolicyId = exampleServerSecurityAlertPolicy.Id,\n            StorageContainerPath = Output.Tuple(exampleAccount.PrimaryBlobEndpoint, exampleContainer.Name).Apply(values =\u003e\n            {\n                var primaryBlobEndpoint = values.Item1;\n                var name = values.Item2;\n                return $\"{primaryBlobEndpoint}{name}/\";\n            }),\n            StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n        });\n        var exampleDatabaseVulnerabilityAssessmentRuleBaseline = new Azure.MSSql.DatabaseVulnerabilityAssessmentRuleBaseline(\"exampleDatabaseVulnerabilityAssessmentRuleBaseline\", new Azure.MSSql.DatabaseVulnerabilityAssessmentRuleBaselineArgs\n        {\n            ServerVulnerabilityAssessmentId = exampleServerVulnerabilityAssessment.Id,\n            DatabaseName = exampleDatabase.Name,\n            RuleId = \"VA2065\",\n            BaselineName = \"master\",\n            BaselineResults = \n            {\n                new Azure.MSSql.Inputs.DatabaseVulnerabilityAssessmentRuleBaselineBaselineResultArgs\n                {\n                    Results = \n                    {\n                        \"allowedip1\",\n                        \"123.123.123.123\",\n                        \"123.123.123.123\",\n                    },\n                },\n                new Azure.MSSql.Inputs.DatabaseVulnerabilityAssessmentRuleBaselineBaselineResultArgs\n                {\n                    Results = \n                    {\n                        \"allowedip2\",\n                        \"255.255.255.255\",\n                        \"255.255.255.255\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlServer, err := sql.NewSqlServer(ctx, \"exampleSqlServer\", \u0026sql.SqlServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"4dm1n157r470r\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"4-v3ry-53cr37-p455w0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServerSecurityAlertPolicy, err := mssql.NewServerSecurityAlertPolicy(ctx, \"exampleServerSecurityAlertPolicy\", \u0026mssql.ServerSecurityAlertPolicyArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleSqlServer.Name,\n\t\t\tState:             pulumi.String(\"Enabled\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDatabase, err := sql.NewDatabase(ctx, \"exampleDatabase\", \u0026sql.DatabaseArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleSqlServer.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tEdition:           pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServerVulnerabilityAssessment, err := mssql.NewServerVulnerabilityAssessment(ctx, \"exampleServerVulnerabilityAssessment\", \u0026mssql.ServerVulnerabilityAssessmentArgs{\n\t\t\tServerSecurityAlertPolicyId: exampleServerSecurityAlertPolicy.ID(),\n\t\t\tStorageContainerPath: pulumi.All(exampleAccount.PrimaryBlobEndpoint, exampleContainer.Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tprimaryBlobEndpoint := _args[0].(string)\n\t\t\t\tname := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(\"%v%v%v\", primaryBlobEndpoint, name, \"/\"), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tStorageAccountAccessKey: exampleAccount.PrimaryAccessKey,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewDatabaseVulnerabilityAssessmentRuleBaseline(ctx, \"exampleDatabaseVulnerabilityAssessmentRuleBaseline\", \u0026mssql.DatabaseVulnerabilityAssessmentRuleBaselineArgs{\n\t\t\tServerVulnerabilityAssessmentId: exampleServerVulnerabilityAssessment.ID(),\n\t\t\tDatabaseName:                    exampleDatabase.Name,\n\t\t\tRuleId:                          pulumi.String(\"VA2065\"),\n\t\t\tBaselineName:                    pulumi.String(\"master\"),\n\t\t\tBaselineResults: mssql.DatabaseVulnerabilityAssessmentRuleBaselineBaselineResultArray{\n\t\t\t\t\u0026mssql.DatabaseVulnerabilityAssessmentRuleBaselineBaselineResultArgs{\n\t\t\t\t\tResults: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"allowedip1\"),\n\t\t\t\t\t\tpulumi.String(\"123.123.123.123\"),\n\t\t\t\t\t\tpulumi.String(\"123.123.123.123\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mssql.DatabaseVulnerabilityAssessmentRuleBaselineBaselineResultArgs{\n\t\t\t\t\tResults: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"allowedip2\"),\n\t\t\t\t\t\tpulumi.String(\"255.255.255.255\"),\n\t\t\t\t\t\tpulumi.String(\"255.255.255.255\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDatabase Vulnerability Assessment Rule Baseline can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mssql/databaseVulnerabilityAssessmentRuleBaseline:DatabaseVulnerabilityAssessmentRuleBaseline example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/acceptanceTestResourceGroup1/providers/Microsoft.Sql/servers/mssqlserver/databases/mysqldatabase/vulnerabilityAssessments/Default/rules/VA2065/baselines/master\n```\n\n ",
      "inputProperties": {
        "baselineName": {
          "description": "The name of the vulnerability assessment rule baseline. Valid options are `default` and `master`. `default` implies a baseline on a database level rule and `master` for server level rule. Defaults to `default`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "baselineResults": {
          "description": "A `baseline_result` block as documented below. Multiple blocks can be defined.\n",
          "items": {
            "$ref": "#/types/azure:mssql/DatabaseVulnerabilityAssessmentRuleBaselineBaselineResult:DatabaseVulnerabilityAssessmentRuleBaselineBaselineResult"
          },
          "type": "array"
        },
        "databaseName": {
          "description": "Specifies the name of the MS SQL Database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "ruleId": {
          "description": "The vulnerability assessment rule ID. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverVulnerabilityAssessmentId": {
          "description": "The Vulnerability Assessment ID of the MS SQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "baselineName": {
          "description": "The name of the vulnerability assessment rule baseline. Valid options are `default` and `master`. `default` implies a baseline on a database level rule and `master` for server level rule. Defaults to `default`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "baselineResults": {
          "description": "A `baseline_result` block as documented below. Multiple blocks can be defined.\n",
          "items": {
            "$ref": "#/types/azure:mssql/DatabaseVulnerabilityAssessmentRuleBaselineBaselineResult:DatabaseVulnerabilityAssessmentRuleBaselineBaselineResult"
          },
          "type": "array"
        },
        "databaseName": {
          "description": "Specifies the name of the MS SQL Database. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "ruleId": {
          "description": "The vulnerability assessment rule ID. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverVulnerabilityAssessmentId": {
          "description": "The Vulnerability Assessment ID of the MS SQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "baselineResults",
        "databaseName",
        "ruleId",
        "serverVulnerabilityAssessmentId"
      ],
      "requiredInputs": [
        "baselineResults",
        "databaseName",
        "ruleId",
        "serverVulnerabilityAssessmentId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DatabaseVulnerabilityAssessmentRuleBaseline resources.\n",
        "properties": {
          "baselineName": {
            "description": "The name of the vulnerability assessment rule baseline. Valid options are `default` and `master`. `default` implies a baseline on a database level rule and `master` for server level rule. Defaults to `default`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "baselineResults": {
            "description": "A `baseline_result` block as documented below. Multiple blocks can be defined.\n",
            "items": {
              "$ref": "#/types/azure:mssql/DatabaseVulnerabilityAssessmentRuleBaselineBaselineResult:DatabaseVulnerabilityAssessmentRuleBaselineBaselineResult"
            },
            "type": "array"
          },
          "databaseName": {
            "description": "Specifies the name of the MS SQL Database. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "ruleId": {
            "description": "The vulnerability assessment rule ID. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverVulnerabilityAssessmentId": {
            "description": "The Vulnerability Assessment ID of the MS SQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mssql/elasticPool:ElasticPool": {
      "description": "Allows you to manage an Azure SQL Elastic Pool via the `v3.0` API which allows for `vCore` and `DTU` based configurations.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSqlServer = new azure.sql.SqlServer(\"exampleSqlServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"4dm1n157r470r\",\n    administratorLoginPassword: \"4-v3ry-53cr37-p455w0rd\",\n});\nconst exampleElasticPool = new azure.mssql.ElasticPool(\"exampleElasticPool\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    serverName: exampleSqlServer.name,\n    licenseType: \"LicenseIncluded\",\n    maxSizeGb: 756,\n    sku: {\n        name: \"GP_Gen5\",\n        tier: \"GeneralPurpose\",\n        family: \"Gen5\",\n        capacity: 4,\n    },\n    perDatabaseSettings: {\n        minCapacity: 0.25,\n        maxCapacity: 4,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_sql_server = azure.sql.SqlServer(\"exampleSqlServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"4dm1n157r470r\",\n    administrator_login_password=\"4-v3ry-53cr37-p455w0rd\")\nexample_elastic_pool = azure.mssql.ElasticPool(\"exampleElasticPool\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    server_name=example_sql_server.name,\n    license_type=\"LicenseIncluded\",\n    max_size_gb=756,\n    sku=azure.mssql.ElasticPoolSkuArgs(\n        name=\"GP_Gen5\",\n        tier=\"GeneralPurpose\",\n        family=\"Gen5\",\n        capacity=4,\n    ),\n    per_database_settings=azure.mssql.ElasticPoolPerDatabaseSettingsArgs(\n        min_capacity=0.25,\n        max_capacity=4,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSqlServer = new Azure.Sql.SqlServer(\"exampleSqlServer\", new Azure.Sql.SqlServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"4dm1n157r470r\",\n            AdministratorLoginPassword = \"4-v3ry-53cr37-p455w0rd\",\n        });\n        var exampleElasticPool = new Azure.MSSql.ElasticPool(\"exampleElasticPool\", new Azure.MSSql.ElasticPoolArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ServerName = exampleSqlServer.Name,\n            LicenseType = \"LicenseIncluded\",\n            MaxSizeGb = 756,\n            Sku = new Azure.MSSql.Inputs.ElasticPoolSkuArgs\n            {\n                Name = \"GP_Gen5\",\n                Tier = \"GeneralPurpose\",\n                Family = \"Gen5\",\n                Capacity = 4,\n            },\n            PerDatabaseSettings = new Azure.MSSql.Inputs.ElasticPoolPerDatabaseSettingsArgs\n            {\n                MinCapacity = 0.25,\n                MaxCapacity = 4,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlServer, err := sql.NewSqlServer(ctx, \"exampleSqlServer\", \u0026sql.SqlServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"4dm1n157r470r\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"4-v3ry-53cr37-p455w0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewElasticPool(ctx, \"exampleElasticPool\", \u0026mssql.ElasticPoolArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tServerName:        exampleSqlServer.Name,\n\t\t\tLicenseType:       pulumi.String(\"LicenseIncluded\"),\n\t\t\tMaxSizeGb:         pulumi.Float64(756),\n\t\t\tSku: \u0026mssql.ElasticPoolSkuArgs{\n\t\t\t\tName:     pulumi.String(\"GP_Gen5\"),\n\t\t\t\tTier:     pulumi.String(\"GeneralPurpose\"),\n\t\t\t\tFamily:   pulumi.String(\"Gen5\"),\n\t\t\t\tCapacity: pulumi.Int(4),\n\t\t\t},\n\t\t\tPerDatabaseSettings: \u0026mssql.ElasticPoolPerDatabaseSettingsArgs{\n\t\t\t\tMinCapacity: pulumi.Float64(0.25),\n\t\t\t\tMaxCapacity: pulumi.Float64(4),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL Elastic Pool can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mssql/elasticPool:ElasticPool example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver/elasticPools/myelasticpoolname\n```\n\n ",
      "inputProperties": {
        "licenseType": {
          "description": "Specifies the license type applied to this database. Possible values are `LicenseIncluded` and `BasePrice`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxSizeBytes": {
          "description": "The max data size of the elastic pool in bytes. Conflicts with `max_size_gb`.\n",
          "type": "integer"
        },
        "maxSizeGb": {
          "description": "The max data size of the elastic pool in gigabytes. Conflicts with `max_size_bytes`.\n",
          "type": "number"
        },
        "name": {
          "description": "The name of the elastic pool. This needs to be globally unique. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "perDatabaseSettings": {
          "$ref": "#/types/azure:mssql/ElasticPoolPerDatabaseSettings:ElasticPoolPerDatabaseSettings",
          "description": "A `per_database_settings` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the elastic pool. This must be the same as the resource group of the underlying SQL server.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server on which to create the elastic pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "$ref": "#/types/azure:mssql/ElasticPoolSku:ElasticPoolSku",
          "description": "A `sku` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zoneRedundant": {
          "description": "Whether or not this elastic pool is zone redundant. `tier` needs to be `Premium` for `DTU` based  or `BusinessCritical` for `vCore` based `sku`. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "licenseType": {
          "description": "Specifies the license type applied to this database. Possible values are `LicenseIncluded` and `BasePrice`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxSizeBytes": {
          "description": "The max data size of the elastic pool in bytes. Conflicts with `max_size_gb`.\n",
          "type": "integer"
        },
        "maxSizeGb": {
          "description": "The max data size of the elastic pool in gigabytes. Conflicts with `max_size_bytes`.\n",
          "type": "number"
        },
        "name": {
          "description": "The name of the elastic pool. This needs to be globally unique. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "perDatabaseSettings": {
          "$ref": "#/types/azure:mssql/ElasticPoolPerDatabaseSettings:ElasticPoolPerDatabaseSettings",
          "description": "A `per_database_settings` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the elastic pool. This must be the same as the resource group of the underlying SQL server.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server on which to create the elastic pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "$ref": "#/types/azure:mssql/ElasticPoolSku:ElasticPoolSku",
          "description": "A `sku` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zoneRedundant": {
          "description": "Whether or not this elastic pool is zone redundant. `tier` needs to be `Premium` for `DTU` based  or `BusinessCritical` for `vCore` based `sku`. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "licenseType",
        "location",
        "maxSizeBytes",
        "maxSizeGb",
        "name",
        "perDatabaseSettings",
        "resourceGroupName",
        "serverName",
        "sku"
      ],
      "requiredInputs": [
        "perDatabaseSettings",
        "resourceGroupName",
        "serverName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ElasticPool resources.\n",
        "properties": {
          "licenseType": {
            "description": "Specifies the license type applied to this database. Possible values are `LicenseIncluded` and `BasePrice`.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maxSizeBytes": {
            "description": "The max data size of the elastic pool in bytes. Conflicts with `max_size_gb`.\n",
            "type": "integer"
          },
          "maxSizeGb": {
            "description": "The max data size of the elastic pool in gigabytes. Conflicts with `max_size_bytes`.\n",
            "type": "number"
          },
          "name": {
            "description": "The name of the elastic pool. This needs to be globally unique. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "perDatabaseSettings": {
            "$ref": "#/types/azure:mssql/ElasticPoolPerDatabaseSettings:ElasticPoolPerDatabaseSettings",
            "description": "A `per_database_settings` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the elastic pool. This must be the same as the resource group of the underlying SQL server.\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the SQL Server on which to create the elastic pool. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sku": {
            "$ref": "#/types/azure:mssql/ElasticPoolSku:ElasticPoolSku",
            "description": "A `sku` block as defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "zoneRedundant": {
            "description": "Whether or not this elastic pool is zone redundant. `tier` needs to be `Premium` for `DTU` based  or `BusinessCritical` for `vCore` based `sku`. Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:mssql/firewallRule:FirewallRule": {
      "description": "Allows you to manage an Azure SQL Firewall Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.mssql.Server(\"exampleServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: \"West US\",\n    version: \"12.0\",\n    administratorLogin: \"4dm1n157r470r\",\n    administratorLoginPassword: \"4-v3ry-53cr37-p455w0rd\",\n});\nconst exampleFirewallRule = new azure.mssql.FirewallRule(\"exampleFirewallRule\", {\n    serverId: exampleServer.id,\n    startIpAddress: \"10.0.17.62\",\n    endIpAddress: \"10.0.17.62\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.mssql.Server(\"exampleServer\",\n    resource_group_name=example_resource_group.name,\n    location=\"West US\",\n    version=\"12.0\",\n    administrator_login=\"4dm1n157r470r\",\n    administrator_login_password=\"4-v3ry-53cr37-p455w0rd\")\nexample_firewall_rule = azure.mssql.FirewallRule(\"exampleFirewallRule\",\n    server_id=example_server.id,\n    start_ip_address=\"10.0.17.62\",\n    end_ip_address=\"10.0.17.62\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.MSSql.Server(\"exampleServer\", new Azure.MSSql.ServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = \"West US\",\n            Version = \"12.0\",\n            AdministratorLogin = \"4dm1n157r470r\",\n            AdministratorLoginPassword = \"4-v3ry-53cr37-p455w0rd\",\n        });\n        var exampleFirewallRule = new Azure.MSSql.FirewallRule(\"exampleFirewallRule\", new Azure.MSSql.FirewallRuleArgs\n        {\n            ServerId = exampleServer.Id,\n            StartIpAddress = \"10.0.17.62\",\n            EndIpAddress = \"10.0.17.62\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mssql.NewServer(ctx, \"exampleServer\", \u0026mssql.ServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   pulumi.String(\"West US\"),\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"4dm1n157r470r\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"4-v3ry-53cr37-p455w0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewFirewallRule(ctx, \"exampleFirewallRule\", \u0026mssql.FirewallRuleArgs{\n\t\t\tServerId:       exampleServer.ID(),\n\t\t\tStartIpAddress: pulumi.String(\"10.0.17.62\"),\n\t\t\tEndIpAddress:   pulumi.String(\"10.0.17.62\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL Firewall Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mssql/firewallRule:FirewallRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver/firewallRules/rule1\n```\n\n ",
      "inputProperties": {
        "endIpAddress": {
          "description": "The ending IP address to allow through the firewall for this rule.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the firewall rule.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The resource ID of the SQL Server on which to create the Firewall Rule.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "The starting IP address to allow through the firewall for this rule.\n",
          "type": "string"
        }
      },
      "properties": {
        "endIpAddress": {
          "description": "The ending IP address to allow through the firewall for this rule.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the firewall rule.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The resource ID of the SQL Server on which to create the Firewall Rule.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "The starting IP address to allow through the firewall for this rule.\n",
          "type": "string"
        }
      },
      "required": [
        "endIpAddress",
        "name",
        "serverId",
        "startIpAddress"
      ],
      "requiredInputs": [
        "endIpAddress",
        "serverId",
        "startIpAddress"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FirewallRule resources.\n",
        "properties": {
          "endIpAddress": {
            "description": "The ending IP address to allow through the firewall for this rule.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the firewall rule.\n",
            "type": "string"
          },
          "serverId": {
            "description": "The resource ID of the SQL Server on which to create the Firewall Rule.\n",
            "type": "string"
          },
          "startIpAddress": {
            "description": "The starting IP address to allow through the firewall for this rule.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mssql/jobAgent:JobAgent": {
      "description": "Manages an Elastic Job Agent.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"northeurope\"});\nconst exampleServer = new azure.mssql.Server(\"exampleServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"4dm1n157r470r\",\n    administratorLoginPassword: \"4-v3ry-53cr37-p455w0rd\",\n});\nconst exampleDatabase = new azure.mssql.Database(\"exampleDatabase\", {\n    serverId: exampleServer.id,\n    collation: \"SQL_Latin1_General_CP1_CI_AS\",\n    skuName: \"S1\",\n});\nconst exampleJobAgent = new azure.mssql.JobAgent(\"exampleJobAgent\", {\n    location: exampleResourceGroup.location,\n    databaseId: exampleDatabase.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"northeurope\")\nexample_server = azure.mssql.Server(\"exampleServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"4dm1n157r470r\",\n    administrator_login_password=\"4-v3ry-53cr37-p455w0rd\")\nexample_database = azure.mssql.Database(\"exampleDatabase\",\n    server_id=example_server.id,\n    collation=\"SQL_Latin1_General_CP1_CI_AS\",\n    sku_name=\"S1\")\nexample_job_agent = azure.mssql.JobAgent(\"exampleJobAgent\",\n    location=example_resource_group.location,\n    database_id=example_database.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"northeurope\",\n        });\n        var exampleServer = new Azure.MSSql.Server(\"exampleServer\", new Azure.MSSql.ServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"4dm1n157r470r\",\n            AdministratorLoginPassword = \"4-v3ry-53cr37-p455w0rd\",\n        });\n        var exampleDatabase = new Azure.MSSql.Database(\"exampleDatabase\", new Azure.MSSql.DatabaseArgs\n        {\n            ServerId = exampleServer.Id,\n            Collation = \"SQL_Latin1_General_CP1_CI_AS\",\n            SkuName = \"S1\",\n        });\n        var exampleJobAgent = new Azure.MSSql.JobAgent(\"exampleJobAgent\", new Azure.MSSql.JobAgentArgs\n        {\n            Location = exampleResourceGroup.Location,\n            DatabaseId = exampleDatabase.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"northeurope\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mssql.NewServer(ctx, \"exampleServer\", \u0026mssql.ServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"4dm1n157r470r\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"4-v3ry-53cr37-p455w0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDatabase, err := mssql.NewDatabase(ctx, \"exampleDatabase\", \u0026mssql.DatabaseArgs{\n\t\t\tServerId:  exampleServer.ID(),\n\t\t\tCollation: pulumi.String(\"SQL_Latin1_General_CP1_CI_AS\"),\n\t\t\tSkuName:   pulumi.String(\"S1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewJobAgent(ctx, \"exampleJobAgent\", \u0026mssql.JobAgentArgs{\n\t\t\tLocation:   exampleResourceGroup.Location,\n\t\t\tDatabaseId: exampleDatabase.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nElastic Job Agents can be imported using the `id`, e.g.\n\n```sh\n $ pulumi import azure:mssql/jobAgent:JobAgent example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Sql/servers/myserver1/jobAgents/myjobagent1\n```\n\n ",
      "inputProperties": {
        "databaseId": {
          "description": "The ID of the database to store metadata for the Elastic Job Agent. Changing this forces a new Elastic Job Agent to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Elastic Job Agent should exist. Changing this forces a new Elastic Job Agent to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Elastic Job Agent. Changing this forces a new Elastic Job Agent to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Database.\n",
          "type": "object"
        }
      },
      "properties": {
        "databaseId": {
          "description": "The ID of the database to store metadata for the Elastic Job Agent. Changing this forces a new Elastic Job Agent to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Elastic Job Agent should exist. Changing this forces a new Elastic Job Agent to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Elastic Job Agent. Changing this forces a new Elastic Job Agent to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Database.\n",
          "type": "object"
        }
      },
      "required": [
        "databaseId",
        "location",
        "name"
      ],
      "requiredInputs": [
        "databaseId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering JobAgent resources.\n",
        "properties": {
          "databaseId": {
            "description": "The ID of the database to store metadata for the Elastic Job Agent. Changing this forces a new Elastic Job Agent to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Elastic Job Agent should exist. Changing this forces a new Elastic Job Agent to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Elastic Job Agent. Changing this forces a new Elastic Job Agent to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Database.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:mssql/jobCredential:JobCredential": {
      "description": "Manages an Elastic Job Credential.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"northeurope\"});\nconst exampleServer = new azure.mssql.Server(\"exampleServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"4dm1n157r470r\",\n    administratorLoginPassword: \"4-v3ry-53cr37-p455w0rd\",\n});\nconst exampleDatabase = new azure.mssql.Database(\"exampleDatabase\", {\n    serverId: exampleServer.id,\n    collation: \"SQL_Latin1_General_CP1_CI_AS\",\n    skuName: \"S1\",\n});\nconst exampleJobAgent = new azure.mssql.JobAgent(\"exampleJobAgent\", {\n    location: exampleResourceGroup.location,\n    databaseId: exampleDatabase.id,\n});\nconst exampleJobCredential = new azure.mssql.JobCredential(\"exampleJobCredential\", {\n    jobAgentId: exampleJobAgent.id,\n    username: \"my-username\",\n    password: \"MyP4ssw0rd!!!\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"northeurope\")\nexample_server = azure.mssql.Server(\"exampleServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"4dm1n157r470r\",\n    administrator_login_password=\"4-v3ry-53cr37-p455w0rd\")\nexample_database = azure.mssql.Database(\"exampleDatabase\",\n    server_id=example_server.id,\n    collation=\"SQL_Latin1_General_CP1_CI_AS\",\n    sku_name=\"S1\")\nexample_job_agent = azure.mssql.JobAgent(\"exampleJobAgent\",\n    location=example_resource_group.location,\n    database_id=example_database.id)\nexample_job_credential = azure.mssql.JobCredential(\"exampleJobCredential\",\n    job_agent_id=example_job_agent.id,\n    username=\"my-username\",\n    password=\"MyP4ssw0rd!!!\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"northeurope\",\n        });\n        var exampleServer = new Azure.MSSql.Server(\"exampleServer\", new Azure.MSSql.ServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"4dm1n157r470r\",\n            AdministratorLoginPassword = \"4-v3ry-53cr37-p455w0rd\",\n        });\n        var exampleDatabase = new Azure.MSSql.Database(\"exampleDatabase\", new Azure.MSSql.DatabaseArgs\n        {\n            ServerId = exampleServer.Id,\n            Collation = \"SQL_Latin1_General_CP1_CI_AS\",\n            SkuName = \"S1\",\n        });\n        var exampleJobAgent = new Azure.MSSql.JobAgent(\"exampleJobAgent\", new Azure.MSSql.JobAgentArgs\n        {\n            Location = exampleResourceGroup.Location,\n            DatabaseId = exampleDatabase.Id,\n        });\n        var exampleJobCredential = new Azure.MSSql.JobCredential(\"exampleJobCredential\", new Azure.MSSql.JobCredentialArgs\n        {\n            JobAgentId = exampleJobAgent.Id,\n            Username = \"my-username\",\n            Password = \"MyP4ssw0rd!!!\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"northeurope\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mssql.NewServer(ctx, \"exampleServer\", \u0026mssql.ServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"4dm1n157r470r\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"4-v3ry-53cr37-p455w0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDatabase, err := mssql.NewDatabase(ctx, \"exampleDatabase\", \u0026mssql.DatabaseArgs{\n\t\t\tServerId:  exampleServer.ID(),\n\t\t\tCollation: pulumi.String(\"SQL_Latin1_General_CP1_CI_AS\"),\n\t\t\tSkuName:   pulumi.String(\"S1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleJobAgent, err := mssql.NewJobAgent(ctx, \"exampleJobAgent\", \u0026mssql.JobAgentArgs{\n\t\t\tLocation:   exampleResourceGroup.Location,\n\t\t\tDatabaseId: exampleDatabase.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewJobCredential(ctx, \"exampleJobCredential\", \u0026mssql.JobCredentialArgs{\n\t\t\tJobAgentId: exampleJobAgent.ID(),\n\t\t\tUsername:   pulumi.String(\"my-username\"),\n\t\t\tPassword:   pulumi.String(\"MyP4ssw0rd!!!\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nElastic Job Credentials can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mssql/jobCredential:JobCredential example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Sql/servers/myserver1/jobAgents/myjobagent1/credentials/credential1\n```\n\n ",
      "inputProperties": {
        "jobAgentId": {
          "description": "The ID of the Elastic Job Agent. Changing this forces a new Elastic Job Credential to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Elastic Job Credential. Changing this forces a new Elastic Job Credential to be created.\n",
          "type": "string"
        },
        "password": {
          "description": "The password part of the credential.\n",
          "type": "string"
        },
        "username": {
          "description": "The username part of the credential.\n",
          "type": "string"
        }
      },
      "properties": {
        "jobAgentId": {
          "description": "The ID of the Elastic Job Agent. Changing this forces a new Elastic Job Credential to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Elastic Job Credential. Changing this forces a new Elastic Job Credential to be created.\n",
          "type": "string"
        },
        "password": {
          "description": "The password part of the credential.\n",
          "type": "string"
        },
        "username": {
          "description": "The username part of the credential.\n",
          "type": "string"
        }
      },
      "required": [
        "jobAgentId",
        "name",
        "password",
        "username"
      ],
      "requiredInputs": [
        "jobAgentId",
        "password",
        "username"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering JobCredential resources.\n",
        "properties": {
          "jobAgentId": {
            "description": "The ID of the Elastic Job Agent. Changing this forces a new Elastic Job Credential to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Elastic Job Credential. Changing this forces a new Elastic Job Credential to be created.\n",
            "type": "string"
          },
          "password": {
            "description": "The password part of the credential.\n",
            "type": "string"
          },
          "username": {
            "description": "The username part of the credential.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mssql/server:Server": {
      "description": "Manages a Microsoft SQL Azure Database Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleServer = new azure.mssql.Server(\"exampleServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"missadministrator\",\n    administratorLoginPassword: \"thisIsKat11\",\n    minimumTlsVersion: \"1.2\",\n    azureadAdministrator: {\n        loginUsername: \"AzureAD Admin\",\n        objectId: \"00000000-0000-0000-0000-000000000000\",\n    },\n    extendedAuditingPolicy: {\n        storageEndpoint: exampleAccount.primaryBlobEndpoint,\n        storageAccountAccessKey: exampleAccount.primaryAccessKey,\n        storageAccountAccessKeyIsSecondary: true,\n        retentionInDays: 6,\n    },\n    tags: {\n        environment: \"production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_server = azure.mssql.Server(\"exampleServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"missadministrator\",\n    administrator_login_password=\"thisIsKat11\",\n    minimum_tls_version=\"1.2\",\n    azuread_administrator=azure.mssql.ServerAzureadAdministratorArgs(\n        login_username=\"AzureAD Admin\",\n        object_id=\"00000000-0000-0000-0000-000000000000\",\n    ),\n    extended_auditing_policy=azure.mssql.ServerExtendedAuditingPolicyArgs(\n        storage_endpoint=example_account.primary_blob_endpoint,\n        storage_account_access_key=example_account.primary_access_key,\n        storage_account_access_key_is_secondary=True,\n        retention_in_days=6,\n    ),\n    tags={\n        \"environment\": \"production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleServer = new Azure.MSSql.Server(\"exampleServer\", new Azure.MSSql.ServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"missadministrator\",\n            AdministratorLoginPassword = \"thisIsKat11\",\n            MinimumTlsVersion = \"1.2\",\n            AzureadAdministrator = new Azure.MSSql.Inputs.ServerAzureadAdministratorArgs\n            {\n                LoginUsername = \"AzureAD Admin\",\n                ObjectId = \"00000000-0000-0000-0000-000000000000\",\n            },\n            ExtendedAuditingPolicy = new Azure.MSSql.Inputs.ServerExtendedAuditingPolicyArgs\n            {\n                StorageEndpoint = exampleAccount.PrimaryBlobEndpoint,\n                StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n                StorageAccountAccessKeyIsSecondary = true,\n                RetentionInDays = 6,\n            },\n            Tags = \n            {\n                { \"environment\", \"production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewServer(ctx, \"exampleServer\", \u0026mssql.ServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"missadministrator\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"thisIsKat11\"),\n\t\t\tMinimumTlsVersion:          pulumi.String(\"1.2\"),\n\t\t\tAzureadAdministrator: \u0026mssql.ServerAzureadAdministratorArgs{\n\t\t\t\tLoginUsername: pulumi.String(\"AzureAD Admin\"),\n\t\t\t\tObjectId:      pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t},\n\t\t\tExtendedAuditingPolicy: \u0026mssql.ServerExtendedAuditingPolicyArgs{\n\t\t\t\tStorageEndpoint:                    exampleAccount.PrimaryBlobEndpoint,\n\t\t\t\tStorageAccountAccessKey:            exampleAccount.PrimaryAccessKey,\n\t\t\t\tStorageAccountAccessKeyIsSecondary: pulumi.Bool(true),\n\t\t\t\tRetentionInDays:                    pulumi.Int(6),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL Servers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mssql/server:Server example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver\n```\n\n ",
      "inputProperties": {
        "administratorLogin": {
          "description": "The administrator login name for the new server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "administratorLoginPassword": {
          "description": "The password associated with the `administrator_login` user. Needs to comply with Azure's [Password Policy](https://msdn.microsoft.com/library/ms161959.aspx)\n",
          "type": "string"
        },
        "azureadAdministrator": {
          "$ref": "#/types/azure:mssql/ServerAzureadAdministrator:ServerAzureadAdministrator",
          "description": "An `azuread_administrator` block as defined below.\n"
        },
        "connectionPolicy": {
          "description": "The connection policy the server will use. Possible values are `Default`, `Proxy`, and `Redirect`. Defaults to `Default`.\n",
          "type": "string"
        },
        "extendedAuditingPolicy": {
          "$ref": "#/types/azure:mssql/ServerExtendedAuditingPolicy:ServerExtendedAuditingPolicy",
          "deprecationMessage": "the `extended_auditing_policy` block has been moved to `azurerm_mssql_server_extended_auditing_policy` and `azurerm_mssql_database_extended_auditing_policy`. This block will be removed in version 3.0 of the provider.",
          "description": "A `extended_auditing_policy` block as defined below.\n"
        },
        "identity": {
          "$ref": "#/types/azure:mssql/ServerIdentity:ServerIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "minimumTlsVersion": {
          "description": "The Minimum TLS Version for all SQL Database and SQL Data Warehouse databases associated with the server. Valid values are: `1.0`, `1.1` and `1.2`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Microsoft SQL Server. This needs to be globally unique within Azure.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Microsoft SQL Server.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "version": {
          "description": "The version for the new server. Valid values are: 2.0 (for v11 server) and 12.0 (for v12 server).\n",
          "type": "string"
        }
      },
      "properties": {
        "administratorLogin": {
          "description": "The administrator login name for the new server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "administratorLoginPassword": {
          "description": "The password associated with the `administrator_login` user. Needs to comply with Azure's [Password Policy](https://msdn.microsoft.com/library/ms161959.aspx)\n",
          "type": "string"
        },
        "azureadAdministrator": {
          "$ref": "#/types/azure:mssql/ServerAzureadAdministrator:ServerAzureadAdministrator",
          "description": "An `azuread_administrator` block as defined below.\n"
        },
        "connectionPolicy": {
          "description": "The connection policy the server will use. Possible values are `Default`, `Proxy`, and `Redirect`. Defaults to `Default`.\n",
          "type": "string"
        },
        "extendedAuditingPolicy": {
          "$ref": "#/types/azure:mssql/ServerExtendedAuditingPolicy:ServerExtendedAuditingPolicy",
          "deprecationMessage": "the `extended_auditing_policy` block has been moved to `azurerm_mssql_server_extended_auditing_policy` and `azurerm_mssql_database_extended_auditing_policy`. This block will be removed in version 3.0 of the provider.",
          "description": "A `extended_auditing_policy` block as defined below.\n"
        },
        "fullyQualifiedDomainName": {
          "description": "The fully qualified domain name of the Azure SQL Server (e.g. myServerName.database.windows.net)\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:mssql/ServerIdentity:ServerIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "minimumTlsVersion": {
          "description": "The Minimum TLS Version for all SQL Database and SQL Data Warehouse databases associated with the server. Valid values are: `1.0`, `1.1` and `1.2`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Microsoft SQL Server. This needs to be globally unique within Azure.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Microsoft SQL Server.\n",
          "type": "string"
        },
        "restorableDroppedDatabaseIds": {
          "description": "A list of dropped restorable database IDs on the server.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "version": {
          "description": "The version for the new server. Valid values are: 2.0 (for v11 server) and 12.0 (for v12 server).\n",
          "type": "string"
        }
      },
      "required": [
        "administratorLogin",
        "administratorLoginPassword",
        "extendedAuditingPolicy",
        "fullyQualifiedDomainName",
        "location",
        "name",
        "resourceGroupName",
        "restorableDroppedDatabaseIds",
        "version"
      ],
      "requiredInputs": [
        "administratorLogin",
        "administratorLoginPassword",
        "resourceGroupName",
        "version"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Server resources.\n",
        "properties": {
          "administratorLogin": {
            "description": "The administrator login name for the new server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "administratorLoginPassword": {
            "description": "The password associated with the `administrator_login` user. Needs to comply with Azure's [Password Policy](https://msdn.microsoft.com/library/ms161959.aspx)\n",
            "type": "string"
          },
          "azureadAdministrator": {
            "$ref": "#/types/azure:mssql/ServerAzureadAdministrator:ServerAzureadAdministrator",
            "description": "An `azuread_administrator` block as defined below.\n"
          },
          "connectionPolicy": {
            "description": "The connection policy the server will use. Possible values are `Default`, `Proxy`, and `Redirect`. Defaults to `Default`.\n",
            "type": "string"
          },
          "extendedAuditingPolicy": {
            "$ref": "#/types/azure:mssql/ServerExtendedAuditingPolicy:ServerExtendedAuditingPolicy",
            "deprecationMessage": "the `extended_auditing_policy` block has been moved to `azurerm_mssql_server_extended_auditing_policy` and `azurerm_mssql_database_extended_auditing_policy`. This block will be removed in version 3.0 of the provider.",
            "description": "A `extended_auditing_policy` block as defined below.\n"
          },
          "fullyQualifiedDomainName": {
            "description": "The fully qualified domain name of the Azure SQL Server (e.g. myServerName.database.windows.net)\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:mssql/ServerIdentity:ServerIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "minimumTlsVersion": {
            "description": "The Minimum TLS Version for all SQL Database and SQL Data Warehouse databases associated with the server. Valid values are: `1.0`, `1.1` and `1.2`.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Microsoft SQL Server. This needs to be globally unique within Azure.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether public network access is allowed for this server. Defaults to `true`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Microsoft SQL Server.\n",
            "type": "string"
          },
          "restorableDroppedDatabaseIds": {
            "description": "A list of dropped restorable database IDs on the server.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "version": {
            "description": "The version for the new server. Valid values are: 2.0 (for v11 server) and 12.0 (for v12 server).\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mssql/serverExtendedAuditingPolicy:ServerExtendedAuditingPolicy": {
      "description": "Manages a Ms Sql Server Extended Auditing Policy.\n\n\u003e **NOTE:** The Server Extended Auditing Policy Can be set inline here as well as with the mssql_server_extended_auditing_policy resource resource. You can only use one or the other and using both will cause a conflict.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.mssql.Server(\"exampleServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"missadministrator\",\n    administratorLoginPassword: \"AdminPassword123!\",\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleServerExtendedAuditingPolicy = new azure.mssql.ServerExtendedAuditingPolicy(\"exampleServerExtendedAuditingPolicy\", {\n    serverId: exampleServer.id,\n    storageEndpoint: exampleAccount.primaryBlobEndpoint,\n    storageAccountAccessKey: exampleAccount.primaryAccessKey,\n    storageAccountAccessKeyIsSecondary: false,\n    retentionInDays: 6,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.mssql.Server(\"exampleServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"missadministrator\",\n    administrator_login_password=\"AdminPassword123!\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_server_extended_auditing_policy = azure.mssql.ServerExtendedAuditingPolicy(\"exampleServerExtendedAuditingPolicy\",\n    server_id=example_server.id,\n    storage_endpoint=example_account.primary_blob_endpoint,\n    storage_account_access_key=example_account.primary_access_key,\n    storage_account_access_key_is_secondary=False,\n    retention_in_days=6)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.MSSql.Server(\"exampleServer\", new Azure.MSSql.ServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"missadministrator\",\n            AdministratorLoginPassword = \"AdminPassword123!\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleServerExtendedAuditingPolicy = new Azure.MSSql.ServerExtendedAuditingPolicy(\"exampleServerExtendedAuditingPolicy\", new Azure.MSSql.ServerExtendedAuditingPolicyArgs\n        {\n            ServerId = exampleServer.Id,\n            StorageEndpoint = exampleAccount.PrimaryBlobEndpoint,\n            StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n            StorageAccountAccessKeyIsSecondary = false,\n            RetentionInDays = 6,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mssql.NewServer(ctx, \"exampleServer\", \u0026mssql.ServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"missadministrator\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"AdminPassword123!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewServerExtendedAuditingPolicy(ctx, \"exampleServerExtendedAuditingPolicy\", \u0026mssql.ServerExtendedAuditingPolicyArgs{\n\t\t\tServerId:                           exampleServer.ID(),\n\t\t\tStorageEndpoint:                    exampleAccount.PrimaryBlobEndpoint,\n\t\t\tStorageAccountAccessKey:            exampleAccount.PrimaryAccessKey,\n\t\t\tStorageAccountAccessKeyIsSecondary: pulumi.Bool(false),\n\t\t\tRetentionInDays:                    pulumi.Int(6),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMs Sql Server Extended Auditing Policys can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mssql/serverExtendedAuditingPolicy:ServerExtendedAuditingPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Sql/servers/sqlServer1/extendedAuditingSettings/default\n```\n\n ",
      "inputProperties": {
        "logMonitoringEnabled": {
          "description": "Enable audit events to Azure Monitor? To enable server audit events to Azure Monitor, please enable its main database audit events to Azure Monitor.\n",
          "type": "boolean"
        },
        "retentionInDays": {
          "description": "The number of days to retain logs for in the storage account.\n",
          "type": "integer"
        },
        "serverId": {
          "description": "The ID of the sql server to set the extended auditing policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountAccessKey": {
          "description": "The access key to use for the auditing storage account.\n",
          "type": "string"
        },
        "storageAccountAccessKeyIsSecondary": {
          "description": "Is `storage_account_access_key` value the storage's secondary key?\n",
          "type": "boolean"
        },
        "storageEndpoint": {
          "description": "The blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all extended auditing logs.\n",
          "type": "string"
        }
      },
      "properties": {
        "logMonitoringEnabled": {
          "description": "Enable audit events to Azure Monitor? To enable server audit events to Azure Monitor, please enable its main database audit events to Azure Monitor.\n",
          "type": "boolean"
        },
        "retentionInDays": {
          "description": "The number of days to retain logs for in the storage account.\n",
          "type": "integer"
        },
        "serverId": {
          "description": "The ID of the sql server to set the extended auditing policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountAccessKey": {
          "description": "The access key to use for the auditing storage account.\n",
          "type": "string"
        },
        "storageAccountAccessKeyIsSecondary": {
          "description": "Is `storage_account_access_key` value the storage's secondary key?\n",
          "type": "boolean"
        },
        "storageEndpoint": {
          "description": "The blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all extended auditing logs.\n",
          "type": "string"
        }
      },
      "required": [
        "serverId"
      ],
      "requiredInputs": [
        "serverId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ServerExtendedAuditingPolicy resources.\n",
        "properties": {
          "logMonitoringEnabled": {
            "description": "Enable audit events to Azure Monitor? To enable server audit events to Azure Monitor, please enable its main database audit events to Azure Monitor.\n",
            "type": "boolean"
          },
          "retentionInDays": {
            "description": "The number of days to retain logs for in the storage account.\n",
            "type": "integer"
          },
          "serverId": {
            "description": "The ID of the sql server to set the extended auditing policy. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageAccountAccessKey": {
            "description": "The access key to use for the auditing storage account.\n",
            "type": "string"
          },
          "storageAccountAccessKeyIsSecondary": {
            "description": "Is `storage_account_access_key` value the storage's secondary key?\n",
            "type": "boolean"
          },
          "storageEndpoint": {
            "description": "The blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all extended auditing logs.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mssql/serverSecurityAlertPolicy:ServerSecurityAlertPolicy": {
      "description": "Manages a Security Alert Policy for a MSSQL Server.\n\n\u003e **NOTE** Security Alert Policy is currently only available for MS SQL databases.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSqlServer = new azure.sql.SqlServer(\"exampleSqlServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"4dm1n157r470r\",\n    administratorLoginPassword: \"4-v3ry-53cr37-p455w0rd\",\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleServerSecurityAlertPolicy = new azure.mssql.ServerSecurityAlertPolicy(\"exampleServerSecurityAlertPolicy\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleSqlServer.name,\n    state: \"Enabled\",\n    storageEndpoint: exampleAccount.primaryBlobEndpoint,\n    storageAccountAccessKey: exampleAccount.primaryAccessKey,\n    disabledAlerts: [\n        \"Sql_Injection\",\n        \"Data_Exfiltration\",\n    ],\n    retentionDays: 20,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_sql_server = azure.sql.SqlServer(\"exampleSqlServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"4dm1n157r470r\",\n    administrator_login_password=\"4-v3ry-53cr37-p455w0rd\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_server_security_alert_policy = azure.mssql.ServerSecurityAlertPolicy(\"exampleServerSecurityAlertPolicy\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_sql_server.name,\n    state=\"Enabled\",\n    storage_endpoint=example_account.primary_blob_endpoint,\n    storage_account_access_key=example_account.primary_access_key,\n    disabled_alerts=[\n        \"Sql_Injection\",\n        \"Data_Exfiltration\",\n    ],\n    retention_days=20)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSqlServer = new Azure.Sql.SqlServer(\"exampleSqlServer\", new Azure.Sql.SqlServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"4dm1n157r470r\",\n            AdministratorLoginPassword = \"4-v3ry-53cr37-p455w0rd\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleServerSecurityAlertPolicy = new Azure.MSSql.ServerSecurityAlertPolicy(\"exampleServerSecurityAlertPolicy\", new Azure.MSSql.ServerSecurityAlertPolicyArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleSqlServer.Name,\n            State = \"Enabled\",\n            StorageEndpoint = exampleAccount.PrimaryBlobEndpoint,\n            StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n            DisabledAlerts = \n            {\n                \"Sql_Injection\",\n                \"Data_Exfiltration\",\n            },\n            RetentionDays = 20,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlServer, err := sql.NewSqlServer(ctx, \"exampleSqlServer\", \u0026sql.SqlServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"4dm1n157r470r\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"4-v3ry-53cr37-p455w0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewServerSecurityAlertPolicy(ctx, \"exampleServerSecurityAlertPolicy\", \u0026mssql.ServerSecurityAlertPolicyArgs{\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tServerName:              exampleSqlServer.Name,\n\t\t\tState:                   pulumi.String(\"Enabled\"),\n\t\t\tStorageEndpoint:         exampleAccount.PrimaryBlobEndpoint,\n\t\t\tStorageAccountAccessKey: exampleAccount.PrimaryAccessKey,\n\t\t\tDisabledAlerts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Sql_Injection\"),\n\t\t\t\tpulumi.String(\"Data_Exfiltration\"),\n\t\t\t},\n\t\t\tRetentionDays: pulumi.Int(20),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMS SQL Server Security Alert Policy can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mssql/serverSecurityAlertPolicy:ServerSecurityAlertPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/acceptanceTestResourceGroup1/providers/Microsoft.Sql/servers/mssqlserver/securityAlertPolicies/Default\n```\n\n ",
      "inputProperties": {
        "disabledAlerts": {
          "description": "Specifies an array of alerts that are disabled. Allowed values are: `Sql_Injection`, `Sql_Injection_Vulnerability`, `Access_Anomaly`, `Data_Exfiltration`, `Unsafe_Action`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "emailAccountAdmins": {
          "description": "Boolean flag which specifies if the alert is sent to the account administrators or not. Defaults to `false`.\n",
          "type": "boolean"
        },
        "emailAddresses": {
          "description": "Specifies an array of e-mail addresses to which the alert is sent.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group that contains the MS SQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retentionDays": {
          "description": "Specifies the number of days to keep in the Threat Detection audit logs. Defaults to `0`.\n",
          "type": "integer"
        },
        "serverName": {
          "description": "Specifies the name of the MS SQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "state": {
          "description": "Specifies the state of the policy, whether it is enabled or disabled or a policy has not been applied yet on the specific database server. Allowed values are: `Disabled`, `Enabled`.\n",
          "type": "string"
        },
        "storageAccountAccessKey": {
          "description": "Specifies the identifier key of the Threat Detection audit storage account.\n",
          "type": "string"
        },
        "storageEndpoint": {
          "description": "Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all Threat Detection audit logs.\n",
          "type": "string"
        }
      },
      "properties": {
        "disabledAlerts": {
          "description": "Specifies an array of alerts that are disabled. Allowed values are: `Sql_Injection`, `Sql_Injection_Vulnerability`, `Access_Anomaly`, `Data_Exfiltration`, `Unsafe_Action`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "emailAccountAdmins": {
          "description": "Boolean flag which specifies if the alert is sent to the account administrators or not. Defaults to `false`.\n",
          "type": "boolean"
        },
        "emailAddresses": {
          "description": "Specifies an array of e-mail addresses to which the alert is sent.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group that contains the MS SQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retentionDays": {
          "description": "Specifies the number of days to keep in the Threat Detection audit logs. Defaults to `0`.\n",
          "type": "integer"
        },
        "serverName": {
          "description": "Specifies the name of the MS SQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "state": {
          "description": "Specifies the state of the policy, whether it is enabled or disabled or a policy has not been applied yet on the specific database server. Allowed values are: `Disabled`, `Enabled`.\n",
          "type": "string"
        },
        "storageAccountAccessKey": {
          "description": "Specifies the identifier key of the Threat Detection audit storage account.\n",
          "type": "string"
        },
        "storageEndpoint": {
          "description": "Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all Threat Detection audit logs.\n",
          "type": "string"
        }
      },
      "required": [
        "resourceGroupName",
        "serverName",
        "state"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "serverName",
        "state"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ServerSecurityAlertPolicy resources.\n",
        "properties": {
          "disabledAlerts": {
            "description": "Specifies an array of alerts that are disabled. Allowed values are: `Sql_Injection`, `Sql_Injection_Vulnerability`, `Access_Anomaly`, `Data_Exfiltration`, `Unsafe_Action`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "emailAccountAdmins": {
            "description": "Boolean flag which specifies if the alert is sent to the account administrators or not. Defaults to `false`.\n",
            "type": "boolean"
          },
          "emailAddresses": {
            "description": "Specifies an array of e-mail addresses to which the alert is sent.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the resource group that contains the MS SQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "retentionDays": {
            "description": "Specifies the number of days to keep in the Threat Detection audit logs. Defaults to `0`.\n",
            "type": "integer"
          },
          "serverName": {
            "description": "Specifies the name of the MS SQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "state": {
            "description": "Specifies the state of the policy, whether it is enabled or disabled or a policy has not been applied yet on the specific database server. Allowed values are: `Disabled`, `Enabled`.\n",
            "type": "string"
          },
          "storageAccountAccessKey": {
            "description": "Specifies the identifier key of the Threat Detection audit storage account.\n",
            "type": "string"
          },
          "storageEndpoint": {
            "description": "Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all Threat Detection audit logs.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mssql/serverTransparentDataEncryption:ServerTransparentDataEncryption": {
      "description": "Manages the transparent data encryption configuration for a MSSQL Server\n\n\u003e **NOTE:** Once transparent data encryption is enabled on a MS SQL instance, it is not possible to remove TDE. You will be able to switch between 'ServiceManaged' and 'CustomerManaged' keys, but will not be able to remove encryption. For safety when this resource is deleted, the TDE mode will automatically be set to 'ServiceManaged'. See `key_vault_uri` for more information on how to specify the key types. As SQL Server only supports a single configuration for encryption settings, this resource will replace the current encryption settings on the server. \n\n\u003e **Note:** See [documentation](https://docs.microsoft.com/en-us/azure/azure-sql/database/transparent-data-encryption-byok-overview) for important information on how handle lifecycle management of the keys to prevent data lockout. \n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### With Service Managed Key\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"EastUs\"});\nconst exampleServer = new azure.mssql.Server(\"exampleServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"missadministrator\",\n    administratorLoginPassword: \"thisIsKat11\",\n    minimumTlsVersion: \"1.2\",\n    azureadAdministrator: {\n        loginUsername: \"AzureAD Admin\",\n        objectId: \"00000000-0000-0000-0000-000000000000\",\n    },\n    extendedAuditingPolicy: {\n        storageEndpoint: azurerm_storage_account.example.primary_blob_endpoint,\n        storageAccountAccessKey: azurerm_storage_account.example.primary_access_key,\n        storageAccountAccessKeyIsSecondary: true,\n        retentionInDays: 6,\n    },\n    tags: {\n        environment: \"production\",\n    },\n});\nconst exampleServerTransparentDataEncryption = new azure.mssql.ServerTransparentDataEncryption(\"exampleServerTransparentDataEncryption\", {serverId: exampleServer.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"EastUs\")\nexample_server = azure.mssql.Server(\"exampleServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"missadministrator\",\n    administrator_login_password=\"thisIsKat11\",\n    minimum_tls_version=\"1.2\",\n    azuread_administrator=azure.mssql.ServerAzureadAdministratorArgs(\n        login_username=\"AzureAD Admin\",\n        object_id=\"00000000-0000-0000-0000-000000000000\",\n    ),\n    extended_auditing_policy=azure.mssql.ServerExtendedAuditingPolicyArgs(\n        storage_endpoint=azurerm_storage_account[\"example\"][\"primary_blob_endpoint\"],\n        storage_account_access_key=azurerm_storage_account[\"example\"][\"primary_access_key\"],\n        storage_account_access_key_is_secondary=True,\n        retention_in_days=6,\n    ),\n    tags={\n        \"environment\": \"production\",\n    })\nexample_server_transparent_data_encryption = azure.mssql.ServerTransparentDataEncryption(\"exampleServerTransparentDataEncryption\", server_id=example_server.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"EastUs\",\n        });\n        var exampleServer = new Azure.MSSql.Server(\"exampleServer\", new Azure.MSSql.ServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"missadministrator\",\n            AdministratorLoginPassword = \"thisIsKat11\",\n            MinimumTlsVersion = \"1.2\",\n            AzureadAdministrator = new Azure.MSSql.Inputs.ServerAzureadAdministratorArgs\n            {\n                LoginUsername = \"AzureAD Admin\",\n                ObjectId = \"00000000-0000-0000-0000-000000000000\",\n            },\n            ExtendedAuditingPolicy = new Azure.MSSql.Inputs.ServerExtendedAuditingPolicyArgs\n            {\n                StorageEndpoint = azurerm_storage_account.Example.Primary_blob_endpoint,\n                StorageAccountAccessKey = azurerm_storage_account.Example.Primary_access_key,\n                StorageAccountAccessKeyIsSecondary = true,\n                RetentionInDays = 6,\n            },\n            Tags = \n            {\n                { \"environment\", \"production\" },\n            },\n        });\n        var exampleServerTransparentDataEncryption = new Azure.MSSql.ServerTransparentDataEncryption(\"exampleServerTransparentDataEncryption\", new Azure.MSSql.ServerTransparentDataEncryptionArgs\n        {\n            ServerId = exampleServer.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"EastUs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mssql.NewServer(ctx, \"exampleServer\", \u0026mssql.ServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"missadministrator\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"thisIsKat11\"),\n\t\t\tMinimumTlsVersion:          pulumi.String(\"1.2\"),\n\t\t\tAzureadAdministrator: \u0026mssql.ServerAzureadAdministratorArgs{\n\t\t\t\tLoginUsername: pulumi.String(\"AzureAD Admin\"),\n\t\t\t\tObjectId:      pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t},\n\t\t\tExtendedAuditingPolicy: \u0026mssql.ServerExtendedAuditingPolicyArgs{\n\t\t\t\tStorageEndpoint:                    pulumi.Any(azurerm_storage_account.Example.Primary_blob_endpoint),\n\t\t\t\tStorageAccountAccessKey:            pulumi.Any(azurerm_storage_account.Example.Primary_access_key),\n\t\t\t\tStorageAccountAccessKeyIsSecondary: pulumi.Bool(true),\n\t\t\t\tRetentionInDays:                    pulumi.Int(6),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewServerTransparentDataEncryption(ctx, \"exampleServerTransparentDataEncryption\", \u0026mssql.ServerTransparentDataEncryptionArgs{\n\t\t\tServerId: exampleServer.ID(),\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\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL Server Transparent Data Encryption can be imported using the resource id, e.g.\n\n```sh\n $ pulumi import azure:mssql/serverTransparentDataEncryption:ServerTransparentDataEncryption example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/encryptionProtector/current\n```\n\n ",
      "inputProperties": {
        "keyVaultKeyId": {
          "description": "To use customer managed keys from Azure Key Vault, provide the AKV Key ID. To use service managed keys, omit this field.\n",
          "type": "string"
        },
        "serverId": {
          "description": "Specifies the name of the MS SQL Server.\n",
          "type": "string"
        }
      },
      "properties": {
        "keyVaultKeyId": {
          "description": "To use customer managed keys from Azure Key Vault, provide the AKV Key ID. To use service managed keys, omit this field.\n",
          "type": "string"
        },
        "serverId": {
          "description": "Specifies the name of the MS SQL Server.\n",
          "type": "string"
        }
      },
      "required": [
        "serverId"
      ],
      "requiredInputs": [
        "serverId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ServerTransparentDataEncryption resources.\n",
        "properties": {
          "keyVaultKeyId": {
            "description": "To use customer managed keys from Azure Key Vault, provide the AKV Key ID. To use service managed keys, omit this field.\n",
            "type": "string"
          },
          "serverId": {
            "description": "Specifies the name of the MS SQL Server.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mssql/serverVulnerabilityAssessment:ServerVulnerabilityAssessment": {
      "description": "Manages the Vulnerability Assessment for a MS SQL Server.\n\n\u003e **NOTE** Vulnerability Assessment is currently only available for MS SQL databases.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSqlServer = new azure.sql.SqlServer(\"exampleSqlServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"4dm1n157r470r\",\n    administratorLoginPassword: \"4-v3ry-53cr37-p455w0rd\",\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleServerSecurityAlertPolicy = new azure.mssql.ServerSecurityAlertPolicy(\"exampleServerSecurityAlertPolicy\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleSqlServer.name,\n    state: \"Enabled\",\n});\nconst exampleServerVulnerabilityAssessment = new azure.mssql.ServerVulnerabilityAssessment(\"exampleServerVulnerabilityAssessment\", {\n    serverSecurityAlertPolicyId: exampleServerSecurityAlertPolicy.id,\n    storageContainerPath: pulumi.interpolate`${exampleAccount.primaryBlobEndpoint}${exampleContainer.name}/`,\n    storageAccountAccessKey: exampleAccount.primaryAccessKey,\n    recurringScans: {\n        enabled: true,\n        emailSubscriptionAdmins: true,\n        emails: [\n            \"email@example1.com\",\n            \"email@example2.com\",\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_sql_server = azure.sql.SqlServer(\"exampleSqlServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"4dm1n157r470r\",\n    administrator_login_password=\"4-v3ry-53cr37-p455w0rd\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_server_security_alert_policy = azure.mssql.ServerSecurityAlertPolicy(\"exampleServerSecurityAlertPolicy\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_sql_server.name,\n    state=\"Enabled\")\nexample_server_vulnerability_assessment = azure.mssql.ServerVulnerabilityAssessment(\"exampleServerVulnerabilityAssessment\",\n    server_security_alert_policy_id=example_server_security_alert_policy.id,\n    storage_container_path=pulumi.Output.all(example_account.primary_blob_endpoint, example_container.name).apply(lambda primary_blob_endpoint, name: f\"{primary_blob_endpoint}{name}/\"),\n    storage_account_access_key=example_account.primary_access_key,\n    recurring_scans=azure.mssql.ServerVulnerabilityAssessmentRecurringScansArgs(\n        enabled=True,\n        email_subscription_admins=True,\n        emails=[\n            \"email@example1.com\",\n            \"email@example2.com\",\n        ],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSqlServer = new Azure.Sql.SqlServer(\"exampleSqlServer\", new Azure.Sql.SqlServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"4dm1n157r470r\",\n            AdministratorLoginPassword = \"4-v3ry-53cr37-p455w0rd\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleServerSecurityAlertPolicy = new Azure.MSSql.ServerSecurityAlertPolicy(\"exampleServerSecurityAlertPolicy\", new Azure.MSSql.ServerSecurityAlertPolicyArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleSqlServer.Name,\n            State = \"Enabled\",\n        });\n        var exampleServerVulnerabilityAssessment = new Azure.MSSql.ServerVulnerabilityAssessment(\"exampleServerVulnerabilityAssessment\", new Azure.MSSql.ServerVulnerabilityAssessmentArgs\n        {\n            ServerSecurityAlertPolicyId = exampleServerSecurityAlertPolicy.Id,\n            StorageContainerPath = Output.Tuple(exampleAccount.PrimaryBlobEndpoint, exampleContainer.Name).Apply(values =\u003e\n            {\n                var primaryBlobEndpoint = values.Item1;\n                var name = values.Item2;\n                return $\"{primaryBlobEndpoint}{name}/\";\n            }),\n            StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n            RecurringScans = new Azure.MSSql.Inputs.ServerVulnerabilityAssessmentRecurringScansArgs\n            {\n                Enabled = true,\n                EmailSubscriptionAdmins = true,\n                Emails = \n                {\n                    \"email@example1.com\",\n                    \"email@example2.com\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlServer, err := sql.NewSqlServer(ctx, \"exampleSqlServer\", \u0026sql.SqlServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"4dm1n157r470r\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"4-v3ry-53cr37-p455w0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServerSecurityAlertPolicy, err := mssql.NewServerSecurityAlertPolicy(ctx, \"exampleServerSecurityAlertPolicy\", \u0026mssql.ServerSecurityAlertPolicyArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleSqlServer.Name,\n\t\t\tState:             pulumi.String(\"Enabled\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewServerVulnerabilityAssessment(ctx, \"exampleServerVulnerabilityAssessment\", \u0026mssql.ServerVulnerabilityAssessmentArgs{\n\t\t\tServerSecurityAlertPolicyId: exampleServerSecurityAlertPolicy.ID(),\n\t\t\tStorageContainerPath: pulumi.All(exampleAccount.PrimaryBlobEndpoint, exampleContainer.Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tprimaryBlobEndpoint := _args[0].(string)\n\t\t\t\tname := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(\"%v%v%v\", primaryBlobEndpoint, name, \"/\"), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tStorageAccountAccessKey: exampleAccount.PrimaryAccessKey,\n\t\t\tRecurringScans: \u0026mssql.ServerVulnerabilityAssessmentRecurringScansArgs{\n\t\t\t\tEnabled:                 pulumi.Bool(true),\n\t\t\t\tEmailSubscriptionAdmins: pulumi.Bool(true),\n\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"email@example1.com\"),\n\t\t\t\t\tpulumi.String(\"email@example2.com\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMS SQL Server Vulnerability Assessment can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mssql/serverVulnerabilityAssessment:ServerVulnerabilityAssessment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/acceptanceTestResourceGroup1/providers/Microsoft.Sql/servers/mssqlserver/vulnerabilityAssessments/Default\n```\n\n ",
      "inputProperties": {
        "recurringScans": {
          "$ref": "#/types/azure:mssql/ServerVulnerabilityAssessmentRecurringScans:ServerVulnerabilityAssessmentRecurringScans",
          "description": "The recurring scans settings. The `recurring_scans` block supports fields documented below.\n"
        },
        "serverSecurityAlertPolicyId": {
          "description": "The id of the security alert policy of the MS SQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountAccessKey": {
          "description": "Specifies the identifier key of the storage account for vulnerability assessment scan results. If `storage_container_sas_key` isn't specified, `storage_account_access_key` is required.\n",
          "type": "string"
        },
        "storageContainerPath": {
          "description": "A blob storage container path to hold the scan results (e.g. https://myStorage.blob.core.windows.net/VaScans/).\n",
          "type": "string"
        },
        "storageContainerSasKey": {
          "description": "A shared access signature (SAS Key) that has write access to the blob container specified in `storage_container_path` parameter. If `storage_account_access_key` isn't specified, `storage_container_sas_key` is required.\n",
          "type": "string"
        }
      },
      "properties": {
        "recurringScans": {
          "$ref": "#/types/azure:mssql/ServerVulnerabilityAssessmentRecurringScans:ServerVulnerabilityAssessmentRecurringScans",
          "description": "The recurring scans settings. The `recurring_scans` block supports fields documented below.\n"
        },
        "serverSecurityAlertPolicyId": {
          "description": "The id of the security alert policy of the MS SQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountAccessKey": {
          "description": "Specifies the identifier key of the storage account for vulnerability assessment scan results. If `storage_container_sas_key` isn't specified, `storage_account_access_key` is required.\n",
          "type": "string"
        },
        "storageContainerPath": {
          "description": "A blob storage container path to hold the scan results (e.g. https://myStorage.blob.core.windows.net/VaScans/).\n",
          "type": "string"
        },
        "storageContainerSasKey": {
          "description": "A shared access signature (SAS Key) that has write access to the blob container specified in `storage_container_path` parameter. If `storage_account_access_key` isn't specified, `storage_container_sas_key` is required.\n",
          "type": "string"
        }
      },
      "required": [
        "recurringScans",
        "serverSecurityAlertPolicyId",
        "storageContainerPath"
      ],
      "requiredInputs": [
        "serverSecurityAlertPolicyId",
        "storageContainerPath"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ServerVulnerabilityAssessment resources.\n",
        "properties": {
          "recurringScans": {
            "$ref": "#/types/azure:mssql/ServerVulnerabilityAssessmentRecurringScans:ServerVulnerabilityAssessmentRecurringScans",
            "description": "The recurring scans settings. The `recurring_scans` block supports fields documented below.\n"
          },
          "serverSecurityAlertPolicyId": {
            "description": "The id of the security alert policy of the MS SQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageAccountAccessKey": {
            "description": "Specifies the identifier key of the storage account for vulnerability assessment scan results. If `storage_container_sas_key` isn't specified, `storage_account_access_key` is required.\n",
            "type": "string"
          },
          "storageContainerPath": {
            "description": "A blob storage container path to hold the scan results (e.g. https://myStorage.blob.core.windows.net/VaScans/).\n",
            "type": "string"
          },
          "storageContainerSasKey": {
            "description": "A shared access signature (SAS Key) that has write access to the blob container specified in `storage_container_path` parameter. If `storage_account_access_key` isn't specified, `storage_container_sas_key` is required.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mssql/virtualMachine:VirtualMachine": {
      "description": "Manages a Microsoft SQL Virtual Machine\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis example provisions a brief Managed MsSql Virtual Machine.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleVirtualMachine = azure.compute.getVirtualMachine({\n    name: \"example-vm\",\n    resourceGroupName: \"example-resources\",\n});\nconst exampleMssql_virtualMachineVirtualMachine = new azure.mssql.VirtualMachine(\"exampleMssql/virtualMachineVirtualMachine\", {\n    virtualMachineId: exampleVirtualMachine.then(exampleVirtualMachine =\u003e exampleVirtualMachine.id),\n    sqlLicenseType: \"PAYG\",\n    rServicesEnabled: true,\n    sqlConnectivityPort: 1433,\n    sqlConnectivityType: \"PRIVATE\",\n    sqlConnectivityUpdatePassword: \"Password1234!\",\n    sqlConnectivityUpdateUsername: \"sqllogin\",\n    autoPatching: {\n        dayOfWeek: \"Sunday\",\n        maintenanceWindowDurationInMinutes: 60,\n        maintenanceWindowStartingHour: 2,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_virtual_machine = azure.compute.get_virtual_machine(name=\"example-vm\",\n    resource_group_name=\"example-resources\")\nexample_mssql_virtual_machine_virtual_machine = azure.mssql.VirtualMachine(\"exampleMssql/virtualMachineVirtualMachine\",\n    virtual_machine_id=example_virtual_machine.id,\n    sql_license_type=\"PAYG\",\n    r_services_enabled=True,\n    sql_connectivity_port=1433,\n    sql_connectivity_type=\"PRIVATE\",\n    sql_connectivity_update_password=\"Password1234!\",\n    sql_connectivity_update_username=\"sqllogin\",\n    auto_patching=azure.mssql.VirtualMachineAutoPatchingArgs(\n        day_of_week=\"Sunday\",\n        maintenance_window_duration_in_minutes=60,\n        maintenance_window_starting_hour=2,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleVirtualMachine = Output.Create(Azure.Compute.GetVirtualMachine.InvokeAsync(new Azure.Compute.GetVirtualMachineArgs\n        {\n            Name = \"example-vm\",\n            ResourceGroupName = \"example-resources\",\n        }));\n        var exampleMssql_virtualMachineVirtualMachine = new Azure.MSSql.VirtualMachine(\"exampleMssql/virtualMachineVirtualMachine\", new Azure.MSSql.VirtualMachineArgs\n        {\n            VirtualMachineId = exampleVirtualMachine.Apply(exampleVirtualMachine =\u003e exampleVirtualMachine.Id),\n            SqlLicenseType = \"PAYG\",\n            RServicesEnabled = true,\n            SqlConnectivityPort = 1433,\n            SqlConnectivityType = \"PRIVATE\",\n            SqlConnectivityUpdatePassword = \"Password1234!\",\n            SqlConnectivityUpdateUsername = \"sqllogin\",\n            AutoPatching = new Azure.MSSql.Inputs.VirtualMachineAutoPatchingArgs\n            {\n                DayOfWeek = \"Sunday\",\n                MaintenanceWindowDurationInMinutes = 60,\n                MaintenanceWindowStartingHour = 2,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVirtualMachine, err := compute.LookupVirtualMachine(ctx, \u0026compute.LookupVirtualMachineArgs{\n\t\t\tName:              \"example-vm\",\n\t\t\tResourceGroupName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewVirtualMachine(ctx, \"exampleMssql_virtualMachineVirtualMachine\", \u0026mssql.VirtualMachineArgs{\n\t\t\tVirtualMachineId:              pulumi.String(exampleVirtualMachine.Id),\n\t\t\tSqlLicenseType:                pulumi.String(\"PAYG\"),\n\t\t\tRServicesEnabled:              pulumi.Bool(true),\n\t\t\tSqlConnectivityPort:           pulumi.Int(1433),\n\t\t\tSqlConnectivityType:           pulumi.String(\"PRIVATE\"),\n\t\t\tSqlConnectivityUpdatePassword: pulumi.String(\"Password1234!\"),\n\t\t\tSqlConnectivityUpdateUsername: pulumi.String(\"sqllogin\"),\n\t\t\tAutoPatching: \u0026mssql.VirtualMachineAutoPatchingArgs{\n\t\t\t\tDayOfWeek:                          pulumi.String(\"Sunday\"),\n\t\t\t\tMaintenanceWindowDurationInMinutes: pulumi.Int(60),\n\t\t\t\tMaintenanceWindowStartingHour:      pulumi.Int(2),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSql Virtual Machines can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mssql/virtualMachine:VirtualMachine example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/example1\n```\n\n ",
      "inputProperties": {
        "autoBackup": {
          "$ref": "#/types/azure:mssql/VirtualMachineAutoBackup:VirtualMachineAutoBackup",
          "description": "An `auto_backup` block as defined below. This block can be added to an existing resource, but removing this block forces a new resource to be created.\n"
        },
        "autoPatching": {
          "$ref": "#/types/azure:mssql/VirtualMachineAutoPatching:VirtualMachineAutoPatching",
          "description": "An `auto_patching` block as defined below.\n"
        },
        "keyVaultCredential": {
          "$ref": "#/types/azure:mssql/VirtualMachineKeyVaultCredential:VirtualMachineKeyVaultCredential",
          "description": "(Optional) An `key_vault_credential` block as defined below.\n"
        },
        "rServicesEnabled": {
          "description": "Should R Services be enabled?\n",
          "type": "boolean"
        },
        "sqlConnectivityPort": {
          "description": "The SQL Server port. Defaults to `1433`.\n",
          "type": "integer"
        },
        "sqlConnectivityType": {
          "description": "The connectivity type used for this SQL Server. Defaults to `PRIVATE`.\n",
          "type": "string"
        },
        "sqlConnectivityUpdatePassword": {
          "description": "The SQL Server sysadmin login password.\n",
          "type": "string"
        },
        "sqlConnectivityUpdateUsername": {
          "description": "The SQL Server sysadmin login to create.\n",
          "type": "string"
        },
        "sqlLicenseType": {
          "description": "The SQL Server license type. Possible values are `AHUB` (Azure Hybrid Benefit) and `PAYG` (Pay-As-You-Go). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageConfiguration": {
          "$ref": "#/types/azure:mssql/VirtualMachineStorageConfiguration:VirtualMachineStorageConfiguration",
          "description": "An `storage_configuration` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "virtualMachineId": {
          "description": "The ID of the Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "autoBackup": {
          "$ref": "#/types/azure:mssql/VirtualMachineAutoBackup:VirtualMachineAutoBackup",
          "description": "An `auto_backup` block as defined below. This block can be added to an existing resource, but removing this block forces a new resource to be created.\n"
        },
        "autoPatching": {
          "$ref": "#/types/azure:mssql/VirtualMachineAutoPatching:VirtualMachineAutoPatching",
          "description": "An `auto_patching` block as defined below.\n"
        },
        "keyVaultCredential": {
          "$ref": "#/types/azure:mssql/VirtualMachineKeyVaultCredential:VirtualMachineKeyVaultCredential",
          "description": "(Optional) An `key_vault_credential` block as defined below.\n"
        },
        "rServicesEnabled": {
          "description": "Should R Services be enabled?\n",
          "type": "boolean"
        },
        "sqlConnectivityPort": {
          "description": "The SQL Server port. Defaults to `1433`.\n",
          "type": "integer"
        },
        "sqlConnectivityType": {
          "description": "The connectivity type used for this SQL Server. Defaults to `PRIVATE`.\n",
          "type": "string"
        },
        "sqlConnectivityUpdatePassword": {
          "description": "The SQL Server sysadmin login password.\n",
          "type": "string"
        },
        "sqlConnectivityUpdateUsername": {
          "description": "The SQL Server sysadmin login to create.\n",
          "type": "string"
        },
        "sqlLicenseType": {
          "description": "The SQL Server license type. Possible values are `AHUB` (Azure Hybrid Benefit) and `PAYG` (Pay-As-You-Go). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageConfiguration": {
          "$ref": "#/types/azure:mssql/VirtualMachineStorageConfiguration:VirtualMachineStorageConfiguration",
          "description": "An `storage_configuration` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "virtualMachineId": {
          "description": "The ID of the Virtual Machine. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "sqlLicenseType",
        "virtualMachineId"
      ],
      "requiredInputs": [
        "sqlLicenseType",
        "virtualMachineId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualMachine resources.\n",
        "properties": {
          "autoBackup": {
            "$ref": "#/types/azure:mssql/VirtualMachineAutoBackup:VirtualMachineAutoBackup",
            "description": "An `auto_backup` block as defined below. This block can be added to an existing resource, but removing this block forces a new resource to be created.\n"
          },
          "autoPatching": {
            "$ref": "#/types/azure:mssql/VirtualMachineAutoPatching:VirtualMachineAutoPatching",
            "description": "An `auto_patching` block as defined below.\n"
          },
          "keyVaultCredential": {
            "$ref": "#/types/azure:mssql/VirtualMachineKeyVaultCredential:VirtualMachineKeyVaultCredential",
            "description": "(Optional) An `key_vault_credential` block as defined below.\n"
          },
          "rServicesEnabled": {
            "description": "Should R Services be enabled?\n",
            "type": "boolean"
          },
          "sqlConnectivityPort": {
            "description": "The SQL Server port. Defaults to `1433`.\n",
            "type": "integer"
          },
          "sqlConnectivityType": {
            "description": "The connectivity type used for this SQL Server. Defaults to `PRIVATE`.\n",
            "type": "string"
          },
          "sqlConnectivityUpdatePassword": {
            "description": "The SQL Server sysadmin login password.\n",
            "type": "string"
          },
          "sqlConnectivityUpdateUsername": {
            "description": "The SQL Server sysadmin login to create.\n",
            "type": "string"
          },
          "sqlLicenseType": {
            "description": "The SQL Server license type. Possible values are `AHUB` (Azure Hybrid Benefit) and `PAYG` (Pay-As-You-Go). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageConfiguration": {
            "$ref": "#/types/azure:mssql/VirtualMachineStorageConfiguration:VirtualMachineStorageConfiguration",
            "description": "An `storage_configuration` block as defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "virtualMachineId": {
            "description": "The ID of the Virtual Machine. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mssql/virtualNetworkRule:VirtualNetworkRule": {
      "description": "Allows you to manage rules for allowing traffic between an Azure SQL server and a subnet of a virtual network.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.7.29.0/29\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.7.29.0/29\"],\n    serviceEndpoints: [\"Microsoft.Sql\"],\n});\nconst exampleServer = new azure.mssql.Server(\"exampleServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"4dm1n157r470r\",\n    administratorLoginPassword: \"4-v3ry-53cr37-p455w0rd\",\n});\nconst exampleVirtualNetworkRule = new azure.mssql.VirtualNetworkRule(\"exampleVirtualNetworkRule\", {\n    serverId: exampleServer.id,\n    subnetId: exampleSubnet.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.7.29.0/29\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.7.29.0/29\"],\n    service_endpoints=[\"Microsoft.Sql\"])\nexample_server = azure.mssql.Server(\"exampleServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"4dm1n157r470r\",\n    administrator_login_password=\"4-v3ry-53cr37-p455w0rd\")\nexample_virtual_network_rule = azure.mssql.VirtualNetworkRule(\"exampleVirtualNetworkRule\",\n    server_id=example_server.id,\n    subnet_id=example_subnet.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.7.29.0/29\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.7.29.0/29\",\n            },\n            ServiceEndpoints = \n            {\n                \"Microsoft.Sql\",\n            },\n        });\n        var exampleServer = new Azure.MSSql.Server(\"exampleServer\", new Azure.MSSql.ServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"4dm1n157r470r\",\n            AdministratorLoginPassword = \"4-v3ry-53cr37-p455w0rd\",\n        });\n        var exampleVirtualNetworkRule = new Azure.MSSql.VirtualNetworkRule(\"exampleVirtualNetworkRule\", new Azure.MSSql.VirtualNetworkRuleArgs\n        {\n            ServerId = exampleServer.Id,\n            SubnetId = exampleSubnet.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.7.29.0/29\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.7.29.0/29\"),\n\t\t\t},\n\t\t\tServiceEndpoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Microsoft.Sql\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mssql.NewServer(ctx, \"exampleServer\", \u0026mssql.ServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"4dm1n157r470r\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"4-v3ry-53cr37-p455w0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewVirtualNetworkRule(ctx, \"exampleVirtualNetworkRule\", \u0026mssql.VirtualNetworkRuleArgs{\n\t\t\tServerId: exampleServer.ID(),\n\t\t\tSubnetId: exampleSubnet.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL Virtual Network Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mssql/virtualNetworkRule:VirtualNetworkRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver/virtualNetworkRules/vnetrulename\n```\n\n ",
      "inputProperties": {
        "ignoreMissingVnetServiceEndpoint": {
          "description": "Create the virtual network rule before the subnet has the virtual network service endpoint enabled. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the SQL virtual network rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The resource ID of the SQL Server to which this SQL virtual network rule will be applied. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet from which the SQL server will accept communications.\n",
          "type": "string"
        }
      },
      "properties": {
        "ignoreMissingVnetServiceEndpoint": {
          "description": "Create the virtual network rule before the subnet has the virtual network service endpoint enabled. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the SQL virtual network rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The resource ID of the SQL Server to which this SQL virtual network rule will be applied. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet from which the SQL server will accept communications.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "serverId",
        "subnetId"
      ],
      "requiredInputs": [
        "serverId",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualNetworkRule resources.\n",
        "properties": {
          "ignoreMissingVnetServiceEndpoint": {
            "description": "Create the virtual network rule before the subnet has the virtual network service endpoint enabled. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name of the SQL virtual network rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverId": {
            "description": "The resource ID of the SQL Server to which this SQL virtual network rule will be applied. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the subnet from which the SQL server will accept communications.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mysql/activeDirectoryAdministrator:ActiveDirectoryAdministrator": {
      "description": "Allows you to set a user or group as the AD administrator for an MySQL server in Azure\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.mysql.Server(\"exampleServer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    administratorLogin: \"mysqladminun\",\n    administratorLoginPassword: \"H@Sh1CoR3!\",\n    skuName: \"B_Gen5_2\",\n    storageMb: 5120,\n    version: \"5.7\",\n});\nconst exampleActiveDirectoryAdministrator = new azure.mysql.ActiveDirectoryAdministrator(\"exampleActiveDirectoryAdministrator\", {\n    serverName: exampleServer.name,\n    resourceGroupName: exampleResourceGroup.name,\n    login: \"sqladmin\",\n    tenantId: current.then(current =\u003e current.tenantId),\n    objectId: current.then(current =\u003e current.objectId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.mysql.Server(\"exampleServer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    administrator_login=\"mysqladminun\",\n    administrator_login_password=\"H@Sh1CoR3!\",\n    sku_name=\"B_Gen5_2\",\n    storage_mb=5120,\n    version=\"5.7\")\nexample_active_directory_administrator = azure.mysql.ActiveDirectoryAdministrator(\"exampleActiveDirectoryAdministrator\",\n    server_name=example_server.name,\n    resource_group_name=example_resource_group.name,\n    login=\"sqladmin\",\n    tenant_id=current.tenant_id,\n    object_id=current.object_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.MySql.Server(\"exampleServer\", new Azure.MySql.ServerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AdministratorLogin = \"mysqladminun\",\n            AdministratorLoginPassword = \"H@Sh1CoR3!\",\n            SkuName = \"B_Gen5_2\",\n            StorageMb = 5120,\n            Version = \"5.7\",\n        });\n        var exampleActiveDirectoryAdministrator = new Azure.MySql.ActiveDirectoryAdministrator(\"exampleActiveDirectoryAdministrator\", new Azure.MySql.ActiveDirectoryAdministratorArgs\n        {\n            ServerName = exampleServer.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Login = \"sqladmin\",\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            ObjectId = current.Apply(current =\u003e current.ObjectId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mysql.NewServer(ctx, \"exampleServer\", \u0026mysql.ServerArgs{\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tAdministratorLogin:         pulumi.String(\"mysqladminun\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tSkuName:                    pulumi.String(\"B_Gen5_2\"),\n\t\t\tStorageMb:                  pulumi.Int(5120),\n\t\t\tVersion:                    pulumi.String(\"5.7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mysql.NewActiveDirectoryAdministrator(ctx, \"exampleActiveDirectoryAdministrator\", \u0026mysql.ActiveDirectoryAdministratorArgs{\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLogin:             pulumi.String(\"sqladmin\"),\n\t\t\tTenantId:          pulumi.String(current.TenantId),\n\t\t\tObjectId:          pulumi.String(current.ObjectId),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA MySQL Active Directory Administrator can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mysql/activeDirectoryAdministrator:ActiveDirectoryAdministrator administrator /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforMySQL/servers/myserver/administrators/activeDirectory\n```\n\n ",
      "inputProperties": {
        "login": {
          "description": "The login name of the principal to set as the server administrator\n",
          "type": "string"
        },
        "objectId": {
          "description": "The ID of the principal to set as the server administrator. For a managed identity this should be the Client ID of the identity.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group for the MySQL server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the MySQL Server on which to set the administrator. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The Azure Tenant ID\n",
          "type": "string"
        }
      },
      "properties": {
        "login": {
          "description": "The login name of the principal to set as the server administrator\n",
          "type": "string"
        },
        "objectId": {
          "description": "The ID of the principal to set as the server administrator. For a managed identity this should be the Client ID of the identity.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group for the MySQL server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the MySQL Server on which to set the administrator. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The Azure Tenant ID\n",
          "type": "string"
        }
      },
      "required": [
        "login",
        "objectId",
        "resourceGroupName",
        "serverName",
        "tenantId"
      ],
      "requiredInputs": [
        "login",
        "objectId",
        "resourceGroupName",
        "serverName",
        "tenantId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ActiveDirectoryAdministrator resources.\n",
        "properties": {
          "login": {
            "description": "The login name of the principal to set as the server administrator\n",
            "type": "string"
          },
          "objectId": {
            "description": "The ID of the principal to set as the server administrator. For a managed identity this should be the Client ID of the identity.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group for the MySQL server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the MySQL Server on which to set the administrator. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tenantId": {
            "description": "The Azure Tenant ID\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mysql/configuration:Configuration": {
      "description": "Sets a MySQL Configuration value on a MySQL Server.\n\n## Disclaimers\n\n\u003e **Note:** Since this resource is provisioned by default, the Azure Provider will not check for the presence of an existing resource prior to attempting to create it.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.mysql.Server(\"exampleServer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    administratorLogin: \"mysqladminun\",\n    administratorLoginPassword: \"H@Sh1CoR3!\",\n    skuName: \"B_Gen5_2\",\n    storageMb: 5120,\n    version: \"5.7\",\n    autoGrowEnabled: true,\n    backupRetentionDays: 7,\n    geoRedundantBackupEnabled: true,\n    infrastructureEncryptionEnabled: true,\n    publicNetworkAccessEnabled: false,\n    sslEnforcementEnabled: true,\n    sslMinimalTlsVersionEnforced: \"TLS1_2\",\n});\nconst exampleConfiguration = new azure.mysql.Configuration(\"exampleConfiguration\", {\n    name: \"interactive_timeout\",\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    value: \"600\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.mysql.Server(\"exampleServer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    administrator_login=\"mysqladminun\",\n    administrator_login_password=\"H@Sh1CoR3!\",\n    sku_name=\"B_Gen5_2\",\n    storage_mb=5120,\n    version=\"5.7\",\n    auto_grow_enabled=True,\n    backup_retention_days=7,\n    geo_redundant_backup_enabled=True,\n    infrastructure_encryption_enabled=True,\n    public_network_access_enabled=False,\n    ssl_enforcement_enabled=True,\n    ssl_minimal_tls_version_enforced=\"TLS1_2\")\nexample_configuration = azure.mysql.Configuration(\"exampleConfiguration\",\n    name=\"interactive_timeout\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    value=\"600\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.MySql.Server(\"exampleServer\", new Azure.MySql.ServerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AdministratorLogin = \"mysqladminun\",\n            AdministratorLoginPassword = \"H@Sh1CoR3!\",\n            SkuName = \"B_Gen5_2\",\n            StorageMb = 5120,\n            Version = \"5.7\",\n            AutoGrowEnabled = true,\n            BackupRetentionDays = 7,\n            GeoRedundantBackupEnabled = true,\n            InfrastructureEncryptionEnabled = true,\n            PublicNetworkAccessEnabled = false,\n            SslEnforcementEnabled = true,\n            SslMinimalTlsVersionEnforced = \"TLS1_2\",\n        });\n        var exampleConfiguration = new Azure.MySql.Configuration(\"exampleConfiguration\", new Azure.MySql.ConfigurationArgs\n        {\n            Name = \"interactive_timeout\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            Value = \"600\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mysql.NewServer(ctx, \"exampleServer\", \u0026mysql.ServerArgs{\n\t\t\tLocation:                        exampleResourceGroup.Location,\n\t\t\tResourceGroupName:               exampleResourceGroup.Name,\n\t\t\tAdministratorLogin:              pulumi.String(\"mysqladminun\"),\n\t\t\tAdministratorLoginPassword:      pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tSkuName:                         pulumi.String(\"B_Gen5_2\"),\n\t\t\tStorageMb:                       pulumi.Int(5120),\n\t\t\tVersion:                         pulumi.String(\"5.7\"),\n\t\t\tAutoGrowEnabled:                 pulumi.Bool(true),\n\t\t\tBackupRetentionDays:             pulumi.Int(7),\n\t\t\tGeoRedundantBackupEnabled:       pulumi.Bool(true),\n\t\t\tInfrastructureEncryptionEnabled: pulumi.Bool(true),\n\t\t\tPublicNetworkAccessEnabled:      pulumi.Bool(false),\n\t\t\tSslEnforcementEnabled:           pulumi.Bool(true),\n\t\t\tSslMinimalTlsVersionEnforced:    pulumi.String(\"TLS1_2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mysql.NewConfiguration(ctx, \"exampleConfiguration\", \u0026mysql.ConfigurationArgs{\n\t\t\tName:              pulumi.String(\"interactive_timeout\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tValue:             pulumi.String(\"600\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMySQL Configurations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mysql/configuration:Configuration interactive_timeout /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforMySQL/servers/server1/configurations/interactive_timeout\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "Specifies the name of the MySQL Configuration, which needs [to be a valid MySQL configuration name](https://dev.mysql.com/doc/refman/5.7/en/server-configuration.html). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the MySQL Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the MySQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "Specifies the value of the MySQL Configuration. See the MySQL documentation for valid values.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the MySQL Configuration, which needs [to be a valid MySQL configuration name](https://dev.mysql.com/doc/refman/5.7/en/server-configuration.html). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the MySQL Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the MySQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "Specifies the value of the MySQL Configuration. See the MySQL documentation for valid values.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "serverName",
        "value"
      ],
      "requiredInputs": [
        "name",
        "resourceGroupName",
        "serverName",
        "value"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Configuration resources.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the MySQL Configuration, which needs [to be a valid MySQL configuration name](https://dev.mysql.com/doc/refman/5.7/en/server-configuration.html). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the MySQL Server exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "Specifies the name of the MySQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "value": {
            "description": "Specifies the value of the MySQL Configuration. See the MySQL documentation for valid values.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mysql/database:Database": {
      "description": "Manages a MySQL Database within a MySQL Server\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.mysql.Server(\"exampleServer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    administratorLogin: \"mysqladminun\",\n    administratorLoginPassword: \"H@Sh1CoR3!\",\n    skuName: \"B_Gen5_2\",\n    storageMb: 5120,\n    version: \"5.7\",\n    autoGrowEnabled: true,\n    backupRetentionDays: 7,\n    geoRedundantBackupEnabled: true,\n    infrastructureEncryptionEnabled: true,\n    publicNetworkAccessEnabled: false,\n    sslEnforcementEnabled: true,\n    sslMinimalTlsVersionEnforced: \"TLS1_2\",\n});\nconst exampleDatabase = new azure.mysql.Database(\"exampleDatabase\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    charset: \"utf8\",\n    collation: \"utf8_unicode_ci\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.mysql.Server(\"exampleServer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    administrator_login=\"mysqladminun\",\n    administrator_login_password=\"H@Sh1CoR3!\",\n    sku_name=\"B_Gen5_2\",\n    storage_mb=5120,\n    version=\"5.7\",\n    auto_grow_enabled=True,\n    backup_retention_days=7,\n    geo_redundant_backup_enabled=True,\n    infrastructure_encryption_enabled=True,\n    public_network_access_enabled=False,\n    ssl_enforcement_enabled=True,\n    ssl_minimal_tls_version_enforced=\"TLS1_2\")\nexample_database = azure.mysql.Database(\"exampleDatabase\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    charset=\"utf8\",\n    collation=\"utf8_unicode_ci\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.MySql.Server(\"exampleServer\", new Azure.MySql.ServerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AdministratorLogin = \"mysqladminun\",\n            AdministratorLoginPassword = \"H@Sh1CoR3!\",\n            SkuName = \"B_Gen5_2\",\n            StorageMb = 5120,\n            Version = \"5.7\",\n            AutoGrowEnabled = true,\n            BackupRetentionDays = 7,\n            GeoRedundantBackupEnabled = true,\n            InfrastructureEncryptionEnabled = true,\n            PublicNetworkAccessEnabled = false,\n            SslEnforcementEnabled = true,\n            SslMinimalTlsVersionEnforced = \"TLS1_2\",\n        });\n        var exampleDatabase = new Azure.MySql.Database(\"exampleDatabase\", new Azure.MySql.DatabaseArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            Charset = \"utf8\",\n            Collation = \"utf8_unicode_ci\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mysql.NewServer(ctx, \"exampleServer\", \u0026mysql.ServerArgs{\n\t\t\tLocation:                        exampleResourceGroup.Location,\n\t\t\tResourceGroupName:               exampleResourceGroup.Name,\n\t\t\tAdministratorLogin:              pulumi.String(\"mysqladminun\"),\n\t\t\tAdministratorLoginPassword:      pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tSkuName:                         pulumi.String(\"B_Gen5_2\"),\n\t\t\tStorageMb:                       pulumi.Int(5120),\n\t\t\tVersion:                         pulumi.String(\"5.7\"),\n\t\t\tAutoGrowEnabled:                 pulumi.Bool(true),\n\t\t\tBackupRetentionDays:             pulumi.Int(7),\n\t\t\tGeoRedundantBackupEnabled:       pulumi.Bool(true),\n\t\t\tInfrastructureEncryptionEnabled: pulumi.Bool(true),\n\t\t\tPublicNetworkAccessEnabled:      pulumi.Bool(false),\n\t\t\tSslEnforcementEnabled:           pulumi.Bool(true),\n\t\t\tSslMinimalTlsVersionEnforced:    pulumi.String(\"TLS1_2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mysql.NewDatabase(ctx, \"exampleDatabase\", \u0026mysql.DatabaseArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tCharset:           pulumi.String(\"utf8\"),\n\t\t\tCollation:         pulumi.String(\"utf8_unicode_ci\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMySQL Database's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mysql/database:Database database1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforMySQL/servers/server1/databases/database1\n```\n\n ",
      "inputProperties": {
        "charset": {
          "description": "Specifies the Charset for the MySQL Database, which needs [to be a valid MySQL Charset](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "collation": {
          "description": "Specifies the Collation for the MySQL Database, which needs [to be a valid MySQL Collation](https://dev.mysql.com/doc/refman/5.7/en/charset-mysql.html). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the MySQL Database, which needs [to be a valid MySQL identifier](https://dev.mysql.com/doc/refman/5.7/en/identifiers.html). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the MySQL Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the MySQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "charset": {
          "description": "Specifies the Charset for the MySQL Database, which needs [to be a valid MySQL Charset](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "collation": {
          "description": "Specifies the Collation for the MySQL Database, which needs [to be a valid MySQL Collation](https://dev.mysql.com/doc/refman/5.7/en/charset-mysql.html). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the MySQL Database, which needs [to be a valid MySQL identifier](https://dev.mysql.com/doc/refman/5.7/en/identifiers.html). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the MySQL Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the MySQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "charset",
        "collation",
        "name",
        "resourceGroupName",
        "serverName"
      ],
      "requiredInputs": [
        "charset",
        "collation",
        "resourceGroupName",
        "serverName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Database resources.\n",
        "properties": {
          "charset": {
            "description": "Specifies the Charset for the MySQL Database, which needs [to be a valid MySQL Charset](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "collation": {
            "description": "Specifies the Collation for the MySQL Database, which needs [to be a valid MySQL Collation](https://dev.mysql.com/doc/refman/5.7/en/charset-mysql.html). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the MySQL Database, which needs [to be a valid MySQL identifier](https://dev.mysql.com/doc/refman/5.7/en/identifiers.html). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the MySQL Server exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "Specifies the name of the MySQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mysql/firewallRule:FirewallRule": {
      "description": "Manages a Firewall Rule for a MySQL Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Single IP Address)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.mysql.Server(\"exampleServer\", {});\n// ...\nconst exampleFirewallRule = new azure.mysql.FirewallRule(\"exampleFirewallRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    startIpAddress: \"40.112.8.12\",\n    endIpAddress: \"40.112.8.12\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.mysql.Server(\"exampleServer\")\n# ...\nexample_firewall_rule = azure.mysql.FirewallRule(\"exampleFirewallRule\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    start_ip_address=\"40.112.8.12\",\n    end_ip_address=\"40.112.8.12\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.MySql.Server(\"exampleServer\", new Azure.MySql.ServerArgs\n        {\n        });\n        // ...\n        var exampleFirewallRule = new Azure.MySql.FirewallRule(\"exampleFirewallRule\", new Azure.MySql.FirewallRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            StartIpAddress = \"40.112.8.12\",\n            EndIpAddress = \"40.112.8.12\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mysql.NewServer(ctx, \"exampleServer\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mysql.NewFirewallRule(ctx, \"exampleFirewallRule\", \u0026mysql.FirewallRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tStartIpAddress:    pulumi.String(\"40.112.8.12\"),\n\t\t\tEndIpAddress:      pulumi.String(\"40.112.8.12\"),\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\n{{% /example %}}\n{{% example %}}\n### IP Range)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.mysql.Server(\"exampleServer\", {});\n// ...\nconst exampleFirewallRule = new azure.mysql.FirewallRule(\"exampleFirewallRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    startIpAddress: \"40.112.0.0\",\n    endIpAddress: \"40.112.255.255\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.mysql.Server(\"exampleServer\")\n# ...\nexample_firewall_rule = azure.mysql.FirewallRule(\"exampleFirewallRule\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    start_ip_address=\"40.112.0.0\",\n    end_ip_address=\"40.112.255.255\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.MySql.Server(\"exampleServer\", new Azure.MySql.ServerArgs\n        {\n        });\n        // ...\n        var exampleFirewallRule = new Azure.MySql.FirewallRule(\"exampleFirewallRule\", new Azure.MySql.FirewallRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            StartIpAddress = \"40.112.0.0\",\n            EndIpAddress = \"40.112.255.255\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mysql.NewServer(ctx, \"exampleServer\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mysql.NewFirewallRule(ctx, \"exampleFirewallRule\", \u0026mysql.FirewallRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tStartIpAddress:    pulumi.String(\"40.112.0.0\"),\n\t\t\tEndIpAddress:      pulumi.String(\"40.112.255.255\"),\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\n{{% /example %}}\n{{% example %}}\n### Allow Access To Azure Services)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.mysql.Server(\"exampleServer\", {});\n// ...\nconst exampleFirewallRule = new azure.mysql.FirewallRule(\"exampleFirewallRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    startIpAddress: \"0.0.0.0\",\n    endIpAddress: \"0.0.0.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.mysql.Server(\"exampleServer\")\n# ...\nexample_firewall_rule = azure.mysql.FirewallRule(\"exampleFirewallRule\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    start_ip_address=\"0.0.0.0\",\n    end_ip_address=\"0.0.0.0\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.MySql.Server(\"exampleServer\", new Azure.MySql.ServerArgs\n        {\n        });\n        // ...\n        var exampleFirewallRule = new Azure.MySql.FirewallRule(\"exampleFirewallRule\", new Azure.MySql.FirewallRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            StartIpAddress = \"0.0.0.0\",\n            EndIpAddress = \"0.0.0.0\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mysql.NewServer(ctx, \"exampleServer\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mysql.NewFirewallRule(ctx, \"exampleFirewallRule\", \u0026mysql.FirewallRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tStartIpAddress:    pulumi.String(\"0.0.0.0\"),\n\t\t\tEndIpAddress:      pulumi.String(\"0.0.0.0\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMySQL Firewall Rule's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mysql/firewallRule:FirewallRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforMySQL/servers/server1/firewallRules/rule1\n```\n\n ",
      "inputProperties": {
        "endIpAddress": {
          "description": "Specifies the End IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the MySQL Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the MySQL Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the MySQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "Specifies the Start IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "endIpAddress": {
          "description": "Specifies the End IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the MySQL Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the MySQL Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the MySQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "Specifies the Start IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "endIpAddress",
        "name",
        "resourceGroupName",
        "serverName",
        "startIpAddress"
      ],
      "requiredInputs": [
        "endIpAddress",
        "resourceGroupName",
        "serverName",
        "startIpAddress"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FirewallRule resources.\n",
        "properties": {
          "endIpAddress": {
            "description": "Specifies the End IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the MySQL Firewall Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the MySQL Server exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "Specifies the name of the MySQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "startIpAddress": {
            "description": "Specifies the Start IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mysql/server:Server": {
      "description": "Manages a MySQL Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.mysql.Server(\"exampleServer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    administratorLogin: \"mysqladminun\",\n    administratorLoginPassword: \"H@Sh1CoR3!\",\n    skuName: \"B_Gen5_2\",\n    storageMb: 5120,\n    version: \"5.7\",\n    autoGrowEnabled: true,\n    backupRetentionDays: 7,\n    geoRedundantBackupEnabled: false,\n    infrastructureEncryptionEnabled: false,\n    publicNetworkAccessEnabled: true,\n    sslEnforcementEnabled: true,\n    sslMinimalTlsVersionEnforced: \"TLS1_2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.mysql.Server(\"exampleServer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    administrator_login=\"mysqladminun\",\n    administrator_login_password=\"H@Sh1CoR3!\",\n    sku_name=\"B_Gen5_2\",\n    storage_mb=5120,\n    version=\"5.7\",\n    auto_grow_enabled=True,\n    backup_retention_days=7,\n    geo_redundant_backup_enabled=False,\n    infrastructure_encryption_enabled=False,\n    public_network_access_enabled=True,\n    ssl_enforcement_enabled=True,\n    ssl_minimal_tls_version_enforced=\"TLS1_2\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.MySql.Server(\"exampleServer\", new Azure.MySql.ServerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AdministratorLogin = \"mysqladminun\",\n            AdministratorLoginPassword = \"H@Sh1CoR3!\",\n            SkuName = \"B_Gen5_2\",\n            StorageMb = 5120,\n            Version = \"5.7\",\n            AutoGrowEnabled = true,\n            BackupRetentionDays = 7,\n            GeoRedundantBackupEnabled = false,\n            InfrastructureEncryptionEnabled = false,\n            PublicNetworkAccessEnabled = true,\n            SslEnforcementEnabled = true,\n            SslMinimalTlsVersionEnforced = \"TLS1_2\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mysql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mysql.NewServer(ctx, \"exampleServer\", \u0026mysql.ServerArgs{\n\t\t\tLocation:                        exampleResourceGroup.Location,\n\t\t\tResourceGroupName:               exampleResourceGroup.Name,\n\t\t\tAdministratorLogin:              pulumi.String(\"mysqladminun\"),\n\t\t\tAdministratorLoginPassword:      pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tSkuName:                         pulumi.String(\"B_Gen5_2\"),\n\t\t\tStorageMb:                       pulumi.Int(5120),\n\t\t\tVersion:                         pulumi.String(\"5.7\"),\n\t\t\tAutoGrowEnabled:                 pulumi.Bool(true),\n\t\t\tBackupRetentionDays:             pulumi.Int(7),\n\t\t\tGeoRedundantBackupEnabled:       pulumi.Bool(false),\n\t\t\tInfrastructureEncryptionEnabled: pulumi.Bool(false),\n\t\t\tPublicNetworkAccessEnabled:      pulumi.Bool(true),\n\t\t\tSslEnforcementEnabled:           pulumi.Bool(true),\n\t\t\tSslMinimalTlsVersionEnforced:    pulumi.String(\"TLS1_2\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMySQL Server's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mysql/server:Server server1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforMySQL/servers/server1\n```\n\n ",
      "inputProperties": {
        "administratorLogin": {
          "description": "The Administrator Login for the MySQL Server. Required when `create_mode` is `Default`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "administratorLoginPassword": {
          "description": "The Password associated with the `administrator_login` for the MySQL Server. Required when `create_mode` is `Default`.\n",
          "type": "string"
        },
        "autoGrowEnabled": {
          "description": "Enable/Disable auto-growing of the storage. Storage auto-grow prevents your server from running out of storage and becoming read-only. If storage auto grow is enabled, the storage automatically grows without impacting the workload. The default value if not explicitly specified is `true`.\n",
          "type": "boolean"
        },
        "backupRetentionDays": {
          "description": "Backup retention days for the server, supported values are between `7` and `35` days.\n",
          "type": "integer"
        },
        "createMode": {
          "description": "The creation mode. Can be used to restore or replicate existing servers. Possible values are `Default`, `Replica`, `GeoRestore`, and `PointInTimeRestore`. Defaults to `Default`.\n",
          "type": "string"
        },
        "creationSourceServerId": {
          "description": "For creation modes other than `Default`, the source server ID to use.\n",
          "type": "string"
        },
        "geoRedundantBackupEnabled": {
          "description": "Turn Geo-redundant server backups on/off. This allows you to choose between locally redundant or geo-redundant backup storage in the General Purpose and Memory Optimized tiers. When the backups are stored in geo-redundant backup storage, they are not only stored within the region in which your server is hosted, but are also replicated to a paired data center. This provides better protection and ability to restore your server in a different region in the event of a disaster. This is not supported for the Basic tier.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:mysql/ServerIdentity:ServerIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "infrastructureEncryptionEnabled": {
          "description": "Whether or not infrastructure is encrypted for this server. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the MySQL Server. Changing this forces a new resource to be created. This needs to be globally unique within Azure.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the MySQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "restorePointInTime": {
          "description": "When `create_mode` is `PointInTimeRestore`, specifies the point in time to restore from `creation_source_server_id`.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this MySQL Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/mysql/servers/create#sku).\n",
          "type": "string"
        },
        "sslEnforcement": {
          "deprecationMessage": "this has been moved to the boolean attribute `ssl_enforcement_enabled` and will be removed in version 3.0 of the provider.",
          "type": "string"
        },
        "sslEnforcementEnabled": {
          "description": "Specifies if SSL should be enforced on connections. Possible values are `true` and `false`.\n",
          "type": "boolean"
        },
        "sslMinimalTlsVersionEnforced": {
          "description": "The minimum TLS version to support on the sever. Possible values are `TLSEnforcementDisabled`, `TLS1_0`, `TLS1_1`, and `TLS1_2`. Defaults to `TLSEnforcementDisabled`.\n",
          "type": "string"
        },
        "storageMb": {
          "description": "Max storage allowed for a server. Possible values are between `5120` MB(5GB) and `1048576` MB(1TB) for the Basic SKU and between `5120` MB(5GB) and `4194304` MB(4TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/mysql/servers/create#StorageProfile).\n",
          "type": "integer"
        },
        "storageProfile": {
          "$ref": "#/types/azure:mysql/ServerStorageProfile:ServerStorageProfile",
          "deprecationMessage": "all storage_profile properties have been moved to the top level. This block will be removed in version 3.0 of the provider."
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "threatDetectionPolicy": {
          "$ref": "#/types/azure:mysql/ServerThreatDetectionPolicy:ServerThreatDetectionPolicy",
          "description": "Threat detection policy configuration, known in the API as Server Security Alerts Policy. The `threat_detection_policy` block supports fields documented below.\n"
        },
        "version": {
          "description": "Specifies the version of MySQL to use. Valid values are `5.6`, `5.7`, and `8.0`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "administratorLogin": {
          "description": "The Administrator Login for the MySQL Server. Required when `create_mode` is `Default`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "administratorLoginPassword": {
          "description": "The Password associated with the `administrator_login` for the MySQL Server. Required when `create_mode` is `Default`.\n",
          "type": "string"
        },
        "autoGrowEnabled": {
          "description": "Enable/Disable auto-growing of the storage. Storage auto-grow prevents your server from running out of storage and becoming read-only. If storage auto grow is enabled, the storage automatically grows without impacting the workload. The default value if not explicitly specified is `true`.\n",
          "type": "boolean"
        },
        "backupRetentionDays": {
          "description": "Backup retention days for the server, supported values are between `7` and `35` days.\n",
          "type": "integer"
        },
        "createMode": {
          "description": "The creation mode. Can be used to restore or replicate existing servers. Possible values are `Default`, `Replica`, `GeoRestore`, and `PointInTimeRestore`. Defaults to `Default`.\n",
          "type": "string"
        },
        "creationSourceServerId": {
          "description": "For creation modes other than `Default`, the source server ID to use.\n",
          "type": "string"
        },
        "fqdn": {
          "description": "The FQDN of the MySQL Server.\n",
          "type": "string"
        },
        "geoRedundantBackupEnabled": {
          "description": "Turn Geo-redundant server backups on/off. This allows you to choose between locally redundant or geo-redundant backup storage in the General Purpose and Memory Optimized tiers. When the backups are stored in geo-redundant backup storage, they are not only stored within the region in which your server is hosted, but are also replicated to a paired data center. This provides better protection and ability to restore your server in a different region in the event of a disaster. This is not supported for the Basic tier.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:mysql/ServerIdentity:ServerIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "infrastructureEncryptionEnabled": {
          "description": "Whether or not infrastructure is encrypted for this server. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the MySQL Server. Changing this forces a new resource to be created. This needs to be globally unique within Azure.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the MySQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "restorePointInTime": {
          "description": "When `create_mode` is `PointInTimeRestore`, specifies the point in time to restore from `creation_source_server_id`.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this MySQL Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/mysql/servers/create#sku).\n",
          "type": "string"
        },
        "sslEnforcement": {
          "deprecationMessage": "this has been moved to the boolean attribute `ssl_enforcement_enabled` and will be removed in version 3.0 of the provider.",
          "type": "string"
        },
        "sslEnforcementEnabled": {
          "description": "Specifies if SSL should be enforced on connections. Possible values are `true` and `false`.\n",
          "type": "boolean"
        },
        "sslMinimalTlsVersionEnforced": {
          "description": "The minimum TLS version to support on the sever. Possible values are `TLSEnforcementDisabled`, `TLS1_0`, `TLS1_1`, and `TLS1_2`. Defaults to `TLSEnforcementDisabled`.\n",
          "type": "string"
        },
        "storageMb": {
          "description": "Max storage allowed for a server. Possible values are between `5120` MB(5GB) and `1048576` MB(1TB) for the Basic SKU and between `5120` MB(5GB) and `4194304` MB(4TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/mysql/servers/create#StorageProfile).\n",
          "type": "integer"
        },
        "storageProfile": {
          "$ref": "#/types/azure:mysql/ServerStorageProfile:ServerStorageProfile",
          "deprecationMessage": "all storage_profile properties have been moved to the top level. This block will be removed in version 3.0 of the provider."
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "threatDetectionPolicy": {
          "$ref": "#/types/azure:mysql/ServerThreatDetectionPolicy:ServerThreatDetectionPolicy",
          "description": "Threat detection policy configuration, known in the API as Server Security Alerts Policy. The `threat_detection_policy` block supports fields documented below.\n"
        },
        "version": {
          "description": "Specifies the version of MySQL to use. Valid values are `5.6`, `5.7`, and `8.0`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "administratorLogin",
        "autoGrowEnabled",
        "backupRetentionDays",
        "fqdn",
        "geoRedundantBackupEnabled",
        "location",
        "name",
        "resourceGroupName",
        "skuName",
        "sslEnforcement",
        "storageMb",
        "storageProfile",
        "version"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "skuName",
        "version"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Server resources.\n",
        "properties": {
          "administratorLogin": {
            "description": "The Administrator Login for the MySQL Server. Required when `create_mode` is `Default`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "administratorLoginPassword": {
            "description": "The Password associated with the `administrator_login` for the MySQL Server. Required when `create_mode` is `Default`.\n",
            "type": "string"
          },
          "autoGrowEnabled": {
            "description": "Enable/Disable auto-growing of the storage. Storage auto-grow prevents your server from running out of storage and becoming read-only. If storage auto grow is enabled, the storage automatically grows without impacting the workload. The default value if not explicitly specified is `true`.\n",
            "type": "boolean"
          },
          "backupRetentionDays": {
            "description": "Backup retention days for the server, supported values are between `7` and `35` days.\n",
            "type": "integer"
          },
          "createMode": {
            "description": "The creation mode. Can be used to restore or replicate existing servers. Possible values are `Default`, `Replica`, `GeoRestore`, and `PointInTimeRestore`. Defaults to `Default`.\n",
            "type": "string"
          },
          "creationSourceServerId": {
            "description": "For creation modes other than `Default`, the source server ID to use.\n",
            "type": "string"
          },
          "fqdn": {
            "description": "The FQDN of the MySQL Server.\n",
            "type": "string"
          },
          "geoRedundantBackupEnabled": {
            "description": "Turn Geo-redundant server backups on/off. This allows you to choose between locally redundant or geo-redundant backup storage in the General Purpose and Memory Optimized tiers. When the backups are stored in geo-redundant backup storage, they are not only stored within the region in which your server is hosted, but are also replicated to a paired data center. This provides better protection and ability to restore your server in a different region in the event of a disaster. This is not supported for the Basic tier.\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:mysql/ServerIdentity:ServerIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "infrastructureEncryptionEnabled": {
            "description": "Whether or not infrastructure is encrypted for this server. Defaults to `false`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the MySQL Server. Changing this forces a new resource to be created. This needs to be globally unique within Azure.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the MySQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "restorePointInTime": {
            "description": "When `create_mode` is `PointInTimeRestore`, specifies the point in time to restore from `creation_source_server_id`.\n",
            "type": "string"
          },
          "skuName": {
            "description": "Specifies the SKU Name for this MySQL Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/mysql/servers/create#sku).\n",
            "type": "string"
          },
          "sslEnforcement": {
            "deprecationMessage": "this has been moved to the boolean attribute `ssl_enforcement_enabled` and will be removed in version 3.0 of the provider.",
            "type": "string"
          },
          "sslEnforcementEnabled": {
            "description": "Specifies if SSL should be enforced on connections. Possible values are `true` and `false`.\n",
            "type": "boolean"
          },
          "sslMinimalTlsVersionEnforced": {
            "description": "The minimum TLS version to support on the sever. Possible values are `TLSEnforcementDisabled`, `TLS1_0`, `TLS1_1`, and `TLS1_2`. Defaults to `TLSEnforcementDisabled`.\n",
            "type": "string"
          },
          "storageMb": {
            "description": "Max storage allowed for a server. Possible values are between `5120` MB(5GB) and `1048576` MB(1TB) for the Basic SKU and between `5120` MB(5GB) and `4194304` MB(4TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/mysql/servers/create#StorageProfile).\n",
            "type": "integer"
          },
          "storageProfile": {
            "$ref": "#/types/azure:mysql/ServerStorageProfile:ServerStorageProfile",
            "deprecationMessage": "all storage_profile properties have been moved to the top level. This block will be removed in version 3.0 of the provider."
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "threatDetectionPolicy": {
            "$ref": "#/types/azure:mysql/ServerThreatDetectionPolicy:ServerThreatDetectionPolicy",
            "description": "Threat detection policy configuration, known in the API as Server Security Alerts Policy. The `threat_detection_policy` block supports fields documented below.\n"
          },
          "version": {
            "description": "Specifies the version of MySQL to use. Valid values are `5.6`, `5.7`, and `8.0`. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mysql/serverKey:ServerKey": {
      "description": "Manages a Customer Managed Key for a MySQL Server.\n\n\n## Import\n\nA MySQL Server Key can be imported using the `resource id` of the MySQL Server Key, e.g.\n\n```sh\n $ pulumi import azure:mysql/serverKey:ServerKey example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DBforMySQL/servers/server1/keys/keyvaultname_key-name_keyversion\n```\n\n ",
      "inputProperties": {
        "keyVaultKeyId": {
          "description": "The URL to a Key Vault Key.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The ID of the MySQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "keyVaultKeyId": {
          "description": "The URL to a Key Vault Key.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The ID of the MySQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "keyVaultKeyId",
        "serverId"
      ],
      "requiredInputs": [
        "keyVaultKeyId",
        "serverId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ServerKey resources.\n",
        "properties": {
          "keyVaultKeyId": {
            "description": "The URL to a Key Vault Key.\n",
            "type": "string"
          },
          "serverId": {
            "description": "The ID of the MySQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:mysql/virtualNetworkRule:VirtualNetworkRule": {
      "description": "Manages a MySQL Virtual Network Rule.\n\n\u003e **NOTE:** MySQL Virtual Network Rules [can only be used with SKU Tiers of `GeneralPurpose` or `MemoryOptimized`](https://docs.microsoft.com/en-us/azure/mysql/concepts-data-access-and-security-vnet)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.7.29.0/29\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst internal = new azure.network.Subnet(\"internal\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.7.29.0/29\"],\n    serviceEndpoints: [\"Microsoft.Sql\"],\n});\nconst exampleServer = new azure.mysql.Server(\"exampleServer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    administratorLogin: \"mysqladminun\",\n    administratorLoginPassword: \"H@Sh1CoR3!\",\n    skuName: \"B_Gen5_2\",\n    storageMb: 5120,\n    version: \"5.7\",\n    backupRetentionDays: 7,\n    geoRedundantBackupEnabled: false,\n    sslEnforcementEnabled: true,\n});\nconst exampleVirtualNetworkRule = new azure.mysql.VirtualNetworkRule(\"exampleVirtualNetworkRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    subnetId: internal.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.7.29.0/29\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\ninternal = azure.network.Subnet(\"internal\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.7.29.0/29\"],\n    service_endpoints=[\"Microsoft.Sql\"])\nexample_server = azure.mysql.Server(\"exampleServer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    administrator_login=\"mysqladminun\",\n    administrator_login_password=\"H@Sh1CoR3!\",\n    sku_name=\"B_Gen5_2\",\n    storage_mb=5120,\n    version=\"5.7\",\n    backup_retention_days=7,\n    geo_redundant_backup_enabled=False,\n    ssl_enforcement_enabled=True)\nexample_virtual_network_rule = azure.mysql.VirtualNetworkRule(\"exampleVirtualNetworkRule\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    subnet_id=internal.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.7.29.0/29\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var @internal = new Azure.Network.Subnet(\"internal\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.7.29.0/29\",\n            },\n            ServiceEndpoints = \n            {\n                \"Microsoft.Sql\",\n            },\n        });\n        var exampleServer = new Azure.MySql.Server(\"exampleServer\", new Azure.MySql.ServerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AdministratorLogin = \"mysqladminun\",\n            AdministratorLoginPassword = \"H@Sh1CoR3!\",\n            SkuName = \"B_Gen5_2\",\n            StorageMb = 5120,\n            Version = \"5.7\",\n            BackupRetentionDays = 7,\n            GeoRedundantBackupEnabled = false,\n            SslEnforcementEnabled = true,\n        });\n        var exampleVirtualNetworkRule = new Azure.MySql.VirtualNetworkRule(\"exampleVirtualNetworkRule\", new Azure.MySql.VirtualNetworkRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            SubnetId = @internal.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/mysql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.7.29.0/29\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinternal, err := network.NewSubnet(ctx, \"internal\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.7.29.0/29\"),\n\t\t\t},\n\t\t\tServiceEndpoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Microsoft.Sql\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mysql.NewServer(ctx, \"exampleServer\", \u0026mysql.ServerArgs{\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tAdministratorLogin:         pulumi.String(\"mysqladminun\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tSkuName:                    pulumi.String(\"B_Gen5_2\"),\n\t\t\tStorageMb:                  pulumi.Int(5120),\n\t\t\tVersion:                    pulumi.String(\"5.7\"),\n\t\t\tBackupRetentionDays:        pulumi.Int(7),\n\t\t\tGeoRedundantBackupEnabled:  pulumi.Bool(false),\n\t\t\tSslEnforcementEnabled:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mysql.NewVirtualNetworkRule(ctx, \"exampleVirtualNetworkRule\", \u0026mysql.VirtualNetworkRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tSubnetId:          internal.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMySQL Virtual Network Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:mysql/virtualNetworkRule:VirtualNetworkRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforMySQL/servers/myserver/virtualNetworkRules/vnetrulename\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the MySQL Virtual Network Rule. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the MySQL server resides. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server to which this MySQL virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet that the MySQL server will be connected to.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "The name of the MySQL Virtual Network Rule. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the MySQL server resides. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server to which this MySQL virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet that the MySQL server will be connected to.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "serverName",
        "subnetId"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "serverName",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualNetworkRule resources.\n",
        "properties": {
          "name": {
            "description": "The name of the MySQL Virtual Network Rule. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the MySQL server resides. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the SQL Server to which this MySQL virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the subnet that the MySQL server will be connected to.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:netapp/account:Account": {
      "description": "Manages a NetApp Account.\n\n\u003e **NOTE:** Azure allows only one active directory can be joined to a single subscription at a time for NetApp Account.\n\n## NetApp Account Usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.netapp.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    activeDirectory: {\n        username: \"aduser\",\n        password: \"aduserpwd\",\n        smbServerName: \"SMBSERVER\",\n        dnsServers: [\"1.2.3.4\"],\n        domain: \"westcentralus.com\",\n        organizationalUnit: \"OU=FirstLevel\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.netapp.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    active_directory=azure.netapp.AccountActiveDirectoryArgs(\n        username=\"aduser\",\n        password=\"aduserpwd\",\n        smb_server_name=\"SMBSERVER\",\n        dns_servers=[\"1.2.3.4\"],\n        domain=\"westcentralus.com\",\n        organizational_unit=\"OU=FirstLevel\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.NetApp.Account(\"exampleAccount\", new Azure.NetApp.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ActiveDirectory = new Azure.NetApp.Inputs.AccountActiveDirectoryArgs\n            {\n                Username = \"aduser\",\n                Password = \"aduserpwd\",\n                SmbServerName = \"SMBSERVER\",\n                DnsServers = \n                {\n                    \"1.2.3.4\",\n                },\n                Domain = \"westcentralus.com\",\n                OrganizationalUnit = \"OU=FirstLevel\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/netapp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = netapp.NewAccount(ctx, \"exampleAccount\", \u0026netapp.AccountArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tActiveDirectory: \u0026netapp.AccountActiveDirectoryArgs{\n\t\t\t\tUsername:      pulumi.String(\"aduser\"),\n\t\t\t\tPassword:      pulumi.String(\"aduserpwd\"),\n\t\t\t\tSmbServerName: pulumi.String(\"SMBSERVER\"),\n\t\t\t\tDnsServers: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"1.2.3.4\"),\n\t\t\t\t},\n\t\t\t\tDomain:             pulumi.String(\"westcentralus.com\"),\n\t\t\t\tOrganizationalUnit: pulumi.String(\"OU=FirstLevel\"),\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\n\n## Import\n\nNetApp Accounts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:netapp/account:Account example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.NetApp/netAppAccounts/account1\n```\n\n ",
      "inputProperties": {
        "activeDirectory": {
          "$ref": "#/types/azure:netapp/AccountActiveDirectory:AccountActiveDirectory",
          "description": "A `active_directory` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the NetApp Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the NetApp Account should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "activeDirectory": {
          "$ref": "#/types/azure:netapp/AccountActiveDirectory:AccountActiveDirectory",
          "description": "A `active_directory` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the NetApp Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the NetApp Account should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Account resources.\n",
        "properties": {
          "activeDirectory": {
            "$ref": "#/types/azure:netapp/AccountActiveDirectory:AccountActiveDirectory",
            "description": "A `active_directory` block as defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the NetApp Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the NetApp Account should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:netapp/pool:Pool": {
      "description": "Manages a Pool within a NetApp Account.\n\n## NetApp Pool Usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.netapp.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst examplePool = new azure.netapp.Pool(\"examplePool\", {\n    accountName: exampleAccount.name,\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    serviceLevel: \"Premium\",\n    sizeInTb: 4,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.netapp.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_pool = azure.netapp.Pool(\"examplePool\",\n    account_name=example_account.name,\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    service_level=\"Premium\",\n    size_in_tb=4)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.NetApp.Account(\"exampleAccount\", new Azure.NetApp.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var examplePool = new Azure.NetApp.Pool(\"examplePool\", new Azure.NetApp.PoolArgs\n        {\n            AccountName = exampleAccount.Name,\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServiceLevel = \"Premium\",\n            SizeInTb = 4,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/netapp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := netapp.NewAccount(ctx, \"exampleAccount\", \u0026netapp.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = netapp.NewPool(ctx, \"examplePool\", \u0026netapp.PoolArgs{\n\t\t\tAccountName:       exampleAccount.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServiceLevel:      pulumi.String(\"Premium\"),\n\t\t\tSizeInTb:          pulumi.Int(4),\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\n\n## Import\n\nNetApp Pool can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:netapp/pool:Pool example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "The name of the NetApp account in which the NetApp Pool should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the NetApp Pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the NetApp Pool should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceLevel": {
          "description": "The service level of the file system. Valid values include `Premium`, `Standard`, or `Ultra`.\n",
          "type": "string"
        },
        "sizeInTb": {
          "description": "Provisioned size of the pool in TB. Value must be between `4` and `500`.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "accountName": {
          "description": "The name of the NetApp account in which the NetApp Pool should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the NetApp Pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the NetApp Pool should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceLevel": {
          "description": "The service level of the file system. Valid values include `Premium`, `Standard`, or `Ultra`.\n",
          "type": "string"
        },
        "sizeInTb": {
          "description": "Provisioned size of the pool in TB. Value must be between `4` and `500`.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "accountName",
        "location",
        "name",
        "resourceGroupName",
        "serviceLevel",
        "sizeInTb"
      ],
      "requiredInputs": [
        "accountName",
        "resourceGroupName",
        "serviceLevel",
        "sizeInTb"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Pool resources.\n",
        "properties": {
          "accountName": {
            "description": "The name of the NetApp account in which the NetApp Pool should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the NetApp Pool. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the NetApp Pool should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serviceLevel": {
            "description": "The service level of the file system. Valid values include `Premium`, `Standard`, or `Ultra`.\n",
            "type": "string"
          },
          "sizeInTb": {
            "description": "Provisioned size of the pool in TB. Value must be between `4` and `500`.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:netapp/snapshot:Snapshot": {
      "description": "Manages a NetApp Snapshot.\n\n## NetApp Snapshot Usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n    delegations: [{\n        name: \"netapp\",\n        serviceDelegation: {\n            name: \"Microsoft.Netapp/volumes\",\n            actions: [\n                \"Microsoft.Network/networkinterfaces/*\",\n                \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n            ],\n        },\n    }],\n});\nconst exampleAccount = new azure.netapp.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst examplePool = new azure.netapp.Pool(\"examplePool\", {\n    accountName: exampleAccount.name,\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    serviceLevel: \"Premium\",\n    sizeInTb: \"4\",\n});\nconst exampleVolume = new azure.netapp.Volume(\"exampleVolume\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    accountName: exampleAccount.name,\n    poolName: examplePool.name,\n    volumePath: \"my-unique-file-path\",\n    serviceLevel: \"Premium\",\n    subnetId: azurerm_subnet.test.id,\n    storageQuotaInGb: \"100\",\n});\nconst exampleSnapshot = new azure.netapp.Snapshot(\"exampleSnapshot\", {\n    accountName: exampleAccount.name,\n    poolName: examplePool.name,\n    volumeName: exampleVolume.name,\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"],\n    delegations=[azure.network.SubnetDelegationArgs(\n        name=\"netapp\",\n        service_delegation=azure.network.SubnetDelegationServiceDelegationArgs(\n            name=\"Microsoft.Netapp/volumes\",\n            actions=[\n                \"Microsoft.Network/networkinterfaces/*\",\n                \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n            ],\n        ),\n    )])\nexample_account = azure.netapp.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_pool = azure.netapp.Pool(\"examplePool\",\n    account_name=example_account.name,\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    service_level=\"Premium\",\n    size_in_tb=4)\nexample_volume = azure.netapp.Volume(\"exampleVolume\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    account_name=example_account.name,\n    pool_name=example_pool.name,\n    volume_path=\"my-unique-file-path\",\n    service_level=\"Premium\",\n    subnet_id=azurerm_subnet[\"test\"][\"id\"],\n    storage_quota_in_gb=100)\nexample_snapshot = azure.netapp.Snapshot(\"exampleSnapshot\",\n    account_name=example_account.name,\n    pool_name=example_pool.name,\n    volume_name=example_volume.name,\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n            Delegations = \n            {\n                new Azure.Network.Inputs.SubnetDelegationArgs\n                {\n                    Name = \"netapp\",\n                    ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs\n                    {\n                        Name = \"Microsoft.Netapp/volumes\",\n                        Actions = \n                        {\n                            \"Microsoft.Network/networkinterfaces/*\",\n                            \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n                        },\n                    },\n                },\n            },\n        });\n        var exampleAccount = new Azure.NetApp.Account(\"exampleAccount\", new Azure.NetApp.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var examplePool = new Azure.NetApp.Pool(\"examplePool\", new Azure.NetApp.PoolArgs\n        {\n            AccountName = exampleAccount.Name,\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServiceLevel = \"Premium\",\n            SizeInTb = 4,\n        });\n        var exampleVolume = new Azure.NetApp.Volume(\"exampleVolume\", new Azure.NetApp.VolumeArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AccountName = exampleAccount.Name,\n            PoolName = examplePool.Name,\n            VolumePath = \"my-unique-file-path\",\n            ServiceLevel = \"Premium\",\n            SubnetId = azurerm_subnet.Test.Id,\n            StorageQuotaInGb = 100,\n        });\n        var exampleSnapshot = new Azure.NetApp.Snapshot(\"exampleSnapshot\", new Azure.NetApp.SnapshotArgs\n        {\n            AccountName = exampleAccount.Name,\n            PoolName = examplePool.Name,\n            VolumeName = exampleVolume.Name,\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/netapp\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t\tDelegations: network.SubnetDelegationArray{\n\t\t\t\t\u0026network.SubnetDelegationArgs{\n\t\t\t\t\tName: pulumi.String(\"netapp\"),\n\t\t\t\t\tServiceDelegation: \u0026network.SubnetDelegationServiceDelegationArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Microsoft.Netapp/volumes\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/networkinterfaces/*\"),\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/join/action\"),\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\texampleAccount, err := netapp.NewAccount(ctx, \"exampleAccount\", \u0026netapp.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePool, err := netapp.NewPool(ctx, \"examplePool\", \u0026netapp.PoolArgs{\n\t\t\tAccountName:       exampleAccount.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServiceLevel:      pulumi.String(\"Premium\"),\n\t\t\tSizeInTb:          pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVolume, err := netapp.NewVolume(ctx, \"exampleVolume\", \u0026netapp.VolumeArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAccountName:       exampleAccount.Name,\n\t\t\tPoolName:          examplePool.Name,\n\t\t\tVolumePath:        pulumi.String(\"my-unique-file-path\"),\n\t\t\tServiceLevel:      pulumi.String(\"Premium\"),\n\t\t\tSubnetId:          pulumi.Any(azurerm_subnet.Test.Id),\n\t\t\tStorageQuotaInGb:  pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = netapp.NewSnapshot(ctx, \"exampleSnapshot\", \u0026netapp.SnapshotArgs{\n\t\t\tAccountName:       exampleAccount.Name,\n\t\t\tPoolName:          examplePool.Name,\n\t\t\tVolumeName:        exampleVolume.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\n\n## Import\n\nNetApp Snapshot can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:netapp/snapshot:Snapshot example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "The name of the NetApp account in which the NetApp Pool should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the NetApp Snapshot. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "poolName": {
          "description": "The name of the NetApp pool in which the NetApp Volume should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the NetApp Snapshot should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "deprecationMessage": "This property as been deprecated as the API no longer supports tags and will be removed in version 3.0 of the provider.",
          "type": "object"
        },
        "volumeName": {
          "description": "The name of the NetApp volume in which the NetApp Snapshot should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "accountName": {
          "description": "The name of the NetApp account in which the NetApp Pool should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the NetApp Snapshot. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "poolName": {
          "description": "The name of the NetApp pool in which the NetApp Volume should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the NetApp Snapshot should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "deprecationMessage": "This property as been deprecated as the API no longer supports tags and will be removed in version 3.0 of the provider.",
          "type": "object"
        },
        "volumeName": {
          "description": "The name of the NetApp volume in which the NetApp Snapshot should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "location",
        "name",
        "poolName",
        "resourceGroupName",
        "volumeName"
      ],
      "requiredInputs": [
        "accountName",
        "poolName",
        "resourceGroupName",
        "volumeName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Snapshot resources.\n",
        "properties": {
          "accountName": {
            "description": "The name of the NetApp account in which the NetApp Pool should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the NetApp Snapshot. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "poolName": {
            "description": "The name of the NetApp pool in which the NetApp Volume should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the NetApp Snapshot should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "deprecationMessage": "This property as been deprecated as the API no longer supports tags and will be removed in version 3.0 of the provider.",
            "type": "object"
          },
          "volumeName": {
            "description": "The name of the NetApp volume in which the NetApp Snapshot should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:netapp/volume:Volume": {
      "description": "Manages a NetApp Volume.\n\n## NetApp Volume Usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"10.0.0.0/16\"],\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n    delegations: [{\n        name: \"netapp\",\n        serviceDelegation: {\n            name: \"Microsoft.Netapp/volumes\",\n            actions: [\n                \"Microsoft.Network/networkinterfaces/*\",\n                \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n            ],\n        },\n    }],\n});\nconst exampleAccount = new azure.netapp.Account(\"exampleAccount\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst examplePool = new azure.netapp.Pool(\"examplePool\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    accountName: exampleAccount.name,\n    serviceLevel: \"Premium\",\n    sizeInTb: 4,\n});\nconst exampleVolume = new azure.netapp.Volume(\"exampleVolume\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    accountName: exampleAccount.name,\n    poolName: examplePool.name,\n    volumePath: \"my-unique-file-path\",\n    serviceLevel: \"Premium\",\n    subnetId: exampleSubnet.id,\n    protocols: [\"NFSv4.1\"],\n    securityStyle: \"Unix\",\n    storageQuotaInGb: 100,\n    snapshotDirectoryVisible: false,\n    createFromSnapshotResourceId: \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1\",\n    dataProtectionReplication: {\n        endpointType: \"dst\",\n        remoteVolumeLocation: azurerm_resource_group.example_primary.location,\n        remoteVolumeResourceId: azurerm_netapp_volume.example_primary.id,\n        replicationFrequency: \"10minutes\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    address_spaces=[\"10.0.0.0/16\"])\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"],\n    delegations=[azure.network.SubnetDelegationArgs(\n        name=\"netapp\",\n        service_delegation=azure.network.SubnetDelegationServiceDelegationArgs(\n            name=\"Microsoft.Netapp/volumes\",\n            actions=[\n                \"Microsoft.Network/networkinterfaces/*\",\n                \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n            ],\n        ),\n    )])\nexample_account = azure.netapp.Account(\"exampleAccount\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_pool = azure.netapp.Pool(\"examplePool\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    account_name=example_account.name,\n    service_level=\"Premium\",\n    size_in_tb=4)\nexample_volume = azure.netapp.Volume(\"exampleVolume\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    account_name=example_account.name,\n    pool_name=example_pool.name,\n    volume_path=\"my-unique-file-path\",\n    service_level=\"Premium\",\n    subnet_id=example_subnet.id,\n    protocols=[\"NFSv4.1\"],\n    security_style=\"Unix\",\n    storage_quota_in_gb=100,\n    snapshot_directory_visible=False,\n    create_from_snapshot_resource_id=\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1\",\n    data_protection_replication=azure.netapp.VolumeDataProtectionReplicationArgs(\n        endpoint_type=\"dst\",\n        remote_volume_location=azurerm_resource_group[\"example_primary\"][\"location\"],\n        remote_volume_resource_id=azurerm_netapp_volume[\"example_primary\"][\"id\"],\n        replication_frequency=\"10minutes\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n            Delegations = \n            {\n                new Azure.Network.Inputs.SubnetDelegationArgs\n                {\n                    Name = \"netapp\",\n                    ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs\n                    {\n                        Name = \"Microsoft.Netapp/volumes\",\n                        Actions = \n                        {\n                            \"Microsoft.Network/networkinterfaces/*\",\n                            \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n                        },\n                    },\n                },\n            },\n        });\n        var exampleAccount = new Azure.NetApp.Account(\"exampleAccount\", new Azure.NetApp.AccountArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var examplePool = new Azure.NetApp.Pool(\"examplePool\", new Azure.NetApp.PoolArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AccountName = exampleAccount.Name,\n            ServiceLevel = \"Premium\",\n            SizeInTb = 4,\n        });\n        var exampleVolume = new Azure.NetApp.Volume(\"exampleVolume\", new Azure.NetApp.VolumeArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AccountName = exampleAccount.Name,\n            PoolName = examplePool.Name,\n            VolumePath = \"my-unique-file-path\",\n            ServiceLevel = \"Premium\",\n            SubnetId = exampleSubnet.Id,\n            Protocols = \n            {\n                \"NFSv4.1\",\n            },\n            SecurityStyle = \"Unix\",\n            StorageQuotaInGb = 100,\n            SnapshotDirectoryVisible = false,\n            CreateFromSnapshotResourceId = \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1\",\n            DataProtectionReplication = new Azure.NetApp.Inputs.VolumeDataProtectionReplicationArgs\n            {\n                EndpointType = \"dst\",\n                RemoteVolumeLocation = azurerm_resource_group.Example_primary.Location,\n                RemoteVolumeResourceId = azurerm_netapp_volume.Example_primary.Id,\n                ReplicationFrequency = \"10minutes\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/netapp\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t\tDelegations: network.SubnetDelegationArray{\n\t\t\t\t\u0026network.SubnetDelegationArgs{\n\t\t\t\t\tName: pulumi.String(\"netapp\"),\n\t\t\t\t\tServiceDelegation: \u0026network.SubnetDelegationServiceDelegationArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Microsoft.Netapp/volumes\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/networkinterfaces/*\"),\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/join/action\"),\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\texampleAccount, err := netapp.NewAccount(ctx, \"exampleAccount\", \u0026netapp.AccountArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePool, err := netapp.NewPool(ctx, \"examplePool\", \u0026netapp.PoolArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAccountName:       exampleAccount.Name,\n\t\t\tServiceLevel:      pulumi.String(\"Premium\"),\n\t\t\tSizeInTb:          pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = netapp.NewVolume(ctx, \"exampleVolume\", \u0026netapp.VolumeArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAccountName:       exampleAccount.Name,\n\t\t\tPoolName:          examplePool.Name,\n\t\t\tVolumePath:        pulumi.String(\"my-unique-file-path\"),\n\t\t\tServiceLevel:      pulumi.String(\"Premium\"),\n\t\t\tSubnetId:          exampleSubnet.ID(),\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"NFSv4.1\"),\n\t\t\t},\n\t\t\tSecurityStyle:                pulumi.String(\"Unix\"),\n\t\t\tStorageQuotaInGb:             pulumi.Int(100),\n\t\t\tSnapshotDirectoryVisible:     pulumi.Bool(false),\n\t\t\tCreateFromSnapshotResourceId: pulumi.String(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1/snapshots/snapshot1\"),\n\t\t\tDataProtectionReplication: \u0026netapp.VolumeDataProtectionReplicationArgs{\n\t\t\t\tEndpointType:           pulumi.String(\"dst\"),\n\t\t\t\tRemoteVolumeLocation:   pulumi.Any(azurerm_resource_group.Example_primary.Location),\n\t\t\t\tRemoteVolumeResourceId: pulumi.Any(azurerm_netapp_volume.Example_primary.Id),\n\t\t\t\tReplicationFrequency:   pulumi.String(\"10minutes\"),\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\n\n## Import\n\nNetApp Volumes can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:netapp/volume:Volume example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1\n```\n\n ",
      "inputProperties": {
        "accountName": {
          "description": "The name of the NetApp account in which the NetApp Pool should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "createFromSnapshotResourceId": {
          "description": "Creates volume from snapshot. Following properties must be the same as the original volume where the snapshot was taken from: `protocols`, `subnet_id`, `location`, `service_level`, `resource_group_name`, `account_name` and `pool_name`.\n",
          "type": "string"
        },
        "dataProtectionReplication": {
          "$ref": "#/types/azure:netapp/VolumeDataProtectionReplication:VolumeDataProtectionReplication",
          "description": "A `data_protection_replication` block as defined below.\n"
        },
        "exportPolicyRules": {
          "description": "One or more `export_policy_rule` block defined below.\n",
          "items": {
            "$ref": "#/types/azure:netapp/VolumeExportPolicyRule:VolumeExportPolicyRule"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the NetApp Volume. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "poolName": {
          "description": "The name of the NetApp pool in which the NetApp Volume should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "protocols": {
          "description": "The target volume protocol expressed as a list. Supported single value include `CIFS`, `NFSv3`, or `NFSv4.1`. If argument is not defined it will default to `NFSv3`. Changing this forces a new resource to be created and data will be lost. Dual protocol scenario is supported for CIFS and NFSv3, for more information, please refer to [Create a dual-protocol volume for Azure NetApp Files](https://docs.microsoft.com/en-us/azure/azure-netapp-files/create-volumes-dual-protocol) document.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the NetApp Volume should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "securityStyle": {
          "description": "Volume security style, accepted values are `Unix` or `Ntfs`. If not provided, single-protocol volume is created defaulting to `Unix` if it is `NFSv3` or `NFSv4.1` volume, if `CIFS`, it will default to `Ntfs`. In a dual-protocol volume, if not provided, its value will be `Ntfs`.\n",
          "type": "string"
        },
        "serviceLevel": {
          "description": "The target performance of the file system. Valid values include `Premium`, `Standard`, or `Ultra`.\n",
          "type": "string"
        },
        "snapshotDirectoryVisible": {
          "description": "Specifies whether the .snapshot (NFS clients) or ~snapshot (SMB clients) path of a volume is visible, default value is true.\n",
          "type": "boolean"
        },
        "storageQuotaInGb": {
          "description": "The maximum Storage Quota allowed for a file system in Gigabytes.\n",
          "type": "integer"
        },
        "subnetId": {
          "description": "The ID of the Subnet the NetApp Volume resides in, which must have the `Microsoft.NetApp/volumes` delegation. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "volumePath": {
          "description": "A unique file path for the volume. Used when creating mount targets. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "accountName": {
          "description": "The name of the NetApp account in which the NetApp Pool should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "createFromSnapshotResourceId": {
          "description": "Creates volume from snapshot. Following properties must be the same as the original volume where the snapshot was taken from: `protocols`, `subnet_id`, `location`, `service_level`, `resource_group_name`, `account_name` and `pool_name`.\n",
          "type": "string"
        },
        "dataProtectionReplication": {
          "$ref": "#/types/azure:netapp/VolumeDataProtectionReplication:VolumeDataProtectionReplication",
          "description": "A `data_protection_replication` block as defined below.\n"
        },
        "exportPolicyRules": {
          "description": "One or more `export_policy_rule` block defined below.\n",
          "items": {
            "$ref": "#/types/azure:netapp/VolumeExportPolicyRule:VolumeExportPolicyRule"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mountIpAddresses": {
          "description": "A list of IPv4 Addresses which should be used to mount the volume.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the NetApp Volume. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "poolName": {
          "description": "The name of the NetApp pool in which the NetApp Volume should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "protocols": {
          "description": "The target volume protocol expressed as a list. Supported single value include `CIFS`, `NFSv3`, or `NFSv4.1`. If argument is not defined it will default to `NFSv3`. Changing this forces a new resource to be created and data will be lost. Dual protocol scenario is supported for CIFS and NFSv3, for more information, please refer to [Create a dual-protocol volume for Azure NetApp Files](https://docs.microsoft.com/en-us/azure/azure-netapp-files/create-volumes-dual-protocol) document.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the NetApp Volume should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "securityStyle": {
          "description": "Volume security style, accepted values are `Unix` or `Ntfs`. If not provided, single-protocol volume is created defaulting to `Unix` if it is `NFSv3` or `NFSv4.1` volume, if `CIFS`, it will default to `Ntfs`. In a dual-protocol volume, if not provided, its value will be `Ntfs`.\n",
          "type": "string"
        },
        "serviceLevel": {
          "description": "The target performance of the file system. Valid values include `Premium`, `Standard`, or `Ultra`.\n",
          "type": "string"
        },
        "snapshotDirectoryVisible": {
          "description": "Specifies whether the .snapshot (NFS clients) or ~snapshot (SMB clients) path of a volume is visible, default value is true.\n",
          "type": "boolean"
        },
        "storageQuotaInGb": {
          "description": "The maximum Storage Quota allowed for a file system in Gigabytes.\n",
          "type": "integer"
        },
        "subnetId": {
          "description": "The ID of the Subnet the NetApp Volume resides in, which must have the `Microsoft.NetApp/volumes` delegation. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "volumePath": {
          "description": "A unique file path for the volume. Used when creating mount targets. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "createFromSnapshotResourceId",
        "location",
        "mountIpAddresses",
        "name",
        "poolName",
        "protocols",
        "resourceGroupName",
        "securityStyle",
        "serviceLevel",
        "storageQuotaInGb",
        "subnetId",
        "volumePath"
      ],
      "requiredInputs": [
        "accountName",
        "poolName",
        "resourceGroupName",
        "serviceLevel",
        "storageQuotaInGb",
        "subnetId",
        "volumePath"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Volume resources.\n",
        "properties": {
          "accountName": {
            "description": "The name of the NetApp account in which the NetApp Pool should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "createFromSnapshotResourceId": {
            "description": "Creates volume from snapshot. Following properties must be the same as the original volume where the snapshot was taken from: `protocols`, `subnet_id`, `location`, `service_level`, `resource_group_name`, `account_name` and `pool_name`.\n",
            "type": "string"
          },
          "dataProtectionReplication": {
            "$ref": "#/types/azure:netapp/VolumeDataProtectionReplication:VolumeDataProtectionReplication",
            "description": "A `data_protection_replication` block as defined below.\n"
          },
          "exportPolicyRules": {
            "description": "One or more `export_policy_rule` block defined below.\n",
            "items": {
              "$ref": "#/types/azure:netapp/VolumeExportPolicyRule:VolumeExportPolicyRule"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "mountIpAddresses": {
            "description": "A list of IPv4 Addresses which should be used to mount the volume.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the NetApp Volume. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "poolName": {
            "description": "The name of the NetApp pool in which the NetApp Volume should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "protocols": {
            "description": "The target volume protocol expressed as a list. Supported single value include `CIFS`, `NFSv3`, or `NFSv4.1`. If argument is not defined it will default to `NFSv3`. Changing this forces a new resource to be created and data will be lost. Dual protocol scenario is supported for CIFS and NFSv3, for more information, please refer to [Create a dual-protocol volume for Azure NetApp Files](https://docs.microsoft.com/en-us/azure/azure-netapp-files/create-volumes-dual-protocol) document.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the NetApp Volume should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "securityStyle": {
            "description": "Volume security style, accepted values are `Unix` or `Ntfs`. If not provided, single-protocol volume is created defaulting to `Unix` if it is `NFSv3` or `NFSv4.1` volume, if `CIFS`, it will default to `Ntfs`. In a dual-protocol volume, if not provided, its value will be `Ntfs`.\n",
            "type": "string"
          },
          "serviceLevel": {
            "description": "The target performance of the file system. Valid values include `Premium`, `Standard`, or `Ultra`.\n",
            "type": "string"
          },
          "snapshotDirectoryVisible": {
            "description": "Specifies whether the .snapshot (NFS clients) or ~snapshot (SMB clients) path of a volume is visible, default value is true.\n",
            "type": "boolean"
          },
          "storageQuotaInGb": {
            "description": "The maximum Storage Quota allowed for a file system in Gigabytes.\n",
            "type": "integer"
          },
          "subnetId": {
            "description": "The ID of the Subnet the NetApp Volume resides in, which must have the `Microsoft.NetApp/volumes` delegation. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "volumePath": {
            "description": "A unique file path for the volume. Used when creating mount targets. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/applicationGateway:ApplicationGateway": {
      "description": "Manages an Application Gateway.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    addressSpaces: [\"10.254.0.0/16\"],\n});\nconst frontend = new azure.network.Subnet(\"frontend\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.254.0.0/24\"],\n});\nconst backend = new azure.network.Subnet(\"backend\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.254.2.0/24\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    allocationMethod: \"Dynamic\",\n});\nconst backendAddressPoolName = pulumi.interpolate`${exampleVirtualNetwork.name}-beap`;\nconst frontendPortName = pulumi.interpolate`${exampleVirtualNetwork.name}-feport`;\nconst frontendIpConfigurationName = pulumi.interpolate`${exampleVirtualNetwork.name}-feip`;\nconst httpSettingName = pulumi.interpolate`${exampleVirtualNetwork.name}-be-htst`;\nconst listenerName = pulumi.interpolate`${exampleVirtualNetwork.name}-httplstn`;\nconst requestRoutingRuleName = pulumi.interpolate`${exampleVirtualNetwork.name}-rqrt`;\nconst redirectConfigurationName = pulumi.interpolate`${exampleVirtualNetwork.name}-rdrcfg`;\nconst network = new azure.network.ApplicationGateway(\"network\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"Standard_Small\",\n        tier: \"Standard\",\n        capacity: 2,\n    },\n    gatewayIpConfigurations: [{\n        name: \"my-gateway-ip-configuration\",\n        subnetId: frontend.id,\n    }],\n    frontendPorts: [{\n        name: frontendPortName,\n        port: 80,\n    }],\n    frontendIpConfigurations: [{\n        name: frontendIpConfigurationName,\n        publicIpAddressId: examplePublicIp.id,\n    }],\n    backendAddressPools: [{\n        name: backendAddressPoolName,\n    }],\n    backendHttpSettings: [{\n        name: httpSettingName,\n        cookieBasedAffinity: \"Disabled\",\n        path: \"/path1/\",\n        port: 80,\n        protocol: \"Http\",\n        requestTimeout: 60,\n    }],\n    httpListeners: [{\n        name: listenerName,\n        frontendIpConfigurationName: frontendIpConfigurationName,\n        frontendPortName: frontendPortName,\n        protocol: \"Http\",\n    }],\n    requestRoutingRules: [{\n        name: requestRoutingRuleName,\n        ruleType: \"Basic\",\n        httpListenerName: listenerName,\n        backendAddressPoolName: backendAddressPoolName,\n        backendHttpSettingsName: httpSettingName,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    address_spaces=[\"10.254.0.0/16\"])\nfrontend = azure.network.Subnet(\"frontend\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.254.0.0/24\"])\nbackend = azure.network.Subnet(\"backend\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.254.2.0/24\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    allocation_method=\"Dynamic\")\nbackend_address_pool_name = example_virtual_network.name.apply(lambda name: f\"{name}-beap\")\nfrontend_port_name = example_virtual_network.name.apply(lambda name: f\"{name}-feport\")\nfrontend_ip_configuration_name = example_virtual_network.name.apply(lambda name: f\"{name}-feip\")\nhttp_setting_name = example_virtual_network.name.apply(lambda name: f\"{name}-be-htst\")\nlistener_name = example_virtual_network.name.apply(lambda name: f\"{name}-httplstn\")\nrequest_routing_rule_name = example_virtual_network.name.apply(lambda name: f\"{name}-rqrt\")\nredirect_configuration_name = example_virtual_network.name.apply(lambda name: f\"{name}-rdrcfg\")\nnetwork = azure.network.ApplicationGateway(\"network\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.network.ApplicationGatewaySkuArgs(\n        name=\"Standard_Small\",\n        tier=\"Standard\",\n        capacity=2,\n    ),\n    gateway_ip_configurations=[azure.network.ApplicationGatewayGatewayIpConfigurationArgs(\n        name=\"my-gateway-ip-configuration\",\n        subnet_id=frontend.id,\n    )],\n    frontend_ports=[azure.network.ApplicationGatewayFrontendPortArgs(\n        name=frontend_port_name,\n        port=80,\n    )],\n    frontend_ip_configurations=[azure.network.ApplicationGatewayFrontendIpConfigurationArgs(\n        name=frontend_ip_configuration_name,\n        public_ip_address_id=example_public_ip.id,\n    )],\n    backend_address_pools=[azure.network.ApplicationGatewayBackendAddressPoolArgs(\n        name=backend_address_pool_name,\n    )],\n    backend_http_settings=[azure.network.ApplicationGatewayBackendHttpSettingArgs(\n        name=http_setting_name,\n        cookie_based_affinity=\"Disabled\",\n        path=\"/path1/\",\n        port=80,\n        protocol=\"Http\",\n        request_timeout=60,\n    )],\n    http_listeners=[azure.network.ApplicationGatewayHttpListenerArgs(\n        name=listener_name,\n        frontend_ip_configuration_name=frontend_ip_configuration_name,\n        frontend_port_name=frontend_port_name,\n        protocol=\"Http\",\n    )],\n    request_routing_rules=[azure.network.ApplicationGatewayRequestRoutingRuleArgs(\n        name=request_routing_rule_name,\n        rule_type=\"Basic\",\n        http_listener_name=listener_name,\n        backend_address_pool_name=backend_address_pool_name,\n        backend_http_settings_name=http_setting_name,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AddressSpaces = \n            {\n                \"10.254.0.0/16\",\n            },\n        });\n        var frontend = new Azure.Network.Subnet(\"frontend\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.254.0.0/24\",\n            },\n        });\n        var backend = new Azure.Network.Subnet(\"backend\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.254.2.0/24\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AllocationMethod = \"Dynamic\",\n        });\n        var backendAddressPoolName = exampleVirtualNetwork.Name.Apply(name =\u003e $\"{name}-beap\");\n        var frontendPortName = exampleVirtualNetwork.Name.Apply(name =\u003e $\"{name}-feport\");\n        var frontendIpConfigurationName = exampleVirtualNetwork.Name.Apply(name =\u003e $\"{name}-feip\");\n        var httpSettingName = exampleVirtualNetwork.Name.Apply(name =\u003e $\"{name}-be-htst\");\n        var listenerName = exampleVirtualNetwork.Name.Apply(name =\u003e $\"{name}-httplstn\");\n        var requestRoutingRuleName = exampleVirtualNetwork.Name.Apply(name =\u003e $\"{name}-rqrt\");\n        var redirectConfigurationName = exampleVirtualNetwork.Name.Apply(name =\u003e $\"{name}-rdrcfg\");\n        var network = new Azure.Network.ApplicationGateway(\"network\", new Azure.Network.ApplicationGatewayArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Network.Inputs.ApplicationGatewaySkuArgs\n            {\n                Name = \"Standard_Small\",\n                Tier = \"Standard\",\n                Capacity = 2,\n            },\n            GatewayIpConfigurations = \n            {\n                new Azure.Network.Inputs.ApplicationGatewayGatewayIpConfigurationArgs\n                {\n                    Name = \"my-gateway-ip-configuration\",\n                    SubnetId = frontend.Id,\n                },\n            },\n            FrontendPorts = \n            {\n                new Azure.Network.Inputs.ApplicationGatewayFrontendPortArgs\n                {\n                    Name = frontendPortName,\n                    Port = 80,\n                },\n            },\n            FrontendIpConfigurations = \n            {\n                new Azure.Network.Inputs.ApplicationGatewayFrontendIpConfigurationArgs\n                {\n                    Name = frontendIpConfigurationName,\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n            BackendAddressPools = \n            {\n                new Azure.Network.Inputs.ApplicationGatewayBackendAddressPoolArgs\n                {\n                    Name = backendAddressPoolName,\n                },\n            },\n            BackendHttpSettings = \n            {\n                new Azure.Network.Inputs.ApplicationGatewayBackendHttpSettingArgs\n                {\n                    Name = httpSettingName,\n                    CookieBasedAffinity = \"Disabled\",\n                    Path = \"/path1/\",\n                    Port = 80,\n                    Protocol = \"Http\",\n                    RequestTimeout = 60,\n                },\n            },\n            HttpListeners = \n            {\n                new Azure.Network.Inputs.ApplicationGatewayHttpListenerArgs\n                {\n                    Name = listenerName,\n                    FrontendIpConfigurationName = frontendIpConfigurationName,\n                    FrontendPortName = frontendPortName,\n                    Protocol = \"Http\",\n                },\n            },\n            RequestRoutingRules = \n            {\n                new Azure.Network.Inputs.ApplicationGatewayRequestRoutingRuleArgs\n                {\n                    Name = requestRoutingRuleName,\n                    RuleType = \"Basic\",\n                    HttpListenerName = listenerName,\n                    BackendAddressPoolName = backendAddressPoolName,\n                    BackendHttpSettingsName = httpSettingName,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.254.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontend, err := network.NewSubnet(ctx, \"frontend\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.254.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewSubnet(ctx, \"backend\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.254.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tAllocationMethod:  pulumi.String(\"Dynamic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewApplicationGateway(ctx, \"network\", \u0026network.ApplicationGatewayArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026network.ApplicationGatewaySkuArgs{\n\t\t\t\tName:     pulumi.String(\"Standard_Small\"),\n\t\t\t\tTier:     pulumi.String(\"Standard\"),\n\t\t\t\tCapacity: pulumi.Int(2),\n\t\t\t},\n\t\t\tGatewayIpConfigurations: network.ApplicationGatewayGatewayIpConfigurationArray{\n\t\t\t\t\u0026network.ApplicationGatewayGatewayIpConfigurationArgs{\n\t\t\t\t\tName:     pulumi.String(\"my-gateway-ip-configuration\"),\n\t\t\t\t\tSubnetId: frontend.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendPorts: network.ApplicationGatewayFrontendPortArray{\n\t\t\t\t\u0026network.ApplicationGatewayFrontendPortArgs{\n\t\t\t\t\tName: pulumi.String(frontendPortName),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIpConfigurations: network.ApplicationGatewayFrontendIpConfigurationArray{\n\t\t\t\t\u0026network.ApplicationGatewayFrontendIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(frontendIpConfigurationName),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackendAddressPools: network.ApplicationGatewayBackendAddressPoolArray{\n\t\t\t\t\u0026network.ApplicationGatewayBackendAddressPoolArgs{\n\t\t\t\t\tName: pulumi.String(backendAddressPoolName),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackendHttpSettings: network.ApplicationGatewayBackendHttpSettingArray{\n\t\t\t\t\u0026network.ApplicationGatewayBackendHttpSettingArgs{\n\t\t\t\t\tName:                pulumi.String(httpSettingName),\n\t\t\t\t\tCookieBasedAffinity: pulumi.String(\"Disabled\"),\n\t\t\t\t\tPath:                pulumi.String(\"/path1/\"),\n\t\t\t\t\tPort:                pulumi.Int(80),\n\t\t\t\t\tProtocol:            pulumi.String(\"Http\"),\n\t\t\t\t\tRequestTimeout:      pulumi.Int(60),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHttpListeners: network.ApplicationGatewayHttpListenerArray{\n\t\t\t\t\u0026network.ApplicationGatewayHttpListenerArgs{\n\t\t\t\t\tName:                        pulumi.String(listenerName),\n\t\t\t\t\tFrontendIpConfigurationName: pulumi.String(frontendIpConfigurationName),\n\t\t\t\t\tFrontendPortName:            pulumi.String(frontendPortName),\n\t\t\t\t\tProtocol:                    pulumi.String(\"Http\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRequestRoutingRules: network.ApplicationGatewayRequestRoutingRuleArray{\n\t\t\t\t\u0026network.ApplicationGatewayRequestRoutingRuleArgs{\n\t\t\t\t\tName:                    pulumi.String(requestRoutingRuleName),\n\t\t\t\t\tRuleType:                pulumi.String(\"Basic\"),\n\t\t\t\t\tHttpListenerName:        pulumi.String(listenerName),\n\t\t\t\t\tBackendAddressPoolName:  pulumi.String(backendAddressPoolName),\n\t\t\t\t\tBackendHttpSettingsName: pulumi.String(httpSettingName),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApplication Gateway's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/applicationGateway:ApplicationGateway example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/applicationGateways/myGateway1\n```\n\n ",
      "inputProperties": {
        "authenticationCertificates": {
          "description": "One or more `authentication_certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayAuthenticationCertificate:ApplicationGatewayAuthenticationCertificate"
          },
          "type": "array"
        },
        "autoscaleConfiguration": {
          "$ref": "#/types/azure:network/ApplicationGatewayAutoscaleConfiguration:ApplicationGatewayAutoscaleConfiguration",
          "description": "A `autoscale_configuration` block as defined below.\n"
        },
        "backendAddressPools": {
          "description": "One or more `backend_address_pool` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayBackendAddressPool:ApplicationGatewayBackendAddressPool"
          },
          "type": "array"
        },
        "backendHttpSettings": {
          "description": "One or more `backend_http_settings` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayBackendHttpSetting:ApplicationGatewayBackendHttpSetting"
          },
          "type": "array"
        },
        "customErrorConfigurations": {
          "description": "One or more `custom_error_configuration` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayCustomErrorConfiguration:ApplicationGatewayCustomErrorConfiguration"
          },
          "type": "array"
        },
        "enableHttp2": {
          "description": "Is HTTP2 enabled on the application gateway resource? Defaults to `false`.\n",
          "type": "boolean"
        },
        "firewallPolicyId": {
          "description": "The ID of the Web Application Firewall Policy.\n",
          "type": "string"
        },
        "frontendIpConfigurations": {
          "description": "One or more `frontend_ip_configuration` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayFrontendIpConfiguration:ApplicationGatewayFrontendIpConfiguration"
          },
          "type": "array"
        },
        "frontendPorts": {
          "description": "One or more `frontend_port` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayFrontendPort:ApplicationGatewayFrontendPort"
          },
          "type": "array"
        },
        "gatewayIpConfigurations": {
          "description": "One or more `gateway_ip_configuration` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayGatewayIpConfiguration:ApplicationGatewayGatewayIpConfiguration"
          },
          "type": "array"
        },
        "httpListeners": {
          "description": "One or more `http_listener` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayHttpListener:ApplicationGatewayHttpListener"
          },
          "type": "array"
        },
        "identity": {
          "$ref": "#/types/azure:network/ApplicationGatewayIdentity:ApplicationGatewayIdentity",
          "description": "A `identity` block.\n"
        },
        "location": {
          "description": "The Azure region where the Application Gateway should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Application Gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "probes": {
          "description": "One or more `probe` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayProbe:ApplicationGatewayProbe"
          },
          "type": "array"
        },
        "redirectConfigurations": {
          "description": "A `redirect_configuration` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayRedirectConfiguration:ApplicationGatewayRedirectConfiguration"
          },
          "type": "array"
        },
        "requestRoutingRules": {
          "description": "One or more `request_routing_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayRequestRoutingRule:ApplicationGatewayRequestRoutingRule"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to the Application Gateway should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rewriteRuleSets": {
          "description": "One or more `rewrite_rule_set` blocks as defined below. Only valid for v2 SKUs.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayRewriteRuleSet:ApplicationGatewayRewriteRuleSet"
          },
          "type": "array"
        },
        "sku": {
          "$ref": "#/types/azure:network/ApplicationGatewaySku:ApplicationGatewaySku",
          "description": "A `sku` block as defined below.\n"
        },
        "sslCertificates": {
          "description": "One or more `ssl_certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewaySslCertificate:ApplicationGatewaySslCertificate"
          },
          "type": "array"
        },
        "sslPolicies": {
          "description": "a `ssl policy` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewaySslPolicy:ApplicationGatewaySslPolicy"
          },
          "type": "array"
        },
        "sslProfiles": {
          "description": "One or more `ssl_profile` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewaySslProfile:ApplicationGatewaySslProfile"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "trustedClientCertificates": {
          "description": "One or more `trusted_client_certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayTrustedClientCertificate:ApplicationGatewayTrustedClientCertificate"
          },
          "type": "array"
        },
        "trustedRootCertificates": {
          "description": "One or more `trusted_root_certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayTrustedRootCertificate:ApplicationGatewayTrustedRootCertificate"
          },
          "type": "array"
        },
        "urlPathMaps": {
          "description": "One or more `url_path_map` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayUrlPathMap:ApplicationGatewayUrlPathMap"
          },
          "type": "array"
        },
        "wafConfiguration": {
          "$ref": "#/types/azure:network/ApplicationGatewayWafConfiguration:ApplicationGatewayWafConfiguration",
          "description": "A `waf_configuration` block as defined below.\n"
        },
        "zones": {
          "description": "A collection of availability zones to spread the Application Gateway over.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "authenticationCertificates": {
          "description": "One or more `authentication_certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayAuthenticationCertificate:ApplicationGatewayAuthenticationCertificate"
          },
          "type": "array"
        },
        "autoscaleConfiguration": {
          "$ref": "#/types/azure:network/ApplicationGatewayAutoscaleConfiguration:ApplicationGatewayAutoscaleConfiguration",
          "description": "A `autoscale_configuration` block as defined below.\n"
        },
        "backendAddressPools": {
          "description": "One or more `backend_address_pool` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayBackendAddressPool:ApplicationGatewayBackendAddressPool"
          },
          "type": "array"
        },
        "backendHttpSettings": {
          "description": "One or more `backend_http_settings` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayBackendHttpSetting:ApplicationGatewayBackendHttpSetting"
          },
          "type": "array"
        },
        "customErrorConfigurations": {
          "description": "One or more `custom_error_configuration` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayCustomErrorConfiguration:ApplicationGatewayCustomErrorConfiguration"
          },
          "type": "array"
        },
        "enableHttp2": {
          "description": "Is HTTP2 enabled on the application gateway resource? Defaults to `false`.\n",
          "type": "boolean"
        },
        "firewallPolicyId": {
          "description": "The ID of the Web Application Firewall Policy.\n",
          "type": "string"
        },
        "frontendIpConfigurations": {
          "description": "One or more `frontend_ip_configuration` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayFrontendIpConfiguration:ApplicationGatewayFrontendIpConfiguration"
          },
          "type": "array"
        },
        "frontendPorts": {
          "description": "One or more `frontend_port` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayFrontendPort:ApplicationGatewayFrontendPort"
          },
          "type": "array"
        },
        "gatewayIpConfigurations": {
          "description": "One or more `gateway_ip_configuration` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayGatewayIpConfiguration:ApplicationGatewayGatewayIpConfiguration"
          },
          "type": "array"
        },
        "httpListeners": {
          "description": "One or more `http_listener` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayHttpListener:ApplicationGatewayHttpListener"
          },
          "type": "array"
        },
        "identity": {
          "$ref": "#/types/azure:network/ApplicationGatewayIdentity:ApplicationGatewayIdentity",
          "description": "A `identity` block.\n"
        },
        "location": {
          "description": "The Azure region where the Application Gateway should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Application Gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "probes": {
          "description": "One or more `probe` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayProbe:ApplicationGatewayProbe"
          },
          "type": "array"
        },
        "redirectConfigurations": {
          "description": "A `redirect_configuration` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayRedirectConfiguration:ApplicationGatewayRedirectConfiguration"
          },
          "type": "array"
        },
        "requestRoutingRules": {
          "description": "One or more `request_routing_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayRequestRoutingRule:ApplicationGatewayRequestRoutingRule"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to the Application Gateway should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rewriteRuleSets": {
          "description": "One or more `rewrite_rule_set` blocks as defined below. Only valid for v2 SKUs.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayRewriteRuleSet:ApplicationGatewayRewriteRuleSet"
          },
          "type": "array"
        },
        "sku": {
          "$ref": "#/types/azure:network/ApplicationGatewaySku:ApplicationGatewaySku",
          "description": "A `sku` block as defined below.\n"
        },
        "sslCertificates": {
          "description": "One or more `ssl_certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewaySslCertificate:ApplicationGatewaySslCertificate"
          },
          "type": "array"
        },
        "sslPolicies": {
          "description": "a `ssl policy` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewaySslPolicy:ApplicationGatewaySslPolicy"
          },
          "type": "array"
        },
        "sslProfiles": {
          "description": "One or more `ssl_profile` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewaySslProfile:ApplicationGatewaySslProfile"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "trustedClientCertificates": {
          "description": "One or more `trusted_client_certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayTrustedClientCertificate:ApplicationGatewayTrustedClientCertificate"
          },
          "type": "array"
        },
        "trustedRootCertificates": {
          "description": "One or more `trusted_root_certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayTrustedRootCertificate:ApplicationGatewayTrustedRootCertificate"
          },
          "type": "array"
        },
        "urlPathMaps": {
          "description": "One or more `url_path_map` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayUrlPathMap:ApplicationGatewayUrlPathMap"
          },
          "type": "array"
        },
        "wafConfiguration": {
          "$ref": "#/types/azure:network/ApplicationGatewayWafConfiguration:ApplicationGatewayWafConfiguration",
          "description": "A `waf_configuration` block as defined below.\n"
        },
        "zones": {
          "description": "A collection of availability zones to spread the Application Gateway over.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "backendAddressPools",
        "backendHttpSettings",
        "frontendIpConfigurations",
        "frontendPorts",
        "gatewayIpConfigurations",
        "httpListeners",
        "location",
        "name",
        "requestRoutingRules",
        "resourceGroupName",
        "sku",
        "sslPolicies"
      ],
      "requiredInputs": [
        "backendAddressPools",
        "backendHttpSettings",
        "frontendIpConfigurations",
        "frontendPorts",
        "gatewayIpConfigurations",
        "httpListeners",
        "requestRoutingRules",
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApplicationGateway resources.\n",
        "properties": {
          "authenticationCertificates": {
            "description": "One or more `authentication_certificate` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayAuthenticationCertificate:ApplicationGatewayAuthenticationCertificate"
            },
            "type": "array"
          },
          "autoscaleConfiguration": {
            "$ref": "#/types/azure:network/ApplicationGatewayAutoscaleConfiguration:ApplicationGatewayAutoscaleConfiguration",
            "description": "A `autoscale_configuration` block as defined below.\n"
          },
          "backendAddressPools": {
            "description": "One or more `backend_address_pool` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayBackendAddressPool:ApplicationGatewayBackendAddressPool"
            },
            "type": "array"
          },
          "backendHttpSettings": {
            "description": "One or more `backend_http_settings` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayBackendHttpSetting:ApplicationGatewayBackendHttpSetting"
            },
            "type": "array"
          },
          "customErrorConfigurations": {
            "description": "One or more `custom_error_configuration` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayCustomErrorConfiguration:ApplicationGatewayCustomErrorConfiguration"
            },
            "type": "array"
          },
          "enableHttp2": {
            "description": "Is HTTP2 enabled on the application gateway resource? Defaults to `false`.\n",
            "type": "boolean"
          },
          "firewallPolicyId": {
            "description": "The ID of the Web Application Firewall Policy.\n",
            "type": "string"
          },
          "frontendIpConfigurations": {
            "description": "One or more `frontend_ip_configuration` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayFrontendIpConfiguration:ApplicationGatewayFrontendIpConfiguration"
            },
            "type": "array"
          },
          "frontendPorts": {
            "description": "One or more `frontend_port` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayFrontendPort:ApplicationGatewayFrontendPort"
            },
            "type": "array"
          },
          "gatewayIpConfigurations": {
            "description": "One or more `gateway_ip_configuration` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayGatewayIpConfiguration:ApplicationGatewayGatewayIpConfiguration"
            },
            "type": "array"
          },
          "httpListeners": {
            "description": "One or more `http_listener` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayHttpListener:ApplicationGatewayHttpListener"
            },
            "type": "array"
          },
          "identity": {
            "$ref": "#/types/azure:network/ApplicationGatewayIdentity:ApplicationGatewayIdentity",
            "description": "A `identity` block.\n"
          },
          "location": {
            "description": "The Azure region where the Application Gateway should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Application Gateway. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "probes": {
            "description": "One or more `probe` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayProbe:ApplicationGatewayProbe"
            },
            "type": "array"
          },
          "redirectConfigurations": {
            "description": "A `redirect_configuration` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayRedirectConfiguration:ApplicationGatewayRedirectConfiguration"
            },
            "type": "array"
          },
          "requestRoutingRules": {
            "description": "One or more `request_routing_rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayRequestRoutingRule:ApplicationGatewayRequestRoutingRule"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to the Application Gateway should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "rewriteRuleSets": {
            "description": "One or more `rewrite_rule_set` blocks as defined below. Only valid for v2 SKUs.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayRewriteRuleSet:ApplicationGatewayRewriteRuleSet"
            },
            "type": "array"
          },
          "sku": {
            "$ref": "#/types/azure:network/ApplicationGatewaySku:ApplicationGatewaySku",
            "description": "A `sku` block as defined below.\n"
          },
          "sslCertificates": {
            "description": "One or more `ssl_certificate` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewaySslCertificate:ApplicationGatewaySslCertificate"
            },
            "type": "array"
          },
          "sslPolicies": {
            "description": "a `ssl policy` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewaySslPolicy:ApplicationGatewaySslPolicy"
            },
            "type": "array"
          },
          "sslProfiles": {
            "description": "One or more `ssl_profile` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewaySslProfile:ApplicationGatewaySslProfile"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "trustedClientCertificates": {
            "description": "One or more `trusted_client_certificate` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayTrustedClientCertificate:ApplicationGatewayTrustedClientCertificate"
            },
            "type": "array"
          },
          "trustedRootCertificates": {
            "description": "One or more `trusted_root_certificate` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayTrustedRootCertificate:ApplicationGatewayTrustedRootCertificate"
            },
            "type": "array"
          },
          "urlPathMaps": {
            "description": "One or more `url_path_map` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/ApplicationGatewayUrlPathMap:ApplicationGatewayUrlPathMap"
            },
            "type": "array"
          },
          "wafConfiguration": {
            "$ref": "#/types/azure:network/ApplicationGatewayWafConfiguration:ApplicationGatewayWafConfiguration",
            "description": "A `waf_configuration` block as defined below.\n"
          },
          "zones": {
            "description": "A collection of availability zones to spread the Application Gateway over.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:network/applicationSecurityGroup:ApplicationSecurityGroup": {
      "description": "Manages an Application Security Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleApplicationSecurityGroup = new azure.network.ApplicationSecurityGroup(\"exampleApplicationSecurityGroup\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tags: {\n        Hello: \"World\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_application_security_group = azure.network.ApplicationSecurityGroup(\"exampleApplicationSecurityGroup\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tags={\n        \"Hello\": \"World\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleApplicationSecurityGroup = new Azure.Network.ApplicationSecurityGroup(\"exampleApplicationSecurityGroup\", new Azure.Network.ApplicationSecurityGroupArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Tags = \n            {\n                { \"Hello\", \"World\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewApplicationSecurityGroup(ctx, \"exampleApplicationSecurityGroup\", \u0026network.ApplicationSecurityGroupArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Hello\": pulumi.String(\"World\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApplication Security Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/applicationSecurityGroup:ApplicationSecurityGroup securitygroup1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/applicationSecurityGroups/securitygroup1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Application Security Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Application Security Group.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Application Security Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Application Security Group.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApplicationSecurityGroup resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Application Security Group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Application Security Group.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:network/bgpConnection:BgpConnection": {
      "description": "Manages a Bgp Connection for a Virtual Hub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualHub = new azure.network.VirtualHub(\"exampleVirtualHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: \"Standard\",\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Dynamic\",\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.5.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefix: \"10.5.1.0/24\",\n});\nconst exampleVirtualHubIp = new azure.network.VirtualHubIp(\"exampleVirtualHubIp\", {\n    virtualHubId: exampleVirtualHub.id,\n    privateIpAddress: \"10.5.1.18\",\n    privateIpAllocationMethod: \"Static\",\n    publicIpAddressId: examplePublicIp.id,\n    subnetId: exampleSubnet.id,\n});\nconst exampleBgpConnection = new azure.network.BgpConnection(\"exampleBgpConnection\", {\n    virtualHubId: exampleVirtualHub.id,\n    peerAsn: 65514,\n    peerIp: \"169.254.21.5\",\n}, {\n    dependsOn: [exampleVirtualHubIp],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_hub = azure.network.VirtualHub(\"exampleVirtualHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=\"Standard\")\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Dynamic\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.5.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefix=\"10.5.1.0/24\")\nexample_virtual_hub_ip = azure.network.VirtualHubIp(\"exampleVirtualHubIp\",\n    virtual_hub_id=example_virtual_hub.id,\n    private_ip_address=\"10.5.1.18\",\n    private_ip_allocation_method=\"Static\",\n    public_ip_address_id=example_public_ip.id,\n    subnet_id=example_subnet.id)\nexample_bgp_connection = azure.network.BgpConnection(\"exampleBgpConnection\",\n    virtual_hub_id=example_virtual_hub.id,\n    peer_asn=65514,\n    peer_ip=\"169.254.21.5\",\n    opts=pulumi.ResourceOptions(depends_on=[example_virtual_hub_ip]))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualHub = new Azure.Network.VirtualHub(\"exampleVirtualHub\", new Azure.Network.VirtualHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = \"Standard\",\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Dynamic\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.5.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefix = \"10.5.1.0/24\",\n        });\n        var exampleVirtualHubIp = new Azure.Network.VirtualHubIp(\"exampleVirtualHubIp\", new Azure.Network.VirtualHubIpArgs\n        {\n            VirtualHubId = exampleVirtualHub.Id,\n            PrivateIpAddress = \"10.5.1.18\",\n            PrivateIpAllocationMethod = \"Static\",\n            PublicIpAddressId = examplePublicIp.Id,\n            SubnetId = exampleSubnet.Id,\n        });\n        var exampleBgpConnection = new Azure.Network.BgpConnection(\"exampleBgpConnection\", new Azure.Network.BgpConnectionArgs\n        {\n            VirtualHubId = exampleVirtualHub.Id,\n            PeerAsn = 65514,\n            PeerIp = \"169.254.21.5\",\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                exampleVirtualHubIp,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualHub, err := network.NewVirtualHub(ctx, \"exampleVirtualHub\", \u0026network.VirtualHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Dynamic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefix:      pulumi.String(\"10.5.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualHubIp, err := network.NewVirtualHubIp(ctx, \"exampleVirtualHubIp\", \u0026network.VirtualHubIpArgs{\n\t\t\tVirtualHubId:              exampleVirtualHub.ID(),\n\t\t\tPrivateIpAddress:          pulumi.String(\"10.5.1.18\"),\n\t\t\tPrivateIpAllocationMethod: pulumi.String(\"Static\"),\n\t\t\tPublicIpAddressId:         examplePublicIp.ID(),\n\t\t\tSubnetId:                  exampleSubnet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewBgpConnection(ctx, \"exampleBgpConnection\", \u0026network.BgpConnectionArgs{\n\t\t\tVirtualHubId: exampleVirtualHub.ID(),\n\t\t\tPeerAsn:      pulumi.Int(65514),\n\t\t\tPeerIp:       pulumi.String(\"169.254.21.5\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleVirtualHubIp,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Hub Bgp Connections can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/bgpConnection:BgpConnection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/virtualHubs/virtualHub1/bgpConnections/connection1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name which should be used for this Virtual Hub Bgp Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "peerAsn": {
          "description": "The peer autonomous system number for the Virtual Hub Bgp Connection. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "peerIp": {
          "description": "The peer ip address for the Virtual Hub Bgp Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub within which this Bgp connection should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "The name which should be used for this Virtual Hub Bgp Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "peerAsn": {
          "description": "The peer autonomous system number for the Virtual Hub Bgp Connection. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "peerIp": {
          "description": "The peer ip address for the Virtual Hub Bgp Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub within which this Bgp connection should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "peerAsn",
        "peerIp",
        "virtualHubId"
      ],
      "requiredInputs": [
        "peerAsn",
        "peerIp",
        "virtualHubId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BgpConnection resources.\n",
        "properties": {
          "name": {
            "description": "The name which should be used for this Virtual Hub Bgp Connection. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "peerAsn": {
            "description": "The peer autonomous system number for the Virtual Hub Bgp Connection. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "peerIp": {
            "description": "The peer ip address for the Virtual Hub Bgp Connection. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "virtualHubId": {
            "description": "The ID of the Virtual Hub within which this Bgp connection should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/ddosProtectionPlan:DdosProtectionPlan": {
      "description": "Manages an AzureNetwork DDoS Protection Plan.\n\n\u003e **NOTE** Azure only allows `one` DDoS Protection Plan per region.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleDdosProtectionPlan = new azure.network.DdosProtectionPlan(\"exampleDdosProtectionPlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_ddos_protection_plan = azure.network.DdosProtectionPlan(\"exampleDdosProtectionPlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleDdosProtectionPlan = new Azure.Network.DdosProtectionPlan(\"exampleDdosProtectionPlan\", new Azure.Network.DdosProtectionPlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewDdosProtectionPlan(ctx, \"exampleDdosProtectionPlan\", \u0026network.DdosProtectionPlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure DDoS Protection Plan can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/ddosProtectionPlan:DdosProtectionPlan example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/ddosProtectionPlans/testddospplan\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Network DDoS Protection Plan. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Network DDoS Protection Plan. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "virtualNetworkIds": {
          "description": "A list of Virtual Network ID's associated with the DDoS Protection Plan.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "virtualNetworkIds"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DdosProtectionPlan resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Network DDoS Protection Plan. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "virtualNetworkIds": {
            "description": "A list of Virtual Network ID's associated with the DDoS Protection Plan.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:network/expressRouteCircuit:ExpressRouteCircuit": {
      "description": "Manages an ExpressRoute circuit.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleExpressRouteCircuit = new azure.network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    serviceProviderName: \"Equinix\",\n    peeringLocation: \"Silicon Valley\",\n    bandwidthInMbps: 50,\n    sku: {\n        tier: \"Standard\",\n        family: \"MeteredData\",\n    },\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_express_route_circuit = azure.network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    service_provider_name=\"Equinix\",\n    peering_location=\"Silicon Valley\",\n    bandwidth_in_mbps=50,\n    sku=azure.network.ExpressRouteCircuitSkuArgs(\n        tier=\"Standard\",\n        family=\"MeteredData\",\n    ),\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleExpressRouteCircuit = new Azure.Network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\", new Azure.Network.ExpressRouteCircuitArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ServiceProviderName = \"Equinix\",\n            PeeringLocation = \"Silicon Valley\",\n            BandwidthInMbps = 50,\n            Sku = new Azure.Network.Inputs.ExpressRouteCircuitSkuArgs\n            {\n                Tier = \"Standard\",\n                Family = \"MeteredData\",\n            },\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewExpressRouteCircuit(ctx, \"exampleExpressRouteCircuit\", \u0026network.ExpressRouteCircuitArgs{\n\t\t\tResourceGroupName:   exampleResourceGroup.Name,\n\t\t\tLocation:            exampleResourceGroup.Location,\n\t\t\tServiceProviderName: pulumi.String(\"Equinix\"),\n\t\t\tPeeringLocation:     pulumi.String(\"Silicon Valley\"),\n\t\t\tBandwidthInMbps:     pulumi.Int(50),\n\t\t\tSku: \u0026network.ExpressRouteCircuitSkuArgs{\n\t\t\t\tTier:   pulumi.String(\"Standard\"),\n\t\t\t\tFamily: pulumi.String(\"MeteredData\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nExpressRoute circuits can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/expressRouteCircuit:ExpressRouteCircuit myExpressRoute /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/expressRouteCircuits/myExpressRoute\n```\n\n ",
      "inputProperties": {
        "allowClassicOperations": {
          "description": "Allow the circuit to interact with classic (RDFE) resources. Defaults to `false`.\n",
          "type": "boolean"
        },
        "bandwidthInGbps": {
          "description": "The bandwidth in Gbps of the circuit being created on the Express Route Port.\n",
          "type": "number"
        },
        "bandwidthInMbps": {
          "description": "The bandwidth in Mbps of the circuit being created on the Service Provider.\n",
          "type": "integer"
        },
        "expressRoutePortId": {
          "description": "The ID of the Express Route Port this Express Route Circuit is based on.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the ExpressRoute circuit. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "peeringLocation": {
          "description": "The name of the peering location and **not** the Azure resource location. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the ExpressRoute circuit. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceProviderName": {
          "description": "The name of the ExpressRoute Service Provider. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "$ref": "#/types/azure:network/ExpressRouteCircuitSku:ExpressRouteCircuitSku",
          "description": "A `sku` block for the ExpressRoute circuit as documented below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "allowClassicOperations": {
          "description": "Allow the circuit to interact with classic (RDFE) resources. Defaults to `false`.\n",
          "type": "boolean"
        },
        "bandwidthInGbps": {
          "description": "The bandwidth in Gbps of the circuit being created on the Express Route Port.\n",
          "type": "number"
        },
        "bandwidthInMbps": {
          "description": "The bandwidth in Mbps of the circuit being created on the Service Provider.\n",
          "type": "integer"
        },
        "expressRoutePortId": {
          "description": "The ID of the Express Route Port this Express Route Circuit is based on.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the ExpressRoute circuit. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "peeringLocation": {
          "description": "The name of the peering location and **not** the Azure resource location. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the ExpressRoute circuit. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceKey": {
          "description": "The string needed by the service provider to provision the ExpressRoute circuit.\n",
          "type": "string"
        },
        "serviceProviderName": {
          "description": "The name of the ExpressRoute Service Provider. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceProviderProvisioningState": {
          "description": "The ExpressRoute circuit provisioning state from your chosen service provider. Possible values are \"NotProvisioned\", \"Provisioning\", \"Provisioned\", and \"Deprovisioning\".\n",
          "type": "string"
        },
        "sku": {
          "$ref": "#/types/azure:network/ExpressRouteCircuitSku:ExpressRouteCircuitSku",
          "description": "A `sku` block for the ExpressRoute circuit as documented below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "serviceKey",
        "serviceProviderProvisioningState",
        "sku"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ExpressRouteCircuit resources.\n",
        "properties": {
          "allowClassicOperations": {
            "description": "Allow the circuit to interact with classic (RDFE) resources. Defaults to `false`.\n",
            "type": "boolean"
          },
          "bandwidthInGbps": {
            "description": "The bandwidth in Gbps of the circuit being created on the Express Route Port.\n",
            "type": "number"
          },
          "bandwidthInMbps": {
            "description": "The bandwidth in Mbps of the circuit being created on the Service Provider.\n",
            "type": "integer"
          },
          "expressRoutePortId": {
            "description": "The ID of the Express Route Port this Express Route Circuit is based on.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the ExpressRoute circuit. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "peeringLocation": {
            "description": "The name of the peering location and **not** the Azure resource location. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the ExpressRoute circuit. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serviceKey": {
            "description": "The string needed by the service provider to provision the ExpressRoute circuit.\n",
            "type": "string"
          },
          "serviceProviderName": {
            "description": "The name of the ExpressRoute Service Provider. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serviceProviderProvisioningState": {
            "description": "The ExpressRoute circuit provisioning state from your chosen service provider. Possible values are \"NotProvisioned\", \"Provisioning\", \"Provisioned\", and \"Deprovisioning\".\n",
            "type": "string"
          },
          "sku": {
            "$ref": "#/types/azure:network/ExpressRouteCircuitSku:ExpressRouteCircuitSku",
            "description": "A `sku` block for the ExpressRoute circuit as documented below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:network/expressRouteCircuitAuthorization:ExpressRouteCircuitAuthorization": {
      "description": "Manages an ExpressRoute Circuit Authorization.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleExpressRouteCircuit = new azure.network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    serviceProviderName: \"Equinix\",\n    peeringLocation: \"Silicon Valley\",\n    bandwidthInMbps: 50,\n    sku: {\n        tier: \"Standard\",\n        family: \"MeteredData\",\n    },\n    allowClassicOperations: false,\n    tags: {\n        environment: \"Production\",\n    },\n});\nconst exampleExpressRouteCircuitAuthorization = new azure.network.ExpressRouteCircuitAuthorization(\"exampleExpressRouteCircuitAuthorization\", {\n    expressRouteCircuitName: exampleExpressRouteCircuit.name,\n    resourceGroupName: exampleResourceGroup.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_express_route_circuit = azure.network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    service_provider_name=\"Equinix\",\n    peering_location=\"Silicon Valley\",\n    bandwidth_in_mbps=50,\n    sku=azure.network.ExpressRouteCircuitSkuArgs(\n        tier=\"Standard\",\n        family=\"MeteredData\",\n    ),\n    allow_classic_operations=False,\n    tags={\n        \"environment\": \"Production\",\n    })\nexample_express_route_circuit_authorization = azure.network.ExpressRouteCircuitAuthorization(\"exampleExpressRouteCircuitAuthorization\",\n    express_route_circuit_name=example_express_route_circuit.name,\n    resource_group_name=example_resource_group.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleExpressRouteCircuit = new Azure.Network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\", new Azure.Network.ExpressRouteCircuitArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ServiceProviderName = \"Equinix\",\n            PeeringLocation = \"Silicon Valley\",\n            BandwidthInMbps = 50,\n            Sku = new Azure.Network.Inputs.ExpressRouteCircuitSkuArgs\n            {\n                Tier = \"Standard\",\n                Family = \"MeteredData\",\n            },\n            AllowClassicOperations = false,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n        var exampleExpressRouteCircuitAuthorization = new Azure.Network.ExpressRouteCircuitAuthorization(\"exampleExpressRouteCircuitAuthorization\", new Azure.Network.ExpressRouteCircuitAuthorizationArgs\n        {\n            ExpressRouteCircuitName = exampleExpressRouteCircuit.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleExpressRouteCircuit, err := network.NewExpressRouteCircuit(ctx, \"exampleExpressRouteCircuit\", \u0026network.ExpressRouteCircuitArgs{\n\t\t\tResourceGroupName:   exampleResourceGroup.Name,\n\t\t\tLocation:            exampleResourceGroup.Location,\n\t\t\tServiceProviderName: pulumi.String(\"Equinix\"),\n\t\t\tPeeringLocation:     pulumi.String(\"Silicon Valley\"),\n\t\t\tBandwidthInMbps:     pulumi.Int(50),\n\t\t\tSku: \u0026network.ExpressRouteCircuitSkuArgs{\n\t\t\t\tTier:   pulumi.String(\"Standard\"),\n\t\t\t\tFamily: pulumi.String(\"MeteredData\"),\n\t\t\t},\n\t\t\tAllowClassicOperations: pulumi.Bool(false),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewExpressRouteCircuitAuthorization(ctx, \"exampleExpressRouteCircuitAuthorization\", \u0026network.ExpressRouteCircuitAuthorizationArgs{\n\t\t\tExpressRouteCircuitName: exampleExpressRouteCircuit.Name,\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nExpressRoute Circuit Authorizations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/expressRouteCircuitAuthorization:ExpressRouteCircuitAuthorization auth1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/expressRouteCircuits/myExpressRoute/authorizations/auth1\n```\n\n ",
      "inputProperties": {
        "expressRouteCircuitName": {
          "description": "The name of the Express Route Circuit in which to create the Authorization.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the ExpressRoute circuit. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the ExpressRoute circuit. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "authorizationKey": {
          "description": "The Authorization Key.\n",
          "type": "string"
        },
        "authorizationUseStatus": {
          "description": "The authorization use status.\n",
          "type": "string"
        },
        "expressRouteCircuitName": {
          "description": "The name of the Express Route Circuit in which to create the Authorization.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the ExpressRoute circuit. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the ExpressRoute circuit. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "authorizationKey",
        "authorizationUseStatus",
        "expressRouteCircuitName",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "expressRouteCircuitName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ExpressRouteCircuitAuthorization resources.\n",
        "properties": {
          "authorizationKey": {
            "description": "The Authorization Key.\n",
            "type": "string"
          },
          "authorizationUseStatus": {
            "description": "The authorization use status.\n",
            "type": "string"
          },
          "expressRouteCircuitName": {
            "description": "The name of the Express Route Circuit in which to create the Authorization.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the ExpressRoute circuit. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the ExpressRoute circuit. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/expressRouteCircuitConnection:ExpressRouteCircuitConnection": {
      "description": "Manages an Express Route Circuit Connection.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleExpressRoutePort = new azure.network.ExpressRoutePort(\"exampleExpressRoutePort\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    peeringLocation: \"Equinix-Seattle-SE2\",\n    bandwidthInGbps: 10,\n    encapsulation: \"Dot1Q\",\n});\nconst exampleExpressRouteCircuit = new azure.network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    expressRoutePortId: exampleExpressRoutePort.id,\n    bandwidthInGbps: 5,\n    sku: {\n        tier: \"Standard\",\n        family: \"MeteredData\",\n    },\n});\nconst example2ExpressRoutePort = new azure.network.ExpressRoutePort(\"example2ExpressRoutePort\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    peeringLocation: \"Allied-Toronto-King-West\",\n    bandwidthInGbps: 10,\n    encapsulation: \"Dot1Q\",\n});\nconst example2ExpressRouteCircuit = new azure.network.ExpressRouteCircuit(\"example2ExpressRouteCircuit\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    expressRoutePortId: example2ExpressRoutePort.id,\n    bandwidthInGbps: 5,\n    sku: {\n        tier: \"Standard\",\n        family: \"MeteredData\",\n    },\n});\nconst exampleExpressRouteCircuitPeering = new azure.network.ExpressRouteCircuitPeering(\"exampleExpressRouteCircuitPeering\", {\n    peeringType: \"AzurePrivatePeering\",\n    expressRouteCircuitName: exampleExpressRouteCircuit.name,\n    resourceGroupName: exampleResourceGroup.name,\n    sharedKey: \"ItsASecret\",\n    peerAsn: 100,\n    primaryPeerAddressPrefix: \"192.168.1.0/30\",\n    secondaryPeerAddressPrefix: \"192.168.1.0/30\",\n    vlanId: 100,\n});\nconst example2ExpressRouteCircuitPeering = new azure.network.ExpressRouteCircuitPeering(\"example2ExpressRouteCircuitPeering\", {\n    peeringType: \"AzurePrivatePeering\",\n    expressRouteCircuitName: example2ExpressRouteCircuit.name,\n    resourceGroupName: exampleResourceGroup.name,\n    sharedKey: \"ItsASecret\",\n    peerAsn: 100,\n    primaryPeerAddressPrefix: \"192.168.1.0/30\",\n    secondaryPeerAddressPrefix: \"192.168.1.0/30\",\n    vlanId: 100,\n});\nconst exampleExpressRouteCircuitConnection = new azure.network.ExpressRouteCircuitConnection(\"exampleExpressRouteCircuitConnection\", {\n    peeringId: exampleExpressRouteCircuitPeering.id,\n    peerPeeringId: example2ExpressRouteCircuitPeering.id,\n    addressPrefixIpv4: \"192.169.9.0/29\",\n    authorizationKey: \"846a1918-b7a2-4917-b43c-8c4cdaee006a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_express_route_port = azure.network.ExpressRoutePort(\"exampleExpressRoutePort\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    peering_location=\"Equinix-Seattle-SE2\",\n    bandwidth_in_gbps=10,\n    encapsulation=\"Dot1Q\")\nexample_express_route_circuit = azure.network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    express_route_port_id=example_express_route_port.id,\n    bandwidth_in_gbps=5,\n    sku=azure.network.ExpressRouteCircuitSkuArgs(\n        tier=\"Standard\",\n        family=\"MeteredData\",\n    ))\nexample2_express_route_port = azure.network.ExpressRoutePort(\"example2ExpressRoutePort\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    peering_location=\"Allied-Toronto-King-West\",\n    bandwidth_in_gbps=10,\n    encapsulation=\"Dot1Q\")\nexample2_express_route_circuit = azure.network.ExpressRouteCircuit(\"example2ExpressRouteCircuit\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    express_route_port_id=example2_express_route_port.id,\n    bandwidth_in_gbps=5,\n    sku=azure.network.ExpressRouteCircuitSkuArgs(\n        tier=\"Standard\",\n        family=\"MeteredData\",\n    ))\nexample_express_route_circuit_peering = azure.network.ExpressRouteCircuitPeering(\"exampleExpressRouteCircuitPeering\",\n    peering_type=\"AzurePrivatePeering\",\n    express_route_circuit_name=example_express_route_circuit.name,\n    resource_group_name=example_resource_group.name,\n    shared_key=\"ItsASecret\",\n    peer_asn=100,\n    primary_peer_address_prefix=\"192.168.1.0/30\",\n    secondary_peer_address_prefix=\"192.168.1.0/30\",\n    vlan_id=100)\nexample2_express_route_circuit_peering = azure.network.ExpressRouteCircuitPeering(\"example2ExpressRouteCircuitPeering\",\n    peering_type=\"AzurePrivatePeering\",\n    express_route_circuit_name=example2_express_route_circuit.name,\n    resource_group_name=example_resource_group.name,\n    shared_key=\"ItsASecret\",\n    peer_asn=100,\n    primary_peer_address_prefix=\"192.168.1.0/30\",\n    secondary_peer_address_prefix=\"192.168.1.0/30\",\n    vlan_id=100)\nexample_express_route_circuit_connection = azure.network.ExpressRouteCircuitConnection(\"exampleExpressRouteCircuitConnection\",\n    peering_id=example_express_route_circuit_peering.id,\n    peer_peering_id=example2_express_route_circuit_peering.id,\n    address_prefix_ipv4=\"192.169.9.0/29\",\n    authorization_key=\"846a1918-b7a2-4917-b43c-8c4cdaee006a\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleExpressRoutePort = new Azure.Network.ExpressRoutePort(\"exampleExpressRoutePort\", new Azure.Network.ExpressRoutePortArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            PeeringLocation = \"Equinix-Seattle-SE2\",\n            BandwidthInGbps = 10,\n            Encapsulation = \"Dot1Q\",\n        });\n        var exampleExpressRouteCircuit = new Azure.Network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\", new Azure.Network.ExpressRouteCircuitArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ExpressRoutePortId = exampleExpressRoutePort.Id,\n            BandwidthInGbps = 5,\n            Sku = new Azure.Network.Inputs.ExpressRouteCircuitSkuArgs\n            {\n                Tier = \"Standard\",\n                Family = \"MeteredData\",\n            },\n        });\n        var example2ExpressRoutePort = new Azure.Network.ExpressRoutePort(\"example2ExpressRoutePort\", new Azure.Network.ExpressRoutePortArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            PeeringLocation = \"Allied-Toronto-King-West\",\n            BandwidthInGbps = 10,\n            Encapsulation = \"Dot1Q\",\n        });\n        var example2ExpressRouteCircuit = new Azure.Network.ExpressRouteCircuit(\"example2ExpressRouteCircuit\", new Azure.Network.ExpressRouteCircuitArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ExpressRoutePortId = example2ExpressRoutePort.Id,\n            BandwidthInGbps = 5,\n            Sku = new Azure.Network.Inputs.ExpressRouteCircuitSkuArgs\n            {\n                Tier = \"Standard\",\n                Family = \"MeteredData\",\n            },\n        });\n        var exampleExpressRouteCircuitPeering = new Azure.Network.ExpressRouteCircuitPeering(\"exampleExpressRouteCircuitPeering\", new Azure.Network.ExpressRouteCircuitPeeringArgs\n        {\n            PeeringType = \"AzurePrivatePeering\",\n            ExpressRouteCircuitName = exampleExpressRouteCircuit.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SharedKey = \"ItsASecret\",\n            PeerAsn = 100,\n            PrimaryPeerAddressPrefix = \"192.168.1.0/30\",\n            SecondaryPeerAddressPrefix = \"192.168.1.0/30\",\n            VlanId = 100,\n        });\n        var example2ExpressRouteCircuitPeering = new Azure.Network.ExpressRouteCircuitPeering(\"example2ExpressRouteCircuitPeering\", new Azure.Network.ExpressRouteCircuitPeeringArgs\n        {\n            PeeringType = \"AzurePrivatePeering\",\n            ExpressRouteCircuitName = example2ExpressRouteCircuit.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SharedKey = \"ItsASecret\",\n            PeerAsn = 100,\n            PrimaryPeerAddressPrefix = \"192.168.1.0/30\",\n            SecondaryPeerAddressPrefix = \"192.168.1.0/30\",\n            VlanId = 100,\n        });\n        var exampleExpressRouteCircuitConnection = new Azure.Network.ExpressRouteCircuitConnection(\"exampleExpressRouteCircuitConnection\", new Azure.Network.ExpressRouteCircuitConnectionArgs\n        {\n            PeeringId = exampleExpressRouteCircuitPeering.Id,\n            PeerPeeringId = example2ExpressRouteCircuitPeering.Id,\n            AddressPrefixIpv4 = \"192.169.9.0/29\",\n            AuthorizationKey = \"846a1918-b7a2-4917-b43c-8c4cdaee006a\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleExpressRoutePort, err := network.NewExpressRoutePort(ctx, \"exampleExpressRoutePort\", \u0026network.ExpressRoutePortArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tPeeringLocation:   pulumi.String(\"Equinix-Seattle-SE2\"),\n\t\t\tBandwidthInGbps:   pulumi.Int(10),\n\t\t\tEncapsulation:     pulumi.String(\"Dot1Q\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleExpressRouteCircuit, err := network.NewExpressRouteCircuit(ctx, \"exampleExpressRouteCircuit\", \u0026network.ExpressRouteCircuitArgs{\n\t\t\tLocation:           exampleResourceGroup.Location,\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tExpressRoutePortId: exampleExpressRoutePort.ID(),\n\t\t\tBandwidthInGbps:    pulumi.Float64(5),\n\t\t\tSku: \u0026network.ExpressRouteCircuitSkuArgs{\n\t\t\t\tTier:   pulumi.String(\"Standard\"),\n\t\t\t\tFamily: pulumi.String(\"MeteredData\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample2ExpressRoutePort, err := network.NewExpressRoutePort(ctx, \"example2ExpressRoutePort\", \u0026network.ExpressRoutePortArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tPeeringLocation:   pulumi.String(\"Allied-Toronto-King-West\"),\n\t\t\tBandwidthInGbps:   pulumi.Int(10),\n\t\t\tEncapsulation:     pulumi.String(\"Dot1Q\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample2ExpressRouteCircuit, err := network.NewExpressRouteCircuit(ctx, \"example2ExpressRouteCircuit\", \u0026network.ExpressRouteCircuitArgs{\n\t\t\tLocation:           exampleResourceGroup.Location,\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tExpressRoutePortId: example2ExpressRoutePort.ID(),\n\t\t\tBandwidthInGbps:    pulumi.Float64(5),\n\t\t\tSku: \u0026network.ExpressRouteCircuitSkuArgs{\n\t\t\t\tTier:   pulumi.String(\"Standard\"),\n\t\t\t\tFamily: pulumi.String(\"MeteredData\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleExpressRouteCircuitPeering, err := network.NewExpressRouteCircuitPeering(ctx, \"exampleExpressRouteCircuitPeering\", \u0026network.ExpressRouteCircuitPeeringArgs{\n\t\t\tPeeringType:                pulumi.String(\"AzurePrivatePeering\"),\n\t\t\tExpressRouteCircuitName:    exampleExpressRouteCircuit.Name,\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tSharedKey:                  pulumi.String(\"ItsASecret\"),\n\t\t\tPeerAsn:                    pulumi.Int(100),\n\t\t\tPrimaryPeerAddressPrefix:   pulumi.String(\"192.168.1.0/30\"),\n\t\t\tSecondaryPeerAddressPrefix: pulumi.String(\"192.168.1.0/30\"),\n\t\t\tVlanId:                     pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample2ExpressRouteCircuitPeering, err := network.NewExpressRouteCircuitPeering(ctx, \"example2ExpressRouteCircuitPeering\", \u0026network.ExpressRouteCircuitPeeringArgs{\n\t\t\tPeeringType:                pulumi.String(\"AzurePrivatePeering\"),\n\t\t\tExpressRouteCircuitName:    example2ExpressRouteCircuit.Name,\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tSharedKey:                  pulumi.String(\"ItsASecret\"),\n\t\t\tPeerAsn:                    pulumi.Int(100),\n\t\t\tPrimaryPeerAddressPrefix:   pulumi.String(\"192.168.1.0/30\"),\n\t\t\tSecondaryPeerAddressPrefix: pulumi.String(\"192.168.1.0/30\"),\n\t\t\tVlanId:                     pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewExpressRouteCircuitConnection(ctx, \"exampleExpressRouteCircuitConnection\", \u0026network.ExpressRouteCircuitConnectionArgs{\n\t\t\tPeeringId:         exampleExpressRouteCircuitPeering.ID(),\n\t\t\tPeerPeeringId:     example2ExpressRouteCircuitPeering.ID(),\n\t\t\tAddressPrefixIpv4: pulumi.String(\"192.169.9.0/29\"),\n\t\t\tAuthorizationKey:  pulumi.String(\"846a1918-b7a2-4917-b43c-8c4cdaee006a\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nExpress Route Circuit Connections can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/expressRouteCircuitConnection:ExpressRouteCircuitConnection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/expressRouteCircuits/circuit1/peerings/peering1/connections/connection1\n```\n\n ",
      "inputProperties": {
        "addressPrefixIpv4": {
          "description": "The IPv4 address space from which to allocate customer address for global reach. Changing this forces a new Express Route Circuit Connection to be created.\n",
          "type": "string"
        },
        "addressPrefixIpv6": {
          "description": "The IPv6 address space from which to allocate customer addresses for global reach.\n",
          "type": "string"
        },
        "authorizationKey": {
          "description": "The authorization key which is associated with the Express Route Circuit Connection.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Express Route Circuit Connection. Changing this forces a new Express Route Circuit Connection to be created.\n",
          "type": "string"
        },
        "peerPeeringId": {
          "description": "The ID of the peered Express Route Circuit Private Peering. Changing this forces a new Express Route Circuit Connection to be created.\n",
          "type": "string"
        },
        "peeringId": {
          "description": "The ID of the Express Route Circuit Private Peering that this Express Route Circuit Connection connects with. Changing this forces a new Express Route Circuit Connection to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "addressPrefixIpv4": {
          "description": "The IPv4 address space from which to allocate customer address for global reach. Changing this forces a new Express Route Circuit Connection to be created.\n",
          "type": "string"
        },
        "addressPrefixIpv6": {
          "description": "The IPv6 address space from which to allocate customer addresses for global reach.\n",
          "type": "string"
        },
        "authorizationKey": {
          "description": "The authorization key which is associated with the Express Route Circuit Connection.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Express Route Circuit Connection. Changing this forces a new Express Route Circuit Connection to be created.\n",
          "type": "string"
        },
        "peerPeeringId": {
          "description": "The ID of the peered Express Route Circuit Private Peering. Changing this forces a new Express Route Circuit Connection to be created.\n",
          "type": "string"
        },
        "peeringId": {
          "description": "The ID of the Express Route Circuit Private Peering that this Express Route Circuit Connection connects with. Changing this forces a new Express Route Circuit Connection to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "addressPrefixIpv4",
        "name",
        "peerPeeringId",
        "peeringId"
      ],
      "requiredInputs": [
        "addressPrefixIpv4",
        "peerPeeringId",
        "peeringId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ExpressRouteCircuitConnection resources.\n",
        "properties": {
          "addressPrefixIpv4": {
            "description": "The IPv4 address space from which to allocate customer address for global reach. Changing this forces a new Express Route Circuit Connection to be created.\n",
            "type": "string"
          },
          "addressPrefixIpv6": {
            "description": "The IPv6 address space from which to allocate customer addresses for global reach.\n",
            "type": "string"
          },
          "authorizationKey": {
            "description": "The authorization key which is associated with the Express Route Circuit Connection.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Express Route Circuit Connection. Changing this forces a new Express Route Circuit Connection to be created.\n",
            "type": "string"
          },
          "peerPeeringId": {
            "description": "The ID of the peered Express Route Circuit Private Peering. Changing this forces a new Express Route Circuit Connection to be created.\n",
            "type": "string"
          },
          "peeringId": {
            "description": "The ID of the Express Route Circuit Private Peering that this Express Route Circuit Connection connects with. Changing this forces a new Express Route Circuit Connection to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/expressRouteCircuitPeering:ExpressRouteCircuitPeering": {
      "description": "Manages an ExpressRoute Circuit Peering.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Creating A Microsoft Peering)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleExpressRouteCircuit = new azure.network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    serviceProviderName: \"Equinix\",\n    peeringLocation: \"Silicon Valley\",\n    bandwidthInMbps: 50,\n    sku: {\n        tier: \"Standard\",\n        family: \"MeteredData\",\n    },\n    allowClassicOperations: false,\n    tags: {\n        environment: \"Production\",\n    },\n});\nconst exampleExpressRouteCircuitPeering = new azure.network.ExpressRouteCircuitPeering(\"exampleExpressRouteCircuitPeering\", {\n    peeringType: \"MicrosoftPeering\",\n    expressRouteCircuitName: exampleExpressRouteCircuit.name,\n    resourceGroupName: exampleResourceGroup.name,\n    peerAsn: 100,\n    primaryPeerAddressPrefix: \"123.0.0.0/30\",\n    secondaryPeerAddressPrefix: \"123.0.0.4/30\",\n    vlanId: 300,\n    microsoftPeeringConfig: {\n        advertisedPublicPrefixes: [\"123.1.0.0/24\"],\n    },\n    ipv6: {\n        primaryPeerAddressPrefix: \"2002:db01::/126\",\n        secondaryPeerAddressPrefix: \"2003:db01::/126\",\n        microsoftPeering: {\n            advertisedPublicPrefixes: [\"2002:db01::/126\"],\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_express_route_circuit = azure.network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    service_provider_name=\"Equinix\",\n    peering_location=\"Silicon Valley\",\n    bandwidth_in_mbps=50,\n    sku=azure.network.ExpressRouteCircuitSkuArgs(\n        tier=\"Standard\",\n        family=\"MeteredData\",\n    ),\n    allow_classic_operations=False,\n    tags={\n        \"environment\": \"Production\",\n    })\nexample_express_route_circuit_peering = azure.network.ExpressRouteCircuitPeering(\"exampleExpressRouteCircuitPeering\",\n    peering_type=\"MicrosoftPeering\",\n    express_route_circuit_name=example_express_route_circuit.name,\n    resource_group_name=example_resource_group.name,\n    peer_asn=100,\n    primary_peer_address_prefix=\"123.0.0.0/30\",\n    secondary_peer_address_prefix=\"123.0.0.4/30\",\n    vlan_id=300,\n    microsoft_peering_config=azure.network.ExpressRouteCircuitPeeringMicrosoftPeeringConfigArgs(\n        advertised_public_prefixes=[\"123.1.0.0/24\"],\n    ),\n    ipv6=azure.network.ExpressRouteCircuitPeeringIpv6Args(\n        primary_peer_address_prefix=\"2002:db01::/126\",\n        secondary_peer_address_prefix=\"2003:db01::/126\",\n        microsoft_peering=azure.network.ExpressRouteCircuitPeeringIpv6MicrosoftPeeringArgs(\n            advertised_public_prefixes=[\"2002:db01::/126\"],\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleExpressRouteCircuit = new Azure.Network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\", new Azure.Network.ExpressRouteCircuitArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ServiceProviderName = \"Equinix\",\n            PeeringLocation = \"Silicon Valley\",\n            BandwidthInMbps = 50,\n            Sku = new Azure.Network.Inputs.ExpressRouteCircuitSkuArgs\n            {\n                Tier = \"Standard\",\n                Family = \"MeteredData\",\n            },\n            AllowClassicOperations = false,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n        var exampleExpressRouteCircuitPeering = new Azure.Network.ExpressRouteCircuitPeering(\"exampleExpressRouteCircuitPeering\", new Azure.Network.ExpressRouteCircuitPeeringArgs\n        {\n            PeeringType = \"MicrosoftPeering\",\n            ExpressRouteCircuitName = exampleExpressRouteCircuit.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PeerAsn = 100,\n            PrimaryPeerAddressPrefix = \"123.0.0.0/30\",\n            SecondaryPeerAddressPrefix = \"123.0.0.4/30\",\n            VlanId = 300,\n            MicrosoftPeeringConfig = new Azure.Network.Inputs.ExpressRouteCircuitPeeringMicrosoftPeeringConfigArgs\n            {\n                AdvertisedPublicPrefixes = \n                {\n                    \"123.1.0.0/24\",\n                },\n            },\n            Ipv6 = new Azure.Network.Inputs.ExpressRouteCircuitPeeringIpv6Args\n            {\n                PrimaryPeerAddressPrefix = \"2002:db01::/126\",\n                SecondaryPeerAddressPrefix = \"2003:db01::/126\",\n                MicrosoftPeering = new Azure.Network.Inputs.ExpressRouteCircuitPeeringIpv6MicrosoftPeeringArgs\n                {\n                    AdvertisedPublicPrefixes = \n                    {\n                        \"2002:db01::/126\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleExpressRouteCircuit, err := network.NewExpressRouteCircuit(ctx, \"exampleExpressRouteCircuit\", \u0026network.ExpressRouteCircuitArgs{\n\t\t\tResourceGroupName:   exampleResourceGroup.Name,\n\t\t\tLocation:            exampleResourceGroup.Location,\n\t\t\tServiceProviderName: pulumi.String(\"Equinix\"),\n\t\t\tPeeringLocation:     pulumi.String(\"Silicon Valley\"),\n\t\t\tBandwidthInMbps:     pulumi.Int(50),\n\t\t\tSku: \u0026network.ExpressRouteCircuitSkuArgs{\n\t\t\t\tTier:   pulumi.String(\"Standard\"),\n\t\t\t\tFamily: pulumi.String(\"MeteredData\"),\n\t\t\t},\n\t\t\tAllowClassicOperations: pulumi.Bool(false),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewExpressRouteCircuitPeering(ctx, \"exampleExpressRouteCircuitPeering\", \u0026network.ExpressRouteCircuitPeeringArgs{\n\t\t\tPeeringType:                pulumi.String(\"MicrosoftPeering\"),\n\t\t\tExpressRouteCircuitName:    exampleExpressRouteCircuit.Name,\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tPeerAsn:                    pulumi.Int(100),\n\t\t\tPrimaryPeerAddressPrefix:   pulumi.String(\"123.0.0.0/30\"),\n\t\t\tSecondaryPeerAddressPrefix: pulumi.String(\"123.0.0.4/30\"),\n\t\t\tVlanId:                     pulumi.Int(300),\n\t\t\tMicrosoftPeeringConfig: \u0026network.ExpressRouteCircuitPeeringMicrosoftPeeringConfigArgs{\n\t\t\t\tAdvertisedPublicPrefixes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"123.1.0.0/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIpv6: \u0026network.ExpressRouteCircuitPeeringIpv6Args{\n\t\t\t\tPrimaryPeerAddressPrefix:   pulumi.String(\"2002:db01::/126\"),\n\t\t\t\tSecondaryPeerAddressPrefix: pulumi.String(\"2003:db01::/126\"),\n\t\t\t\tMicrosoftPeering: \u0026network.ExpressRouteCircuitPeeringIpv6MicrosoftPeeringArgs{\n\t\t\t\t\tAdvertisedPublicPrefixes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"2002:db01::/126\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nExpressRoute Circuit Peerings can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/expressRouteCircuitPeering:ExpressRouteCircuitPeering peering1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/expressRouteCircuits/myExpressRoute/peerings/peering1\n```\n\n ",
      "inputProperties": {
        "expressRouteCircuitName": {
          "description": "The name of the ExpressRoute Circuit in which to create the Peering.\n",
          "type": "string"
        },
        "ipv6": {
          "$ref": "#/types/azure:network/ExpressRouteCircuitPeeringIpv6:ExpressRouteCircuitPeeringIpv6",
          "description": "A `ipv6` block as defined below.\n"
        },
        "microsoftPeeringConfig": {
          "$ref": "#/types/azure:network/ExpressRouteCircuitPeeringMicrosoftPeeringConfig:ExpressRouteCircuitPeeringMicrosoftPeeringConfig",
          "description": "A `microsoft_peering_config` block as defined below. Required when `peering_type` is set to `MicrosoftPeering`.\n"
        },
        "peerAsn": {
          "description": "The Either a 16-bit or a 32-bit ASN. Can either be public or private.\n",
          "type": "integer"
        },
        "peeringType": {
          "description": "The type of the ExpressRoute Circuit Peering. Acceptable values include `AzurePrivatePeering`, `AzurePublicPeering` and `MicrosoftPeering`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryPeerAddressPrefix": {
          "description": "A subnet for the primary link.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Express Route Circuit Peering. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routeFilterId": {
          "description": "The ID of the Route Filter. Only available when `peering_type` is set to `MicrosoftPeering`.\n",
          "type": "string"
        },
        "secondaryPeerAddressPrefix": {
          "description": "A subnet for the secondary link.\n",
          "type": "string"
        },
        "sharedKey": {
          "description": "The shared key. Can be a maximum of 25 characters.\n",
          "type": "string"
        },
        "vlanId": {
          "description": "A valid VLAN ID to establish this peering on.\n",
          "type": "integer"
        }
      },
      "properties": {
        "azureAsn": {
          "description": "The ASN used by Azure.\n",
          "type": "integer"
        },
        "expressRouteCircuitName": {
          "description": "The name of the ExpressRoute Circuit in which to create the Peering.\n",
          "type": "string"
        },
        "ipv6": {
          "$ref": "#/types/azure:network/ExpressRouteCircuitPeeringIpv6:ExpressRouteCircuitPeeringIpv6",
          "description": "A `ipv6` block as defined below.\n"
        },
        "microsoftPeeringConfig": {
          "$ref": "#/types/azure:network/ExpressRouteCircuitPeeringMicrosoftPeeringConfig:ExpressRouteCircuitPeeringMicrosoftPeeringConfig",
          "description": "A `microsoft_peering_config` block as defined below. Required when `peering_type` is set to `MicrosoftPeering`.\n"
        },
        "peerAsn": {
          "description": "The Either a 16-bit or a 32-bit ASN. Can either be public or private.\n",
          "type": "integer"
        },
        "peeringType": {
          "description": "The type of the ExpressRoute Circuit Peering. Acceptable values include `AzurePrivatePeering`, `AzurePublicPeering` and `MicrosoftPeering`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryAzurePort": {
          "description": "The Primary Port used by Azure for this Peering.\n",
          "type": "string"
        },
        "primaryPeerAddressPrefix": {
          "description": "A subnet for the primary link.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Express Route Circuit Peering. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routeFilterId": {
          "description": "The ID of the Route Filter. Only available when `peering_type` is set to `MicrosoftPeering`.\n",
          "type": "string"
        },
        "secondaryAzurePort": {
          "description": "The Secondary Port used by Azure for this Peering.\n",
          "type": "string"
        },
        "secondaryPeerAddressPrefix": {
          "description": "A subnet for the secondary link.\n",
          "type": "string"
        },
        "sharedKey": {
          "description": "The shared key. Can be a maximum of 25 characters.\n",
          "type": "string"
        },
        "vlanId": {
          "description": "A valid VLAN ID to establish this peering on.\n",
          "type": "integer"
        }
      },
      "required": [
        "azureAsn",
        "expressRouteCircuitName",
        "peerAsn",
        "peeringType",
        "primaryAzurePort",
        "primaryPeerAddressPrefix",
        "resourceGroupName",
        "secondaryAzurePort",
        "secondaryPeerAddressPrefix",
        "vlanId"
      ],
      "requiredInputs": [
        "expressRouteCircuitName",
        "peeringType",
        "primaryPeerAddressPrefix",
        "resourceGroupName",
        "secondaryPeerAddressPrefix",
        "vlanId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ExpressRouteCircuitPeering resources.\n",
        "properties": {
          "azureAsn": {
            "description": "The ASN used by Azure.\n",
            "type": "integer"
          },
          "expressRouteCircuitName": {
            "description": "The name of the ExpressRoute Circuit in which to create the Peering.\n",
            "type": "string"
          },
          "ipv6": {
            "$ref": "#/types/azure:network/ExpressRouteCircuitPeeringIpv6:ExpressRouteCircuitPeeringIpv6",
            "description": "A `ipv6` block as defined below.\n"
          },
          "microsoftPeeringConfig": {
            "$ref": "#/types/azure:network/ExpressRouteCircuitPeeringMicrosoftPeeringConfig:ExpressRouteCircuitPeeringMicrosoftPeeringConfig",
            "description": "A `microsoft_peering_config` block as defined below. Required when `peering_type` is set to `MicrosoftPeering`.\n"
          },
          "peerAsn": {
            "description": "The Either a 16-bit or a 32-bit ASN. Can either be public or private.\n",
            "type": "integer"
          },
          "peeringType": {
            "description": "The type of the ExpressRoute Circuit Peering. Acceptable values include `AzurePrivatePeering`, `AzurePublicPeering` and `MicrosoftPeering`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryAzurePort": {
            "description": "The Primary Port used by Azure for this Peering.\n",
            "type": "string"
          },
          "primaryPeerAddressPrefix": {
            "description": "A subnet for the primary link.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Express Route Circuit Peering. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "routeFilterId": {
            "description": "The ID of the Route Filter. Only available when `peering_type` is set to `MicrosoftPeering`.\n",
            "type": "string"
          },
          "secondaryAzurePort": {
            "description": "The Secondary Port used by Azure for this Peering.\n",
            "type": "string"
          },
          "secondaryPeerAddressPrefix": {
            "description": "A subnet for the secondary link.\n",
            "type": "string"
          },
          "sharedKey": {
            "description": "The shared key. Can be a maximum of 25 characters.\n",
            "type": "string"
          },
          "vlanId": {
            "description": "A valid VLAN ID to establish this peering on.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:network/expressRouteConnection:ExpressRouteConnection": {
      "description": "Manages an Express Route Connection.\n\n\u003e **NOTE:** The provider status of the Express Route Circuit must be set as provisioned while creating the Express Route Connection. See more details [here](https://docs.microsoft.com/en-us/azure/expressroute/expressroute-howto-circuit-portal-resource-manager#send-the-service-key-to-your-connectivity-provider-for-provisioning).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualWan = new azure.network.VirtualWan(\"exampleVirtualWan\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleVirtualHub = new azure.network.VirtualHub(\"exampleVirtualHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    virtualWanId: exampleVirtualWan.id,\n    addressPrefix: \"10.0.1.0/24\",\n});\nconst exampleExpressRouteGateway = new azure.network.ExpressRouteGateway(\"exampleExpressRouteGateway\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    virtualHubId: exampleVirtualHub.id,\n    scaleUnits: 1,\n});\nconst exampleExpressRoutePort = new azure.network.ExpressRoutePort(\"exampleExpressRoutePort\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    peeringLocation: \"Equinix-Seattle-SE2\",\n    bandwidthInGbps: 10,\n    encapsulation: \"Dot1Q\",\n});\nconst exampleExpressRouteCircuit = new azure.network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    expressRoutePortId: exampleExpressRoutePort.id,\n    bandwidthInGbps: 5,\n    sku: {\n        tier: \"Standard\",\n        family: \"MeteredData\",\n    },\n});\nconst exampleExpressRouteCircuitPeering = new azure.network.ExpressRouteCircuitPeering(\"exampleExpressRouteCircuitPeering\", {\n    peeringType: \"AzurePrivatePeering\",\n    expressRouteCircuitName: exampleExpressRouteCircuit.name,\n    resourceGroupName: exampleResourceGroup.name,\n    sharedKey: \"ItsASecret\",\n    peerAsn: 100,\n    primaryPeerAddressPrefix: \"192.168.1.0/30\",\n    secondaryPeerAddressPrefix: \"192.168.2.0/30\",\n    vlanId: 100,\n});\nconst exampleExpressRouteConnection = new azure.network.ExpressRouteConnection(\"exampleExpressRouteConnection\", {\n    expressRouteGatewayId: exampleExpressRouteGateway.id,\n    expressRouteCircuitPeeringId: exampleExpressRouteCircuitPeering.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_wan = azure.network.VirtualWan(\"exampleVirtualWan\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_virtual_hub = azure.network.VirtualHub(\"exampleVirtualHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    virtual_wan_id=example_virtual_wan.id,\n    address_prefix=\"10.0.1.0/24\")\nexample_express_route_gateway = azure.network.ExpressRouteGateway(\"exampleExpressRouteGateway\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    virtual_hub_id=example_virtual_hub.id,\n    scale_units=1)\nexample_express_route_port = azure.network.ExpressRoutePort(\"exampleExpressRoutePort\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    peering_location=\"Equinix-Seattle-SE2\",\n    bandwidth_in_gbps=10,\n    encapsulation=\"Dot1Q\")\nexample_express_route_circuit = azure.network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    express_route_port_id=example_express_route_port.id,\n    bandwidth_in_gbps=5,\n    sku=azure.network.ExpressRouteCircuitSkuArgs(\n        tier=\"Standard\",\n        family=\"MeteredData\",\n    ))\nexample_express_route_circuit_peering = azure.network.ExpressRouteCircuitPeering(\"exampleExpressRouteCircuitPeering\",\n    peering_type=\"AzurePrivatePeering\",\n    express_route_circuit_name=example_express_route_circuit.name,\n    resource_group_name=example_resource_group.name,\n    shared_key=\"ItsASecret\",\n    peer_asn=100,\n    primary_peer_address_prefix=\"192.168.1.0/30\",\n    secondary_peer_address_prefix=\"192.168.2.0/30\",\n    vlan_id=100)\nexample_express_route_connection = azure.network.ExpressRouteConnection(\"exampleExpressRouteConnection\",\n    express_route_gateway_id=example_express_route_gateway.id,\n    express_route_circuit_peering_id=example_express_route_circuit_peering.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualWan = new Azure.Network.VirtualWan(\"exampleVirtualWan\", new Azure.Network.VirtualWanArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleVirtualHub = new Azure.Network.VirtualHub(\"exampleVirtualHub\", new Azure.Network.VirtualHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            VirtualWanId = exampleVirtualWan.Id,\n            AddressPrefix = \"10.0.1.0/24\",\n        });\n        var exampleExpressRouteGateway = new Azure.Network.ExpressRouteGateway(\"exampleExpressRouteGateway\", new Azure.Network.ExpressRouteGatewayArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            VirtualHubId = exampleVirtualHub.Id,\n            ScaleUnits = 1,\n        });\n        var exampleExpressRoutePort = new Azure.Network.ExpressRoutePort(\"exampleExpressRoutePort\", new Azure.Network.ExpressRoutePortArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            PeeringLocation = \"Equinix-Seattle-SE2\",\n            BandwidthInGbps = 10,\n            Encapsulation = \"Dot1Q\",\n        });\n        var exampleExpressRouteCircuit = new Azure.Network.ExpressRouteCircuit(\"exampleExpressRouteCircuit\", new Azure.Network.ExpressRouteCircuitArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ExpressRoutePortId = exampleExpressRoutePort.Id,\n            BandwidthInGbps = 5,\n            Sku = new Azure.Network.Inputs.ExpressRouteCircuitSkuArgs\n            {\n                Tier = \"Standard\",\n                Family = \"MeteredData\",\n            },\n        });\n        var exampleExpressRouteCircuitPeering = new Azure.Network.ExpressRouteCircuitPeering(\"exampleExpressRouteCircuitPeering\", new Azure.Network.ExpressRouteCircuitPeeringArgs\n        {\n            PeeringType = \"AzurePrivatePeering\",\n            ExpressRouteCircuitName = exampleExpressRouteCircuit.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SharedKey = \"ItsASecret\",\n            PeerAsn = 100,\n            PrimaryPeerAddressPrefix = \"192.168.1.0/30\",\n            SecondaryPeerAddressPrefix = \"192.168.2.0/30\",\n            VlanId = 100,\n        });\n        var exampleExpressRouteConnection = new Azure.Network.ExpressRouteConnection(\"exampleExpressRouteConnection\", new Azure.Network.ExpressRouteConnectionArgs\n        {\n            ExpressRouteGatewayId = exampleExpressRouteGateway.Id,\n            ExpressRouteCircuitPeeringId = exampleExpressRouteCircuitPeering.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualWan, err := network.NewVirtualWan(ctx, \"exampleVirtualWan\", \u0026network.VirtualWanArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualHub, err := network.NewVirtualHub(ctx, \"exampleVirtualHub\", \u0026network.VirtualHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tVirtualWanId:      exampleVirtualWan.ID(),\n\t\t\tAddressPrefix:     pulumi.String(\"10.0.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleExpressRouteGateway, err := network.NewExpressRouteGateway(ctx, \"exampleExpressRouteGateway\", \u0026network.ExpressRouteGatewayArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tVirtualHubId:      exampleVirtualHub.ID(),\n\t\t\tScaleUnits:        pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleExpressRoutePort, err := network.NewExpressRoutePort(ctx, \"exampleExpressRoutePort\", \u0026network.ExpressRoutePortArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tPeeringLocation:   pulumi.String(\"Equinix-Seattle-SE2\"),\n\t\t\tBandwidthInGbps:   pulumi.Int(10),\n\t\t\tEncapsulation:     pulumi.String(\"Dot1Q\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleExpressRouteCircuit, err := network.NewExpressRouteCircuit(ctx, \"exampleExpressRouteCircuit\", \u0026network.ExpressRouteCircuitArgs{\n\t\t\tLocation:           exampleResourceGroup.Location,\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tExpressRoutePortId: exampleExpressRoutePort.ID(),\n\t\t\tBandwidthInGbps:    pulumi.Float64(5),\n\t\t\tSku: \u0026network.ExpressRouteCircuitSkuArgs{\n\t\t\t\tTier:   pulumi.String(\"Standard\"),\n\t\t\t\tFamily: pulumi.String(\"MeteredData\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleExpressRouteCircuitPeering, err := network.NewExpressRouteCircuitPeering(ctx, \"exampleExpressRouteCircuitPeering\", \u0026network.ExpressRouteCircuitPeeringArgs{\n\t\t\tPeeringType:                pulumi.String(\"AzurePrivatePeering\"),\n\t\t\tExpressRouteCircuitName:    exampleExpressRouteCircuit.Name,\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tSharedKey:                  pulumi.String(\"ItsASecret\"),\n\t\t\tPeerAsn:                    pulumi.Int(100),\n\t\t\tPrimaryPeerAddressPrefix:   pulumi.String(\"192.168.1.0/30\"),\n\t\t\tSecondaryPeerAddressPrefix: pulumi.String(\"192.168.2.0/30\"),\n\t\t\tVlanId:                     pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewExpressRouteConnection(ctx, \"exampleExpressRouteConnection\", \u0026network.ExpressRouteConnectionArgs{\n\t\t\tExpressRouteGatewayId:        exampleExpressRouteGateway.ID(),\n\t\t\tExpressRouteCircuitPeeringId: exampleExpressRouteCircuitPeering.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nExpress Route Connections can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/expressRouteConnection:ExpressRouteConnection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/expressRouteGateways/expressRouteGateway1/expressRouteConnections/connection1\n```\n\n ",
      "inputProperties": {
        "authorizationKey": {
          "description": "The authorization key to establish the Express Route Connection.\n",
          "type": "string"
        },
        "enableInternetSecurity": {
          "description": "Is Internet security enabled for this Express Route Connection?\n",
          "type": "boolean"
        },
        "expressRouteCircuitPeeringId": {
          "description": "The ID of the Express Route Circuit Peering that this Express Route Connection connects with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "expressRouteGatewayId": {
          "description": "The ID of the Express Route Gateway that this Express Route Connection connects with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Express Route Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routing": {
          "$ref": "#/types/azure:network/ExpressRouteConnectionRouting:ExpressRouteConnectionRouting",
          "description": "A `routing` block as defined below.\n"
        },
        "routingWeight": {
          "description": "The routing weight associated to the Express Route Connection. Possible value is between `0` and `32000`. Defaults to `0`.\n",
          "type": "integer"
        }
      },
      "properties": {
        "authorizationKey": {
          "description": "The authorization key to establish the Express Route Connection.\n",
          "type": "string"
        },
        "enableInternetSecurity": {
          "description": "Is Internet security enabled for this Express Route Connection?\n",
          "type": "boolean"
        },
        "expressRouteCircuitPeeringId": {
          "description": "The ID of the Express Route Circuit Peering that this Express Route Connection connects with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "expressRouteGatewayId": {
          "description": "The ID of the Express Route Gateway that this Express Route Connection connects with. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Express Route Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routing": {
          "$ref": "#/types/azure:network/ExpressRouteConnectionRouting:ExpressRouteConnectionRouting",
          "description": "A `routing` block as defined below.\n"
        },
        "routingWeight": {
          "description": "The routing weight associated to the Express Route Connection. Possible value is between `0` and `32000`. Defaults to `0`.\n",
          "type": "integer"
        }
      },
      "required": [
        "expressRouteCircuitPeeringId",
        "expressRouteGatewayId",
        "name",
        "routing"
      ],
      "requiredInputs": [
        "expressRouteCircuitPeeringId",
        "expressRouteGatewayId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ExpressRouteConnection resources.\n",
        "properties": {
          "authorizationKey": {
            "description": "The authorization key to establish the Express Route Connection.\n",
            "type": "string"
          },
          "enableInternetSecurity": {
            "description": "Is Internet security enabled for this Express Route Connection?\n",
            "type": "boolean"
          },
          "expressRouteCircuitPeeringId": {
            "description": "The ID of the Express Route Circuit Peering that this Express Route Connection connects with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "expressRouteGatewayId": {
            "description": "The ID of the Express Route Gateway that this Express Route Connection connects with. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Express Route Connection. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "routing": {
            "$ref": "#/types/azure:network/ExpressRouteConnectionRouting:ExpressRouteConnectionRouting",
            "description": "A `routing` block as defined below.\n"
          },
          "routingWeight": {
            "description": "The routing weight associated to the Express Route Connection. Possible value is between `0` and `32000`. Defaults to `0`.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:network/expressRouteGateway:ExpressRouteGateway": {
      "description": "Manages an ExpressRoute gateway.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualWan = new azure.network.VirtualWan(\"exampleVirtualWan\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleVirtualHub = new azure.network.VirtualHub(\"exampleVirtualHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    virtualWanId: exampleVirtualWan.id,\n    addressPrefix: \"10.0.1.0/24\",\n});\nconst exampleExpressRouteGateway = new azure.network.ExpressRouteGateway(\"exampleExpressRouteGateway\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    virtualHubId: exampleVirtualHub.id,\n    scaleUnits: 1,\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_wan = azure.network.VirtualWan(\"exampleVirtualWan\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_virtual_hub = azure.network.VirtualHub(\"exampleVirtualHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    virtual_wan_id=example_virtual_wan.id,\n    address_prefix=\"10.0.1.0/24\")\nexample_express_route_gateway = azure.network.ExpressRouteGateway(\"exampleExpressRouteGateway\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    virtual_hub_id=example_virtual_hub.id,\n    scale_units=1,\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualWan = new Azure.Network.VirtualWan(\"exampleVirtualWan\", new Azure.Network.VirtualWanArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleVirtualHub = new Azure.Network.VirtualHub(\"exampleVirtualHub\", new Azure.Network.VirtualHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            VirtualWanId = exampleVirtualWan.Id,\n            AddressPrefix = \"10.0.1.0/24\",\n        });\n        var exampleExpressRouteGateway = new Azure.Network.ExpressRouteGateway(\"exampleExpressRouteGateway\", new Azure.Network.ExpressRouteGatewayArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            VirtualHubId = exampleVirtualHub.Id,\n            ScaleUnits = 1,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualWan, err := network.NewVirtualWan(ctx, \"exampleVirtualWan\", \u0026network.VirtualWanArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualHub, err := network.NewVirtualHub(ctx, \"exampleVirtualHub\", \u0026network.VirtualHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tVirtualWanId:      exampleVirtualWan.ID(),\n\t\t\tAddressPrefix:     pulumi.String(\"10.0.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewExpressRouteGateway(ctx, \"exampleExpressRouteGateway\", \u0026network.ExpressRouteGatewayArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tVirtualHubId:      exampleVirtualHub.ID(),\n\t\t\tScaleUnits:        pulumi.Int(1),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nExpressRoute Gateways can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/expressRouteGateway:ExpressRouteGateway example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/expressRouteGateways/myExpressRouteGateway\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the ExpressRoute gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the ExpressRoute gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scaleUnits": {
          "description": "The number of scale units with which to provision the ExpressRoute gateway. Each scale unit is equal to 2Gbps, with support for up to 10 scale units (20Gbps).\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "virtualHubId": {
          "description": "The ID of a Virtual HUB within which the ExpressRoute gateway should be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the ExpressRoute gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the ExpressRoute gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scaleUnits": {
          "description": "The number of scale units with which to provision the ExpressRoute gateway. Each scale unit is equal to 2Gbps, with support for up to 10 scale units (20Gbps).\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "virtualHubId": {
          "description": "The ID of a Virtual HUB within which the ExpressRoute gateway should be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "scaleUnits",
        "virtualHubId"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "scaleUnits",
        "virtualHubId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ExpressRouteGateway resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the ExpressRoute gateway. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the ExpressRoute gateway. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scaleUnits": {
            "description": "The number of scale units with which to provision the ExpressRoute gateway. Each scale unit is equal to 2Gbps, with support for up to 10 scale units (20Gbps).\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "virtualHubId": {
            "description": "The ID of a Virtual HUB within which the ExpressRoute gateway should be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/expressRoutePort:ExpressRoutePort": {
      "description": "Manages a Express Route Port.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West US\"});\nconst exampleExpressRoutePort = new azure.network.ExpressRoutePort(\"exampleExpressRoutePort\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    peeringLocation: \"Airtel-Chennai-CLS\",\n    bandwidthInGbps: 10,\n    encapsulation: \"Dot1Q\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West US\")\nexample_express_route_port = azure.network.ExpressRoutePort(\"exampleExpressRoutePort\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    peering_location=\"Airtel-Chennai-CLS\",\n    bandwidth_in_gbps=10,\n    encapsulation=\"Dot1Q\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West US\",\n        });\n        var exampleExpressRoutePort = new Azure.Network.ExpressRoutePort(\"exampleExpressRoutePort\", new Azure.Network.ExpressRoutePortArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            PeeringLocation = \"Airtel-Chennai-CLS\",\n            BandwidthInGbps = 10,\n            Encapsulation = \"Dot1Q\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewExpressRoutePort(ctx, \"exampleExpressRoutePort\", \u0026network.ExpressRoutePortArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tPeeringLocation:   pulumi.String(\"Airtel-Chennai-CLS\"),\n\t\t\tBandwidthInGbps:   pulumi.Int(10),\n\t\t\tEncapsulation:     pulumi.String(\"Dot1Q\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nExpress Route Ports can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/expressRoutePort:ExpressRoutePort example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/expressRoutePorts/port1\n```\n\n ",
      "inputProperties": {
        "bandwidthInGbps": {
          "description": "Bandwidth of the Express Route Port in Gbps. Changing this forces a new Express Route Port to be created.\n",
          "type": "integer"
        },
        "encapsulation": {
          "description": "The encapsulation method used for the Express Route Port. Changing this forces a new Express Route Port to be created. Possible values are: `Dot1Q`, `QinQ`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:network/ExpressRoutePortIdentity:ExpressRoutePortIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "link1": {
          "$ref": "#/types/azure:network/ExpressRoutePortLink1:ExpressRoutePortLink1",
          "description": "A list of `link` blocks as defined below.\n"
        },
        "link2": {
          "$ref": "#/types/azure:network/ExpressRoutePortLink2:ExpressRoutePortLink2",
          "description": "A list of `link` blocks as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Express Route Port should exist. Changing this forces a new Express Route Port to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Express Route Port. Changing this forces a new Express Route Port to be created.\n",
          "type": "string"
        },
        "peeringLocation": {
          "description": "The name of the peering location that this Express Route Port is physically mapped to. Changing this forces a new Express Route Port to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Express Route Port should exist. Changing this forces a new Express Route Port to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Express Route Port.\n",
          "type": "object"
        }
      },
      "properties": {
        "bandwidthInGbps": {
          "description": "Bandwidth of the Express Route Port in Gbps. Changing this forces a new Express Route Port to be created.\n",
          "type": "integer"
        },
        "encapsulation": {
          "description": "The encapsulation method used for the Express Route Port. Changing this forces a new Express Route Port to be created. Possible values are: `Dot1Q`, `QinQ`.\n",
          "type": "string"
        },
        "ethertype": {
          "description": "The EtherType of the Express Route Port.\n",
          "type": "string"
        },
        "guid": {
          "description": "The resource GUID of the Express Route Port.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:network/ExpressRoutePortIdentity:ExpressRoutePortIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "link1": {
          "$ref": "#/types/azure:network/ExpressRoutePortLink1:ExpressRoutePortLink1",
          "description": "A list of `link` blocks as defined below.\n"
        },
        "link2": {
          "$ref": "#/types/azure:network/ExpressRoutePortLink2:ExpressRoutePortLink2",
          "description": "A list of `link` blocks as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Express Route Port should exist. Changing this forces a new Express Route Port to be created.\n",
          "type": "string"
        },
        "mtu": {
          "description": "The maximum transmission unit of the Express Route Port.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Express Route Port. Changing this forces a new Express Route Port to be created.\n",
          "type": "string"
        },
        "peeringLocation": {
          "description": "The name of the peering location that this Express Route Port is physically mapped to. Changing this forces a new Express Route Port to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Express Route Port should exist. Changing this forces a new Express Route Port to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Express Route Port.\n",
          "type": "object"
        }
      },
      "required": [
        "bandwidthInGbps",
        "encapsulation",
        "ethertype",
        "guid",
        "link1",
        "link2",
        "location",
        "mtu",
        "name",
        "peeringLocation",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "bandwidthInGbps",
        "encapsulation",
        "peeringLocation",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ExpressRoutePort resources.\n",
        "properties": {
          "bandwidthInGbps": {
            "description": "Bandwidth of the Express Route Port in Gbps. Changing this forces a new Express Route Port to be created.\n",
            "type": "integer"
          },
          "encapsulation": {
            "description": "The encapsulation method used for the Express Route Port. Changing this forces a new Express Route Port to be created. Possible values are: `Dot1Q`, `QinQ`.\n",
            "type": "string"
          },
          "ethertype": {
            "description": "The EtherType of the Express Route Port.\n",
            "type": "string"
          },
          "guid": {
            "description": "The resource GUID of the Express Route Port.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:network/ExpressRoutePortIdentity:ExpressRoutePortIdentity",
            "description": "A `identity` block as defined below.\n"
          },
          "link1": {
            "$ref": "#/types/azure:network/ExpressRoutePortLink1:ExpressRoutePortLink1",
            "description": "A list of `link` blocks as defined below.\n"
          },
          "link2": {
            "$ref": "#/types/azure:network/ExpressRoutePortLink2:ExpressRoutePortLink2",
            "description": "A list of `link` blocks as defined below.\n"
          },
          "location": {
            "description": "The Azure Region where the Express Route Port should exist. Changing this forces a new Express Route Port to be created.\n",
            "type": "string"
          },
          "mtu": {
            "description": "The maximum transmission unit of the Express Route Port.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Express Route Port. Changing this forces a new Express Route Port to be created.\n",
            "type": "string"
          },
          "peeringLocation": {
            "description": "The name of the peering location that this Express Route Port is physically mapped to. Changing this forces a new Express Route Port to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Express Route Port should exist. Changing this forces a new Express Route Port to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Express Route Port.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:network/firewall:Firewall": {
      "description": "Manages an Azure Firewall.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n    sku: \"Standard\",\n});\nconst exampleFirewall = new azure.network.Firewall(\"exampleFirewall\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"configuration\",\n        subnetId: exampleSubnet.id,\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\",\n    sku=\"Standard\")\nexample_firewall = azure.network.Firewall(\"exampleFirewall\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.FirewallIpConfigurationArgs(\n        name=\"configuration\",\n        subnet_id=example_subnet.id,\n        public_ip_address_id=example_public_ip.id,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n            Sku = \"Standard\",\n        });\n        var exampleFirewall = new Azure.Network.Firewall(\"exampleFirewall\", new Azure.Network.FirewallArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.FirewallIpConfigurationArgs\n                {\n                    Name = \"configuration\",\n                    SubnetId = exampleSubnet.Id,\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewFirewall(ctx, \"exampleFirewall\", \u0026network.FirewallArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.FirewallIpConfigurationArray{\n\t\t\t\t\u0026network.FirewallIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(\"configuration\"),\n\t\t\t\t\tSubnetId:          exampleSubnet.ID(),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure Firewalls can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/firewall:Firewall example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/azureFirewalls/testfirewall\n```\n\n ",
      "inputProperties": {
        "dnsServers": {
          "description": "A list of DNS servers that the Azure Firewall will direct DNS traffic to the for name resolution.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "firewallPolicyId": {
          "description": "The ID of the Firewall Policy applied to this Firewall.\n",
          "type": "string"
        },
        "ipConfigurations": {
          "description": "An `ip_configuration` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallIpConfiguration:FirewallIpConfiguration"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managementIpConfiguration": {
          "$ref": "#/types/azure:network/FirewallManagementIpConfiguration:FirewallManagementIpConfiguration",
          "description": "A `management_ip_configuration` block as documented below, which allows force-tunnelling of traffic to be performed by the firewall. Adding or removing this block or changing the `subnet_id` in an existing block forces a new resource to be created.\n"
        },
        "name": {
          "description": "Specifies the name of the Firewall. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privateIpRanges": {
          "description": "A list of SNAT private CIDR IP ranges, or the special string `IANAPrivateRanges`, which indicates Azure Firewall does not SNAT when the destination IP address is a private range per IANA RFC 1918.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Sku name of the Firewall. Possible values are `AZFW_Hub` and `AZFW_VNet`.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuTier": {
          "description": "Sku tier of the Firewall. Possible values are `Premium` and `Standard`.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "threatIntelMode": {
          "description": "The operation mode for threat intelligence-based filtering. Possible values are: `Off`, `Alert`,`Deny` and `\"\"`(empty string). Defaults to `Alert`.\n",
          "type": "string"
        },
        "virtualHub": {
          "$ref": "#/types/azure:network/FirewallVirtualHub:FirewallVirtualHub",
          "description": "A `virtual_hub` block as documented below.\n"
        },
        "zones": {
          "description": "Specifies the availability zones in which the Azure Firewall should be created. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "dnsServers": {
          "description": "A list of DNS servers that the Azure Firewall will direct DNS traffic to the for name resolution.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "firewallPolicyId": {
          "description": "The ID of the Firewall Policy applied to this Firewall.\n",
          "type": "string"
        },
        "ipConfigurations": {
          "description": "An `ip_configuration` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallIpConfiguration:FirewallIpConfiguration"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managementIpConfiguration": {
          "$ref": "#/types/azure:network/FirewallManagementIpConfiguration:FirewallManagementIpConfiguration",
          "description": "A `management_ip_configuration` block as documented below, which allows force-tunnelling of traffic to be performed by the firewall. Adding or removing this block or changing the `subnet_id` in an existing block forces a new resource to be created.\n"
        },
        "name": {
          "description": "Specifies the name of the Firewall. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privateIpRanges": {
          "description": "A list of SNAT private CIDR IP ranges, or the special string `IANAPrivateRanges`, which indicates Azure Firewall does not SNAT when the destination IP address is a private range per IANA RFC 1918.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Sku name of the Firewall. Possible values are `AZFW_Hub` and `AZFW_VNet`.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuTier": {
          "description": "Sku tier of the Firewall. Possible values are `Premium` and `Standard`.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "threatIntelMode": {
          "description": "The operation mode for threat intelligence-based filtering. Possible values are: `Off`, `Alert`,`Deny` and `\"\"`(empty string). Defaults to `Alert`.\n",
          "type": "string"
        },
        "virtualHub": {
          "$ref": "#/types/azure:network/FirewallVirtualHub:FirewallVirtualHub",
          "description": "A `virtual_hub` block as documented below.\n"
        },
        "zones": {
          "description": "Specifies the availability zones in which the Azure Firewall should be created. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "skuName",
        "skuTier"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Firewall resources.\n",
        "properties": {
          "dnsServers": {
            "description": "A list of DNS servers that the Azure Firewall will direct DNS traffic to the for name resolution.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "firewallPolicyId": {
            "description": "The ID of the Firewall Policy applied to this Firewall.\n",
            "type": "string"
          },
          "ipConfigurations": {
            "description": "An `ip_configuration` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:network/FirewallIpConfiguration:FirewallIpConfiguration"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "managementIpConfiguration": {
            "$ref": "#/types/azure:network/FirewallManagementIpConfiguration:FirewallManagementIpConfiguration",
            "description": "A `management_ip_configuration` block as documented below, which allows force-tunnelling of traffic to be performed by the firewall. Adding or removing this block or changing the `subnet_id` in an existing block forces a new resource to be created.\n"
          },
          "name": {
            "description": "Specifies the name of the Firewall. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "privateIpRanges": {
            "description": "A list of SNAT private CIDR IP ranges, or the special string `IANAPrivateRanges`, which indicates Azure Firewall does not SNAT when the destination IP address is a private range per IANA RFC 1918.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "Sku name of the Firewall. Possible values are `AZFW_Hub` and `AZFW_VNet`.  Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skuTier": {
            "description": "Sku tier of the Firewall. Possible values are `Premium` and `Standard`.  Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "threatIntelMode": {
            "description": "The operation mode for threat intelligence-based filtering. Possible values are: `Off`, `Alert`,`Deny` and `\"\"`(empty string). Defaults to `Alert`.\n",
            "type": "string"
          },
          "virtualHub": {
            "$ref": "#/types/azure:network/FirewallVirtualHub:FirewallVirtualHub",
            "description": "A `virtual_hub` block as documented below.\n"
          },
          "zones": {
            "description": "Specifies the availability zones in which the Azure Firewall should be created. Changing this forces a new resource to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:network/firewallApplicationRuleCollection:FirewallApplicationRuleCollection": {
      "description": "Manages an Application Rule Collection within an Azure Firewall.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n    sku: \"Standard\",\n});\nconst exampleFirewall = new azure.network.Firewall(\"exampleFirewall\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"configuration\",\n        subnetId: exampleSubnet.id,\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst exampleFirewallApplicationRuleCollection = new azure.network.FirewallApplicationRuleCollection(\"exampleFirewallApplicationRuleCollection\", {\n    azureFirewallName: exampleFirewall.name,\n    resourceGroupName: exampleResourceGroup.name,\n    priority: 100,\n    action: \"Allow\",\n    rules: [{\n        name: \"testrule\",\n        sourceAddresses: [\"10.0.0.0/16\"],\n        targetFqdns: [\"*.google.com\"],\n        protocols: [{\n            port: \"443\",\n            type: \"Https\",\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\",\n    sku=\"Standard\")\nexample_firewall = azure.network.Firewall(\"exampleFirewall\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.FirewallIpConfigurationArgs(\n        name=\"configuration\",\n        subnet_id=example_subnet.id,\n        public_ip_address_id=example_public_ip.id,\n    )])\nexample_firewall_application_rule_collection = azure.network.FirewallApplicationRuleCollection(\"exampleFirewallApplicationRuleCollection\",\n    azure_firewall_name=example_firewall.name,\n    resource_group_name=example_resource_group.name,\n    priority=100,\n    action=\"Allow\",\n    rules=[azure.network.FirewallApplicationRuleCollectionRuleArgs(\n        name=\"testrule\",\n        source_addresses=[\"10.0.0.0/16\"],\n        target_fqdns=[\"*.google.com\"],\n        protocols=[azure.network.FirewallApplicationRuleCollectionRuleProtocolArgs(\n            port=443,\n            type=\"Https\",\n        )],\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n            Sku = \"Standard\",\n        });\n        var exampleFirewall = new Azure.Network.Firewall(\"exampleFirewall\", new Azure.Network.FirewallArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.FirewallIpConfigurationArgs\n                {\n                    Name = \"configuration\",\n                    SubnetId = exampleSubnet.Id,\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var exampleFirewallApplicationRuleCollection = new Azure.Network.FirewallApplicationRuleCollection(\"exampleFirewallApplicationRuleCollection\", new Azure.Network.FirewallApplicationRuleCollectionArgs\n        {\n            AzureFirewallName = exampleFirewall.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Priority = 100,\n            Action = \"Allow\",\n            Rules = \n            {\n                new Azure.Network.Inputs.FirewallApplicationRuleCollectionRuleArgs\n                {\n                    Name = \"testrule\",\n                    SourceAddresses = \n                    {\n                        \"10.0.0.0/16\",\n                    },\n                    TargetFqdns = \n                    {\n                        \"*.google.com\",\n                    },\n                    Protocols = \n                    {\n                        new Azure.Network.Inputs.FirewallApplicationRuleCollectionRuleProtocolArgs\n                        {\n                            Port = 443,\n                            Type = \"Https\",\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFirewall, err := network.NewFirewall(ctx, \"exampleFirewall\", \u0026network.FirewallArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.FirewallIpConfigurationArray{\n\t\t\t\t\u0026network.FirewallIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(\"configuration\"),\n\t\t\t\t\tSubnetId:          exampleSubnet.ID(),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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 = network.NewFirewallApplicationRuleCollection(ctx, \"exampleFirewallApplicationRuleCollection\", \u0026network.FirewallApplicationRuleCollectionArgs{\n\t\t\tAzureFirewallName: exampleFirewall.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPriority:          pulumi.Int(100),\n\t\t\tAction:            pulumi.String(\"Allow\"),\n\t\t\tRules: network.FirewallApplicationRuleCollectionRuleArray{\n\t\t\t\t\u0026network.FirewallApplicationRuleCollectionRuleArgs{\n\t\t\t\t\tName: pulumi.String(\"testrule\"),\n\t\t\t\t\tSourceAddresses: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t\tTargetFqdns: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*.google.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocols: network.FirewallApplicationRuleCollectionRuleProtocolArray{\n\t\t\t\t\t\t\u0026network.FirewallApplicationRuleCollectionRuleProtocolArgs{\n\t\t\t\t\t\t\tPort: pulumi.Int(443),\n\t\t\t\t\t\t\tType: pulumi.String(\"Https\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFirewall Application Rule Collections can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/firewallApplicationRuleCollection:FirewallApplicationRuleCollection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/azureFirewalls/myfirewall/applicationRuleCollections/mycollection\n```\n\n ",
      "inputProperties": {
        "action": {
          "description": "Specifies the action the rule will apply to matching traffic. Possible values are `Allow` and `Deny`.\n",
          "type": "string"
        },
        "azureFirewallName": {
          "description": "Specifies the name of the Firewall in which the Application Rule Collection should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Application Rule Collection which must be unique within the Firewall. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "Specifies the priority of the rule collection. Possible values are between `100` - `65000`.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which the Firewall exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rules": {
          "description": "One or more `rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallApplicationRuleCollectionRule:FirewallApplicationRuleCollectionRule"
          },
          "type": "array"
        }
      },
      "properties": {
        "action": {
          "description": "Specifies the action the rule will apply to matching traffic. Possible values are `Allow` and `Deny`.\n",
          "type": "string"
        },
        "azureFirewallName": {
          "description": "Specifies the name of the Firewall in which the Application Rule Collection should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Application Rule Collection which must be unique within the Firewall. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "Specifies the priority of the rule collection. Possible values are between `100` - `65000`.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which the Firewall exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rules": {
          "description": "One or more `rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallApplicationRuleCollectionRule:FirewallApplicationRuleCollectionRule"
          },
          "type": "array"
        }
      },
      "required": [
        "action",
        "azureFirewallName",
        "name",
        "priority",
        "resourceGroupName",
        "rules"
      ],
      "requiredInputs": [
        "action",
        "azureFirewallName",
        "priority",
        "resourceGroupName",
        "rules"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FirewallApplicationRuleCollection resources.\n",
        "properties": {
          "action": {
            "description": "Specifies the action the rule will apply to matching traffic. Possible values are `Allow` and `Deny`.\n",
            "type": "string"
          },
          "azureFirewallName": {
            "description": "Specifies the name of the Firewall in which the Application Rule Collection should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Application Rule Collection which must be unique within the Firewall. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "priority": {
            "description": "Specifies the priority of the rule collection. Possible values are between `100` - `65000`.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which the Firewall exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "rules": {
            "description": "One or more `rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/FirewallApplicationRuleCollectionRule:FirewallApplicationRuleCollectionRule"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:network/firewallNatRuleCollection:FirewallNatRuleCollection": {
      "description": "Manages a NAT Rule Collection within an Azure Firewall.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n    sku: \"Standard\",\n});\nconst exampleFirewall = new azure.network.Firewall(\"exampleFirewall\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"configuration\",\n        subnetId: exampleSubnet.id,\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst exampleFirewallNatRuleCollection = new azure.network.FirewallNatRuleCollection(\"exampleFirewallNatRuleCollection\", {\n    azureFirewallName: exampleFirewall.name,\n    resourceGroupName: exampleResourceGroup.name,\n    priority: 100,\n    action: \"Dnat\",\n    rules: [{\n        name: \"testrule\",\n        sourceAddresses: [\"10.0.0.0/16\"],\n        destinationPorts: [\"53\"],\n        destinationAddresses: [examplePublicIp.ipAddress],\n        translatedPort: 53,\n        translatedAddress: \"8.8.8.8\",\n        protocols: [\n            \"TCP\",\n            \"UDP\",\n        ],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\",\n    sku=\"Standard\")\nexample_firewall = azure.network.Firewall(\"exampleFirewall\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.FirewallIpConfigurationArgs(\n        name=\"configuration\",\n        subnet_id=example_subnet.id,\n        public_ip_address_id=example_public_ip.id,\n    )])\nexample_firewall_nat_rule_collection = azure.network.FirewallNatRuleCollection(\"exampleFirewallNatRuleCollection\",\n    azure_firewall_name=example_firewall.name,\n    resource_group_name=example_resource_group.name,\n    priority=100,\n    action=\"Dnat\",\n    rules=[azure.network.FirewallNatRuleCollectionRuleArgs(\n        name=\"testrule\",\n        source_addresses=[\"10.0.0.0/16\"],\n        destination_ports=[\"53\"],\n        destination_addresses=[example_public_ip.ip_address],\n        translated_port=\"53\",\n        translated_address=\"8.8.8.8\",\n        protocols=[\n            \"TCP\",\n            \"UDP\",\n        ],\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n            Sku = \"Standard\",\n        });\n        var exampleFirewall = new Azure.Network.Firewall(\"exampleFirewall\", new Azure.Network.FirewallArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.FirewallIpConfigurationArgs\n                {\n                    Name = \"configuration\",\n                    SubnetId = exampleSubnet.Id,\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var exampleFirewallNatRuleCollection = new Azure.Network.FirewallNatRuleCollection(\"exampleFirewallNatRuleCollection\", new Azure.Network.FirewallNatRuleCollectionArgs\n        {\n            AzureFirewallName = exampleFirewall.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Priority = 100,\n            Action = \"Dnat\",\n            Rules = \n            {\n                new Azure.Network.Inputs.FirewallNatRuleCollectionRuleArgs\n                {\n                    Name = \"testrule\",\n                    SourceAddresses = \n                    {\n                        \"10.0.0.0/16\",\n                    },\n                    DestinationPorts = \n                    {\n                        \"53\",\n                    },\n                    DestinationAddresses = \n                    {\n                        examplePublicIp.IpAddress,\n                    },\n                    TranslatedPort = \"53\",\n                    TranslatedAddress = \"8.8.8.8\",\n                    Protocols = \n                    {\n                        \"TCP\",\n                        \"UDP\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFirewall, err := network.NewFirewall(ctx, \"exampleFirewall\", \u0026network.FirewallArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.FirewallIpConfigurationArray{\n\t\t\t\t\u0026network.FirewallIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(\"configuration\"),\n\t\t\t\t\tSubnetId:          exampleSubnet.ID(),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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 = network.NewFirewallNatRuleCollection(ctx, \"exampleFirewallNatRuleCollection\", \u0026network.FirewallNatRuleCollectionArgs{\n\t\t\tAzureFirewallName: exampleFirewall.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPriority:          pulumi.Int(100),\n\t\t\tAction:            pulumi.String(\"Dnat\"),\n\t\t\tRules: network.FirewallNatRuleCollectionRuleArray{\n\t\t\t\t\u0026network.FirewallNatRuleCollectionRuleArgs{\n\t\t\t\t\tName: pulumi.String(\"testrule\"),\n\t\t\t\t\tSourceAddresses: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinationPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"53\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinationAddresses: pulumi.StringArray{\n\t\t\t\t\t\texamplePublicIp.IpAddress,\n\t\t\t\t\t},\n\t\t\t\t\tTranslatedPort:    pulumi.String(\"53\"),\n\t\t\t\t\tTranslatedAddress: pulumi.String(\"8.8.8.8\"),\n\t\t\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"TCP\"),\n\t\t\t\t\t\tpulumi.String(\"UDP\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure Firewall NAT Rule Collections can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/firewallNatRuleCollection:FirewallNatRuleCollection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/azureFirewalls/myfirewall/natRuleCollections/mycollection\n```\n\n ",
      "inputProperties": {
        "action": {
          "description": "Specifies the action the rule will apply to matching traffic. Possible values are `Dnat` and `Snat`.\n",
          "type": "string"
        },
        "azureFirewallName": {
          "description": "Specifies the name of the Firewall in which the NAT Rule Collection should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the NAT Rule Collection which must be unique within the Firewall. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "Specifies the priority of the rule collection. Possible values are between `100` - `65000`.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which the Firewall exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rules": {
          "description": "One or more `rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallNatRuleCollectionRule:FirewallNatRuleCollectionRule"
          },
          "type": "array"
        }
      },
      "properties": {
        "action": {
          "description": "Specifies the action the rule will apply to matching traffic. Possible values are `Dnat` and `Snat`.\n",
          "type": "string"
        },
        "azureFirewallName": {
          "description": "Specifies the name of the Firewall in which the NAT Rule Collection should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the NAT Rule Collection which must be unique within the Firewall. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "Specifies the priority of the rule collection. Possible values are between `100` - `65000`.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which the Firewall exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rules": {
          "description": "One or more `rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallNatRuleCollectionRule:FirewallNatRuleCollectionRule"
          },
          "type": "array"
        }
      },
      "required": [
        "action",
        "azureFirewallName",
        "name",
        "priority",
        "resourceGroupName",
        "rules"
      ],
      "requiredInputs": [
        "action",
        "azureFirewallName",
        "priority",
        "resourceGroupName",
        "rules"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FirewallNatRuleCollection resources.\n",
        "properties": {
          "action": {
            "description": "Specifies the action the rule will apply to matching traffic. Possible values are `Dnat` and `Snat`.\n",
            "type": "string"
          },
          "azureFirewallName": {
            "description": "Specifies the name of the Firewall in which the NAT Rule Collection should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the NAT Rule Collection which must be unique within the Firewall. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "priority": {
            "description": "Specifies the priority of the rule collection. Possible values are between `100` - `65000`.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which the Firewall exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "rules": {
            "description": "One or more `rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/FirewallNatRuleCollectionRule:FirewallNatRuleCollectionRule"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:network/firewallNetworkRuleCollection:FirewallNetworkRuleCollection": {
      "description": "Manages a Network Rule Collection within an Azure Firewall.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n    sku: \"Standard\",\n});\nconst exampleFirewall = new azure.network.Firewall(\"exampleFirewall\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"configuration\",\n        subnetId: exampleSubnet.id,\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst exampleFirewallNetworkRuleCollection = new azure.network.FirewallNetworkRuleCollection(\"exampleFirewallNetworkRuleCollection\", {\n    azureFirewallName: exampleFirewall.name,\n    resourceGroupName: exampleResourceGroup.name,\n    priority: 100,\n    action: \"Allow\",\n    rules: [{\n        name: \"testrule\",\n        sourceAddresses: [\"10.0.0.0/16\"],\n        destinationPorts: [\"53\"],\n        destinationAddresses: [\n            \"8.8.8.8\",\n            \"8.8.4.4\",\n        ],\n        protocols: [\n            \"TCP\",\n            \"UDP\",\n        ],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\",\n    sku=\"Standard\")\nexample_firewall = azure.network.Firewall(\"exampleFirewall\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.FirewallIpConfigurationArgs(\n        name=\"configuration\",\n        subnet_id=example_subnet.id,\n        public_ip_address_id=example_public_ip.id,\n    )])\nexample_firewall_network_rule_collection = azure.network.FirewallNetworkRuleCollection(\"exampleFirewallNetworkRuleCollection\",\n    azure_firewall_name=example_firewall.name,\n    resource_group_name=example_resource_group.name,\n    priority=100,\n    action=\"Allow\",\n    rules=[azure.network.FirewallNetworkRuleCollectionRuleArgs(\n        name=\"testrule\",\n        source_addresses=[\"10.0.0.0/16\"],\n        destination_ports=[\"53\"],\n        destination_addresses=[\n            \"8.8.8.8\",\n            \"8.8.4.4\",\n        ],\n        protocols=[\n            \"TCP\",\n            \"UDP\",\n        ],\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n            Sku = \"Standard\",\n        });\n        var exampleFirewall = new Azure.Network.Firewall(\"exampleFirewall\", new Azure.Network.FirewallArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.FirewallIpConfigurationArgs\n                {\n                    Name = \"configuration\",\n                    SubnetId = exampleSubnet.Id,\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var exampleFirewallNetworkRuleCollection = new Azure.Network.FirewallNetworkRuleCollection(\"exampleFirewallNetworkRuleCollection\", new Azure.Network.FirewallNetworkRuleCollectionArgs\n        {\n            AzureFirewallName = exampleFirewall.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Priority = 100,\n            Action = \"Allow\",\n            Rules = \n            {\n                new Azure.Network.Inputs.FirewallNetworkRuleCollectionRuleArgs\n                {\n                    Name = \"testrule\",\n                    SourceAddresses = \n                    {\n                        \"10.0.0.0/16\",\n                    },\n                    DestinationPorts = \n                    {\n                        \"53\",\n                    },\n                    DestinationAddresses = \n                    {\n                        \"8.8.8.8\",\n                        \"8.8.4.4\",\n                    },\n                    Protocols = \n                    {\n                        \"TCP\",\n                        \"UDP\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFirewall, err := network.NewFirewall(ctx, \"exampleFirewall\", \u0026network.FirewallArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.FirewallIpConfigurationArray{\n\t\t\t\t\u0026network.FirewallIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(\"configuration\"),\n\t\t\t\t\tSubnetId:          exampleSubnet.ID(),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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 = network.NewFirewallNetworkRuleCollection(ctx, \"exampleFirewallNetworkRuleCollection\", \u0026network.FirewallNetworkRuleCollectionArgs{\n\t\t\tAzureFirewallName: exampleFirewall.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPriority:          pulumi.Int(100),\n\t\t\tAction:            pulumi.String(\"Allow\"),\n\t\t\tRules: network.FirewallNetworkRuleCollectionRuleArray{\n\t\t\t\t\u0026network.FirewallNetworkRuleCollectionRuleArgs{\n\t\t\t\t\tName: pulumi.String(\"testrule\"),\n\t\t\t\t\tSourceAddresses: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinationPorts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"53\"),\n\t\t\t\t\t},\n\t\t\t\t\tDestinationAddresses: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"8.8.8.8\"),\n\t\t\t\t\t\tpulumi.String(\"8.8.4.4\"),\n\t\t\t\t\t},\n\t\t\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"TCP\"),\n\t\t\t\t\t\tpulumi.String(\"UDP\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure Firewall Network Rule Collections can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/firewallNetworkRuleCollection:FirewallNetworkRuleCollection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/azureFirewalls/myfirewall/networkRuleCollections/mycollection\n```\n\n ",
      "inputProperties": {
        "action": {
          "description": "Specifies the action the rule will apply to matching traffic. Possible values are `Allow` and `Deny`.\n",
          "type": "string"
        },
        "azureFirewallName": {
          "description": "Specifies the name of the Firewall in which the Network Rule Collection should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Network Rule Collection which must be unique within the Firewall. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "Specifies the priority of the rule collection. Possible values are between `100` - `65000`.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which the Firewall exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rules": {
          "description": "One or more `rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallNetworkRuleCollectionRule:FirewallNetworkRuleCollectionRule"
          },
          "type": "array"
        }
      },
      "properties": {
        "action": {
          "description": "Specifies the action the rule will apply to matching traffic. Possible values are `Allow` and `Deny`.\n",
          "type": "string"
        },
        "azureFirewallName": {
          "description": "Specifies the name of the Firewall in which the Network Rule Collection should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Network Rule Collection which must be unique within the Firewall. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "Specifies the priority of the rule collection. Possible values are between `100` - `65000`.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which the Firewall exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "rules": {
          "description": "One or more `rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallNetworkRuleCollectionRule:FirewallNetworkRuleCollectionRule"
          },
          "type": "array"
        }
      },
      "required": [
        "action",
        "azureFirewallName",
        "name",
        "priority",
        "resourceGroupName",
        "rules"
      ],
      "requiredInputs": [
        "action",
        "azureFirewallName",
        "priority",
        "resourceGroupName",
        "rules"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FirewallNetworkRuleCollection resources.\n",
        "properties": {
          "action": {
            "description": "Specifies the action the rule will apply to matching traffic. Possible values are `Allow` and `Deny`.\n",
            "type": "string"
          },
          "azureFirewallName": {
            "description": "Specifies the name of the Firewall in which the Network Rule Collection should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Network Rule Collection which must be unique within the Firewall. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "priority": {
            "description": "Specifies the priority of the rule collection. Possible values are between `100` - `65000`.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which the Firewall exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "rules": {
            "description": "One or more `rule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/FirewallNetworkRuleCollectionRule:FirewallNetworkRuleCollectionRule"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:network/firewallPolicy:FirewallPolicy": {
      "description": "Manages a Firewall Policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.network.FirewallPolicy(\"example\", {\n    location: \"West Europe\",\n    resourceGroupName: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.FirewallPolicy(\"example\",\n    location=\"West Europe\",\n    resource_group_name=\"example\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Network.FirewallPolicy(\"example\", new Azure.Network.FirewallPolicyArgs\n        {\n            Location = \"West Europe\",\n            ResourceGroupName = \"example\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\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 := network.NewFirewallPolicy(ctx, \"example\", \u0026network.FirewallPolicyArgs{\n\t\t\tLocation:          pulumi.String(\"West Europe\"),\n\t\t\tResourceGroupName: pulumi.String(\"example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFirewall Policies can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/firewallPolicy:FirewallPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/firewallPolicies/policy1\n```\n\n ",
      "inputProperties": {
        "basePolicyId": {
          "description": "The ID of the base Firewall Policy.\n",
          "type": "string"
        },
        "dns": {
          "$ref": "#/types/azure:network/FirewallPolicyDns:FirewallPolicyDns",
          "description": "A `dns` block as defined below.\n"
        },
        "identity": {
          "$ref": "#/types/azure:network/FirewallPolicyIdentity:FirewallPolicyIdentity",
          "description": "An `identity` block as defined below. Changing this forces a new Firewall Policy to be created.\n"
        },
        "intrusionDetection": {
          "$ref": "#/types/azure:network/FirewallPolicyIntrusionDetection:FirewallPolicyIntrusionDetection",
          "description": "A `intrusion_detection` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Firewall Policy should exist. Changing this forces a new Firewall Policy to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Firewall Policy. Changing this forces a new Firewall Policy to be created.\n",
          "type": "string"
        },
        "privateIpRanges": {
          "description": "A list of private IP ranges to which traffic will not be SNAT.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Firewall Policy should exist. Changing this forces a new Firewall Policy to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "The SKU Tier of the Firewall Policy. Possible values are `Standard`, `Premium`. Changing this forces a new Firewall Policy to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Firewall Policy.\n",
          "type": "object"
        },
        "threatIntelligenceAllowlist": {
          "$ref": "#/types/azure:network/FirewallPolicyThreatIntelligenceAllowlist:FirewallPolicyThreatIntelligenceAllowlist",
          "description": "A `threat_intelligence_allowlist` block as defined below.\n"
        },
        "threatIntelligenceMode": {
          "description": "The operation mode for Threat Intelligence. Possible values are `Alert`, `Deny` and `Off`. Defaults to `Alert`.\n",
          "type": "string"
        },
        "tlsCertificate": {
          "$ref": "#/types/azure:network/FirewallPolicyTlsCertificate:FirewallPolicyTlsCertificate",
          "description": "A `tls_certificate` block as defined below.\n"
        }
      },
      "properties": {
        "basePolicyId": {
          "description": "The ID of the base Firewall Policy.\n",
          "type": "string"
        },
        "childPolicies": {
          "description": "A list of reference to child Firewall Policies of this Firewall Policy.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dns": {
          "$ref": "#/types/azure:network/FirewallPolicyDns:FirewallPolicyDns",
          "description": "A `dns` block as defined below.\n"
        },
        "firewalls": {
          "description": "A list of references to Azure Firewalls that this Firewall Policy is associated with.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "identity": {
          "$ref": "#/types/azure:network/FirewallPolicyIdentity:FirewallPolicyIdentity",
          "description": "An `identity` block as defined below. Changing this forces a new Firewall Policy to be created.\n"
        },
        "intrusionDetection": {
          "$ref": "#/types/azure:network/FirewallPolicyIntrusionDetection:FirewallPolicyIntrusionDetection",
          "description": "A `intrusion_detection` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Firewall Policy should exist. Changing this forces a new Firewall Policy to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Firewall Policy. Changing this forces a new Firewall Policy to be created.\n",
          "type": "string"
        },
        "privateIpRanges": {
          "description": "A list of private IP ranges to which traffic will not be SNAT.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Firewall Policy should exist. Changing this forces a new Firewall Policy to be created.\n",
          "type": "string"
        },
        "ruleCollectionGroups": {
          "description": "A list of references to Firewall Policy Rule Collection Groups that belongs to this Firewall Policy.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "sku": {
          "description": "The SKU Tier of the Firewall Policy. Possible values are `Standard`, `Premium`. Changing this forces a new Firewall Policy to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Firewall Policy.\n",
          "type": "object"
        },
        "threatIntelligenceAllowlist": {
          "$ref": "#/types/azure:network/FirewallPolicyThreatIntelligenceAllowlist:FirewallPolicyThreatIntelligenceAllowlist",
          "description": "A `threat_intelligence_allowlist` block as defined below.\n"
        },
        "threatIntelligenceMode": {
          "description": "The operation mode for Threat Intelligence. Possible values are `Alert`, `Deny` and `Off`. Defaults to `Alert`.\n",
          "type": "string"
        },
        "tlsCertificate": {
          "$ref": "#/types/azure:network/FirewallPolicyTlsCertificate:FirewallPolicyTlsCertificate",
          "description": "A `tls_certificate` block as defined below.\n"
        }
      },
      "required": [
        "childPolicies",
        "firewalls",
        "location",
        "name",
        "resourceGroupName",
        "ruleCollectionGroups",
        "sku"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FirewallPolicy resources.\n",
        "properties": {
          "basePolicyId": {
            "description": "The ID of the base Firewall Policy.\n",
            "type": "string"
          },
          "childPolicies": {
            "description": "A list of reference to child Firewall Policies of this Firewall Policy.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dns": {
            "$ref": "#/types/azure:network/FirewallPolicyDns:FirewallPolicyDns",
            "description": "A `dns` block as defined below.\n"
          },
          "firewalls": {
            "description": "A list of references to Azure Firewalls that this Firewall Policy is associated with.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "identity": {
            "$ref": "#/types/azure:network/FirewallPolicyIdentity:FirewallPolicyIdentity",
            "description": "An `identity` block as defined below. Changing this forces a new Firewall Policy to be created.\n"
          },
          "intrusionDetection": {
            "$ref": "#/types/azure:network/FirewallPolicyIntrusionDetection:FirewallPolicyIntrusionDetection",
            "description": "A `intrusion_detection` block as defined below.\n"
          },
          "location": {
            "description": "The Azure Region where the Firewall Policy should exist. Changing this forces a new Firewall Policy to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Firewall Policy. Changing this forces a new Firewall Policy to be created.\n",
            "type": "string"
          },
          "privateIpRanges": {
            "description": "A list of private IP ranges to which traffic will not be SNAT.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Firewall Policy should exist. Changing this forces a new Firewall Policy to be created.\n",
            "type": "string"
          },
          "ruleCollectionGroups": {
            "description": "A list of references to Firewall Policy Rule Collection Groups that belongs to this Firewall Policy.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "sku": {
            "description": "The SKU Tier of the Firewall Policy. Possible values are `Standard`, `Premium`. Changing this forces a new Firewall Policy to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Firewall Policy.\n",
            "type": "object"
          },
          "threatIntelligenceAllowlist": {
            "$ref": "#/types/azure:network/FirewallPolicyThreatIntelligenceAllowlist:FirewallPolicyThreatIntelligenceAllowlist",
            "description": "A `threat_intelligence_allowlist` block as defined below.\n"
          },
          "threatIntelligenceMode": {
            "description": "The operation mode for Threat Intelligence. Possible values are `Alert`, `Deny` and `Off`. Defaults to `Alert`.\n",
            "type": "string"
          },
          "tlsCertificate": {
            "$ref": "#/types/azure:network/FirewallPolicyTlsCertificate:FirewallPolicyTlsCertificate",
            "description": "A `tls_certificate` block as defined below.\n"
          }
        },
        "type": "object"
      }
    },
    "azure:network/firewallPolicyRuleCollectionGroup:FirewallPolicyRuleCollectionGroup": {
      "description": "Manages a Firewall Policy Rule Collection Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFirewallPolicy = new azure.network.FirewallPolicy(\"exampleFirewallPolicy\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleFirewallPolicyRuleCollectionGroup = new azure.network.FirewallPolicyRuleCollectionGroup(\"exampleFirewallPolicyRuleCollectionGroup\", {\n    firewallPolicyId: exampleFirewallPolicy.id,\n    priority: 500,\n    applicationRuleCollections: [{\n        name: \"app_rule_collection1\",\n        priority: 500,\n        action: \"Deny\",\n        rules: [{\n            name: \"app_rule_collection1_rule1\",\n            protocols: [\n                {\n                    type: \"Http\",\n                    port: 80,\n                },\n                {\n                    type: \"Https\",\n                    port: 443,\n                },\n            ],\n            sourceAddresses: [\"10.0.0.1\"],\n            destinationFqdns: [\".microsoft.com\"],\n        }],\n    }],\n    networkRuleCollections: [{\n        name: \"network_rule_collection1\",\n        priority: 400,\n        action: \"Deny\",\n        rules: [{\n            name: \"network_rule_collection1_rule1\",\n            protocols: [\n                \"TCP\",\n                \"UDP\",\n            ],\n            sourceAddresses: [\"10.0.0.1\"],\n            destinationAddresses: [\n                \"192.168.1.1\",\n                \"192.168.1.2\",\n            ],\n            destinationPorts: [\n                \"80\",\n                \"1000-2000\",\n            ],\n        }],\n    }],\n    natRuleCollections: [{\n        name: \"nat_rule_collection1\",\n        priority: 300,\n        action: \"Dnat\",\n        rules: [{\n            name: \"nat_rule_collection1_rule1\",\n            protocols: [\n                \"TCP\",\n                \"UDP\",\n            ],\n            sourceAddresses: [\n                \"10.0.0.1\",\n                \"10.0.0.2\",\n            ],\n            destinationAddress: \"192.168.1.1\",\n            destinationPorts: [\n                \"80\",\n                \"1000-2000\",\n            ],\n            translatedAddress: \"192.168.0.1\",\n            translatedPort: \"8080\",\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_firewall_policy = azure.network.FirewallPolicy(\"exampleFirewallPolicy\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_firewall_policy_rule_collection_group = azure.network.FirewallPolicyRuleCollectionGroup(\"exampleFirewallPolicyRuleCollectionGroup\",\n    firewall_policy_id=example_firewall_policy.id,\n    priority=500,\n    application_rule_collections=[azure.network.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionArgs(\n        name=\"app_rule_collection1\",\n        priority=500,\n        action=\"Deny\",\n        rules=[azure.network.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleArgs(\n            name=\"app_rule_collection1_rule1\",\n            protocols=[\n                azure.network.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleProtocolArgs(\n                    type=\"Http\",\n                    port=80,\n                ),\n                azure.network.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleProtocolArgs(\n                    type=\"Https\",\n                    port=443,\n                ),\n            ],\n            source_addresses=[\"10.0.0.1\"],\n            destination_fqdns=[\".microsoft.com\"],\n        )],\n    )],\n    network_rule_collections=[azure.network.FirewallPolicyRuleCollectionGroupNetworkRuleCollectionArgs(\n        name=\"network_rule_collection1\",\n        priority=400,\n        action=\"Deny\",\n        rules=[azure.network.FirewallPolicyRuleCollectionGroupNetworkRuleCollectionRuleArgs(\n            name=\"network_rule_collection1_rule1\",\n            protocols=[\n                \"TCP\",\n                \"UDP\",\n            ],\n            source_addresses=[\"10.0.0.1\"],\n            destination_addresses=[\n                \"192.168.1.1\",\n                \"192.168.1.2\",\n            ],\n            destination_ports=[\n                \"80\",\n                \"1000-2000\",\n            ],\n        )],\n    )],\n    nat_rule_collections=[azure.network.FirewallPolicyRuleCollectionGroupNatRuleCollectionArgs(\n        name=\"nat_rule_collection1\",\n        priority=300,\n        action=\"Dnat\",\n        rules=[azure.network.FirewallPolicyRuleCollectionGroupNatRuleCollectionRuleArgs(\n            name=\"nat_rule_collection1_rule1\",\n            protocols=[\n                \"TCP\",\n                \"UDP\",\n            ],\n            source_addresses=[\n                \"10.0.0.1\",\n                \"10.0.0.2\",\n            ],\n            destination_address=\"192.168.1.1\",\n            destination_ports=[\n                \"80\",\n                \"1000-2000\",\n            ],\n            translated_address=\"192.168.0.1\",\n            translated_port=8080,\n        )],\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFirewallPolicy = new Azure.Network.FirewallPolicy(\"exampleFirewallPolicy\", new Azure.Network.FirewallPolicyArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleFirewallPolicyRuleCollectionGroup = new Azure.Network.FirewallPolicyRuleCollectionGroup(\"exampleFirewallPolicyRuleCollectionGroup\", new Azure.Network.FirewallPolicyRuleCollectionGroupArgs\n        {\n            FirewallPolicyId = exampleFirewallPolicy.Id,\n            Priority = 500,\n            ApplicationRuleCollections = \n            {\n                new Azure.Network.Inputs.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionArgs\n                {\n                    Name = \"app_rule_collection1\",\n                    Priority = 500,\n                    Action = \"Deny\",\n                    Rules = \n                    {\n                        new Azure.Network.Inputs.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleArgs\n                        {\n                            Name = \"app_rule_collection1_rule1\",\n                            Protocols = \n                            {\n                                new Azure.Network.Inputs.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleProtocolArgs\n                                {\n                                    Type = \"Http\",\n                                    Port = 80,\n                                },\n                                new Azure.Network.Inputs.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleProtocolArgs\n                                {\n                                    Type = \"Https\",\n                                    Port = 443,\n                                },\n                            },\n                            SourceAddresses = \n                            {\n                                \"10.0.0.1\",\n                            },\n                            DestinationFqdns = \n                            {\n                                \".microsoft.com\",\n                            },\n                        },\n                    },\n                },\n            },\n            NetworkRuleCollections = \n            {\n                new Azure.Network.Inputs.FirewallPolicyRuleCollectionGroupNetworkRuleCollectionArgs\n                {\n                    Name = \"network_rule_collection1\",\n                    Priority = 400,\n                    Action = \"Deny\",\n                    Rules = \n                    {\n                        new Azure.Network.Inputs.FirewallPolicyRuleCollectionGroupNetworkRuleCollectionRuleArgs\n                        {\n                            Name = \"network_rule_collection1_rule1\",\n                            Protocols = \n                            {\n                                \"TCP\",\n                                \"UDP\",\n                            },\n                            SourceAddresses = \n                            {\n                                \"10.0.0.1\",\n                            },\n                            DestinationAddresses = \n                            {\n                                \"192.168.1.1\",\n                                \"192.168.1.2\",\n                            },\n                            DestinationPorts = \n                            {\n                                \"80\",\n                                \"1000-2000\",\n                            },\n                        },\n                    },\n                },\n            },\n            NatRuleCollections = \n            {\n                new Azure.Network.Inputs.FirewallPolicyRuleCollectionGroupNatRuleCollectionArgs\n                {\n                    Name = \"nat_rule_collection1\",\n                    Priority = 300,\n                    Action = \"Dnat\",\n                    Rules = \n                    {\n                        new Azure.Network.Inputs.FirewallPolicyRuleCollectionGroupNatRuleCollectionRuleArgs\n                        {\n                            Name = \"nat_rule_collection1_rule1\",\n                            Protocols = \n                            {\n                                \"TCP\",\n                                \"UDP\",\n                            },\n                            SourceAddresses = \n                            {\n                                \"10.0.0.1\",\n                                \"10.0.0.2\",\n                            },\n                            DestinationAddress = \"192.168.1.1\",\n                            DestinationPorts = \n                            {\n                                \"80\",\n                                \"1000-2000\",\n                            },\n                            TranslatedAddress = \"192.168.0.1\",\n                            TranslatedPort = 8080,\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFirewallPolicy, err := network.NewFirewallPolicy(ctx, \"exampleFirewallPolicy\", \u0026network.FirewallPolicyArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewFirewallPolicyRuleCollectionGroup(ctx, \"exampleFirewallPolicyRuleCollectionGroup\", \u0026network.FirewallPolicyRuleCollectionGroupArgs{\n\t\t\tFirewallPolicyId: exampleFirewallPolicy.ID(),\n\t\t\tPriority:         pulumi.Int(500),\n\t\t\tApplicationRuleCollections: network.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionArray{\n\t\t\t\t\u0026network.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionArgs{\n\t\t\t\t\tName:     pulumi.String(\"app_rule_collection1\"),\n\t\t\t\t\tPriority: pulumi.Int(500),\n\t\t\t\t\tAction:   pulumi.String(\"Deny\"),\n\t\t\t\t\tRules: network.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleArray{\n\t\t\t\t\t\t\u0026network.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"app_rule_collection1_rule1\"),\n\t\t\t\t\t\t\tProtocols: network.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleProtocolArray{\n\t\t\t\t\t\t\t\t\u0026network.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleProtocolArgs{\n\t\t\t\t\t\t\t\t\tType: pulumi.String(\"Http\"),\n\t\t\t\t\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026network.FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleProtocolArgs{\n\t\t\t\t\t\t\t\t\tType: pulumi.String(\"Https\"),\n\t\t\t\t\t\t\t\t\tPort: pulumi.Int(443),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tSourceAddresses: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"10.0.0.1\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tDestinationFqdns: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\".microsoft.com\"),\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\tNetworkRuleCollections: network.FirewallPolicyRuleCollectionGroupNetworkRuleCollectionArray{\n\t\t\t\t\u0026network.FirewallPolicyRuleCollectionGroupNetworkRuleCollectionArgs{\n\t\t\t\t\tName:     pulumi.String(\"network_rule_collection1\"),\n\t\t\t\t\tPriority: pulumi.Int(400),\n\t\t\t\t\tAction:   pulumi.String(\"Deny\"),\n\t\t\t\t\tRules: network.FirewallPolicyRuleCollectionGroupNetworkRuleCollectionRuleArray{\n\t\t\t\t\t\t\u0026network.FirewallPolicyRuleCollectionGroupNetworkRuleCollectionRuleArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"network_rule_collection1_rule1\"),\n\t\t\t\t\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"TCP\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"UDP\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tSourceAddresses: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"10.0.0.1\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tDestinationAddresses: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"192.168.1.1\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"192.168.1.2\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tDestinationPorts: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"1000-2000\"),\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\tNatRuleCollections: network.FirewallPolicyRuleCollectionGroupNatRuleCollectionArray{\n\t\t\t\t\u0026network.FirewallPolicyRuleCollectionGroupNatRuleCollectionArgs{\n\t\t\t\t\tName:     pulumi.String(\"nat_rule_collection1\"),\n\t\t\t\t\tPriority: pulumi.Int(300),\n\t\t\t\t\tAction:   pulumi.String(\"Dnat\"),\n\t\t\t\t\tRules: network.FirewallPolicyRuleCollectionGroupNatRuleCollectionRuleArray{\n\t\t\t\t\t\t\u0026network.FirewallPolicyRuleCollectionGroupNatRuleCollectionRuleArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"nat_rule_collection1_rule1\"),\n\t\t\t\t\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"TCP\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"UDP\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tSourceAddresses: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"10.0.0.1\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"10.0.0.2\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tDestinationAddress: pulumi.String(\"192.168.1.1\"),\n\t\t\t\t\t\t\tDestinationPorts: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"1000-2000\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tTranslatedAddress: pulumi.String(\"192.168.0.1\"),\n\t\t\t\t\t\t\tTranslatedPort:    pulumi.Int(8080),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFirewall Policy Rule Collection Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/firewallPolicyRuleCollectionGroup:FirewallPolicyRuleCollectionGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/firewallPolicies/policy1/ruleCollectionGroups/gruop1\n```\n\n ",
      "inputProperties": {
        "applicationRuleCollections": {
          "description": "One or more `application_rule_collection` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallPolicyRuleCollectionGroupApplicationRuleCollection:FirewallPolicyRuleCollectionGroupApplicationRuleCollection"
          },
          "type": "array"
        },
        "firewallPolicyId": {
          "description": "The ID of the Firewall Policy where the Firewall Policy Rule Collection Group should exist. Changing this forces a new Firewall Policy Rule Collection Group to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Firewall Policy Rule Collection Group. Changing this forces a new Firewall Policy Rule Collection Group to be created.\n",
          "type": "string"
        },
        "natRuleCollections": {
          "description": "One or more `nat_rule_collection` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallPolicyRuleCollectionGroupNatRuleCollection:FirewallPolicyRuleCollectionGroupNatRuleCollection"
          },
          "type": "array"
        },
        "networkRuleCollections": {
          "description": "One or more `network_rule_collection` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallPolicyRuleCollectionGroupNetworkRuleCollection:FirewallPolicyRuleCollectionGroupNetworkRuleCollection"
          },
          "type": "array"
        },
        "priority": {
          "description": "The priority of the Firewall Policy Rule Collection Group. The range is 100-65000.\n",
          "type": "integer"
        }
      },
      "properties": {
        "applicationRuleCollections": {
          "description": "One or more `application_rule_collection` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallPolicyRuleCollectionGroupApplicationRuleCollection:FirewallPolicyRuleCollectionGroupApplicationRuleCollection"
          },
          "type": "array"
        },
        "firewallPolicyId": {
          "description": "The ID of the Firewall Policy where the Firewall Policy Rule Collection Group should exist. Changing this forces a new Firewall Policy Rule Collection Group to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Firewall Policy Rule Collection Group. Changing this forces a new Firewall Policy Rule Collection Group to be created.\n",
          "type": "string"
        },
        "natRuleCollections": {
          "description": "One or more `nat_rule_collection` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallPolicyRuleCollectionGroupNatRuleCollection:FirewallPolicyRuleCollectionGroupNatRuleCollection"
          },
          "type": "array"
        },
        "networkRuleCollections": {
          "description": "One or more `network_rule_collection` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallPolicyRuleCollectionGroupNetworkRuleCollection:FirewallPolicyRuleCollectionGroupNetworkRuleCollection"
          },
          "type": "array"
        },
        "priority": {
          "description": "The priority of the Firewall Policy Rule Collection Group. The range is 100-65000.\n",
          "type": "integer"
        }
      },
      "required": [
        "firewallPolicyId",
        "name",
        "priority"
      ],
      "requiredInputs": [
        "firewallPolicyId",
        "priority"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FirewallPolicyRuleCollectionGroup resources.\n",
        "properties": {
          "applicationRuleCollections": {
            "description": "One or more `application_rule_collection` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/FirewallPolicyRuleCollectionGroupApplicationRuleCollection:FirewallPolicyRuleCollectionGroupApplicationRuleCollection"
            },
            "type": "array"
          },
          "firewallPolicyId": {
            "description": "The ID of the Firewall Policy where the Firewall Policy Rule Collection Group should exist. Changing this forces a new Firewall Policy Rule Collection Group to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Firewall Policy Rule Collection Group. Changing this forces a new Firewall Policy Rule Collection Group to be created.\n",
            "type": "string"
          },
          "natRuleCollections": {
            "description": "One or more `nat_rule_collection` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/FirewallPolicyRuleCollectionGroupNatRuleCollection:FirewallPolicyRuleCollectionGroupNatRuleCollection"
            },
            "type": "array"
          },
          "networkRuleCollections": {
            "description": "One or more `network_rule_collection` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/FirewallPolicyRuleCollectionGroupNetworkRuleCollection:FirewallPolicyRuleCollectionGroupNetworkRuleCollection"
            },
            "type": "array"
          },
          "priority": {
            "description": "The priority of the Firewall Policy Rule Collection Group. The range is 100-65000.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:network/iPGroup:IPGroup": {
      "description": "Manages an IP group that contains a list of CIDRs and/or IP addresses.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleIPGroup = new azure.network.IPGroup(\"exampleIPGroup\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    cidrs: [\n        \"192.168.0.1\",\n        \"172.16.240.0/20\",\n        \"10.48.0.0/12\",\n    ],\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_ip_group = azure.network.IPGroup(\"exampleIPGroup\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    cidrs=[\n        \"192.168.0.1\",\n        \"172.16.240.0/20\",\n        \"10.48.0.0/12\",\n    ],\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleIPGroup = new Azure.Network.IPGroup(\"exampleIPGroup\", new Azure.Network.IPGroupArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Cidrs = \n            {\n                \"192.168.0.1\",\n                \"172.16.240.0/20\",\n                \"10.48.0.0/12\",\n            },\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewIPGroup(ctx, \"exampleIPGroup\", \u0026network.IPGroupArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tCidrs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.0.1\"),\n\t\t\t\tpulumi.String(\"172.16.240.0/20\"),\n\t\t\t\tpulumi.String(\"10.48.0.0/12\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIP Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/iPGroup:IPGroup ipgroup1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/ipGroups/myIpGroup\n```\n\n ",
      "inputProperties": {
        "cidrs": {
          "description": "A list of CIDRs or IP addresses.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the IP group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the IP group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "cidrs": {
          "description": "A list of CIDRs or IP addresses.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the IP group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the IP group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering IPGroup resources.\n",
        "properties": {
          "cidrs": {
            "description": "A list of CIDRs or IP addresses.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the IP group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the IP group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:network/localNetworkGateway:LocalNetworkGateway": {
      "description": "Manages a local network gateway connection over which specific connections can be configured.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst home = new azure.network.LocalNetworkGateway(\"home\", {\n    resourceGroupName: example.name,\n    location: example.location,\n    gatewayAddress: \"12.13.14.15\",\n    addressSpaces: [\"10.0.0.0/16\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\nhome = azure.network.LocalNetworkGateway(\"home\",\n    resource_group_name=example.name,\n    location=example.location,\n    gateway_address=\"12.13.14.15\",\n    address_spaces=[\"10.0.0.0/16\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var home = new Azure.Network.LocalNetworkGateway(\"home\", new Azure.Network.LocalNetworkGatewayArgs\n        {\n            ResourceGroupName = example.Name,\n            Location = example.Location,\n            GatewayAddress = \"12.13.14.15\",\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewLocalNetworkGateway(ctx, \"home\", \u0026network.LocalNetworkGatewayArgs{\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation:          example.Location,\n\t\t\tGatewayAddress:    pulumi.String(\"12.13.14.15\"),\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLocal Network Gateways can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/localNetworkGateway:LocalNetworkGateway lng1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/localNetworkGateways/lng1\n```\n\n ",
      "inputProperties": {
        "addressSpaces": {
          "description": "The list of string CIDRs representing the\naddress spaces the gateway exposes.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "bgpSettings": {
          "$ref": "#/types/azure:network/LocalNetworkGatewayBgpSettings:LocalNetworkGatewayBgpSettings",
          "description": "A `bgp_settings` block as defined below containing the\nLocal Network Gateway's BGP speaker settings.\n"
        },
        "gatewayAddress": {
          "description": "The gateway IP address to connect with.\n",
          "type": "string"
        },
        "gatewayFqdn": {
          "description": "The gateway FQDN to connect with.\n",
          "type": "string"
        },
        "location": {
          "description": "The location/region where the local network gateway is\ncreated. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the local network gateway. Changing this\nforces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the local network gateway.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "addressSpaces": {
          "description": "The list of string CIDRs representing the\naddress spaces the gateway exposes.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "bgpSettings": {
          "$ref": "#/types/azure:network/LocalNetworkGatewayBgpSettings:LocalNetworkGatewayBgpSettings",
          "description": "A `bgp_settings` block as defined below containing the\nLocal Network Gateway's BGP speaker settings.\n"
        },
        "gatewayAddress": {
          "description": "The gateway IP address to connect with.\n",
          "type": "string"
        },
        "gatewayFqdn": {
          "description": "The gateway FQDN to connect with.\n",
          "type": "string"
        },
        "location": {
          "description": "The location/region where the local network gateway is\ncreated. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the local network gateway. Changing this\nforces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the local network gateway.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LocalNetworkGateway resources.\n",
        "properties": {
          "addressSpaces": {
            "description": "The list of string CIDRs representing the\naddress spaces the gateway exposes.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "bgpSettings": {
            "$ref": "#/types/azure:network/LocalNetworkGatewayBgpSettings:LocalNetworkGatewayBgpSettings",
            "description": "A `bgp_settings` block as defined below containing the\nLocal Network Gateway's BGP speaker settings.\n"
          },
          "gatewayAddress": {
            "description": "The gateway IP address to connect with.\n",
            "type": "string"
          },
          "gatewayFqdn": {
            "description": "The gateway FQDN to connect with.\n",
            "type": "string"
          },
          "location": {
            "description": "The location/region where the local network gateway is\ncreated. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the local network gateway. Changing this\nforces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the local network gateway.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:network/natGateway:NatGateway": {
      "description": "Manages a Azure NAT Gateway.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n    sku: \"Standard\",\n    zones: [\"1\"],\n});\nconst examplePublicIpPrefix = new azure.network.PublicIpPrefix(\"examplePublicIpPrefix\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    prefixLength: 30,\n    zones: [\"1\"],\n});\nconst exampleNatGateway = new azure.network.NatGateway(\"exampleNatGateway\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    publicIpAddressIds: [examplePublicIp.id],\n    publicIpPrefixIds: [examplePublicIpPrefix.id],\n    skuName: \"Standard\",\n    idleTimeoutInMinutes: 10,\n    zones: [\"1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\",\n    sku=\"Standard\",\n    zones=[\"1\"])\nexample_public_ip_prefix = azure.network.PublicIpPrefix(\"examplePublicIpPrefix\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    prefix_length=30,\n    zones=[\"1\"])\nexample_nat_gateway = azure.network.NatGateway(\"exampleNatGateway\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    public_ip_address_ids=[example_public_ip.id],\n    public_ip_prefix_ids=[example_public_ip_prefix.id],\n    sku_name=\"Standard\",\n    idle_timeout_in_minutes=10,\n    zones=[\"1\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n            Sku = \"Standard\",\n            Zones = \n            {\n                \"1\",\n            },\n        });\n        var examplePublicIpPrefix = new Azure.Network.PublicIpPrefix(\"examplePublicIpPrefix\", new Azure.Network.PublicIpPrefixArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PrefixLength = 30,\n            Zones = \n            {\n                \"1\",\n            },\n        });\n        var exampleNatGateway = new Azure.Network.NatGateway(\"exampleNatGateway\", new Azure.Network.NatGatewayArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PublicIpAddressIds = \n            {\n                examplePublicIp.Id,\n            },\n            PublicIpPrefixIds = \n            {\n                examplePublicIpPrefix.Id,\n            },\n            SkuName = \"Standard\",\n            IdleTimeoutInMinutes = 10,\n            Zones = \n            {\n                \"1\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tZones: pulumi.String{\n\t\t\t\t\"1\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIpPrefix, err := network.NewPublicIpPrefix(ctx, \"examplePublicIpPrefix\", \u0026network.PublicIpPrefixArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPrefixLength:      pulumi.Int(30),\n\t\t\tZones: pulumi.String{\n\t\t\t\t\"1\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNatGateway(ctx, \"exampleNatGateway\", \u0026network.NatGatewayArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPublicIpAddressIds: pulumi.StringArray{\n\t\t\t\texamplePublicIp.ID(),\n\t\t\t},\n\t\t\tPublicIpPrefixIds: pulumi.StringArray{\n\t\t\t\texamplePublicIpPrefix.ID(),\n\t\t\t},\n\t\t\tSkuName:              pulumi.String(\"Standard\"),\n\t\t\tIdleTimeoutInMinutes: pulumi.Int(10),\n\t\t\tZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNAT Gateway can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/natGateway:NatGateway test /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/natGateways/gateway1\n```\n\n ",
      "inputProperties": {
        "idleTimeoutInMinutes": {
          "description": "The idle timeout which should be used in minutes. Defaults to `4`.\n",
          "type": "integer"
        },
        "location": {
          "description": "Specifies the supported Azure location where the NAT Gateway should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the NAT Gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicIpAddressIds": {
          "deprecationMessage": "Inline Public IP Address ID Associations have been deprecated in favour of the `azurerm_nat_gateway_public_ip_association` pluginsdk. This field will be removed in the next major version of the Azure Provider.",
          "description": "A list of Public IP Address ID's which should be associated with the NAT Gateway resource.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "publicIpPrefixIds": {
          "deprecationMessage": "Inline Public IP Prefix ID Associations have been deprecated in favour of the `azurerm_nat_gateway_public_ip_prefix_association` pluginsdk. This field will be removed in the next major version of the Azure Provider.",
          "description": "/ **Deprecated in favour of `azure.network.NatGatewayPublicIpPrefixAssociation`**) A list of Public IP Prefix ID's which should be associated with the NAT Gateway resource.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which the NAT Gateway should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The SKU which should be used. At this time the only supported value is `Standard`. Defaults to `Standard`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
          "type": "object"
        },
        "zones": {
          "description": "A list of availability zones where the NAT Gateway should be provisioned. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "idleTimeoutInMinutes": {
          "description": "The idle timeout which should be used in minutes. Defaults to `4`.\n",
          "type": "integer"
        },
        "location": {
          "description": "Specifies the supported Azure location where the NAT Gateway should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the NAT Gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicIpAddressIds": {
          "deprecationMessage": "Inline Public IP Address ID Associations have been deprecated in favour of the `azurerm_nat_gateway_public_ip_association` pluginsdk. This field will be removed in the next major version of the Azure Provider.",
          "description": "A list of Public IP Address ID's which should be associated with the NAT Gateway resource.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "publicIpPrefixIds": {
          "deprecationMessage": "Inline Public IP Prefix ID Associations have been deprecated in favour of the `azurerm_nat_gateway_public_ip_prefix_association` pluginsdk. This field will be removed in the next major version of the Azure Provider.",
          "description": "/ **Deprecated in favour of `azure.network.NatGatewayPublicIpPrefixAssociation`**) A list of Public IP Prefix ID's which should be associated with the NAT Gateway resource.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group in which the NAT Gateway should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGuid": {
          "description": "The resource GUID property of the NAT Gateway.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The SKU which should be used. At this time the only supported value is `Standard`. Defaults to `Standard`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
          "type": "object"
        },
        "zones": {
          "description": "A list of availability zones where the NAT Gateway should be provisioned. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "location",
        "name",
        "publicIpAddressIds",
        "publicIpPrefixIds",
        "resourceGroupName",
        "resourceGuid"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NatGateway resources.\n",
        "properties": {
          "idleTimeoutInMinutes": {
            "description": "The idle timeout which should be used in minutes. Defaults to `4`.\n",
            "type": "integer"
          },
          "location": {
            "description": "Specifies the supported Azure location where the NAT Gateway should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the NAT Gateway. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "publicIpAddressIds": {
            "deprecationMessage": "Inline Public IP Address ID Associations have been deprecated in favour of the `azurerm_nat_gateway_public_ip_association` pluginsdk. This field will be removed in the next major version of the Azure Provider.",
            "description": "A list of Public IP Address ID's which should be associated with the NAT Gateway resource.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "publicIpPrefixIds": {
            "deprecationMessage": "Inline Public IP Prefix ID Associations have been deprecated in favour of the `azurerm_nat_gateway_public_ip_prefix_association` pluginsdk. This field will be removed in the next major version of the Azure Provider.",
            "description": "/ **Deprecated in favour of `azure.network.NatGatewayPublicIpPrefixAssociation`**) A list of Public IP Prefix ID's which should be associated with the NAT Gateway resource.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group in which the NAT Gateway should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGuid": {
            "description": "The resource GUID property of the NAT Gateway.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The SKU which should be used. At this time the only supported value is `Standard`. Defaults to `Standard`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
            "type": "object"
          },
          "zones": {
            "description": "A list of availability zones where the NAT Gateway should be provisioned. Changing this forces a new resource to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:network/natGatewayPublicIpAssociation:NatGatewayPublicIpAssociation": {
      "description": "Manages the association between a Nat Gateway and a Public IP.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n    sku: \"Standard\",\n});\nconst exampleNatGateway = new azure.network.NatGateway(\"exampleNatGateway\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Standard\",\n});\nconst exampleNatGatewayPublicIpAssociation = new azure.network.NatGatewayPublicIpAssociation(\"exampleNatGatewayPublicIpAssociation\", {\n    natGatewayId: exampleNatGateway.id,\n    publicIpAddressId: examplePublicIp.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\",\n    sku=\"Standard\")\nexample_nat_gateway = azure.network.NatGateway(\"exampleNatGateway\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Standard\")\nexample_nat_gateway_public_ip_association = azure.network.NatGatewayPublicIpAssociation(\"exampleNatGatewayPublicIpAssociation\",\n    nat_gateway_id=example_nat_gateway.id,\n    public_ip_address_id=example_public_ip.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n            Sku = \"Standard\",\n        });\n        var exampleNatGateway = new Azure.Network.NatGateway(\"exampleNatGateway\", new Azure.Network.NatGatewayArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Standard\",\n        });\n        var exampleNatGatewayPublicIpAssociation = new Azure.Network.NatGatewayPublicIpAssociation(\"exampleNatGatewayPublicIpAssociation\", new Azure.Network.NatGatewayPublicIpAssociationArgs\n        {\n            NatGatewayId = exampleNatGateway.Id,\n            PublicIpAddressId = examplePublicIp.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNatGateway, err := network.NewNatGateway(ctx, \"exampleNatGateway\", \u0026network.NatGatewayArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNatGatewayPublicIpAssociation(ctx, \"exampleNatGatewayPublicIpAssociation\", \u0026network.NatGatewayPublicIpAssociationArgs{\n\t\t\tNatGatewayId:      exampleNatGateway.ID(),\n\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAssociations between Nat Gateway and Public IP Addresses can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/natGatewayPublicIpAssociation:NatGatewayPublicIpAssociation example \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/natGateways/gateway1|/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/publicIPAddresses/myPublicIpAddress1\"\n```\n\n ",
      "inputProperties": {
        "natGatewayId": {
          "description": "The ID of the Nat Gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicIpAddressId": {
          "description": "The ID of the Public IP which this Nat Gateway which should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "natGatewayId": {
          "description": "The ID of the Nat Gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicIpAddressId": {
          "description": "The ID of the Public IP which this Nat Gateway which should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "natGatewayId",
        "publicIpAddressId"
      ],
      "requiredInputs": [
        "natGatewayId",
        "publicIpAddressId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NatGatewayPublicIpAssociation resources.\n",
        "properties": {
          "natGatewayId": {
            "description": "The ID of the Nat Gateway. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "publicIpAddressId": {
            "description": "The ID of the Public IP which this Nat Gateway which should be connected to. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/natGatewayPublicIpPrefixAssociation:NatGatewayPublicIpPrefixAssociation": {
      "description": "Manages the association between a Nat Gateway and a Public IP Prefix.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePublicIpPrefix = new azure.network.PublicIpPrefix(\"examplePublicIpPrefix\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    prefixLength: 30,\n    zones: [\"1\"],\n});\nconst exampleNatGateway = new azure.network.NatGateway(\"exampleNatGateway\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Standard\",\n});\nconst exampleNatGatewayPublicIpPrefixAssociation = new azure.network.NatGatewayPublicIpPrefixAssociation(\"exampleNatGatewayPublicIpPrefixAssociation\", {\n    natGatewayId: exampleNatGateway.id,\n    publicIpPrefixId: examplePublicIpPrefix.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_public_ip_prefix = azure.network.PublicIpPrefix(\"examplePublicIpPrefix\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    prefix_length=30,\n    zones=[\"1\"])\nexample_nat_gateway = azure.network.NatGateway(\"exampleNatGateway\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Standard\")\nexample_nat_gateway_public_ip_prefix_association = azure.network.NatGatewayPublicIpPrefixAssociation(\"exampleNatGatewayPublicIpPrefixAssociation\",\n    nat_gateway_id=example_nat_gateway.id,\n    public_ip_prefix_id=example_public_ip_prefix.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePublicIpPrefix = new Azure.Network.PublicIpPrefix(\"examplePublicIpPrefix\", new Azure.Network.PublicIpPrefixArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PrefixLength = 30,\n            Zones = \n            {\n                \"1\",\n            },\n        });\n        var exampleNatGateway = new Azure.Network.NatGateway(\"exampleNatGateway\", new Azure.Network.NatGatewayArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Standard\",\n        });\n        var exampleNatGatewayPublicIpPrefixAssociation = new Azure.Network.NatGatewayPublicIpPrefixAssociation(\"exampleNatGatewayPublicIpPrefixAssociation\", new Azure.Network.NatGatewayPublicIpPrefixAssociationArgs\n        {\n            NatGatewayId = exampleNatGateway.Id,\n            PublicIpPrefixId = examplePublicIpPrefix.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIpPrefix, err := network.NewPublicIpPrefix(ctx, \"examplePublicIpPrefix\", \u0026network.PublicIpPrefixArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPrefixLength:      pulumi.Int(30),\n\t\t\tZones: pulumi.String{\n\t\t\t\t\"1\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNatGateway, err := network.NewNatGateway(ctx, \"exampleNatGateway\", \u0026network.NatGatewayArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNatGatewayPublicIpPrefixAssociation(ctx, \"exampleNatGatewayPublicIpPrefixAssociation\", \u0026network.NatGatewayPublicIpPrefixAssociationArgs{\n\t\t\tNatGatewayId:     exampleNatGateway.ID(),\n\t\t\tPublicIpPrefixId: examplePublicIpPrefix.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAssociations between Nat Gateway and Public IP Prefixes can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/natGatewayPublicIpPrefixAssociation:NatGatewayPublicIpPrefixAssociation example \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/natGateways/gateway1|/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/publicIPPrefixes/myPublicIpPrefix1\"\n```\n\n ",
      "inputProperties": {
        "natGatewayId": {
          "description": "The ID of the Nat Gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicIpPrefixId": {
          "description": "The ID of the Public IP Prefix which this Nat Gateway which should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "natGatewayId": {
          "description": "The ID of the Nat Gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicIpPrefixId": {
          "description": "The ID of the Public IP Prefix which this Nat Gateway which should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "natGatewayId",
        "publicIpPrefixId"
      ],
      "requiredInputs": [
        "natGatewayId",
        "publicIpPrefixId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NatGatewayPublicIpPrefixAssociation resources.\n",
        "properties": {
          "natGatewayId": {
            "description": "The ID of the Nat Gateway. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "publicIpPrefixId": {
            "description": "The ID of the Public IP Prefix which this Nat Gateway which should be connected to. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/networkConnectionMonitor:NetworkConnectionMonitor": {
      "description": "Manages a Network Connection Monitor.\n\n\u003e **NOTE:** Any Network Connection Monitor resource created with API versions 2019-06-01 or earlier (v1) are now incompatible with this provider, which now only supports v2.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNetworkWatcher = new azure.network.NetworkWatcher(\"exampleNetworkWatcher\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"testconfiguration1\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleVirtualMachine = new azure.compute.VirtualMachine(\"exampleVirtualMachine\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    networkInterfaceIds: [exampleNetworkInterface.id],\n    vmSize: \"Standard_D2s_v3\",\n    storageImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04-LTS\",\n        version: \"latest\",\n    },\n    storageOsDisk: {\n        name: \"osdisk-example01\",\n        caching: \"ReadWrite\",\n        createOption: \"FromImage\",\n        managedDiskType: \"Standard_LRS\",\n    },\n    osProfile: {\n        computerName: \"hostnametest01\",\n        adminUsername: \"testadmin\",\n        adminPassword: \"Password1234!\",\n    },\n    osProfileLinuxConfig: {\n        disablePasswordAuthentication: false,\n    },\n});\nconst exampleExtension = new azure.compute.Extension(\"exampleExtension\", {\n    virtualMachineId: exampleVirtualMachine.id,\n    publisher: \"Microsoft.Azure.NetworkWatcher\",\n    type: \"NetworkWatcherAgentLinux\",\n    typeHandlerVersion: \"1.4\",\n    autoUpgradeMinorVersion: true,\n});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"pergb2018\",\n});\nconst exampleNetworkConnectionMonitor = new azure.network.NetworkConnectionMonitor(\"exampleNetworkConnectionMonitor\", {\n    networkWatcherName: exampleNetworkWatcher.name,\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleNetworkWatcher.location,\n    endpoints: [\n        {\n            name: \"source\",\n            targetResourceId: exampleVirtualMachine.id,\n            filter: {\n                items: [{\n                    address: exampleVirtualMachine.id,\n                    type: \"AgentAddress\",\n                }],\n                type: \"Include\",\n            },\n        },\n        {\n            name: \"destination\",\n            address: \"mycompany.io\",\n        },\n    ],\n    testConfigurations: [{\n        name: \"tcpName\",\n        protocol: \"Tcp\",\n        testFrequencyInSeconds: 60,\n        tcpConfiguration: {\n            port: 80,\n        },\n    }],\n    testGroups: [{\n        name: \"exampletg\",\n        destinationEndpoints: [\"destination\"],\n        sourceEndpoints: [\"source\"],\n        testConfigurationNames: [\"tcpName\"],\n        disable: false,\n    }],\n    notes: \"examplenote\",\n    outputWorkspaceResourceIds: [exampleAnalyticsWorkspace.id],\n}, {\n    dependsOn: [exampleExtension],\n});\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNetwork Connection Monitors can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/networkConnectionMonitor:NetworkConnectionMonitor example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/networkWatchers/watcher1/connectionMonitors/connectionMonitor1\n```\n\n ",
      "inputProperties": {
        "autoStart": {
          "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties.",
          "type": "boolean"
        },
        "destination": {
          "$ref": "#/types/azure:network/NetworkConnectionMonitorDestination:NetworkConnectionMonitorDestination",
          "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties."
        },
        "endpoints": {
          "description": "A `endpoint` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/NetworkConnectionMonitorEndpoint:NetworkConnectionMonitorEndpoint"
          },
          "type": "array"
        },
        "intervalInSeconds": {
          "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties.",
          "type": "integer"
        },
        "location": {
          "description": "The Azure Region where the Network Connection Monitor should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Network Connection Monitor. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkWatcherId": {
          "description": "The ID of the Network Watcher. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notes": {
          "description": "The description of the Network Connection Monitor.\n",
          "type": "string"
        },
        "outputWorkspaceResourceIds": {
          "description": "A list of IDs of the Log Analytics Workspace which will accept the output from the Network Connection Monitor.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "source": {
          "$ref": "#/types/azure:network/NetworkConnectionMonitorSource:NetworkConnectionMonitorSource",
          "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties."
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Network Connection Monitor.\n",
          "type": "object"
        },
        "testConfigurations": {
          "description": "A `test_configuration` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/NetworkConnectionMonitorTestConfiguration:NetworkConnectionMonitorTestConfiguration"
          },
          "type": "array"
        },
        "testGroups": {
          "description": "A `test_group` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/NetworkConnectionMonitorTestGroup:NetworkConnectionMonitorTestGroup"
          },
          "type": "array"
        }
      },
      "properties": {
        "autoStart": {
          "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties.",
          "type": "boolean"
        },
        "destination": {
          "$ref": "#/types/azure:network/NetworkConnectionMonitorDestination:NetworkConnectionMonitorDestination",
          "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties."
        },
        "endpoints": {
          "description": "A `endpoint` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/NetworkConnectionMonitorEndpoint:NetworkConnectionMonitorEndpoint"
          },
          "type": "array"
        },
        "intervalInSeconds": {
          "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties.",
          "type": "integer"
        },
        "location": {
          "description": "The Azure Region where the Network Connection Monitor should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Network Connection Monitor. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkWatcherId": {
          "description": "The ID of the Network Watcher. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notes": {
          "description": "The description of the Network Connection Monitor.\n",
          "type": "string"
        },
        "outputWorkspaceResourceIds": {
          "description": "A list of IDs of the Log Analytics Workspace which will accept the output from the Network Connection Monitor.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "source": {
          "$ref": "#/types/azure:network/NetworkConnectionMonitorSource:NetworkConnectionMonitorSource",
          "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties."
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Network Connection Monitor.\n",
          "type": "object"
        },
        "testConfigurations": {
          "description": "A `test_configuration` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/NetworkConnectionMonitorTestConfiguration:NetworkConnectionMonitorTestConfiguration"
          },
          "type": "array"
        },
        "testGroups": {
          "description": "A `test_group` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/NetworkConnectionMonitorTestGroup:NetworkConnectionMonitorTestGroup"
          },
          "type": "array"
        }
      },
      "required": [
        "autoStart",
        "destination",
        "endpoints",
        "intervalInSeconds",
        "location",
        "name",
        "networkWatcherId",
        "outputWorkspaceResourceIds",
        "source",
        "testConfigurations",
        "testGroups"
      ],
      "requiredInputs": [
        "endpoints",
        "networkWatcherId",
        "testConfigurations",
        "testGroups"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkConnectionMonitor resources.\n",
        "properties": {
          "autoStart": {
            "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties.",
            "type": "boolean"
          },
          "destination": {
            "$ref": "#/types/azure:network/NetworkConnectionMonitorDestination:NetworkConnectionMonitorDestination",
            "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties."
          },
          "endpoints": {
            "description": "A `endpoint` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/NetworkConnectionMonitorEndpoint:NetworkConnectionMonitorEndpoint"
            },
            "type": "array"
          },
          "intervalInSeconds": {
            "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties.",
            "type": "integer"
          },
          "location": {
            "description": "The Azure Region where the Network Connection Monitor should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Network Connection Monitor. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkWatcherId": {
            "description": "The ID of the Network Watcher. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "notes": {
            "description": "The description of the Network Connection Monitor.\n",
            "type": "string"
          },
          "outputWorkspaceResourceIds": {
            "description": "A list of IDs of the Log Analytics Workspace which will accept the output from the Network Connection Monitor.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "source": {
            "$ref": "#/types/azure:network/NetworkConnectionMonitorSource:NetworkConnectionMonitorSource",
            "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties."
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Network Connection Monitor.\n",
            "type": "object"
          },
          "testConfigurations": {
            "description": "A `test_configuration` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/NetworkConnectionMonitorTestConfiguration:NetworkConnectionMonitorTestConfiguration"
            },
            "type": "array"
          },
          "testGroups": {
            "description": "A `test_group` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/NetworkConnectionMonitorTestGroup:NetworkConnectionMonitorTestGroup"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:network/networkInterface:NetworkInterface": {
      "description": "Manages a Network Interface.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"internal\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"internal\",\n        subnet_id=example_subnet.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"internal\",\n                    SubnetId = exampleSubnet.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNetworkInterface(ctx, \"exampleNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"internal\"),\n\t\t\t\t\tSubnetId:                   exampleSubnet.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNetwork Interfaces can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/networkInterface:NetworkInterface example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/networkInterfaces/nic1\n```\n\n ",
      "inputProperties": {
        "dnsServers": {
          "description": "A list of IP Addresses defining the DNS Servers which should be used for this Network Interface.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "enableAcceleratedNetworking": {
          "description": "Should Accelerated Networking be enabled? Defaults to `false`.\n",
          "type": "boolean"
        },
        "enableIpForwarding": {
          "description": "Should IP Forwarding be enabled? Defaults to `false`.\n",
          "type": "boolean"
        },
        "internalDnsNameLabel": {
          "description": "The (relative) DNS Name used for internal communications between Virtual Machines in the same Virtual Network.\n",
          "type": "string"
        },
        "ipConfigurations": {
          "description": "One or more `ip_configuration` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/NetworkInterfaceIpConfiguration:NetworkInterfaceIpConfiguration"
          },
          "type": "array"
        },
        "location": {
          "description": "The location where the Network Interface should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which to create the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "appliedDnsServers": {
          "description": "If the Virtual Machine using this Network Interface is part of an Availability Set, then this list will have the union of all DNS servers from all Network Interfaces that are part of the Availability Set.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dnsServers": {
          "description": "A list of IP Addresses defining the DNS Servers which should be used for this Network Interface.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "enableAcceleratedNetworking": {
          "description": "Should Accelerated Networking be enabled? Defaults to `false`.\n",
          "type": "boolean"
        },
        "enableIpForwarding": {
          "description": "Should IP Forwarding be enabled? Defaults to `false`.\n",
          "type": "boolean"
        },
        "internalDnsNameLabel": {
          "description": "The (relative) DNS Name used for internal communications between Virtual Machines in the same Virtual Network.\n",
          "type": "string"
        },
        "internalDomainNameSuffix": {
          "description": "Even if `internal_dns_name_label` is not specified, a DNS entry is created for the primary NIC of the VM. This DNS name can be constructed by concatenating the VM name with the value of `internal_domain_name_suffix`.\n",
          "type": "string"
        },
        "ipConfigurations": {
          "description": "One or more `ip_configuration` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/NetworkInterfaceIpConfiguration:NetworkInterfaceIpConfiguration"
          },
          "type": "array"
        },
        "location": {
          "description": "The location where the Network Interface should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "macAddress": {
          "description": "The Media Access Control (MAC) Address of the Network Interface.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privateIpAddress": {
          "description": "The Static IP Address which should be used.\n",
          "type": "string"
        },
        "privateIpAddresses": {
          "description": "The private IP addresses of the network interface.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which to create the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "virtualMachineId": {
          "description": "The ID of the Virtual Machine which this Network Interface is connected to.\n",
          "type": "string"
        }
      },
      "required": [
        "appliedDnsServers",
        "dnsServers",
        "internalDnsNameLabel",
        "internalDomainNameSuffix",
        "ipConfigurations",
        "location",
        "macAddress",
        "name",
        "privateIpAddress",
        "privateIpAddresses",
        "resourceGroupName",
        "virtualMachineId"
      ],
      "requiredInputs": [
        "ipConfigurations",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkInterface resources.\n",
        "properties": {
          "appliedDnsServers": {
            "description": "If the Virtual Machine using this Network Interface is part of an Availability Set, then this list will have the union of all DNS servers from all Network Interfaces that are part of the Availability Set.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dnsServers": {
            "description": "A list of IP Addresses defining the DNS Servers which should be used for this Network Interface.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "enableAcceleratedNetworking": {
            "description": "Should Accelerated Networking be enabled? Defaults to `false`.\n",
            "type": "boolean"
          },
          "enableIpForwarding": {
            "description": "Should IP Forwarding be enabled? Defaults to `false`.\n",
            "type": "boolean"
          },
          "internalDnsNameLabel": {
            "description": "The (relative) DNS Name used for internal communications between Virtual Machines in the same Virtual Network.\n",
            "type": "string"
          },
          "internalDomainNameSuffix": {
            "description": "Even if `internal_dns_name_label` is not specified, a DNS entry is created for the primary NIC of the VM. This DNS name can be constructed by concatenating the VM name with the value of `internal_domain_name_suffix`.\n",
            "type": "string"
          },
          "ipConfigurations": {
            "description": "One or more `ip_configuration` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/NetworkInterfaceIpConfiguration:NetworkInterfaceIpConfiguration"
            },
            "type": "array"
          },
          "location": {
            "description": "The location where the Network Interface should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "macAddress": {
            "description": "The Media Access Control (MAC) Address of the Network Interface.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Network Interface. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "privateIpAddress": {
            "description": "The Static IP Address which should be used.\n",
            "type": "string"
          },
          "privateIpAddresses": {
            "description": "The private IP addresses of the network interface.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which to create the Network Interface. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "virtualMachineId": {
            "description": "The ID of the Virtual Machine which this Network Interface is connected to.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/networkInterfaceApplicationGatewayBackendAddressPoolAssociation:NetworkInterfaceApplicationGatewayBackendAddressPoolAssociation": {
      "description": "Manages the association between a Network Interface and a Application Gateway's Backend Address Pool.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst frontend = new azure.network.Subnet(\"frontend\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst backend = new azure.network.Subnet(\"backend\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Dynamic\",\n});\nconst backendAddressPoolName = pulumi.interpolate`${exampleVirtualNetwork.name}-beap`;\nconst frontendPortName = pulumi.interpolate`${exampleVirtualNetwork.name}-feport`;\nconst frontendIpConfigurationName = pulumi.interpolate`${exampleVirtualNetwork.name}-feip`;\nconst httpSettingName = pulumi.interpolate`${exampleVirtualNetwork.name}-be-htst`;\nconst listenerName = pulumi.interpolate`${exampleVirtualNetwork.name}-httplstn`;\nconst requestRoutingRuleName = pulumi.interpolate`${exampleVirtualNetwork.name}-rqrt`;\nconst network = new azure.network.ApplicationGateway(\"network\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: {\n        name: \"Standard_Small\",\n        tier: \"Standard\",\n        capacity: 2,\n    },\n    gatewayIpConfigurations: [{\n        name: \"my-gateway-ip-configuration\",\n        subnetId: frontend.id,\n    }],\n    frontendPorts: [{\n        name: frontendPortName,\n        port: 80,\n    }],\n    frontendIpConfigurations: [{\n        name: frontendIpConfigurationName,\n        publicIpAddressId: examplePublicIp.id,\n    }],\n    backendAddressPools: [{\n        name: backendAddressPoolName,\n    }],\n    backendHttpSettings: [{\n        name: httpSettingName,\n        cookieBasedAffinity: \"Disabled\",\n        port: 80,\n        protocol: \"Http\",\n        requestTimeout: 1,\n    }],\n    httpListeners: [{\n        name: listenerName,\n        frontendIpConfigurationName: frontendIpConfigurationName,\n        frontendPortName: frontendPortName,\n        protocol: \"Http\",\n    }],\n    requestRoutingRules: [{\n        name: requestRoutingRuleName,\n        ruleType: \"Basic\",\n        httpListenerName: listenerName,\n        backendAddressPoolName: backendAddressPoolName,\n        backendHttpSettingsName: httpSettingName,\n    }],\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"testconfiguration1\",\n        subnetId: frontend.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleNetworkInterfaceApplicationGatewayBackendAddressPoolAssociation = new azure.network.NetworkInterfaceApplicationGatewayBackendAddressPoolAssociation(\"exampleNetworkInterfaceApplicationGatewayBackendAddressPoolAssociation\", {\n    networkInterfaceId: exampleNetworkInterface.id,\n    ipConfigurationName: \"testconfiguration1\",\n    backendAddressPoolId: network.backendAddressPools.apply(backendAddressPools =\u003e backendAddressPools[0].id),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nfrontend = azure.network.Subnet(\"frontend\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"])\nbackend = azure.network.Subnet(\"backend\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Dynamic\")\nbackend_address_pool_name = example_virtual_network.name.apply(lambda name: f\"{name}-beap\")\nfrontend_port_name = example_virtual_network.name.apply(lambda name: f\"{name}-feport\")\nfrontend_ip_configuration_name = example_virtual_network.name.apply(lambda name: f\"{name}-feip\")\nhttp_setting_name = example_virtual_network.name.apply(lambda name: f\"{name}-be-htst\")\nlistener_name = example_virtual_network.name.apply(lambda name: f\"{name}-httplstn\")\nrequest_routing_rule_name = example_virtual_network.name.apply(lambda name: f\"{name}-rqrt\")\nnetwork = azure.network.ApplicationGateway(\"network\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=azure.network.ApplicationGatewaySkuArgs(\n        name=\"Standard_Small\",\n        tier=\"Standard\",\n        capacity=2,\n    ),\n    gateway_ip_configurations=[azure.network.ApplicationGatewayGatewayIpConfigurationArgs(\n        name=\"my-gateway-ip-configuration\",\n        subnet_id=frontend.id,\n    )],\n    frontend_ports=[azure.network.ApplicationGatewayFrontendPortArgs(\n        name=frontend_port_name,\n        port=80,\n    )],\n    frontend_ip_configurations=[azure.network.ApplicationGatewayFrontendIpConfigurationArgs(\n        name=frontend_ip_configuration_name,\n        public_ip_address_id=example_public_ip.id,\n    )],\n    backend_address_pools=[azure.network.ApplicationGatewayBackendAddressPoolArgs(\n        name=backend_address_pool_name,\n    )],\n    backend_http_settings=[azure.network.ApplicationGatewayBackendHttpSettingArgs(\n        name=http_setting_name,\n        cookie_based_affinity=\"Disabled\",\n        port=80,\n        protocol=\"Http\",\n        request_timeout=1,\n    )],\n    http_listeners=[azure.network.ApplicationGatewayHttpListenerArgs(\n        name=listener_name,\n        frontend_ip_configuration_name=frontend_ip_configuration_name,\n        frontend_port_name=frontend_port_name,\n        protocol=\"Http\",\n    )],\n    request_routing_rules=[azure.network.ApplicationGatewayRequestRoutingRuleArgs(\n        name=request_routing_rule_name,\n        rule_type=\"Basic\",\n        http_listener_name=listener_name,\n        backend_address_pool_name=backend_address_pool_name,\n        backend_http_settings_name=http_setting_name,\n    )])\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"testconfiguration1\",\n        subnet_id=frontend.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nexample_network_interface_application_gateway_backend_address_pool_association = azure.network.NetworkInterfaceApplicationGatewayBackendAddressPoolAssociation(\"exampleNetworkInterfaceApplicationGatewayBackendAddressPoolAssociation\",\n    network_interface_id=example_network_interface.id,\n    ip_configuration_name=\"testconfiguration1\",\n    backend_address_pool_id=network.backend_address_pools[0].id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var frontend = new Azure.Network.Subnet(\"frontend\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n        });\n        var backend = new Azure.Network.Subnet(\"backend\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Dynamic\",\n        });\n        var backendAddressPoolName = exampleVirtualNetwork.Name.Apply(name =\u003e $\"{name}-beap\");\n        var frontendPortName = exampleVirtualNetwork.Name.Apply(name =\u003e $\"{name}-feport\");\n        var frontendIpConfigurationName = exampleVirtualNetwork.Name.Apply(name =\u003e $\"{name}-feip\");\n        var httpSettingName = exampleVirtualNetwork.Name.Apply(name =\u003e $\"{name}-be-htst\");\n        var listenerName = exampleVirtualNetwork.Name.Apply(name =\u003e $\"{name}-httplstn\");\n        var requestRoutingRuleName = exampleVirtualNetwork.Name.Apply(name =\u003e $\"{name}-rqrt\");\n        var network = new Azure.Network.ApplicationGateway(\"network\", new Azure.Network.ApplicationGatewayArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = new Azure.Network.Inputs.ApplicationGatewaySkuArgs\n            {\n                Name = \"Standard_Small\",\n                Tier = \"Standard\",\n                Capacity = 2,\n            },\n            GatewayIpConfigurations = \n            {\n                new Azure.Network.Inputs.ApplicationGatewayGatewayIpConfigurationArgs\n                {\n                    Name = \"my-gateway-ip-configuration\",\n                    SubnetId = frontend.Id,\n                },\n            },\n            FrontendPorts = \n            {\n                new Azure.Network.Inputs.ApplicationGatewayFrontendPortArgs\n                {\n                    Name = frontendPortName,\n                    Port = 80,\n                },\n            },\n            FrontendIpConfigurations = \n            {\n                new Azure.Network.Inputs.ApplicationGatewayFrontendIpConfigurationArgs\n                {\n                    Name = frontendIpConfigurationName,\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n            BackendAddressPools = \n            {\n                new Azure.Network.Inputs.ApplicationGatewayBackendAddressPoolArgs\n                {\n                    Name = backendAddressPoolName,\n                },\n            },\n            BackendHttpSettings = \n            {\n                new Azure.Network.Inputs.ApplicationGatewayBackendHttpSettingArgs\n                {\n                    Name = httpSettingName,\n                    CookieBasedAffinity = \"Disabled\",\n                    Port = 80,\n                    Protocol = \"Http\",\n                    RequestTimeout = 1,\n                },\n            },\n            HttpListeners = \n            {\n                new Azure.Network.Inputs.ApplicationGatewayHttpListenerArgs\n                {\n                    Name = listenerName,\n                    FrontendIpConfigurationName = frontendIpConfigurationName,\n                    FrontendPortName = frontendPortName,\n                    Protocol = \"Http\",\n                },\n            },\n            RequestRoutingRules = \n            {\n                new Azure.Network.Inputs.ApplicationGatewayRequestRoutingRuleArgs\n                {\n                    Name = requestRoutingRuleName,\n                    RuleType = \"Basic\",\n                    HttpListenerName = listenerName,\n                    BackendAddressPoolName = backendAddressPoolName,\n                    BackendHttpSettingsName = httpSettingName,\n                },\n            },\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"testconfiguration1\",\n                    SubnetId = frontend.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var exampleNetworkInterfaceApplicationGatewayBackendAddressPoolAssociation = new Azure.Network.NetworkInterfaceApplicationGatewayBackendAddressPoolAssociation(\"exampleNetworkInterfaceApplicationGatewayBackendAddressPoolAssociation\", new Azure.Network.NetworkInterfaceApplicationGatewayBackendAddressPoolAssociationArgs\n        {\n            NetworkInterfaceId = exampleNetworkInterface.Id,\n            IpConfigurationName = \"testconfiguration1\",\n            BackendAddressPoolId = network.BackendAddressPools.Apply(backendAddressPools =\u003e backendAddressPools[0].Id),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontend, err := network.NewSubnet(ctx, \"frontend\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewSubnet(ctx, \"backend\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Dynamic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := network.NewApplicationGateway(ctx, \"network\", \u0026network.ApplicationGatewayArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku: \u0026network.ApplicationGatewaySkuArgs{\n\t\t\t\tName:     pulumi.String(\"Standard_Small\"),\n\t\t\t\tTier:     pulumi.String(\"Standard\"),\n\t\t\t\tCapacity: pulumi.Int(2),\n\t\t\t},\n\t\t\tGatewayIpConfigurations: network.ApplicationGatewayGatewayIpConfigurationArray{\n\t\t\t\t\u0026network.ApplicationGatewayGatewayIpConfigurationArgs{\n\t\t\t\t\tName:     pulumi.String(\"my-gateway-ip-configuration\"),\n\t\t\t\t\tSubnetId: frontend.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendPorts: network.ApplicationGatewayFrontendPortArray{\n\t\t\t\t\u0026network.ApplicationGatewayFrontendPortArgs{\n\t\t\t\t\tName: pulumi.String(frontendPortName),\n\t\t\t\t\tPort: pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFrontendIpConfigurations: network.ApplicationGatewayFrontendIpConfigurationArray{\n\t\t\t\t\u0026network.ApplicationGatewayFrontendIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(frontendIpConfigurationName),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackendAddressPools: network.ApplicationGatewayBackendAddressPoolArray{\n\t\t\t\t\u0026network.ApplicationGatewayBackendAddressPoolArgs{\n\t\t\t\t\tName: pulumi.String(backendAddressPoolName),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackendHttpSettings: network.ApplicationGatewayBackendHttpSettingArray{\n\t\t\t\t\u0026network.ApplicationGatewayBackendHttpSettingArgs{\n\t\t\t\t\tName:                pulumi.String(httpSettingName),\n\t\t\t\t\tCookieBasedAffinity: pulumi.String(\"Disabled\"),\n\t\t\t\t\tPort:                pulumi.Int(80),\n\t\t\t\t\tProtocol:            pulumi.String(\"Http\"),\n\t\t\t\t\tRequestTimeout:      pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHttpListeners: network.ApplicationGatewayHttpListenerArray{\n\t\t\t\t\u0026network.ApplicationGatewayHttpListenerArgs{\n\t\t\t\t\tName:                        pulumi.String(listenerName),\n\t\t\t\t\tFrontendIpConfigurationName: pulumi.String(frontendIpConfigurationName),\n\t\t\t\t\tFrontendPortName:            pulumi.String(frontendPortName),\n\t\t\t\t\tProtocol:                    pulumi.String(\"Http\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRequestRoutingRules: network.ApplicationGatewayRequestRoutingRuleArray{\n\t\t\t\t\u0026network.ApplicationGatewayRequestRoutingRuleArgs{\n\t\t\t\t\tName:                    pulumi.String(requestRoutingRuleName),\n\t\t\t\t\tRuleType:                pulumi.String(\"Basic\"),\n\t\t\t\t\tHttpListenerName:        pulumi.String(listenerName),\n\t\t\t\t\tBackendAddressPoolName:  pulumi.String(backendAddressPoolName),\n\t\t\t\t\tBackendHttpSettingsName: pulumi.String(httpSettingName),\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\texampleNetworkInterface, err := network.NewNetworkInterface(ctx, \"exampleNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"testconfiguration1\"),\n\t\t\t\t\tSubnetId:                   frontend.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\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 = network.NewNetworkInterfaceApplicationGatewayBackendAddressPoolAssociation(ctx, \"exampleNetworkInterfaceApplicationGatewayBackendAddressPoolAssociation\", \u0026network.NetworkInterfaceApplicationGatewayBackendAddressPoolAssociationArgs{\n\t\t\tNetworkInterfaceId:  exampleNetworkInterface.ID(),\n\t\t\tIpConfigurationName: pulumi.String(\"testconfiguration1\"),\n\t\t\tBackendAddressPoolId: network.BackendAddressPools.ApplyT(func(backendAddressPools []network.ApplicationGatewayBackendAddressPool) (string, error) {\n\t\t\t\treturn backendAddressPools[0].Id, nil\n\t\t\t}).(pulumi.StringOutput),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAssociations between Network Interfaces and Application Gateway Backend Address Pools can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/networkInterfaceApplicationGatewayBackendAddressPoolAssociation:NetworkInterfaceApplicationGatewayBackendAddressPoolAssociation association1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.network/networkInterfaces/nic1/ipConfigurations/example|/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/applicationGateways/gateway1/backendAddressPools/pool1\n```\n\n ",
      "inputProperties": {
        "backendAddressPoolId": {
          "description": "The ID of the Application Gateway's Backend Address Pool which this Network Interface which should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "ipConfigurationName": {
          "description": "The Name of the IP Configuration within the Network Interface which should be connected to the Backend Address Pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaceId": {
          "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "backendAddressPoolId": {
          "description": "The ID of the Application Gateway's Backend Address Pool which this Network Interface which should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "ipConfigurationName": {
          "description": "The Name of the IP Configuration within the Network Interface which should be connected to the Backend Address Pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaceId": {
          "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "backendAddressPoolId",
        "ipConfigurationName",
        "networkInterfaceId"
      ],
      "requiredInputs": [
        "backendAddressPoolId",
        "ipConfigurationName",
        "networkInterfaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkInterfaceApplicationGatewayBackendAddressPoolAssociation resources.\n",
        "properties": {
          "backendAddressPoolId": {
            "description": "The ID of the Application Gateway's Backend Address Pool which this Network Interface which should be connected to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "ipConfigurationName": {
            "description": "The Name of the IP Configuration within the Network Interface which should be connected to the Backend Address Pool. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkInterfaceId": {
            "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/networkInterfaceApplicationSecurityGroupAssociation:NetworkInterfaceApplicationSecurityGroupAssociation": {
      "description": "Manages the association between a Network Interface and a Application Security Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst exampleApplicationSecurityGroup = new azure.network.ApplicationSecurityGroup(\"exampleApplicationSecurityGroup\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"testconfiguration1\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleNetworkInterfaceApplicationSecurityGroupAssociation = new azure.network.NetworkInterfaceApplicationSecurityGroupAssociation(\"exampleNetworkInterfaceApplicationSecurityGroupAssociation\", {\n    networkInterfaceId: exampleNetworkInterface.id,\n    applicationSecurityGroupId: exampleApplicationSecurityGroup.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"])\nexample_application_security_group = azure.network.ApplicationSecurityGroup(\"exampleApplicationSecurityGroup\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"testconfiguration1\",\n        subnet_id=example_subnet.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nexample_network_interface_application_security_group_association = azure.network.NetworkInterfaceApplicationSecurityGroupAssociation(\"exampleNetworkInterfaceApplicationSecurityGroupAssociation\",\n    network_interface_id=example_network_interface.id,\n    application_security_group_id=example_application_security_group.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n        });\n        var exampleApplicationSecurityGroup = new Azure.Network.ApplicationSecurityGroup(\"exampleApplicationSecurityGroup\", new Azure.Network.ApplicationSecurityGroupArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"testconfiguration1\",\n                    SubnetId = exampleSubnet.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var exampleNetworkInterfaceApplicationSecurityGroupAssociation = new Azure.Network.NetworkInterfaceApplicationSecurityGroupAssociation(\"exampleNetworkInterfaceApplicationSecurityGroupAssociation\", new Azure.Network.NetworkInterfaceApplicationSecurityGroupAssociationArgs\n        {\n            NetworkInterfaceId = exampleNetworkInterface.Id,\n            ApplicationSecurityGroupId = exampleApplicationSecurityGroup.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleApplicationSecurityGroup, err := network.NewApplicationSecurityGroup(ctx, \"exampleApplicationSecurityGroup\", \u0026network.ApplicationSecurityGroupArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkInterface, err := network.NewNetworkInterface(ctx, \"exampleNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"testconfiguration1\"),\n\t\t\t\t\tSubnetId:                   exampleSubnet.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\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 = network.NewNetworkInterfaceApplicationSecurityGroupAssociation(ctx, \"exampleNetworkInterfaceApplicationSecurityGroupAssociation\", \u0026network.NetworkInterfaceApplicationSecurityGroupAssociationArgs{\n\t\t\tNetworkInterfaceId:         exampleNetworkInterface.ID(),\n\t\t\tApplicationSecurityGroupId: exampleApplicationSecurityGroup.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAssociations between Network Interfaces and Application Security Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/networkInterfaceApplicationSecurityGroupAssociation:NetworkInterfaceApplicationSecurityGroupAssociation association1 \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.network/networkInterfaces/nic1|/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/applicationSecurityGroups/securityGroup1\"\n```\n\n ",
      "inputProperties": {
        "applicationSecurityGroupId": {
          "description": "The ID of the Application Security Group which this Network Interface which should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaceId": {
          "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "applicationSecurityGroupId": {
          "description": "The ID of the Application Security Group which this Network Interface which should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaceId": {
          "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "applicationSecurityGroupId",
        "networkInterfaceId"
      ],
      "requiredInputs": [
        "applicationSecurityGroupId",
        "networkInterfaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkInterfaceApplicationSecurityGroupAssociation resources.\n",
        "properties": {
          "applicationSecurityGroupId": {
            "description": "The ID of the Application Security Group which this Network Interface which should be connected to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkInterfaceId": {
            "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/networkInterfaceBackendAddressPoolAssociation:NetworkInterfaceBackendAddressPoolAssociation": {
      "description": "Manages the association between a Network Interface and a Load Balancer's Backend Address Pool.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n});\nconst exampleLoadBalancer = new azure.lb.LoadBalancer(\"exampleLoadBalancer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    frontendIpConfigurations: [{\n        name: \"primary\",\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst exampleBackendAddressPool = new azure.lb.BackendAddressPool(\"exampleBackendAddressPool\", {\n    resourceGroupName: exampleResourceGroup.name,\n    loadbalancerId: exampleLoadBalancer.id,\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"testconfiguration1\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleNetworkInterfaceBackendAddressPoolAssociation = new azure.network.NetworkInterfaceBackendAddressPoolAssociation(\"exampleNetworkInterfaceBackendAddressPoolAssociation\", {\n    networkInterfaceId: exampleNetworkInterface.id,\n    ipConfigurationName: \"testconfiguration1\",\n    backendAddressPoolId: exampleBackendAddressPool.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\")\nexample_load_balancer = azure.lb.LoadBalancer(\"exampleLoadBalancer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    frontend_ip_configurations=[azure.lb.LoadBalancerFrontendIpConfigurationArgs(\n        name=\"primary\",\n        public_ip_address_id=example_public_ip.id,\n    )])\nexample_backend_address_pool = azure.lb.BackendAddressPool(\"exampleBackendAddressPool\",\n    resource_group_name=example_resource_group.name,\n    loadbalancer_id=example_load_balancer.id)\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"testconfiguration1\",\n        subnet_id=example_subnet.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nexample_network_interface_backend_address_pool_association = azure.network.NetworkInterfaceBackendAddressPoolAssociation(\"exampleNetworkInterfaceBackendAddressPoolAssociation\",\n    network_interface_id=example_network_interface.id,\n    ip_configuration_name=\"testconfiguration1\",\n    backend_address_pool_id=example_backend_address_pool.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n        });\n        var exampleLoadBalancer = new Azure.Lb.LoadBalancer(\"exampleLoadBalancer\", new Azure.Lb.LoadBalancerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            FrontendIpConfigurations = \n            {\n                new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs\n                {\n                    Name = \"primary\",\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var exampleBackendAddressPool = new Azure.Lb.BackendAddressPool(\"exampleBackendAddressPool\", new Azure.Lb.BackendAddressPoolArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            LoadbalancerId = exampleLoadBalancer.Id,\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"testconfiguration1\",\n                    SubnetId = exampleSubnet.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var exampleNetworkInterfaceBackendAddressPoolAssociation = new Azure.Network.NetworkInterfaceBackendAddressPoolAssociation(\"exampleNetworkInterfaceBackendAddressPoolAssociation\", new Azure.Network.NetworkInterfaceBackendAddressPoolAssociationArgs\n        {\n            NetworkInterfaceId = exampleNetworkInterface.Id,\n            IpConfigurationName = \"testconfiguration1\",\n            BackendAddressPoolId = exampleBackendAddressPool.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLoadBalancer, err := lb.NewLoadBalancer(ctx, \"exampleLoadBalancer\", \u0026lb.LoadBalancerArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tFrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{\n\t\t\t\t\u0026lb.LoadBalancerFrontendIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(\"primary\"),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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\texampleBackendAddressPool, err := lb.NewBackendAddressPool(ctx, \"exampleBackendAddressPool\", \u0026lb.BackendAddressPoolArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLoadbalancerId:    exampleLoadBalancer.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkInterface, err := network.NewNetworkInterface(ctx, \"exampleNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"testconfiguration1\"),\n\t\t\t\t\tSubnetId:                   exampleSubnet.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\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 = network.NewNetworkInterfaceBackendAddressPoolAssociation(ctx, \"exampleNetworkInterfaceBackendAddressPoolAssociation\", \u0026network.NetworkInterfaceBackendAddressPoolAssociationArgs{\n\t\t\tNetworkInterfaceId:   exampleNetworkInterface.ID(),\n\t\t\tIpConfigurationName:  pulumi.String(\"testconfiguration1\"),\n\t\t\tBackendAddressPoolId: exampleBackendAddressPool.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAssociations between Network Interfaces and Load Balancer Backend Address Pools can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/networkInterfaceBackendAddressPoolAssociation:NetworkInterfaceBackendAddressPoolAssociation association1 \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.network/networkInterfaces/nic1/ipConfigurations/example|/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/loadBalancers/lb1/backendAddressPools/pool1\"\n```\n\n ",
      "inputProperties": {
        "backendAddressPoolId": {
          "description": "The ID of the Load Balancer Backend Address Pool which this Network Interface should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "ipConfigurationName": {
          "description": "The Name of the IP Configuration within the Network Interface which should be connected to the Backend Address Pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaceId": {
          "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "backendAddressPoolId": {
          "description": "The ID of the Load Balancer Backend Address Pool which this Network Interface should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "ipConfigurationName": {
          "description": "The Name of the IP Configuration within the Network Interface which should be connected to the Backend Address Pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaceId": {
          "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "backendAddressPoolId",
        "ipConfigurationName",
        "networkInterfaceId"
      ],
      "requiredInputs": [
        "backendAddressPoolId",
        "ipConfigurationName",
        "networkInterfaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkInterfaceBackendAddressPoolAssociation resources.\n",
        "properties": {
          "backendAddressPoolId": {
            "description": "The ID of the Load Balancer Backend Address Pool which this Network Interface should be connected to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "ipConfigurationName": {
            "description": "The Name of the IP Configuration within the Network Interface which should be connected to the Backend Address Pool. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkInterfaceId": {
            "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/networkInterfaceNatRuleAssociation:NetworkInterfaceNatRuleAssociation": {
      "description": "Manages the association between a Network Interface and a Load Balancer's NAT Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n});\nconst exampleLoadBalancer = new azure.lb.LoadBalancer(\"exampleLoadBalancer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    frontendIpConfigurations: [{\n        name: \"primary\",\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst exampleNatRule = new azure.lb.NatRule(\"exampleNatRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    loadbalancerId: exampleLoadBalancer.id,\n    protocol: \"Tcp\",\n    frontendPort: 3389,\n    backendPort: 3389,\n    frontendIpConfigurationName: \"primary\",\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"testconfiguration1\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleNetworkInterfaceNatRuleAssociation = new azure.network.NetworkInterfaceNatRuleAssociation(\"exampleNetworkInterfaceNatRuleAssociation\", {\n    networkInterfaceId: exampleNetworkInterface.id,\n    ipConfigurationName: \"testconfiguration1\",\n    natRuleId: exampleNatRule.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\")\nexample_load_balancer = azure.lb.LoadBalancer(\"exampleLoadBalancer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    frontend_ip_configurations=[azure.lb.LoadBalancerFrontendIpConfigurationArgs(\n        name=\"primary\",\n        public_ip_address_id=example_public_ip.id,\n    )])\nexample_nat_rule = azure.lb.NatRule(\"exampleNatRule\",\n    resource_group_name=example_resource_group.name,\n    loadbalancer_id=example_load_balancer.id,\n    protocol=\"Tcp\",\n    frontend_port=3389,\n    backend_port=3389,\n    frontend_ip_configuration_name=\"primary\")\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"testconfiguration1\",\n        subnet_id=example_subnet.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nexample_network_interface_nat_rule_association = azure.network.NetworkInterfaceNatRuleAssociation(\"exampleNetworkInterfaceNatRuleAssociation\",\n    network_interface_id=example_network_interface.id,\n    ip_configuration_name=\"testconfiguration1\",\n    nat_rule_id=example_nat_rule.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n        });\n        var exampleLoadBalancer = new Azure.Lb.LoadBalancer(\"exampleLoadBalancer\", new Azure.Lb.LoadBalancerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            FrontendIpConfigurations = \n            {\n                new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs\n                {\n                    Name = \"primary\",\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var exampleNatRule = new Azure.Lb.NatRule(\"exampleNatRule\", new Azure.Lb.NatRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            LoadbalancerId = exampleLoadBalancer.Id,\n            Protocol = \"Tcp\",\n            FrontendPort = 3389,\n            BackendPort = 3389,\n            FrontendIpConfigurationName = \"primary\",\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"testconfiguration1\",\n                    SubnetId = exampleSubnet.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var exampleNetworkInterfaceNatRuleAssociation = new Azure.Network.NetworkInterfaceNatRuleAssociation(\"exampleNetworkInterfaceNatRuleAssociation\", new Azure.Network.NetworkInterfaceNatRuleAssociationArgs\n        {\n            NetworkInterfaceId = exampleNetworkInterface.Id,\n            IpConfigurationName = \"testconfiguration1\",\n            NatRuleId = exampleNatRule.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLoadBalancer, err := lb.NewLoadBalancer(ctx, \"exampleLoadBalancer\", \u0026lb.LoadBalancerArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tFrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{\n\t\t\t\t\u0026lb.LoadBalancerFrontendIpConfigurationArgs{\n\t\t\t\t\tName:              pulumi.String(\"primary\"),\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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\texampleNatRule, err := lb.NewNatRule(ctx, \"exampleNatRule\", \u0026lb.NatRuleArgs{\n\t\t\tResourceGroupName:           exampleResourceGroup.Name,\n\t\t\tLoadbalancerId:              exampleLoadBalancer.ID(),\n\t\t\tProtocol:                    pulumi.String(\"Tcp\"),\n\t\t\tFrontendPort:                pulumi.Int(3389),\n\t\t\tBackendPort:                 pulumi.Int(3389),\n\t\t\tFrontendIpConfigurationName: pulumi.String(\"primary\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkInterface, err := network.NewNetworkInterface(ctx, \"exampleNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"testconfiguration1\"),\n\t\t\t\t\tSubnetId:                   exampleSubnet.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\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 = network.NewNetworkInterfaceNatRuleAssociation(ctx, \"exampleNetworkInterfaceNatRuleAssociation\", \u0026network.NetworkInterfaceNatRuleAssociationArgs{\n\t\t\tNetworkInterfaceId:  exampleNetworkInterface.ID(),\n\t\t\tIpConfigurationName: pulumi.String(\"testconfiguration1\"),\n\t\t\tNatRuleId:           exampleNatRule.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAssociations between Network Interfaces and Load Balancer NAT Rule can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/networkInterfaceNatRuleAssociation:NetworkInterfaceNatRuleAssociation association1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.network/networkInterfaces/nic1/ipConfigurations/example|/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/loadBalancers/lb1/inboundNatRules/rule1\n```\n\n ",
      "inputProperties": {
        "ipConfigurationName": {
          "description": "The Name of the IP Configuration within the Network Interface which should be connected to the NAT Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "natRuleId": {
          "description": "The ID of the Load Balancer NAT Rule which this Network Interface which should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaceId": {
          "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "ipConfigurationName": {
          "description": "The Name of the IP Configuration within the Network Interface which should be connected to the NAT Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "natRuleId": {
          "description": "The ID of the Load Balancer NAT Rule which this Network Interface which should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkInterfaceId": {
          "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "ipConfigurationName",
        "natRuleId",
        "networkInterfaceId"
      ],
      "requiredInputs": [
        "ipConfigurationName",
        "natRuleId",
        "networkInterfaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkInterfaceNatRuleAssociation resources.\n",
        "properties": {
          "ipConfigurationName": {
            "description": "The Name of the IP Configuration within the Network Interface which should be connected to the NAT Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "natRuleId": {
            "description": "The ID of the Load Balancer NAT Rule which this Network Interface which should be connected to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkInterfaceId": {
            "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/networkInterfaceSecurityGroupAssociation:NetworkInterfaceSecurityGroupAssociation": {
      "description": "Manages the association between a Network Interface and a Network Security Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNetworkSecurityGroup = new azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"testconfiguration1\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleNetworkInterfaceSecurityGroupAssociation = new azure.network.NetworkInterfaceSecurityGroupAssociation(\"exampleNetworkInterfaceSecurityGroupAssociation\", {\n    networkInterfaceId: exampleNetworkInterface.id,\n    networkSecurityGroupId: exampleNetworkSecurityGroup.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_network_security_group = azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"testconfiguration1\",\n        subnet_id=example_subnet.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nexample_network_interface_security_group_association = azure.network.NetworkInterfaceSecurityGroupAssociation(\"exampleNetworkInterfaceSecurityGroupAssociation\",\n    network_interface_id=example_network_interface.id,\n    network_security_group_id=example_network_security_group.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleNetworkSecurityGroup = new Azure.Network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", new Azure.Network.NetworkSecurityGroupArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"testconfiguration1\",\n                    SubnetId = exampleSubnet.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var exampleNetworkInterfaceSecurityGroupAssociation = new Azure.Network.NetworkInterfaceSecurityGroupAssociation(\"exampleNetworkInterfaceSecurityGroupAssociation\", new Azure.Network.NetworkInterfaceSecurityGroupAssociationArgs\n        {\n            NetworkInterfaceId = exampleNetworkInterface.Id,\n            NetworkSecurityGroupId = exampleNetworkSecurityGroup.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkSecurityGroup, err := network.NewNetworkSecurityGroup(ctx, \"exampleNetworkSecurityGroup\", \u0026network.NetworkSecurityGroupArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkInterface, err := network.NewNetworkInterface(ctx, \"exampleNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"testconfiguration1\"),\n\t\t\t\t\tSubnetId:                   exampleSubnet.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\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 = network.NewNetworkInterfaceSecurityGroupAssociation(ctx, \"exampleNetworkInterfaceSecurityGroupAssociation\", \u0026network.NetworkInterfaceSecurityGroupAssociationArgs{\n\t\t\tNetworkInterfaceId:     exampleNetworkInterface.ID(),\n\t\t\tNetworkSecurityGroupId: exampleNetworkSecurityGroup.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAssociations between Network Interfaces and Network Security Group can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/networkInterfaceSecurityGroupAssociation:NetworkInterfaceSecurityGroupAssociation association1 \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.network/networkInterfaces/example|/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/networkSecurityGroups/group1\"\n```\n\n ",
      "inputProperties": {
        "networkInterfaceId": {
          "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkSecurityGroupId": {
          "description": "The ID of the Network Security Group which should be attached to the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "networkInterfaceId": {
          "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkSecurityGroupId": {
          "description": "The ID of the Network Security Group which should be attached to the Network Interface. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "networkInterfaceId",
        "networkSecurityGroupId"
      ],
      "requiredInputs": [
        "networkInterfaceId",
        "networkSecurityGroupId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkInterfaceSecurityGroupAssociation resources.\n",
        "properties": {
          "networkInterfaceId": {
            "description": "The ID of the Network Interface. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkSecurityGroupId": {
            "description": "The ID of the Network Security Group which should be attached to the Network Interface. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/networkPacketCapture:NetworkPacketCapture": {
      "description": "Configures Network Packet Capturing against a Virtual Machine using a Network Watcher.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNetworkWatcher = new azure.network.NetworkWatcher(\"exampleNetworkWatcher\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"testconfiguration1\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleVirtualMachine = new azure.compute.VirtualMachine(\"exampleVirtualMachine\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    networkInterfaceIds: [exampleNetworkInterface.id],\n    vmSize: \"Standard_F2\",\n    storageImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04-LTS\",\n        version: \"latest\",\n    },\n    storageOsDisk: {\n        name: \"osdisk\",\n        caching: \"ReadWrite\",\n        createOption: \"FromImage\",\n        managedDiskType: \"Standard_LRS\",\n    },\n    osProfile: {\n        computerName: \"pctest-vm\",\n        adminUsername: \"testadmin\",\n        adminPassword: \"Password1234!\",\n    },\n    osProfileLinuxConfig: {\n        disablePasswordAuthentication: false,\n    },\n});\nconst exampleExtension = new azure.compute.Extension(\"exampleExtension\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    virtualMachineName: exampleVirtualMachine.name,\n    publisher: \"Microsoft.Azure.NetworkWatcher\",\n    type: \"NetworkWatcherAgentLinux\",\n    typeHandlerVersion: \"1.4\",\n    autoUpgradeMinorVersion: true,\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleNetworkPacketCapture = new azure.network.NetworkPacketCapture(\"exampleNetworkPacketCapture\", {\n    networkWatcherName: exampleNetworkWatcher.name,\n    resourceGroupName: exampleResourceGroup.name,\n    targetResourceId: exampleVirtualMachine.id,\n    storageLocation: {\n        storageAccountId: exampleAccount.id,\n    },\n}, {\n    dependsOn: [exampleExtension],\n});\n```\n\n\u003e **NOTE:** This Resource requires that [the Network Watcher Virtual Machine Extension](https://docs.microsoft.com/azure/network-watcher/network-watcher-packet-capture-manage-portal#before-you-begin) is installed on the Virtual Machine before capturing can be enabled which can be installed via the `azure.compute.Extension` resource.\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPacket Captures can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/networkPacketCapture:NetworkPacketCapture capture1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/networkWatchers/watcher1/packetCaptures/capture1\n```\n\n ",
      "inputProperties": {
        "filters": {
          "description": "One or more `filter` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:network/NetworkPacketCaptureFilter:NetworkPacketCaptureFilter"
          },
          "type": "array"
        },
        "maximumBytesPerPacket": {
          "description": "The number of bytes captured per packet. The remaining bytes are truncated. Defaults to `0` (Entire Packet Captured). Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "maximumBytesPerSession": {
          "description": "Maximum size of the capture in Bytes. Defaults to `1073741824` (1GB). Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "maximumCaptureDuration": {
          "description": "The maximum duration of the capture session in seconds. Defaults to `18000` (5 hours). Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name to use for this Network Packet Capture. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkWatcherName": {
          "description": "The name of the Network Watcher. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Network Watcher exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageLocation": {
          "$ref": "#/types/azure:network/NetworkPacketCaptureStorageLocation:NetworkPacketCaptureStorageLocation",
          "description": "A `storage_location` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "targetResourceId": {
          "description": "The ID of the Resource to capture packets from. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "filters": {
          "description": "One or more `filter` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:network/NetworkPacketCaptureFilter:NetworkPacketCaptureFilter"
          },
          "type": "array"
        },
        "maximumBytesPerPacket": {
          "description": "The number of bytes captured per packet. The remaining bytes are truncated. Defaults to `0` (Entire Packet Captured). Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "maximumBytesPerSession": {
          "description": "Maximum size of the capture in Bytes. Defaults to `1073741824` (1GB). Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "maximumCaptureDuration": {
          "description": "The maximum duration of the capture session in seconds. Defaults to `18000` (5 hours). Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name to use for this Network Packet Capture. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkWatcherName": {
          "description": "The name of the Network Watcher. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Network Watcher exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageLocation": {
          "$ref": "#/types/azure:network/NetworkPacketCaptureStorageLocation:NetworkPacketCaptureStorageLocation",
          "description": "A `storage_location` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "targetResourceId": {
          "description": "The ID of the Resource to capture packets from. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "networkWatcherName",
        "resourceGroupName",
        "storageLocation",
        "targetResourceId"
      ],
      "requiredInputs": [
        "networkWatcherName",
        "resourceGroupName",
        "storageLocation",
        "targetResourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkPacketCapture resources.\n",
        "properties": {
          "filters": {
            "description": "One or more `filter` blocks as defined below. Changing this forces a new resource to be created.\n",
            "items": {
              "$ref": "#/types/azure:network/NetworkPacketCaptureFilter:NetworkPacketCaptureFilter"
            },
            "type": "array"
          },
          "maximumBytesPerPacket": {
            "description": "The number of bytes captured per packet. The remaining bytes are truncated. Defaults to `0` (Entire Packet Captured). Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "maximumBytesPerSession": {
            "description": "Maximum size of the capture in Bytes. Defaults to `1073741824` (1GB). Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "maximumCaptureDuration": {
            "description": "The maximum duration of the capture session in seconds. Defaults to `18000` (5 hours). Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "name": {
            "description": "The name to use for this Network Packet Capture. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkWatcherName": {
            "description": "The name of the Network Watcher. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Network Watcher exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageLocation": {
            "$ref": "#/types/azure:network/NetworkPacketCaptureStorageLocation:NetworkPacketCaptureStorageLocation",
            "description": "A `storage_location` block as defined below. Changing this forces a new resource to be created.\n"
          },
          "targetResourceId": {
            "description": "The ID of the Resource to capture packets from. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/networkSecurityGroup:NetworkSecurityGroup": {
      "description": "Manages a network security group that contains a list of network security rules.  Network security groups enable inbound or outbound traffic to be enabled or denied.\n\n\u003e **NOTE on Network Security Groups and Network Security Rules:** This provider currently\nprovides both a standalone Network Security Rule resource, and allows for Network Security Rules to be defined in-line within the Network Security Group resource.\nAt this time you cannot use a Network Security Group with in-line Network Security Rules in conjunction with any Network Security Rule resources. Doing so will cause a conflict of rule settings and will overwrite rules.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNetworkSecurityGroup = new azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    securityRules: [{\n        name: \"test123\",\n        priority: 100,\n        direction: \"Inbound\",\n        access: \"Allow\",\n        protocol: \"Tcp\",\n        sourcePortRange: \"*\",\n        destinationPortRange: \"*\",\n        sourceAddressPrefix: \"*\",\n        destinationAddressPrefix: \"*\",\n    }],\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_network_security_group = azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    security_rules=[azure.network.NetworkSecurityGroupSecurityRuleArgs(\n        name=\"test123\",\n        priority=100,\n        direction=\"Inbound\",\n        access=\"Allow\",\n        protocol=\"Tcp\",\n        source_port_range=\"*\",\n        destination_port_range=\"*\",\n        source_address_prefix=\"*\",\n        destination_address_prefix=\"*\",\n    )],\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNetworkSecurityGroup = new Azure.Network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", new Azure.Network.NetworkSecurityGroupArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SecurityRules = \n            {\n                new Azure.Network.Inputs.NetworkSecurityGroupSecurityRuleArgs\n                {\n                    Name = \"test123\",\n                    Priority = 100,\n                    Direction = \"Inbound\",\n                    Access = \"Allow\",\n                    Protocol = \"Tcp\",\n                    SourcePortRange = \"*\",\n                    DestinationPortRange = \"*\",\n                    SourceAddressPrefix = \"*\",\n                    DestinationAddressPrefix = \"*\",\n                },\n            },\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNetworkSecurityGroup(ctx, \"exampleNetworkSecurityGroup\", \u0026network.NetworkSecurityGroupArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSecurityRules: network.NetworkSecurityGroupSecurityRuleArray{\n\t\t\t\t\u0026network.NetworkSecurityGroupSecurityRuleArgs{\n\t\t\t\t\tName:                     pulumi.String(\"test123\"),\n\t\t\t\t\tPriority:                 pulumi.Int(100),\n\t\t\t\t\tDirection:                pulumi.String(\"Inbound\"),\n\t\t\t\t\tAccess:                   pulumi.String(\"Allow\"),\n\t\t\t\t\tProtocol:                 pulumi.String(\"Tcp\"),\n\t\t\t\t\tSourcePortRange:          pulumi.String(\"*\"),\n\t\t\t\t\tDestinationPortRange:     pulumi.String(\"*\"),\n\t\t\t\t\tSourceAddressPrefix:      pulumi.String(\"*\"),\n\t\t\t\t\tDestinationAddressPrefix: pulumi.String(\"*\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNetwork Security Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/networkSecurityGroup:NetworkSecurityGroup group1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/networkSecurityGroups/mySecurityGroup\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the security rule.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the network security group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "securityRules": {
          "description": "A list of objects representing security rules, as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/NetworkSecurityGroupSecurityRule:NetworkSecurityGroupSecurityRule"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the security rule.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the network security group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "securityRules": {
          "description": "A list of objects representing security rules, as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/NetworkSecurityGroupSecurityRule:NetworkSecurityGroupSecurityRule"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "securityRules"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkSecurityGroup resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the security rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the network security group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "securityRules": {
            "description": "A list of objects representing security rules, as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/NetworkSecurityGroupSecurityRule:NetworkSecurityGroupSecurityRule"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:network/networkSecurityRule:NetworkSecurityRule": {
      "description": "Manages a Network Security Rule.\n\n\u003e **NOTE on Network Security Groups and Network Security Rules:** This provider currently\nprovides both a standalone Network Security Rule resource, and allows for Network Security Rules to be defined in-line within the Network Security Group resource.\nAt this time you cannot use a Network Security Group with in-line Network Security Rules in conjunction with any Network Security Rule resources. Doing so will cause a conflict of rule settings and will overwrite rules.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNetworkSecurityGroup = new azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleNetworkSecurityRule = new azure.network.NetworkSecurityRule(\"exampleNetworkSecurityRule\", {\n    priority: 100,\n    direction: \"Outbound\",\n    access: \"Allow\",\n    protocol: \"Tcp\",\n    sourcePortRange: \"*\",\n    destinationPortRange: \"*\",\n    sourceAddressPrefix: \"*\",\n    destinationAddressPrefix: \"*\",\n    resourceGroupName: exampleResourceGroup.name,\n    networkSecurityGroupName: exampleNetworkSecurityGroup.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_network_security_group = azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_network_security_rule = azure.network.NetworkSecurityRule(\"exampleNetworkSecurityRule\",\n    priority=100,\n    direction=\"Outbound\",\n    access=\"Allow\",\n    protocol=\"Tcp\",\n    source_port_range=\"*\",\n    destination_port_range=\"*\",\n    source_address_prefix=\"*\",\n    destination_address_prefix=\"*\",\n    resource_group_name=example_resource_group.name,\n    network_security_group_name=example_network_security_group.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNetworkSecurityGroup = new Azure.Network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", new Azure.Network.NetworkSecurityGroupArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleNetworkSecurityRule = new Azure.Network.NetworkSecurityRule(\"exampleNetworkSecurityRule\", new Azure.Network.NetworkSecurityRuleArgs\n        {\n            Priority = 100,\n            Direction = \"Outbound\",\n            Access = \"Allow\",\n            Protocol = \"Tcp\",\n            SourcePortRange = \"*\",\n            DestinationPortRange = \"*\",\n            SourceAddressPrefix = \"*\",\n            DestinationAddressPrefix = \"*\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            NetworkSecurityGroupName = exampleNetworkSecurityGroup.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkSecurityGroup, err := network.NewNetworkSecurityGroup(ctx, \"exampleNetworkSecurityGroup\", \u0026network.NetworkSecurityGroupArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNetworkSecurityRule(ctx, \"exampleNetworkSecurityRule\", \u0026network.NetworkSecurityRuleArgs{\n\t\t\tPriority:                 pulumi.Int(100),\n\t\t\tDirection:                pulumi.String(\"Outbound\"),\n\t\t\tAccess:                   pulumi.String(\"Allow\"),\n\t\t\tProtocol:                 pulumi.String(\"Tcp\"),\n\t\t\tSourcePortRange:          pulumi.String(\"*\"),\n\t\t\tDestinationPortRange:     pulumi.String(\"*\"),\n\t\t\tSourceAddressPrefix:      pulumi.String(\"*\"),\n\t\t\tDestinationAddressPrefix: pulumi.String(\"*\"),\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tNetworkSecurityGroupName: exampleNetworkSecurityGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNetwork Security Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/networkSecurityRule:NetworkSecurityRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/networkSecurityGroups/mySecurityGroup/securityRules/rule1\n```\n\n ",
      "inputProperties": {
        "access": {
          "description": "Specifies whether network traffic is allowed or denied. Possible values are `Allow` and `Deny`.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this rule. Restricted to 140 characters.\n",
          "type": "string"
        },
        "destinationAddressPrefix": {
          "description": "CIDR or destination IP range or * to match any IP. Tags such as ‘VirtualNetwork’, ‘AzureLoadBalancer’ and ‘Internet’ can also be used. Besides, it also supports all available Service Tags like ‘Sql.WestEurope‘, ‘Storage.EastUS‘, etc. You can list the available service tags with the cli: ```shell az network list-service-tags --location westcentralus```. For further information please see [Azure CLI - az network list-service-tags](https://docs.microsoft.com/en-us/cli/azure/network?view=azure-cli-latest#az-network-list-service-tags). This is required if `destination_address_prefixes` is not specified.\n",
          "type": "string"
        },
        "destinationAddressPrefixes": {
          "description": "List of destination address prefixes. Tags may not be used. This is required if `destination_address_prefix` is not specified.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "destinationApplicationSecurityGroupIds": {
          "description": "A List of destination Application Security Group ID's\n",
          "type": "string"
        },
        "destinationPortRange": {
          "description": "Destination Port or Range. Integer or range between `0` and `65535` or `*` to match any. This is required if `destination_port_ranges` is not specified.\n",
          "type": "string"
        },
        "destinationPortRanges": {
          "description": "List of destination ports or port ranges. This is required if `destination_port_range` is not specified.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "direction": {
          "description": "The direction specifies if rule will be evaluated on incoming or outgoing traffic. Possible values are `Inbound` and `Outbound`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the security rule. This needs to be unique across all Rules in the Network Security Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkSecurityGroupName": {
          "description": "The name of the Network Security Group that we want to attach the rule to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "Specifies the priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule.\n",
          "type": "integer"
        },
        "protocol": {
          "description": "Network protocol this rule applies to. Possible values include `Tcp`, `Udp`, `Icmp`, `Esp`, `Ah` or `*` (which matches all).\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Network Security Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceAddressPrefix": {
          "description": "CIDR or source IP range or * to match any IP. Tags such as ‘VirtualNetwork’, ‘AzureLoadBalancer’ and ‘Internet’ can also be used. This is required if `source_address_prefixes` is not specified.\n",
          "type": "string"
        },
        "sourceAddressPrefixes": {
          "description": "List of source address prefixes. Tags may not be used. This is required if `source_address_prefix` is not specified.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "sourceApplicationSecurityGroupIds": {
          "description": "A List of source Application Security Group ID's\n",
          "type": "string"
        },
        "sourcePortRange": {
          "description": "Source Port or Range. Integer or range between `0` and `65535` or `*` to match any. This is required if `source_port_ranges` is not specified.\n",
          "type": "string"
        },
        "sourcePortRanges": {
          "description": "List of source ports or port ranges. This is required if `source_port_range` is not specified.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "access": {
          "description": "Specifies whether network traffic is allowed or denied. Possible values are `Allow` and `Deny`.\n",
          "type": "string"
        },
        "description": {
          "description": "A description for this rule. Restricted to 140 characters.\n",
          "type": "string"
        },
        "destinationAddressPrefix": {
          "description": "CIDR or destination IP range or * to match any IP. Tags such as ‘VirtualNetwork’, ‘AzureLoadBalancer’ and ‘Internet’ can also be used. Besides, it also supports all available Service Tags like ‘Sql.WestEurope‘, ‘Storage.EastUS‘, etc. You can list the available service tags with the cli: ```shell az network list-service-tags --location westcentralus```. For further information please see [Azure CLI - az network list-service-tags](https://docs.microsoft.com/en-us/cli/azure/network?view=azure-cli-latest#az-network-list-service-tags). This is required if `destination_address_prefixes` is not specified.\n",
          "type": "string"
        },
        "destinationAddressPrefixes": {
          "description": "List of destination address prefixes. Tags may not be used. This is required if `destination_address_prefix` is not specified.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "destinationApplicationSecurityGroupIds": {
          "description": "A List of destination Application Security Group ID's\n",
          "type": "string"
        },
        "destinationPortRange": {
          "description": "Destination Port or Range. Integer or range between `0` and `65535` or `*` to match any. This is required if `destination_port_ranges` is not specified.\n",
          "type": "string"
        },
        "destinationPortRanges": {
          "description": "List of destination ports or port ranges. This is required if `destination_port_range` is not specified.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "direction": {
          "description": "The direction specifies if rule will be evaluated on incoming or outgoing traffic. Possible values are `Inbound` and `Outbound`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the security rule. This needs to be unique across all Rules in the Network Security Group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkSecurityGroupName": {
          "description": "The name of the Network Security Group that we want to attach the rule to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "Specifies the priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule.\n",
          "type": "integer"
        },
        "protocol": {
          "description": "Network protocol this rule applies to. Possible values include `Tcp`, `Udp`, `Icmp`, `Esp`, `Ah` or `*` (which matches all).\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Network Security Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sourceAddressPrefix": {
          "description": "CIDR or source IP range or * to match any IP. Tags such as ‘VirtualNetwork’, ‘AzureLoadBalancer’ and ‘Internet’ can also be used. This is required if `source_address_prefixes` is not specified.\n",
          "type": "string"
        },
        "sourceAddressPrefixes": {
          "description": "List of source address prefixes. Tags may not be used. This is required if `source_address_prefix` is not specified.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "sourceApplicationSecurityGroupIds": {
          "description": "A List of source Application Security Group ID's\n",
          "type": "string"
        },
        "sourcePortRange": {
          "description": "Source Port or Range. Integer or range between `0` and `65535` or `*` to match any. This is required if `source_port_ranges` is not specified.\n",
          "type": "string"
        },
        "sourcePortRanges": {
          "description": "List of source ports or port ranges. This is required if `source_port_range` is not specified.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "access",
        "direction",
        "name",
        "networkSecurityGroupName",
        "priority",
        "protocol",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "access",
        "direction",
        "networkSecurityGroupName",
        "priority",
        "protocol",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkSecurityRule resources.\n",
        "properties": {
          "access": {
            "description": "Specifies whether network traffic is allowed or denied. Possible values are `Allow` and `Deny`.\n",
            "type": "string"
          },
          "description": {
            "description": "A description for this rule. Restricted to 140 characters.\n",
            "type": "string"
          },
          "destinationAddressPrefix": {
            "description": "CIDR or destination IP range or * to match any IP. Tags such as ‘VirtualNetwork’, ‘AzureLoadBalancer’ and ‘Internet’ can also be used. Besides, it also supports all available Service Tags like ‘Sql.WestEurope‘, ‘Storage.EastUS‘, etc. You can list the available service tags with the cli: ```shell az network list-service-tags --location westcentralus```. For further information please see [Azure CLI - az network list-service-tags](https://docs.microsoft.com/en-us/cli/azure/network?view=azure-cli-latest#az-network-list-service-tags). This is required if `destination_address_prefixes` is not specified.\n",
            "type": "string"
          },
          "destinationAddressPrefixes": {
            "description": "List of destination address prefixes. Tags may not be used. This is required if `destination_address_prefix` is not specified.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "destinationApplicationSecurityGroupIds": {
            "description": "A List of destination Application Security Group ID's\n",
            "type": "string"
          },
          "destinationPortRange": {
            "description": "Destination Port or Range. Integer or range between `0` and `65535` or `*` to match any. This is required if `destination_port_ranges` is not specified.\n",
            "type": "string"
          },
          "destinationPortRanges": {
            "description": "List of destination ports or port ranges. This is required if `destination_port_range` is not specified.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "direction": {
            "description": "The direction specifies if rule will be evaluated on incoming or outgoing traffic. Possible values are `Inbound` and `Outbound`.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the security rule. This needs to be unique across all Rules in the Network Security Group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkSecurityGroupName": {
            "description": "The name of the Network Security Group that we want to attach the rule to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "priority": {
            "description": "Specifies the priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule.\n",
            "type": "integer"
          },
          "protocol": {
            "description": "Network protocol this rule applies to. Possible values include `Tcp`, `Udp`, `Icmp`, `Esp`, `Ah` or `*` (which matches all).\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Network Security Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sourceAddressPrefix": {
            "description": "CIDR or source IP range or * to match any IP. Tags such as ‘VirtualNetwork’, ‘AzureLoadBalancer’ and ‘Internet’ can also be used. This is required if `source_address_prefixes` is not specified.\n",
            "type": "string"
          },
          "sourceAddressPrefixes": {
            "description": "List of source address prefixes. Tags may not be used. This is required if `source_address_prefix` is not specified.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "sourceApplicationSecurityGroupIds": {
            "description": "A List of source Application Security Group ID's\n",
            "type": "string"
          },
          "sourcePortRange": {
            "description": "Source Port or Range. Integer or range between `0` and `65535` or `*` to match any. This is required if `source_port_ranges` is not specified.\n",
            "type": "string"
          },
          "sourcePortRanges": {
            "description": "List of source ports or port ranges. This is required if `source_port_range` is not specified.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:network/networkWatcher:NetworkWatcher": {
      "description": "Manages a Network Watcher.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNetworkWatcher = new azure.network.NetworkWatcher(\"exampleNetworkWatcher\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_network_watcher = azure.network.NetworkWatcher(\"exampleNetworkWatcher\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNetworkWatcher = new Azure.Network.NetworkWatcher(\"exampleNetworkWatcher\", new Azure.Network.NetworkWatcherArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNetworkWatcher(ctx, \"exampleNetworkWatcher\", \u0026network.NetworkWatcherArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNetwork Watchers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/networkWatcher:NetworkWatcher watcher1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/networkWatchers/watcher1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Network Watcher. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Network Watcher. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Network Watcher. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Network Watcher. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkWatcher resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Network Watcher. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Network Watcher. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:network/networkWatcherFlowLog:NetworkWatcherFlowLog": {
      "description": "Manages a Network Watcher Flow Log.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst testResourceGroup = new azure.core.ResourceGroup(\"testResourceGroup\", {location: \"West Europe\"});\nconst testNetworkSecurityGroup = new azure.network.NetworkSecurityGroup(\"testNetworkSecurityGroup\", {\n    location: testResourceGroup.location,\n    resourceGroupName: testResourceGroup.name,\n});\nconst testNetworkWatcher = new azure.network.NetworkWatcher(\"testNetworkWatcher\", {\n    location: testResourceGroup.location,\n    resourceGroupName: testResourceGroup.name,\n});\nconst testAccount = new azure.storage.Account(\"testAccount\", {\n    resourceGroupName: testResourceGroup.name,\n    location: testResourceGroup.location,\n    accountTier: \"Standard\",\n    accountKind: \"StorageV2\",\n    accountReplicationType: \"LRS\",\n    enableHttpsTrafficOnly: true,\n});\nconst testAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"testAnalyticsWorkspace\", {\n    location: testResourceGroup.location,\n    resourceGroupName: testResourceGroup.name,\n    sku: \"PerGB2018\",\n});\nconst testNetworkWatcherFlowLog = new azure.network.NetworkWatcherFlowLog(\"testNetworkWatcherFlowLog\", {\n    networkWatcherName: testNetworkWatcher.name,\n    resourceGroupName: testResourceGroup.name,\n    networkSecurityGroupId: testNetworkSecurityGroup.id,\n    storageAccountId: testAccount.id,\n    enabled: true,\n    retentionPolicy: {\n        enabled: true,\n        days: 7,\n    },\n    trafficAnalytics: {\n        enabled: true,\n        workspaceId: testAnalyticsWorkspace.workspaceId,\n        workspaceRegion: testAnalyticsWorkspace.location,\n        workspaceResourceId: testAnalyticsWorkspace.id,\n        intervalInMinutes: 10,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ntest_resource_group = azure.core.ResourceGroup(\"testResourceGroup\", location=\"West Europe\")\ntest_network_security_group = azure.network.NetworkSecurityGroup(\"testNetworkSecurityGroup\",\n    location=test_resource_group.location,\n    resource_group_name=test_resource_group.name)\ntest_network_watcher = azure.network.NetworkWatcher(\"testNetworkWatcher\",\n    location=test_resource_group.location,\n    resource_group_name=test_resource_group.name)\ntest_account = azure.storage.Account(\"testAccount\",\n    resource_group_name=test_resource_group.name,\n    location=test_resource_group.location,\n    account_tier=\"Standard\",\n    account_kind=\"StorageV2\",\n    account_replication_type=\"LRS\",\n    enable_https_traffic_only=True)\ntest_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"testAnalyticsWorkspace\",\n    location=test_resource_group.location,\n    resource_group_name=test_resource_group.name,\n    sku=\"PerGB2018\")\ntest_network_watcher_flow_log = azure.network.NetworkWatcherFlowLog(\"testNetworkWatcherFlowLog\",\n    network_watcher_name=test_network_watcher.name,\n    resource_group_name=test_resource_group.name,\n    network_security_group_id=test_network_security_group.id,\n    storage_account_id=test_account.id,\n    enabled=True,\n    retention_policy=azure.network.NetworkWatcherFlowLogRetentionPolicyArgs(\n        enabled=True,\n        days=7,\n    ),\n    traffic_analytics=azure.network.NetworkWatcherFlowLogTrafficAnalyticsArgs(\n        enabled=True,\n        workspace_id=test_analytics_workspace.workspace_id,\n        workspace_region=test_analytics_workspace.location,\n        workspace_resource_id=test_analytics_workspace.id,\n        interval_in_minutes=10,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var testResourceGroup = new Azure.Core.ResourceGroup(\"testResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var testNetworkSecurityGroup = new Azure.Network.NetworkSecurityGroup(\"testNetworkSecurityGroup\", new Azure.Network.NetworkSecurityGroupArgs\n        {\n            Location = testResourceGroup.Location,\n            ResourceGroupName = testResourceGroup.Name,\n        });\n        var testNetworkWatcher = new Azure.Network.NetworkWatcher(\"testNetworkWatcher\", new Azure.Network.NetworkWatcherArgs\n        {\n            Location = testResourceGroup.Location,\n            ResourceGroupName = testResourceGroup.Name,\n        });\n        var testAccount = new Azure.Storage.Account(\"testAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = testResourceGroup.Name,\n            Location = testResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountKind = \"StorageV2\",\n            AccountReplicationType = \"LRS\",\n            EnableHttpsTrafficOnly = true,\n        });\n        var testAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"testAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = testResourceGroup.Location,\n            ResourceGroupName = testResourceGroup.Name,\n            Sku = \"PerGB2018\",\n        });\n        var testNetworkWatcherFlowLog = new Azure.Network.NetworkWatcherFlowLog(\"testNetworkWatcherFlowLog\", new Azure.Network.NetworkWatcherFlowLogArgs\n        {\n            NetworkWatcherName = testNetworkWatcher.Name,\n            ResourceGroupName = testResourceGroup.Name,\n            NetworkSecurityGroupId = testNetworkSecurityGroup.Id,\n            StorageAccountId = testAccount.Id,\n            Enabled = true,\n            RetentionPolicy = new Azure.Network.Inputs.NetworkWatcherFlowLogRetentionPolicyArgs\n            {\n                Enabled = true,\n                Days = 7,\n            },\n            TrafficAnalytics = new Azure.Network.Inputs.NetworkWatcherFlowLogTrafficAnalyticsArgs\n            {\n                Enabled = true,\n                WorkspaceId = testAnalyticsWorkspace.WorkspaceId,\n                WorkspaceRegion = testAnalyticsWorkspace.Location,\n                WorkspaceResourceId = testAnalyticsWorkspace.Id,\n                IntervalInMinutes = 10,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestResourceGroup, err := core.NewResourceGroup(ctx, \"testResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestNetworkSecurityGroup, err := network.NewNetworkSecurityGroup(ctx, \"testNetworkSecurityGroup\", \u0026network.NetworkSecurityGroupArgs{\n\t\t\tLocation:          testResourceGroup.Location,\n\t\t\tResourceGroupName: testResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestNetworkWatcher, err := network.NewNetworkWatcher(ctx, \"testNetworkWatcher\", \u0026network.NetworkWatcherArgs{\n\t\t\tLocation:          testResourceGroup.Location,\n\t\t\tResourceGroupName: testResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestAccount, err := storage.NewAccount(ctx, \"testAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      testResourceGroup.Name,\n\t\t\tLocation:               testResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountKind:            pulumi.String(\"StorageV2\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tEnableHttpsTrafficOnly: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"testAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          testResourceGroup.Location,\n\t\t\tResourceGroupName: testResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNetworkWatcherFlowLog(ctx, \"testNetworkWatcherFlowLog\", \u0026network.NetworkWatcherFlowLogArgs{\n\t\t\tNetworkWatcherName:     testNetworkWatcher.Name,\n\t\t\tResourceGroupName:      testResourceGroup.Name,\n\t\t\tNetworkSecurityGroupId: testNetworkSecurityGroup.ID(),\n\t\t\tStorageAccountId:       testAccount.ID(),\n\t\t\tEnabled:                pulumi.Bool(true),\n\t\t\tRetentionPolicy: \u0026network.NetworkWatcherFlowLogRetentionPolicyArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tDays:    pulumi.Int(7),\n\t\t\t},\n\t\t\tTrafficAnalytics: \u0026network.NetworkWatcherFlowLogTrafficAnalyticsArgs{\n\t\t\t\tEnabled:             pulumi.Bool(true),\n\t\t\t\tWorkspaceId:         testAnalyticsWorkspace.WorkspaceId,\n\t\t\t\tWorkspaceRegion:     testAnalyticsWorkspace.Location,\n\t\t\t\tWorkspaceResourceId: testAnalyticsWorkspace.ID(),\n\t\t\t\tIntervalInMinutes:   pulumi.Int(10),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNetwork Watcher Flow Logs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/networkWatcherFlowLog:NetworkWatcherFlowLog watcher1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/networkWatchers/watcher1/networkSecurityGroupId/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/networkSecurityGroups/group1\n```\n\n ",
      "inputProperties": {
        "enabled": {
          "description": "Boolean flag to enable/disable traffic analytics.\n",
          "type": "boolean"
        },
        "location": {
          "description": "The location where the Network Watcher Flow Log resides. Changing this forces a new resource to be created. Defaults to the `location` of the Network Watcher.\n",
          "type": "string"
        },
        "networkSecurityGroupId": {
          "description": "The ID of the Network Security Group for which to enable flow logs for. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkWatcherName": {
          "description": "The name of the Network Watcher. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Network Watcher was deployed. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retentionPolicy": {
          "$ref": "#/types/azure:network/NetworkWatcherFlowLogRetentionPolicy:NetworkWatcherFlowLogRetentionPolicy",
          "description": "A `retention_policy` block as documented below.\n"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account where flow logs are stored.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Network Watcher Flow Log.\n",
          "type": "object"
        },
        "trafficAnalytics": {
          "$ref": "#/types/azure:network/NetworkWatcherFlowLogTrafficAnalytics:NetworkWatcherFlowLogTrafficAnalytics",
          "description": "A `traffic_analytics` block as documented below.\n"
        },
        "version": {
          "description": "The version (revision) of the flow log. Possible values are `1` and `2`.\n",
          "type": "integer"
        }
      },
      "properties": {
        "enabled": {
          "description": "Boolean flag to enable/disable traffic analytics.\n",
          "type": "boolean"
        },
        "location": {
          "description": "The location where the Network Watcher Flow Log resides. Changing this forces a new resource to be created. Defaults to the `location` of the Network Watcher.\n",
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "networkSecurityGroupId": {
          "description": "The ID of the Network Security Group for which to enable flow logs for. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkWatcherName": {
          "description": "The name of the Network Watcher. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Network Watcher was deployed. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retentionPolicy": {
          "$ref": "#/types/azure:network/NetworkWatcherFlowLogRetentionPolicy:NetworkWatcherFlowLogRetentionPolicy",
          "description": "A `retention_policy` block as documented below.\n"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account where flow logs are stored.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Network Watcher Flow Log.\n",
          "type": "object"
        },
        "trafficAnalytics": {
          "$ref": "#/types/azure:network/NetworkWatcherFlowLogTrafficAnalytics:NetworkWatcherFlowLogTrafficAnalytics",
          "description": "A `traffic_analytics` block as documented below.\n"
        },
        "version": {
          "description": "The version (revision) of the flow log. Possible values are `1` and `2`.\n",
          "type": "integer"
        }
      },
      "required": [
        "enabled",
        "location",
        "name",
        "networkSecurityGroupId",
        "networkWatcherName",
        "resourceGroupName",
        "retentionPolicy",
        "storageAccountId",
        "version"
      ],
      "requiredInputs": [
        "enabled",
        "networkSecurityGroupId",
        "networkWatcherName",
        "resourceGroupName",
        "retentionPolicy",
        "storageAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkWatcherFlowLog resources.\n",
        "properties": {
          "enabled": {
            "description": "Boolean flag to enable/disable traffic analytics.\n",
            "type": "boolean"
          },
          "location": {
            "description": "The location where the Network Watcher Flow Log resides. Changing this forces a new resource to be created. Defaults to the `location` of the Network Watcher.\n",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "networkSecurityGroupId": {
            "description": "The ID of the Network Security Group for which to enable flow logs for. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkWatcherName": {
            "description": "The name of the Network Watcher. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Network Watcher was deployed. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "retentionPolicy": {
            "$ref": "#/types/azure:network/NetworkWatcherFlowLogRetentionPolicy:NetworkWatcherFlowLogRetentionPolicy",
            "description": "A `retention_policy` block as documented below.\n"
          },
          "storageAccountId": {
            "description": "The ID of the Storage Account where flow logs are stored.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Network Watcher Flow Log.\n",
            "type": "object"
          },
          "trafficAnalytics": {
            "$ref": "#/types/azure:network/NetworkWatcherFlowLogTrafficAnalytics:NetworkWatcherFlowLogTrafficAnalytics",
            "description": "A `traffic_analytics` block as documented below.\n"
          },
          "version": {
            "description": "The version (revision) of the flow log. Possible values are `1` and `2`.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:network/packetCapture:PacketCapture": {
      "description": "Configures Packet Capturing against a Virtual Machine using a Network Watcher.\n\n\u003e **NOTE:** This resource has been deprecated in favour of the `azure.network.NetworkConnectionMonitor` resource and will be removed in the next major version of the AzureRM Provider. The new resource shares the same fields as this one, and information on migrating across can be found in this guide.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNetworkWatcher = new azure.network.NetworkWatcher(\"exampleNetworkWatcher\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"testconfiguration1\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleVirtualMachine = new azure.compute.VirtualMachine(\"exampleVirtualMachine\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    networkInterfaceIds: [exampleNetworkInterface.id],\n    vmSize: \"Standard_F2\",\n    storageImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04-LTS\",\n        version: \"latest\",\n    },\n    storageOsDisk: {\n        name: \"osdisk\",\n        caching: \"ReadWrite\",\n        createOption: \"FromImage\",\n        managedDiskType: \"Standard_LRS\",\n    },\n    osProfile: {\n        computerName: \"pctest-vm\",\n        adminUsername: \"testadmin\",\n        adminPassword: \"Password1234!\",\n    },\n    osProfileLinuxConfig: {\n        disablePasswordAuthentication: false,\n    },\n});\nconst exampleExtension = new azure.compute.Extension(\"exampleExtension\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    virtualMachineName: exampleVirtualMachine.name,\n    publisher: \"Microsoft.Azure.NetworkWatcher\",\n    type: \"NetworkWatcherAgentLinux\",\n    typeHandlerVersion: \"1.4\",\n    autoUpgradeMinorVersion: true,\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst examplePacketCapture = new azure.network.PacketCapture(\"examplePacketCapture\", {\n    networkWatcherName: exampleNetworkWatcher.name,\n    resourceGroupName: exampleResourceGroup.name,\n    targetResourceId: exampleVirtualMachine.id,\n    storageLocation: {\n        storageAccountId: exampleAccount.id,\n    },\n}, {\n    dependsOn: [exampleExtension],\n});\n```\n\n\u003e **NOTE:** This Resource requires that [the Network Watcher Virtual Machine Extension](https://docs.microsoft.com/azure/network-watcher/network-watcher-packet-capture-manage-portal#before-you-begin) is installed on the Virtual Machine before capturing can be enabled which can be installed via the `azure.compute.Extension` resource.\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPacket Captures can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/packetCapture:PacketCapture capture1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/networkWatchers/watcher1/packetCaptures/capture1\n```\n\n ",
      "inputProperties": {
        "filters": {
          "description": "One or more `filter` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:network/PacketCaptureFilter:PacketCaptureFilter"
          },
          "type": "array"
        },
        "maximumBytesPerPacket": {
          "description": "The number of bytes captured per packet. The remaining bytes are truncated. Defaults to `0` (Entire Packet Captured). Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "maximumBytesPerSession": {
          "description": "Maximum size of the capture in Bytes. Defaults to `1073741824` (1GB). Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "maximumCaptureDuration": {
          "description": "The maximum duration of the capture session in seconds. Defaults to `18000` (5 hours). Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name to use for this Packet Capture. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkWatcherName": {
          "description": "The name of the Network Watcher. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Network Watcher exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageLocation": {
          "$ref": "#/types/azure:network/PacketCaptureStorageLocation:PacketCaptureStorageLocation",
          "description": "A `storage_location` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "targetResourceId": {
          "description": "The ID of the Resource to capture packets from. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "filters": {
          "description": "One or more `filter` blocks as defined below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:network/PacketCaptureFilter:PacketCaptureFilter"
          },
          "type": "array"
        },
        "maximumBytesPerPacket": {
          "description": "The number of bytes captured per packet. The remaining bytes are truncated. Defaults to `0` (Entire Packet Captured). Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "maximumBytesPerSession": {
          "description": "Maximum size of the capture in Bytes. Defaults to `1073741824` (1GB). Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "maximumCaptureDuration": {
          "description": "The maximum duration of the capture session in seconds. Defaults to `18000` (5 hours). Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name to use for this Packet Capture. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkWatcherName": {
          "description": "The name of the Network Watcher. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Network Watcher exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageLocation": {
          "$ref": "#/types/azure:network/PacketCaptureStorageLocation:PacketCaptureStorageLocation",
          "description": "A `storage_location` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "targetResourceId": {
          "description": "The ID of the Resource to capture packets from. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "networkWatcherName",
        "resourceGroupName",
        "storageLocation",
        "targetResourceId"
      ],
      "requiredInputs": [
        "networkWatcherName",
        "resourceGroupName",
        "storageLocation",
        "targetResourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering PacketCapture resources.\n",
        "properties": {
          "filters": {
            "description": "One or more `filter` blocks as defined below. Changing this forces a new resource to be created.\n",
            "items": {
              "$ref": "#/types/azure:network/PacketCaptureFilter:PacketCaptureFilter"
            },
            "type": "array"
          },
          "maximumBytesPerPacket": {
            "description": "The number of bytes captured per packet. The remaining bytes are truncated. Defaults to `0` (Entire Packet Captured). Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "maximumBytesPerSession": {
            "description": "Maximum size of the capture in Bytes. Defaults to `1073741824` (1GB). Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "maximumCaptureDuration": {
            "description": "The maximum duration of the capture session in seconds. Defaults to `18000` (5 hours). Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "name": {
            "description": "The name to use for this Packet Capture. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkWatcherName": {
            "description": "The name of the Network Watcher. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Network Watcher exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageLocation": {
            "$ref": "#/types/azure:network/PacketCaptureStorageLocation:PacketCaptureStorageLocation",
            "description": "A `storage_location` block as defined below. Changing this forces a new resource to be created.\n"
          },
          "targetResourceId": {
            "description": "The ID of the Resource to capture packets from. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/pointToPointVpnGateway:PointToPointVpnGateway": {
      "description": "Manages a Point-to-Site VPN Gateway.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualWan = new azure.network.VirtualWan(\"exampleVirtualWan\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleVirtualHub = new azure.network.VirtualHub(\"exampleVirtualHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    virtualWanId: exampleVirtualWan.id,\n    addressPrefix: \"10.0.0.0/23\",\n});\nconst exampleVpnServerConfiguration = new azure.network.VpnServerConfiguration(\"exampleVpnServerConfiguration\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    vpnAuthenticationTypes: [\"Certificate\"],\n    clientRootCertificates: [{\n        name: \"DigiCert-Federated-ID-Root-CA\",\n        publicCertData: `MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg\nUm9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV\nBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp\nY2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j\nQPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8\nzAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf\nGTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d\nGTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8\nDk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2\nDwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV\nHQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW\njKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP\n9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR\nQELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL\nuGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn\nWsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq\nM/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=\n`,\n    }],\n});\nconst examplePointToPointVpnGateway = new azure.network.PointToPointVpnGateway(\"examplePointToPointVpnGateway\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    virtualHubId: exampleVirtualHub.id,\n    vpnServerConfigurationId: exampleVpnServerConfiguration.id,\n    scaleUnit: 1,\n    connectionConfiguration: {\n        name: \"example-gateway-config\",\n        vpnClientAddressPool: {\n            addressPrefixes: [\"10.0.2.0/24\"],\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_wan = azure.network.VirtualWan(\"exampleVirtualWan\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_virtual_hub = azure.network.VirtualHub(\"exampleVirtualHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    virtual_wan_id=example_virtual_wan.id,\n    address_prefix=\"10.0.0.0/23\")\nexample_vpn_server_configuration = azure.network.VpnServerConfiguration(\"exampleVpnServerConfiguration\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    vpn_authentication_types=[\"Certificate\"],\n    client_root_certificates=[azure.network.VpnServerConfigurationClientRootCertificateArgs(\n        name=\"DigiCert-Federated-ID-Root-CA\",\n        public_cert_data=\"\"\"MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg\nUm9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV\nBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp\nY2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j\nQPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8\nzAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf\nGTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d\nGTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8\nDk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2\nDwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV\nHQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW\njKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP\n9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR\nQELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL\nuGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn\nWsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq\nM/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=\n\"\"\",\n    )])\nexample_point_to_point_vpn_gateway = azure.network.PointToPointVpnGateway(\"examplePointToPointVpnGateway\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    virtual_hub_id=example_virtual_hub.id,\n    vpn_server_configuration_id=example_vpn_server_configuration.id,\n    scale_unit=1,\n    connection_configuration=azure.network.PointToPointVpnGatewayConnectionConfigurationArgs(\n        name=\"example-gateway-config\",\n        vpn_client_address_pool=azure.network.PointToPointVpnGatewayConnectionConfigurationVpnClientAddressPoolArgs(\n            address_prefixes=[\"10.0.2.0/24\"],\n        ),\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualWan = new Azure.Network.VirtualWan(\"exampleVirtualWan\", new Azure.Network.VirtualWanArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleVirtualHub = new Azure.Network.VirtualHub(\"exampleVirtualHub\", new Azure.Network.VirtualHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            VirtualWanId = exampleVirtualWan.Id,\n            AddressPrefix = \"10.0.0.0/23\",\n        });\n        var exampleVpnServerConfiguration = new Azure.Network.VpnServerConfiguration(\"exampleVpnServerConfiguration\", new Azure.Network.VpnServerConfigurationArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            VpnAuthenticationTypes = \n            {\n                \"Certificate\",\n            },\n            ClientRootCertificates = \n            {\n                new Azure.Network.Inputs.VpnServerConfigurationClientRootCertificateArgs\n                {\n                    Name = \"DigiCert-Federated-ID-Root-CA\",\n                    PublicCertData = @\"MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg\nUm9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV\nBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp\nY2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j\nQPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8\nzAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf\nGTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d\nGTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8\nDk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2\nDwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV\nHQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW\njKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP\n9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR\nQELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL\nuGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn\nWsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq\nM/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=\n\",\n                },\n            },\n        });\n        var examplePointToPointVpnGateway = new Azure.Network.PointToPointVpnGateway(\"examplePointToPointVpnGateway\", new Azure.Network.PointToPointVpnGatewayArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualHubId = exampleVirtualHub.Id,\n            VpnServerConfigurationId = exampleVpnServerConfiguration.Id,\n            ScaleUnit = 1,\n            ConnectionConfiguration = new Azure.Network.Inputs.PointToPointVpnGatewayConnectionConfigurationArgs\n            {\n                Name = \"example-gateway-config\",\n                VpnClientAddressPool = new Azure.Network.Inputs.PointToPointVpnGatewayConnectionConfigurationVpnClientAddressPoolArgs\n                {\n                    AddressPrefixes = \n                    {\n                        \"10.0.2.0/24\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualWan, err := network.NewVirtualWan(ctx, \"exampleVirtualWan\", \u0026network.VirtualWanArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualHub, err := network.NewVirtualHub(ctx, \"exampleVirtualHub\", \u0026network.VirtualHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tVirtualWanId:      exampleVirtualWan.ID(),\n\t\t\tAddressPrefix:     pulumi.String(\"10.0.0.0/23\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpnServerConfiguration, err := network.NewVpnServerConfiguration(ctx, \"exampleVpnServerConfiguration\", \u0026network.VpnServerConfigurationArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tVpnAuthenticationTypes: pulumi.String{\n\t\t\t\t\"Certificate\",\n\t\t\t},\n\t\t\tClientRootCertificates: network.VpnServerConfigurationClientRootCertificateArray{\n\t\t\t\t\u0026network.VpnServerConfigurationClientRootCertificateArgs{\n\t\t\t\t\tName:           pulumi.String(\"DigiCert-Federated-ID-Root-CA\"),\n\t\t\t\t\tPublicCertData: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn\\n\", \"MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\n\", \"d3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg\\n\", \"Um9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV\\n\", \"BAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp\\n\", \"Y2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB\\n\", \"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j\\n\", \"QPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8\\n\", \"zAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf\\n\", \"GTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d\\n\", \"GTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8\\n\", \"Dk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2\\n\", \"DwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV\\n\", \"HQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW\\n\", \"jKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP\\n\", \"9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR\\n\", \"QELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL\\n\", \"uGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn\\n\", \"WsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq\\n\", \"M/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=\\n\")),\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 = network.NewPointToPointVpnGateway(ctx, \"examplePointToPointVpnGateway\", \u0026network.PointToPointVpnGatewayArgs{\n\t\t\tLocation:                 exampleResourceGroup.Location,\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tVirtualHubId:             exampleVirtualHub.ID(),\n\t\t\tVpnServerConfigurationId: exampleVpnServerConfiguration.ID(),\n\t\t\tScaleUnit:                pulumi.Int(1),\n\t\t\tConnectionConfiguration: \u0026network.PointToPointVpnGatewayConnectionConfigurationArgs{\n\t\t\t\tName: pulumi.String(\"example-gateway-config\"),\n\t\t\t\tVpnClientAddressPool: \u0026network.PointToPointVpnGatewayConnectionConfigurationVpnClientAddressPoolArgs{\n\t\t\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPoint-to-Site VPN Gateway's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/pointToPointVpnGateway:PointToPointVpnGateway example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/p2svpnGateways/gateway1\n```\n\n ",
      "inputProperties": {
        "connectionConfiguration": {
          "$ref": "#/types/azure:network/PointToPointVpnGatewayConnectionConfiguration:PointToPointVpnGatewayConnectionConfiguration",
          "description": "A `connection_configuration` block as defined below.\n"
        },
        "dnsServers": {
          "description": "A list of IP Addresses of DNS Servers for the Point-to-Site VPN Gateway.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Point-to-Site VPN Gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Point-to-Site VPN Gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scaleUnit": {
          "description": "The [Scale Unit](https://docs.microsoft.com/en-us/azure/virtual-wan/virtual-wan-faq#what-is-a-virtual-wan-gateway-scale-unit) for this Point-to-Site VPN Gateway.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Point-to-Site VPN Gateway.\n",
          "type": "object"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub where this Point-to-Site VPN Gateway should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "vpnServerConfigurationId": {
          "description": "The ID of the VPN Server Configuration which this Point-to-Site VPN Gateway should use. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "connectionConfiguration": {
          "$ref": "#/types/azure:network/PointToPointVpnGatewayConnectionConfiguration:PointToPointVpnGatewayConnectionConfiguration",
          "description": "A `connection_configuration` block as defined below.\n"
        },
        "dnsServers": {
          "description": "A list of IP Addresses of DNS Servers for the Point-to-Site VPN Gateway.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Point-to-Site VPN Gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Point-to-Site VPN Gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scaleUnit": {
          "description": "The [Scale Unit](https://docs.microsoft.com/en-us/azure/virtual-wan/virtual-wan-faq#what-is-a-virtual-wan-gateway-scale-unit) for this Point-to-Site VPN Gateway.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Point-to-Site VPN Gateway.\n",
          "type": "object"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub where this Point-to-Site VPN Gateway should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "vpnServerConfigurationId": {
          "description": "The ID of the VPN Server Configuration which this Point-to-Site VPN Gateway should use. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "connectionConfiguration",
        "location",
        "name",
        "resourceGroupName",
        "scaleUnit",
        "virtualHubId",
        "vpnServerConfigurationId"
      ],
      "requiredInputs": [
        "connectionConfiguration",
        "resourceGroupName",
        "scaleUnit",
        "virtualHubId",
        "vpnServerConfigurationId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering PointToPointVpnGateway resources.\n",
        "properties": {
          "connectionConfiguration": {
            "$ref": "#/types/azure:network/PointToPointVpnGatewayConnectionConfiguration:PointToPointVpnGatewayConnectionConfiguration",
            "description": "A `connection_configuration` block as defined below.\n"
          },
          "dnsServers": {
            "description": "A list of IP Addresses of DNS Servers for the Point-to-Site VPN Gateway.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Point-to-Site VPN Gateway. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Point-to-Site VPN Gateway. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scaleUnit": {
            "description": "The [Scale Unit](https://docs.microsoft.com/en-us/azure/virtual-wan/virtual-wan-faq#what-is-a-virtual-wan-gateway-scale-unit) for this Point-to-Site VPN Gateway.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Point-to-Site VPN Gateway.\n",
            "type": "object"
          },
          "virtualHubId": {
            "description": "The ID of the Virtual Hub where this Point-to-Site VPN Gateway should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "vpnServerConfigurationId": {
            "description": "The ID of the VPN Server Configuration which this Point-to-Site VPN Gateway should use. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/profile:Profile": {
      "description": "Manages a Network Profile.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"10.1.0.0/16\"],\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.1.0.0/24\"],\n    delegations: [{\n        name: \"delegation\",\n        serviceDelegation: {\n            name: \"Microsoft.ContainerInstance/containerGroups\",\n            actions: [\"Microsoft.Network/virtualNetworks/subnets/action\"],\n        },\n    }],\n});\nconst exampleProfile = new azure.network.Profile(\"exampleProfile\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    containerNetworkInterface: {\n        name: \"examplecnic\",\n        ipConfigurations: [{\n            name: \"exampleipconfig\",\n            subnetId: exampleSubnet.id,\n        }],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    address_spaces=[\"10.1.0.0/16\"])\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.1.0.0/24\"],\n    delegations=[azure.network.SubnetDelegationArgs(\n        name=\"delegation\",\n        service_delegation=azure.network.SubnetDelegationServiceDelegationArgs(\n            name=\"Microsoft.ContainerInstance/containerGroups\",\n            actions=[\"Microsoft.Network/virtualNetworks/subnets/action\"],\n        ),\n    )])\nexample_profile = azure.network.Profile(\"exampleProfile\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    container_network_interface=azure.network.ProfileContainerNetworkInterfaceArgs(\n        name=\"examplecnic\",\n        ip_configurations=[{\n            \"name\": \"exampleipconfig\",\n            \"subnet_id\": example_subnet.id,\n        }],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"10.1.0.0/16\",\n            },\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.1.0.0/24\",\n            },\n            Delegations = \n            {\n                new Azure.Network.Inputs.SubnetDelegationArgs\n                {\n                    Name = \"delegation\",\n                    ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs\n                    {\n                        Name = \"Microsoft.ContainerInstance/containerGroups\",\n                        Actions = \n                        {\n                            \"Microsoft.Network/virtualNetworks/subnets/action\",\n                        },\n                    },\n                },\n            },\n        });\n        var exampleProfile = new Azure.Network.Profile(\"exampleProfile\", new Azure.Network.ProfileArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            ContainerNetworkInterface = new Azure.Network.Inputs.ProfileContainerNetworkInterfaceArgs\n            {\n                Name = \"examplecnic\",\n                IpConfigurations = \n                {\n                    new Azure.Network.Inputs.ProfileContainerNetworkInterfaceIpConfigurationArgs\n                    {\n                        Name = \"exampleipconfig\",\n                        SubnetId = exampleSubnet.Id,\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/24\"),\n\t\t\t},\n\t\t\tDelegations: network.SubnetDelegationArray{\n\t\t\t\t\u0026network.SubnetDelegationArgs{\n\t\t\t\t\tName: pulumi.String(\"delegation\"),\n\t\t\t\t\tServiceDelegation: \u0026network.SubnetDelegationServiceDelegationArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Microsoft.ContainerInstance/containerGroups\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/action\"),\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 = network.NewProfile(ctx, \"exampleProfile\", \u0026network.ProfileArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tContainerNetworkInterface: \u0026network.ProfileContainerNetworkInterfaceArgs{\n\t\t\t\tName: pulumi.String(\"examplecnic\"),\n\t\t\t\tIpConfigurations: network.ProfileContainerNetworkInterfaceIpConfigurationArray{\n\t\t\t\t\t\u0026network.ProfileContainerNetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\t\tName:     pulumi.String(\"exampleipconfig\"),\n\t\t\t\t\t\tSubnetId: exampleSubnet.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNetwork Profile can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/profile:Profile example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/networkProfiles/examplenetprofile\n```\n\n ",
      "inputProperties": {
        "containerNetworkInterface": {
          "$ref": "#/types/azure:network/ProfileContainerNetworkInterface:ProfileContainerNetworkInterface",
          "description": "A `container_network_interface` block as documented below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Network Profile. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "containerNetworkInterface": {
          "$ref": "#/types/azure:network/ProfileContainerNetworkInterface:ProfileContainerNetworkInterface",
          "description": "A `container_network_interface` block as documented below.\n"
        },
        "containerNetworkInterfaceIds": {
          "description": "A list of Container Network Interface ID's.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Network Profile. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "containerNetworkInterface",
        "containerNetworkInterfaceIds",
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "containerNetworkInterface",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Profile resources.\n",
        "properties": {
          "containerNetworkInterface": {
            "$ref": "#/types/azure:network/ProfileContainerNetworkInterface:ProfileContainerNetworkInterface",
            "description": "A `container_network_interface` block as documented below.\n"
          },
          "containerNetworkInterfaceIds": {
            "description": "A list of Container Network Interface ID's.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Network Profile. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:network/publicIp:PublicIp": {
      "description": "Manages a Public IP Address.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    allocationMethod: \"Static\",\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    allocation_method=\"Static\",\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AllocationMethod = \"Static\",\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPublic IPs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/publicIp:PublicIp myPublicIp /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/publicIPAddresses/myPublicIpAddress1\n```\n\n ",
      "inputProperties": {
        "allocationMethod": {
          "description": "Defines the allocation method for this IP address. Possible values are `Static` or `Dynamic`.\n",
          "type": "string"
        },
        "availabilityZone": {
          "description": "The availability zone to allocate the Public IP in. Possible values are `Zone-Redundant`, `1`, `2`, `3`, and `No-Zone`. Defaults to `Zone-Redundant`.\n",
          "type": "string"
        },
        "domainNameLabel": {
          "description": "Label for the Domain Name. Will be used to make up the FQDN.  If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system.\n",
          "type": "string"
        },
        "idleTimeoutInMinutes": {
          "description": "Specifies the timeout for the TCP idle connection. The value can be set between 4 and 30 minutes.\n",
          "type": "integer"
        },
        "ipTags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of IP tags to assign to the public IP.\n",
          "type": "object"
        },
        "ipVersion": {
          "description": "The IP Version to use, IPv6 or IPv4.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Public IP resource . Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "publicIpPrefixId": {
          "description": "If specified then public IP address allocated will be provided from the public IP prefix resource.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the public ip.\n",
          "type": "string"
        },
        "reverseFqdn": {
          "description": "A fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN.\n",
          "type": "string"
        },
        "sku": {
          "description": "The SKU of the Public IP. Accepted values are `Basic` and `Standard`. Defaults to `Basic`.\n",
          "type": "string"
        },
        "skuTier": {
          "description": "The SKU Tier that should be used for the Public IP. Possible values are `Regional` and `Global`. Defaults to `Regional`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zones": {
          "deprecationMessage": "This property has been deprecated in favour of `availability_zone` due to a breaking behavioural change in Azure: https://azure.microsoft.com/en-us/updates/zone-behavior-change/",
          "type": "string"
        }
      },
      "properties": {
        "allocationMethod": {
          "description": "Defines the allocation method for this IP address. Possible values are `Static` or `Dynamic`.\n",
          "type": "string"
        },
        "availabilityZone": {
          "description": "The availability zone to allocate the Public IP in. Possible values are `Zone-Redundant`, `1`, `2`, `3`, and `No-Zone`. Defaults to `Zone-Redundant`.\n",
          "type": "string"
        },
        "domainNameLabel": {
          "description": "Label for the Domain Name. Will be used to make up the FQDN.  If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system.\n",
          "type": "string"
        },
        "fqdn": {
          "description": "Fully qualified domain name of the A DNS record associated with the public IP. `domain_name_label` must be specified to get the `fqdn`. This is the concatenation of the `domain_name_label` and the regionalized DNS zone\n",
          "type": "string"
        },
        "idleTimeoutInMinutes": {
          "description": "Specifies the timeout for the TCP idle connection. The value can be set between 4 and 30 minutes.\n",
          "type": "integer"
        },
        "ipAddress": {
          "description": "The IP address value that was allocated.\n",
          "type": "string"
        },
        "ipTags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of IP tags to assign to the public IP.\n",
          "type": "object"
        },
        "ipVersion": {
          "description": "The IP Version to use, IPv6 or IPv4.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Public IP resource . Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "publicIpPrefixId": {
          "description": "If specified then public IP address allocated will be provided from the public IP prefix resource.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the public ip.\n",
          "type": "string"
        },
        "reverseFqdn": {
          "description": "A fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN.\n",
          "type": "string"
        },
        "sku": {
          "description": "The SKU of the Public IP. Accepted values are `Basic` and `Standard`. Defaults to `Basic`.\n",
          "type": "string"
        },
        "skuTier": {
          "description": "The SKU Tier that should be used for the Public IP. Possible values are `Regional` and `Global`. Defaults to `Regional`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zones": {
          "deprecationMessage": "This property has been deprecated in favour of `availability_zone` due to a breaking behavioural change in Azure: https://azure.microsoft.com/en-us/updates/zone-behavior-change/",
          "type": "string"
        }
      },
      "required": [
        "allocationMethod",
        "availabilityZone",
        "fqdn",
        "ipAddress",
        "location",
        "name",
        "resourceGroupName",
        "zones"
      ],
      "requiredInputs": [
        "allocationMethod",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering PublicIp resources.\n",
        "properties": {
          "allocationMethod": {
            "description": "Defines the allocation method for this IP address. Possible values are `Static` or `Dynamic`.\n",
            "type": "string"
          },
          "availabilityZone": {
            "description": "The availability zone to allocate the Public IP in. Possible values are `Zone-Redundant`, `1`, `2`, `3`, and `No-Zone`. Defaults to `Zone-Redundant`.\n",
            "type": "string"
          },
          "domainNameLabel": {
            "description": "Label for the Domain Name. Will be used to make up the FQDN.  If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system.\n",
            "type": "string"
          },
          "fqdn": {
            "description": "Fully qualified domain name of the A DNS record associated with the public IP. `domain_name_label` must be specified to get the `fqdn`. This is the concatenation of the `domain_name_label` and the regionalized DNS zone\n",
            "type": "string"
          },
          "idleTimeoutInMinutes": {
            "description": "Specifies the timeout for the TCP idle connection. The value can be set between 4 and 30 minutes.\n",
            "type": "integer"
          },
          "ipAddress": {
            "description": "The IP address value that was allocated.\n",
            "type": "string"
          },
          "ipTags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of IP tags to assign to the public IP.\n",
            "type": "object"
          },
          "ipVersion": {
            "description": "The IP Version to use, IPv6 or IPv4.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Public IP resource . Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "publicIpPrefixId": {
            "description": "If specified then public IP address allocated will be provided from the public IP prefix resource.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the public ip.\n",
            "type": "string"
          },
          "reverseFqdn": {
            "description": "A fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN.\n",
            "type": "string"
          },
          "sku": {
            "description": "The SKU of the Public IP. Accepted values are `Basic` and `Standard`. Defaults to `Basic`.\n",
            "type": "string"
          },
          "skuTier": {
            "description": "The SKU Tier that should be used for the Public IP. Possible values are `Regional` and `Global`. Defaults to `Regional`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "zones": {
            "deprecationMessage": "This property has been deprecated in favour of `availability_zone` due to a breaking behavioural change in Azure: https://azure.microsoft.com/en-us/updates/zone-behavior-change/",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/publicIpPrefix:PublicIpPrefix": {
      "description": "Manages a Public IP Prefix.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePublicIpPrefix = new azure.network.PublicIpPrefix(\"examplePublicIpPrefix\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    prefixLength: 31,\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_public_ip_prefix = azure.network.PublicIpPrefix(\"examplePublicIpPrefix\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    prefix_length=31,\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePublicIpPrefix = new Azure.Network.PublicIpPrefix(\"examplePublicIpPrefix\", new Azure.Network.PublicIpPrefixArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PrefixLength = 31,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewPublicIpPrefix(ctx, \"examplePublicIpPrefix\", \u0026network.PublicIpPrefixArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPrefixLength:      pulumi.Int(31),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPublic IP Prefixes can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/publicIpPrefix:PublicIpPrefix myPublicIpPrefix /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/publicIPPrefixes/myPublicIpPrefix1\n```\n\n ",
      "inputProperties": {
        "availabilityZone": {
          "description": "The availability zone to allocate the Public IP in. Possible values are `Zone-Redundant`, `1`, `2`, `3`, and `No-Zone`. Defaults to `Zone-Redundant`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Public IP Prefix resource . Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "prefixLength": {
          "description": "Specifies the number of bits of the prefix. The value can be set between 0 (4,294,967,296 addresses) and 31 (2 addresses). Defaults to `28`(16 addresses). Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Public IP Prefix.\n",
          "type": "string"
        },
        "sku": {
          "description": "The SKU of the Public IP Prefix. Accepted values are `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zones": {
          "deprecationMessage": "This property has been deprecated in favour of `availability_zone` due to a breaking behavioural change in Azure: https://azure.microsoft.com/en-us/updates/zone-behavior-change/",
          "type": "string"
        }
      },
      "properties": {
        "availabilityZone": {
          "description": "The availability zone to allocate the Public IP in. Possible values are `Zone-Redundant`, `1`, `2`, `3`, and `No-Zone`. Defaults to `Zone-Redundant`.\n",
          "type": "string"
        },
        "ipPrefix": {
          "description": "The IP address prefix value that was allocated.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Public IP Prefix resource . Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "prefixLength": {
          "description": "Specifies the number of bits of the prefix. The value can be set between 0 (4,294,967,296 addresses) and 31 (2 addresses). Defaults to `28`(16 addresses). Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Public IP Prefix.\n",
          "type": "string"
        },
        "sku": {
          "description": "The SKU of the Public IP Prefix. Accepted values are `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zones": {
          "deprecationMessage": "This property has been deprecated in favour of `availability_zone` due to a breaking behavioural change in Azure: https://azure.microsoft.com/en-us/updates/zone-behavior-change/",
          "type": "string"
        }
      },
      "required": [
        "availabilityZone",
        "ipPrefix",
        "location",
        "name",
        "resourceGroupName",
        "zones"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering PublicIpPrefix resources.\n",
        "properties": {
          "availabilityZone": {
            "description": "The availability zone to allocate the Public IP in. Possible values are `Zone-Redundant`, `1`, `2`, `3`, and `No-Zone`. Defaults to `Zone-Redundant`.\n",
            "type": "string"
          },
          "ipPrefix": {
            "description": "The IP address prefix value that was allocated.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Public IP Prefix resource . Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "prefixLength": {
            "description": "Specifies the number of bits of the prefix. The value can be set between 0 (4,294,967,296 addresses) and 31 (2 addresses). Defaults to `28`(16 addresses). Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Public IP Prefix.\n",
            "type": "string"
          },
          "sku": {
            "description": "The SKU of the Public IP Prefix. Accepted values are `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "zones": {
            "deprecationMessage": "This property has been deprecated in favour of `availability_zone` due to a breaking behavioural change in Azure: https://azure.microsoft.com/en-us/updates/zone-behavior-change/",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/route:Route": {
      "description": "Manages a Route within a Route Table.\n\n\u003e **NOTE on Route Tables and Routes:** This provider currently\nprovides both a standalone Route resource, and allows for Routes to be defined in-line within the Route Table resource.\nAt this time you cannot use a Route Table with in-line Routes in conjunction with any Route resources. Doing so will cause a conflict of Route configurations and will overwrite Routes.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleRouteTable = new azure.network.RouteTable(\"exampleRouteTable\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleRoute = new azure.network.Route(\"exampleRoute\", {\n    resourceGroupName: exampleResourceGroup.name,\n    routeTableName: exampleRouteTable.name,\n    addressPrefix: \"10.1.0.0/16\",\n    nextHopType: \"vnetlocal\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_route_table = azure.network.RouteTable(\"exampleRouteTable\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_route = azure.network.Route(\"exampleRoute\",\n    resource_group_name=example_resource_group.name,\n    route_table_name=example_route_table.name,\n    address_prefix=\"10.1.0.0/16\",\n    next_hop_type=\"vnetlocal\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleRouteTable = new Azure.Network.RouteTable(\"exampleRouteTable\", new Azure.Network.RouteTableArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleRoute = new Azure.Network.Route(\"exampleRoute\", new Azure.Network.RouteArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            RouteTableName = exampleRouteTable.Name,\n            AddressPrefix = \"10.1.0.0/16\",\n            NextHopType = \"vnetlocal\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRouteTable, err := network.NewRouteTable(ctx, \"exampleRouteTable\", \u0026network.RouteTableArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewRoute(ctx, \"exampleRoute\", \u0026network.RouteArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tRouteTableName:    exampleRouteTable.Name,\n\t\t\tAddressPrefix:     pulumi.String(\"10.1.0.0/16\"),\n\t\t\tNextHopType:       pulumi.String(\"vnetlocal\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRoutes can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/route:Route exampleRoute /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/routeTables/mytable1/routes/myroute1\n```\n\n ",
      "inputProperties": {
        "addressPrefix": {
          "description": "The destination CIDR to which the route applies, such as `10.1.0.0/16`\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the route. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "nextHopInIpAddress": {
          "description": "Contains the IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is `VirtualAppliance`.\n",
          "type": "string"
        },
        "nextHopType": {
          "description": "The type of Azure hop the packet should be sent to. Possible values are `VirtualNetworkGateway`, `VnetLocal`, `Internet`, `VirtualAppliance` and `None`\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the route. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routeTableName": {
          "description": "The name of the route table within which create the route. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "addressPrefix": {
          "description": "The destination CIDR to which the route applies, such as `10.1.0.0/16`\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the route. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "nextHopInIpAddress": {
          "description": "Contains the IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is `VirtualAppliance`.\n",
          "type": "string"
        },
        "nextHopType": {
          "description": "The type of Azure hop the packet should be sent to. Possible values are `VirtualNetworkGateway`, `VnetLocal`, `Internet`, `VirtualAppliance` and `None`\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the route. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routeTableName": {
          "description": "The name of the route table within which create the route. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "addressPrefix",
        "name",
        "nextHopType",
        "resourceGroupName",
        "routeTableName"
      ],
      "requiredInputs": [
        "addressPrefix",
        "nextHopType",
        "resourceGroupName",
        "routeTableName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Route resources.\n",
        "properties": {
          "addressPrefix": {
            "description": "The destination CIDR to which the route applies, such as `10.1.0.0/16`\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the route. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "nextHopInIpAddress": {
            "description": "Contains the IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is `VirtualAppliance`.\n",
            "type": "string"
          },
          "nextHopType": {
            "description": "The type of Azure hop the packet should be sent to. Possible values are `VirtualNetworkGateway`, `VnetLocal`, `Internet`, `VirtualAppliance` and `None`\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the route. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "routeTableName": {
            "description": "The name of the route table within which create the route. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/routeFilter:RouteFilter": {
      "description": "Manages a Route Filter.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.network.RouteFilter(\"example\", {\n    location: \"East US\",\n    resourceGroupName: \"example\",\n    rule: {\n        access: \"Allow\",\n        communities: [\"12076:52004\"],\n        name: \"rule\",\n        ruleType: \"Community\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.RouteFilter(\"example\",\n    location=\"East US\",\n    resource_group_name=\"example\",\n    rule=azure.network.RouteFilterRuleArgs(\n        access=\"Allow\",\n        communities=[\"12076:52004\"],\n        name=\"rule\",\n        rule_type=\"Community\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Network.RouteFilter(\"example\", new Azure.Network.RouteFilterArgs\n        {\n            Location = \"East US\",\n            ResourceGroupName = \"example\",\n            Rule = new Azure.Network.Inputs.RouteFilterRuleArgs\n            {\n                Access = \"Allow\",\n                Communities = \n                {\n                    \"12076:52004\",\n                },\n                Name = \"rule\",\n                RuleType = \"Community\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\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 := network.NewRouteFilter(ctx, \"example\", \u0026network.RouteFilterArgs{\n\t\t\tLocation:          pulumi.String(\"East US\"),\n\t\t\tResourceGroupName: pulumi.String(\"example\"),\n\t\t\tRule: \u0026network.RouteFilterRuleArgs{\n\t\t\t\tAccess: pulumi.String(\"Allow\"),\n\t\t\t\tCommunities: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"12076:52004\"),\n\t\t\t\t},\n\t\t\t\tName:     pulumi.String(\"rule\"),\n\t\t\t\tRuleType: pulumi.String(\"Community\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRoute Filters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/routeFilter:RouteFilter example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/routeFilters/routeFilter1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The Azure Region where the Route Filter should exist. Changing this forces a new Route Filter to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The Name which should be used for this Route Filter.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Route Filter should exist. Changing this forces a new Route Filter to be created.\n",
          "type": "string"
        },
        "rule": {
          "$ref": "#/types/azure:network/RouteFilterRule:RouteFilterRule",
          "description": "A `rules` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Route Filter.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "The Azure Region where the Route Filter should exist. Changing this forces a new Route Filter to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The Name which should be used for this Route Filter.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Route Filter should exist. Changing this forces a new Route Filter to be created.\n",
          "type": "string"
        },
        "rule": {
          "$ref": "#/types/azure:network/RouteFilterRule:RouteFilterRule",
          "description": "A `rules` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Route Filter.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "rule"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RouteFilter resources.\n",
        "properties": {
          "location": {
            "description": "The Azure Region where the Route Filter should exist. Changing this forces a new Route Filter to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The Name which should be used for this Route Filter.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Route Filter should exist. Changing this forces a new Route Filter to be created.\n",
            "type": "string"
          },
          "rule": {
            "$ref": "#/types/azure:network/RouteFilterRule:RouteFilterRule",
            "description": "A `rules` block as defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Route Filter.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:network/routeTable:RouteTable": {
      "description": "Manages a Route Table\n\n\u003e **NOTE on Route Tables and Routes:** There is both a standalone `route` resource, and allows for Routes to be defined in-line within the `route_table` resource.\nAt this time you cannot use a Route Table with in-line Routes in conjunction with any Route resources. Doing so will cause a conflict of Route configurations and will overwrite Routes.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleRouteTable = new azure.network.RouteTable(\"exampleRouteTable\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    disableBgpRoutePropagation: false,\n    routes: [{\n        name: \"route1\",\n        addressPrefix: \"10.1.0.0/16\",\n        nextHopType: \"vnetlocal\",\n    }],\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_route_table = azure.network.RouteTable(\"exampleRouteTable\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    disable_bgp_route_propagation=False,\n    routes=[azure.network.RouteTableRouteArgs(\n        name=\"route1\",\n        address_prefix=\"10.1.0.0/16\",\n        next_hop_type=\"vnetlocal\",\n    )],\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleRouteTable = new Azure.Network.RouteTable(\"exampleRouteTable\", new Azure.Network.RouteTableArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            DisableBgpRoutePropagation = false,\n            Routes = \n            {\n                new Azure.Network.Inputs.RouteTableRouteArgs\n                {\n                    Name = \"route1\",\n                    AddressPrefix = \"10.1.0.0/16\",\n                    NextHopType = \"vnetlocal\",\n                },\n            },\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewRouteTable(ctx, \"exampleRouteTable\", \u0026network.RouteTableArgs{\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tDisableBgpRoutePropagation: pulumi.Bool(false),\n\t\t\tRoutes: network.RouteTableRouteArray{\n\t\t\t\t\u0026network.RouteTableRouteArgs{\n\t\t\t\t\tName:          pulumi.String(\"route1\"),\n\t\t\t\t\tAddressPrefix: pulumi.String(\"10.1.0.0/16\"),\n\t\t\t\t\tNextHopType:   pulumi.String(\"vnetlocal\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRoute Tables can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/routeTable:RouteTable example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/routeTables/mytable1\n```\n\n ",
      "inputProperties": {
        "disableBgpRoutePropagation": {
          "description": "Boolean flag which controls propagation of routes learned by BGP on that route table. True means disable.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the route.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the route table. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routes": {
          "description": "A list of objects representing routes. Each object accepts the arguments documented below.\n",
          "items": {
            "$ref": "#/types/azure:network/RouteTableRoute:RouteTableRoute"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "disableBgpRoutePropagation": {
          "description": "Boolean flag which controls propagation of routes learned by BGP on that route table. True means disable.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the route.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the route table. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routes": {
          "description": "A list of objects representing routes. Each object accepts the arguments documented below.\n",
          "items": {
            "$ref": "#/types/azure:network/RouteTableRoute:RouteTableRoute"
          },
          "type": "array"
        },
        "subnets": {
          "description": "The collection of Subnets associated with this route table.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "routes",
        "subnets"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RouteTable resources.\n",
        "properties": {
          "disableBgpRoutePropagation": {
            "description": "Boolean flag which controls propagation of routes learned by BGP on that route table. True means disable.\n",
            "type": "boolean"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the route.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the route table. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "routes": {
            "description": "A list of objects representing routes. Each object accepts the arguments documented below.\n",
            "items": {
              "$ref": "#/types/azure:network/RouteTableRoute:RouteTableRoute"
            },
            "type": "array"
          },
          "subnets": {
            "description": "The collection of Subnets associated with this route table.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:network/securityPartnerProvider:SecurityPartnerProvider": {
      "description": "Manages a Security Partner Provider which could be associated to virtual hub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualWan = new azure.network.VirtualWan(\"exampleVirtualWan\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleVirtualHub = new azure.network.VirtualHub(\"exampleVirtualHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    virtualWanId: exampleVirtualWan.id,\n    addressPrefix: \"10.0.2.0/24\",\n});\nconst exampleVpnGateway = new azure.network.VpnGateway(\"exampleVpnGateway\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    virtualHubId: exampleVirtualHub.id,\n});\nconst exampleSecurityPartnerProvider = new azure.network.SecurityPartnerProvider(\"exampleSecurityPartnerProvider\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    virtualHubId: exampleVirtualHub.id,\n    securityProviderName: \"IBoss\",\n    tags: {\n        ENV: \"Prod\",\n    },\n}, {\n    dependsOn: [exampleVpnGateway],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_wan = azure.network.VirtualWan(\"exampleVirtualWan\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_virtual_hub = azure.network.VirtualHub(\"exampleVirtualHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    virtual_wan_id=example_virtual_wan.id,\n    address_prefix=\"10.0.2.0/24\")\nexample_vpn_gateway = azure.network.VpnGateway(\"exampleVpnGateway\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    virtual_hub_id=example_virtual_hub.id)\nexample_security_partner_provider = azure.network.SecurityPartnerProvider(\"exampleSecurityPartnerProvider\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    virtual_hub_id=example_virtual_hub.id,\n    security_provider_name=\"IBoss\",\n    tags={\n        \"ENV\": \"Prod\",\n    },\n    opts=pulumi.ResourceOptions(depends_on=[example_vpn_gateway]))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualWan = new Azure.Network.VirtualWan(\"exampleVirtualWan\", new Azure.Network.VirtualWanArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleVirtualHub = new Azure.Network.VirtualHub(\"exampleVirtualHub\", new Azure.Network.VirtualHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            VirtualWanId = exampleVirtualWan.Id,\n            AddressPrefix = \"10.0.2.0/24\",\n        });\n        var exampleVpnGateway = new Azure.Network.VpnGateway(\"exampleVpnGateway\", new Azure.Network.VpnGatewayArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualHubId = exampleVirtualHub.Id,\n        });\n        var exampleSecurityPartnerProvider = new Azure.Network.SecurityPartnerProvider(\"exampleSecurityPartnerProvider\", new Azure.Network.SecurityPartnerProviderArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            VirtualHubId = exampleVirtualHub.Id,\n            SecurityProviderName = \"IBoss\",\n            Tags = \n            {\n                { \"ENV\", \"Prod\" },\n            },\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                exampleVpnGateway,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualWan, err := network.NewVirtualWan(ctx, \"exampleVirtualWan\", \u0026network.VirtualWanArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualHub, err := network.NewVirtualHub(ctx, \"exampleVirtualHub\", \u0026network.VirtualHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tVirtualWanId:      exampleVirtualWan.ID(),\n\t\t\tAddressPrefix:     pulumi.String(\"10.0.2.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpnGateway, err := network.NewVpnGateway(ctx, \"exampleVpnGateway\", \u0026network.VpnGatewayArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tVirtualHubId:      exampleVirtualHub.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewSecurityPartnerProvider(ctx, \"exampleSecurityPartnerProvider\", \u0026network.SecurityPartnerProviderArgs{\n\t\t\tResourceGroupName:    exampleResourceGroup.Name,\n\t\t\tLocation:             exampleResourceGroup.Location,\n\t\t\tVirtualHubId:         exampleVirtualHub.ID(),\n\t\t\tSecurityProviderName: pulumi.String(\"IBoss\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"ENV\": pulumi.String(\"Prod\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleVpnGateway,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSecurity Partner Providers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/securityPartnerProvider:SecurityPartnerProvider example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/securityPartnerProviders/securityPartnerProvider1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The Azure Region where the Security Partner Provider should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Security Partner Provider. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Security Partner Provider should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "securityProviderName": {
          "description": "The security provider name. Possible values are `ZScaler`, `IBoss` and `Checkpoint` is allowed. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Security Partner Provider.\n",
          "type": "object"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub within which this Security Partner Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "location": {
          "description": "The Azure Region where the Security Partner Provider should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Security Partner Provider. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Security Partner Provider should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "securityProviderName": {
          "description": "The security provider name. Possible values are `ZScaler`, `IBoss` and `Checkpoint` is allowed. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Security Partner Provider.\n",
          "type": "object"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub within which this Security Partner Provider should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "securityProviderName"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "securityProviderName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SecurityPartnerProvider resources.\n",
        "properties": {
          "location": {
            "description": "The Azure Region where the Security Partner Provider should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Security Partner Provider. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Security Partner Provider should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "securityProviderName": {
            "description": "The security provider name. Possible values are `ZScaler`, `IBoss` and `Checkpoint` is allowed. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Security Partner Provider.\n",
            "type": "object"
          },
          "virtualHubId": {
            "description": "The ID of the Virtual Hub within which this Security Partner Provider should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/subnet:Subnet": {
      "description": "Manages a subnet. Subnets represent network segments within the IP space defined by the virtual network.\n\n\u003e **NOTE on Virtual Networks and Subnet's:** This provider currently\nprovides both a standalone Subnet resource, and allows for Subnets to be defined in-line within the Virtual Network resource.\nAt this time you cannot use a Virtual Network with in-line Subnets in conjunction with any Subnet resources. Doing so will cause a conflict of Subnet configurations and will overwrite Subnet's.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n    delegations: [{\n        name: \"delegation\",\n        serviceDelegation: {\n            name: \"Microsoft.ContainerInstance/containerGroups\",\n            actions: [\n                \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n                \"Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action\",\n            ],\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"],\n    delegations=[azure.network.SubnetDelegationArgs(\n        name=\"delegation\",\n        service_delegation=azure.network.SubnetDelegationServiceDelegationArgs(\n            name=\"Microsoft.ContainerInstance/containerGroups\",\n            actions=[\n                \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n                \"Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action\",\n            ],\n        ),\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n            Delegations = \n            {\n                new Azure.Network.Inputs.SubnetDelegationArgs\n                {\n                    Name = \"delegation\",\n                    ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs\n                    {\n                        Name = \"Microsoft.ContainerInstance/containerGroups\",\n                        Actions = \n                        {\n                            \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n                            \"Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action\",\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t\tDelegations: network.SubnetDelegationArray{\n\t\t\t\t\u0026network.SubnetDelegationArgs{\n\t\t\t\t\tName: pulumi.String(\"delegation\"),\n\t\t\t\t\tServiceDelegation: \u0026network.SubnetDelegationServiceDelegationArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Microsoft.ContainerInstance/containerGroups\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/join/action\"),\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSubnets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/subnet:Subnet exampleSubnet /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/virtualNetworks/myvnet1/subnets/mysubnet1\n```\n\n ",
      "inputProperties": {
        "addressPrefix": {
          "deprecationMessage": "Use the `address_prefixes` property instead.",
          "description": "The address prefix to use for the subnet.\n",
          "type": "string"
        },
        "addressPrefixes": {
          "description": "The address prefixes to use for the subnet.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "delegations": {
          "description": "One or more `delegation` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/SubnetDelegation:SubnetDelegation"
          },
          "type": "array"
        },
        "enforcePrivateLinkEndpointNetworkPolicies": {
          "description": "Enable or Disable network policies for the private link endpoint on the subnet. Setting this to `true` will **Disable** the policy and setting this to `false` will **Enable** the policy. Default value is `false`. Conflicts with enforce_private_link_service_network_policies.\n",
          "type": "boolean"
        },
        "enforcePrivateLinkServiceNetworkPolicies": {
          "description": "Enable or Disable network policies for the private link service on the subnet. Setting this to `true` will **Disable** the policy and setting this to `false` will **Enable** the policy. Default valule is `false`. Conflicts with `enforce_private_link_endpoint_network_policies`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceEndpointPolicyIds": {
          "description": "The list of IDs of Service Endpoint Policies to associate with the subnet.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "serviceEndpoints": {
          "description": "The list of Service endpoints to associate with the subnet. Possible values include: `Microsoft.AzureActiveDirectory`, `Microsoft.AzureCosmosDB`, `Microsoft.ContainerRegistry`, `Microsoft.EventHub`, `Microsoft.KeyVault`, `Microsoft.ServiceBus`, `Microsoft.Sql`, `Microsoft.Storage` and `Microsoft.Web`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "virtualNetworkName": {
          "description": "The name of the virtual network to which to attach the subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "addressPrefix": {
          "deprecationMessage": "Use the `address_prefixes` property instead.",
          "description": "The address prefix to use for the subnet.\n",
          "type": "string"
        },
        "addressPrefixes": {
          "description": "The address prefixes to use for the subnet.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "delegations": {
          "description": "One or more `delegation` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/SubnetDelegation:SubnetDelegation"
          },
          "type": "array"
        },
        "enforcePrivateLinkEndpointNetworkPolicies": {
          "description": "Enable or Disable network policies for the private link endpoint on the subnet. Setting this to `true` will **Disable** the policy and setting this to `false` will **Enable** the policy. Default value is `false`. Conflicts with enforce_private_link_service_network_policies.\n",
          "type": "boolean"
        },
        "enforcePrivateLinkServiceNetworkPolicies": {
          "description": "Enable or Disable network policies for the private link service on the subnet. Setting this to `true` will **Disable** the policy and setting this to `false` will **Enable** the policy. Default valule is `false`. Conflicts with `enforce_private_link_endpoint_network_policies`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceEndpointPolicyIds": {
          "description": "The list of IDs of Service Endpoint Policies to associate with the subnet.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "serviceEndpoints": {
          "description": "The list of Service endpoints to associate with the subnet. Possible values include: `Microsoft.AzureActiveDirectory`, `Microsoft.AzureCosmosDB`, `Microsoft.ContainerRegistry`, `Microsoft.EventHub`, `Microsoft.KeyVault`, `Microsoft.ServiceBus`, `Microsoft.Sql`, `Microsoft.Storage` and `Microsoft.Web`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "virtualNetworkName": {
          "description": "The name of the virtual network to which to attach the subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "addressPrefix",
        "addressPrefixes",
        "name",
        "resourceGroupName",
        "virtualNetworkName"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "virtualNetworkName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Subnet resources.\n",
        "properties": {
          "addressPrefix": {
            "deprecationMessage": "Use the `address_prefixes` property instead.",
            "description": "The address prefix to use for the subnet.\n",
            "type": "string"
          },
          "addressPrefixes": {
            "description": "The address prefixes to use for the subnet.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "delegations": {
            "description": "One or more `delegation` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/SubnetDelegation:SubnetDelegation"
            },
            "type": "array"
          },
          "enforcePrivateLinkEndpointNetworkPolicies": {
            "description": "Enable or Disable network policies for the private link endpoint on the subnet. Setting this to `true` will **Disable** the policy and setting this to `false` will **Enable** the policy. Default value is `false`. Conflicts with enforce_private_link_service_network_policies.\n",
            "type": "boolean"
          },
          "enforcePrivateLinkServiceNetworkPolicies": {
            "description": "Enable or Disable network policies for the private link service on the subnet. Setting this to `true` will **Disable** the policy and setting this to `false` will **Enable** the policy. Default valule is `false`. Conflicts with `enforce_private_link_endpoint_network_policies`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name of the subnet. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the subnet. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serviceEndpointPolicyIds": {
            "description": "The list of IDs of Service Endpoint Policies to associate with the subnet.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "serviceEndpoints": {
            "description": "The list of Service endpoints to associate with the subnet. Possible values include: `Microsoft.AzureActiveDirectory`, `Microsoft.AzureCosmosDB`, `Microsoft.ContainerRegistry`, `Microsoft.EventHub`, `Microsoft.KeyVault`, `Microsoft.ServiceBus`, `Microsoft.Sql`, `Microsoft.Storage` and `Microsoft.Web`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "virtualNetworkName": {
            "description": "The name of the virtual network to which to attach the subnet. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/subnetNatGatewayAssociation:SubnetNatGatewayAssociation": {
      "description": "Associates a NAT Gateway with a Subnet within a Virtual Network.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNatGateway = new azure.network.NatGateway(\"exampleNatGateway\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnetNatGatewayAssociation = new azure.network.SubnetNatGatewayAssociation(\"exampleSubnetNatGatewayAssociation\", {\n    subnetId: exampleSubnet.id,\n    natGatewayId: exampleNatGateway.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_nat_gateway = azure.network.NatGateway(\"exampleNatGateway\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet_nat_gateway_association = azure.network.SubnetNatGatewayAssociation(\"exampleSubnetNatGatewayAssociation\",\n    subnet_id=example_subnet.id,\n    nat_gateway_id=example_nat_gateway.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleNatGateway = new Azure.Network.NatGateway(\"exampleNatGateway\", new Azure.Network.NatGatewayArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnetNatGatewayAssociation = new Azure.Network.SubnetNatGatewayAssociation(\"exampleSubnetNatGatewayAssociation\", new Azure.Network.SubnetNatGatewayAssociationArgs\n        {\n            SubnetId = exampleSubnet.Id,\n            NatGatewayId = exampleNatGateway.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNatGateway, err := network.NewNatGateway(ctx, \"exampleNatGateway\", \u0026network.NatGatewayArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewSubnetNatGatewayAssociation(ctx, \"exampleSubnetNatGatewayAssociation\", \u0026network.SubnetNatGatewayAssociationArgs{\n\t\t\tSubnetId:     exampleSubnet.ID(),\n\t\t\tNatGatewayId: exampleNatGateway.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSubnet NAT Gateway Associations can be imported using the `resource id` of the Subnet, e.g.\n\n```sh\n $ pulumi import azure:network/subnetNatGatewayAssociation:SubnetNatGatewayAssociation association1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/virtualNetworks/myvnet1/subnets/mysubnet1\n```\n\n ",
      "inputProperties": {
        "natGatewayId": {
          "description": "The ID of the NAT Gateway which should be associated with the Subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "natGatewayId": {
          "description": "The ID of the NAT Gateway which should be associated with the Subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "natGatewayId",
        "subnetId"
      ],
      "requiredInputs": [
        "natGatewayId",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SubnetNatGatewayAssociation resources.\n",
        "properties": {
          "natGatewayId": {
            "description": "The ID of the NAT Gateway which should be associated with the Subnet. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the Subnet. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/subnetNetworkSecurityGroupAssociation:SubnetNetworkSecurityGroupAssociation": {
      "description": "Associates a Network Security Group with a Subnet within a Virtual Network.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNetworkSecurityGroup = new azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    securityRules: [{\n        name: \"test123\",\n        priority: 100,\n        direction: \"Inbound\",\n        access: \"Allow\",\n        protocol: \"Tcp\",\n        sourcePortRange: \"*\",\n        destinationPortRange: \"*\",\n        sourceAddressPrefix: \"*\",\n        destinationAddressPrefix: \"*\",\n    }],\n});\nconst exampleSubnetNetworkSecurityGroupAssociation = new azure.network.SubnetNetworkSecurityGroupAssociation(\"exampleSubnetNetworkSecurityGroupAssociation\", {\n    subnetId: exampleSubnet.id,\n    networkSecurityGroupId: exampleNetworkSecurityGroup.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_network_security_group = azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    security_rules=[azure.network.NetworkSecurityGroupSecurityRuleArgs(\n        name=\"test123\",\n        priority=100,\n        direction=\"Inbound\",\n        access=\"Allow\",\n        protocol=\"Tcp\",\n        source_port_range=\"*\",\n        destination_port_range=\"*\",\n        source_address_prefix=\"*\",\n        destination_address_prefix=\"*\",\n    )])\nexample_subnet_network_security_group_association = azure.network.SubnetNetworkSecurityGroupAssociation(\"exampleSubnetNetworkSecurityGroupAssociation\",\n    subnet_id=example_subnet.id,\n    network_security_group_id=example_network_security_group.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleNetworkSecurityGroup = new Azure.Network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", new Azure.Network.NetworkSecurityGroupArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SecurityRules = \n            {\n                new Azure.Network.Inputs.NetworkSecurityGroupSecurityRuleArgs\n                {\n                    Name = \"test123\",\n                    Priority = 100,\n                    Direction = \"Inbound\",\n                    Access = \"Allow\",\n                    Protocol = \"Tcp\",\n                    SourcePortRange = \"*\",\n                    DestinationPortRange = \"*\",\n                    SourceAddressPrefix = \"*\",\n                    DestinationAddressPrefix = \"*\",\n                },\n            },\n        });\n        var exampleSubnetNetworkSecurityGroupAssociation = new Azure.Network.SubnetNetworkSecurityGroupAssociation(\"exampleSubnetNetworkSecurityGroupAssociation\", new Azure.Network.SubnetNetworkSecurityGroupAssociationArgs\n        {\n            SubnetId = exampleSubnet.Id,\n            NetworkSecurityGroupId = exampleNetworkSecurityGroup.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkSecurityGroup, err := network.NewNetworkSecurityGroup(ctx, \"exampleNetworkSecurityGroup\", \u0026network.NetworkSecurityGroupArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSecurityRules: network.NetworkSecurityGroupSecurityRuleArray{\n\t\t\t\t\u0026network.NetworkSecurityGroupSecurityRuleArgs{\n\t\t\t\t\tName:                     pulumi.String(\"test123\"),\n\t\t\t\t\tPriority:                 pulumi.Int(100),\n\t\t\t\t\tDirection:                pulumi.String(\"Inbound\"),\n\t\t\t\t\tAccess:                   pulumi.String(\"Allow\"),\n\t\t\t\t\tProtocol:                 pulumi.String(\"Tcp\"),\n\t\t\t\t\tSourcePortRange:          pulumi.String(\"*\"),\n\t\t\t\t\tDestinationPortRange:     pulumi.String(\"*\"),\n\t\t\t\t\tSourceAddressPrefix:      pulumi.String(\"*\"),\n\t\t\t\t\tDestinationAddressPrefix: pulumi.String(\"*\"),\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 = network.NewSubnetNetworkSecurityGroupAssociation(ctx, \"exampleSubnetNetworkSecurityGroupAssociation\", \u0026network.SubnetNetworkSecurityGroupAssociationArgs{\n\t\t\tSubnetId:               exampleSubnet.ID(),\n\t\t\tNetworkSecurityGroupId: exampleNetworkSecurityGroup.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSubnet `\u003c-\u003e` Network Security Group Associations can be imported using the `resource id` of the Subnet, e.g.\n\n```sh\n $ pulumi import azure:network/subnetNetworkSecurityGroupAssociation:SubnetNetworkSecurityGroupAssociation association1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/virtualNetworks/myvnet1/subnets/mysubnet1\n```\n\n ",
      "inputProperties": {
        "networkSecurityGroupId": {
          "description": "The ID of the Network Security Group which should be associated with the Subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "networkSecurityGroupId": {
          "description": "The ID of the Network Security Group which should be associated with the Subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "networkSecurityGroupId",
        "subnetId"
      ],
      "requiredInputs": [
        "networkSecurityGroupId",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SubnetNetworkSecurityGroupAssociation resources.\n",
        "properties": {
          "networkSecurityGroupId": {
            "description": "The ID of the Network Security Group which should be associated with the Subnet. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the Subnet. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/subnetRouteTableAssociation:SubnetRouteTableAssociation": {
      "description": "Associates a Route Table with a Subnet within a Virtual Network.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleRouteTable = new azure.network.RouteTable(\"exampleRouteTable\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    routes: [{\n        name: \"example\",\n        addressPrefix: \"10.100.0.0/14\",\n        nextHopType: \"VirtualAppliance\",\n        nextHopInIpAddress: \"10.10.1.1\",\n    }],\n});\nconst exampleSubnetRouteTableAssociation = new azure.network.SubnetRouteTableAssociation(\"exampleSubnetRouteTableAssociation\", {\n    subnetId: exampleSubnet.id,\n    routeTableId: exampleRouteTable.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_route_table = azure.network.RouteTable(\"exampleRouteTable\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    routes=[azure.network.RouteTableRouteArgs(\n        name=\"example\",\n        address_prefix=\"10.100.0.0/14\",\n        next_hop_type=\"VirtualAppliance\",\n        next_hop_in_ip_address=\"10.10.1.1\",\n    )])\nexample_subnet_route_table_association = azure.network.SubnetRouteTableAssociation(\"exampleSubnetRouteTableAssociation\",\n    subnet_id=example_subnet.id,\n    route_table_id=example_route_table.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleRouteTable = new Azure.Network.RouteTable(\"exampleRouteTable\", new Azure.Network.RouteTableArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Routes = \n            {\n                new Azure.Network.Inputs.RouteTableRouteArgs\n                {\n                    Name = \"example\",\n                    AddressPrefix = \"10.100.0.0/14\",\n                    NextHopType = \"VirtualAppliance\",\n                    NextHopInIpAddress = \"10.10.1.1\",\n                },\n            },\n        });\n        var exampleSubnetRouteTableAssociation = new Azure.Network.SubnetRouteTableAssociation(\"exampleSubnetRouteTableAssociation\", new Azure.Network.SubnetRouteTableAssociationArgs\n        {\n            SubnetId = exampleSubnet.Id,\n            RouteTableId = exampleRouteTable.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRouteTable, err := network.NewRouteTable(ctx, \"exampleRouteTable\", \u0026network.RouteTableArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tRoutes: network.RouteTableRouteArray{\n\t\t\t\t\u0026network.RouteTableRouteArgs{\n\t\t\t\t\tName:               pulumi.String(\"example\"),\n\t\t\t\t\tAddressPrefix:      pulumi.String(\"10.100.0.0/14\"),\n\t\t\t\t\tNextHopType:        pulumi.String(\"VirtualAppliance\"),\n\t\t\t\t\tNextHopInIpAddress: pulumi.String(\"10.10.1.1\"),\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 = network.NewSubnetRouteTableAssociation(ctx, \"exampleSubnetRouteTableAssociation\", \u0026network.SubnetRouteTableAssociationArgs{\n\t\t\tSubnetId:     exampleSubnet.ID(),\n\t\t\tRouteTableId: exampleRouteTable.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSubnet Route Table Associations can be imported using the `resource id` of the Subnet, e.g.\n\n```sh\n $ pulumi import azure:network/subnetRouteTableAssociation:SubnetRouteTableAssociation association1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/virtualNetworks/myvnet1/subnets/mysubnet1\n```\n\n ",
      "inputProperties": {
        "routeTableId": {
          "description": "The ID of the Route Table which should be associated with the Subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "routeTableId": {
          "description": "The ID of the Route Table which should be associated with the Subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "routeTableId",
        "subnetId"
      ],
      "requiredInputs": [
        "routeTableId",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SubnetRouteTableAssociation resources.\n",
        "properties": {
          "routeTableId": {
            "description": "The ID of the Route Table which should be associated with the Subnet. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the Subnet. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/subnetServiceEndpointStoragePolicy:SubnetServiceEndpointStoragePolicy": {
      "description": "Manages a Subnet Service Endpoint Storage Policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleSubnetServiceEndpointStoragePolicy = new azure.network.SubnetServiceEndpointStoragePolicy(\"exampleSubnetServiceEndpointStoragePolicy\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    definition: {\n        name: \"name1\",\n        description: \"definition1\",\n        serviceResources: [\n            exampleResourceGroup.id,\n            exampleAccount.id,\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_subnet_service_endpoint_storage_policy = azure.network.SubnetServiceEndpointStoragePolicy(\"exampleSubnetServiceEndpointStoragePolicy\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    definition=azure.network.SubnetServiceEndpointStoragePolicyDefinitionArgs(\n        name=\"name1\",\n        description=\"definition1\",\n        service_resources=[\n            example_resource_group.id,\n            example_account.id,\n        ],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleSubnetServiceEndpointStoragePolicy = new Azure.Network.SubnetServiceEndpointStoragePolicy(\"exampleSubnetServiceEndpointStoragePolicy\", new Azure.Network.SubnetServiceEndpointStoragePolicyArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Definition = new Azure.Network.Inputs.SubnetServiceEndpointStoragePolicyDefinitionArgs\n            {\n                Name = \"name1\",\n                Description = \"definition1\",\n                ServiceResources = \n                {\n                    exampleResourceGroup.Id,\n                    exampleAccount.Id,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewSubnetServiceEndpointStoragePolicy(ctx, \"exampleSubnetServiceEndpointStoragePolicy\", \u0026network.SubnetServiceEndpointStoragePolicyArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tDefinition: \u0026network.SubnetServiceEndpointStoragePolicyDefinitionArgs{\n\t\t\t\tName:        pulumi.String(\"name1\"),\n\t\t\t\tDescription: pulumi.String(\"definition1\"),\n\t\t\t\tServiceResources: pulumi.StringArray{\n\t\t\t\t\texampleResourceGroup.ID(),\n\t\t\t\t\texampleAccount.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSubnet Service Endpoint Policies can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/subnetServiceEndpointStoragePolicy:SubnetServiceEndpointStoragePolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/serviceEndpointPolicies/policy1\n```\n\n ",
      "inputProperties": {
        "definition": {
          "$ref": "#/types/azure:network/SubnetServiceEndpointStoragePolicyDefinition:SubnetServiceEndpointStoragePolicyDefinition",
          "description": "A `definition` block as defined below\n"
        },
        "location": {
          "description": "The Azure Region where the Subnet Service Endpoint Storage Policy should exist. Changing this forces a new Subnet Service Endpoint Storage Policy to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Subnet Service Endpoint Storage Policy. Changing this forces a new Subnet Service Endpoint Storage Policy to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Subnet Service Endpoint Storage Policy should exist. Changing this forces a new Subnet Service Endpoint Storage Policy to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Subnet Service Endpoint Storage Policy.\n",
          "type": "object"
        }
      },
      "properties": {
        "definition": {
          "$ref": "#/types/azure:network/SubnetServiceEndpointStoragePolicyDefinition:SubnetServiceEndpointStoragePolicyDefinition",
          "description": "A `definition` block as defined below\n"
        },
        "location": {
          "description": "The Azure Region where the Subnet Service Endpoint Storage Policy should exist. Changing this forces a new Subnet Service Endpoint Storage Policy to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Subnet Service Endpoint Storage Policy. Changing this forces a new Subnet Service Endpoint Storage Policy to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Subnet Service Endpoint Storage Policy should exist. Changing this forces a new Subnet Service Endpoint Storage Policy to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Subnet Service Endpoint Storage Policy.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SubnetServiceEndpointStoragePolicy resources.\n",
        "properties": {
          "definition": {
            "$ref": "#/types/azure:network/SubnetServiceEndpointStoragePolicyDefinition:SubnetServiceEndpointStoragePolicyDefinition",
            "description": "A `definition` block as defined below\n"
          },
          "location": {
            "description": "The Azure Region where the Subnet Service Endpoint Storage Policy should exist. Changing this forces a new Subnet Service Endpoint Storage Policy to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Subnet Service Endpoint Storage Policy. Changing this forces a new Subnet Service Endpoint Storage Policy to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Subnet Service Endpoint Storage Policy should exist. Changing this forces a new Subnet Service Endpoint Storage Policy to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Subnet Service Endpoint Storage Policy.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:network/trafficManagerEndpoint:TrafficManagerEndpoint": {
      "aliases": [
        {
          "type": "azure:trafficmanager/endpoint:Endpoint"
        }
      ],
      "description": "Manages a Traffic Manager Endpoint.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as random from \"@pulumi/random\";\n\nconst server = new random.RandomId(\"server\", {\n    keepers: {\n        azi_id: 1,\n    },\n    byteLength: 8,\n});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleTrafficManagerProfile = new azure.network.TrafficManagerProfile(\"exampleTrafficManagerProfile\", {\n    resourceGroupName: exampleResourceGroup.name,\n    trafficRoutingMethod: \"Weighted\",\n    dnsConfig: {\n        relativeName: server.hex,\n        ttl: 100,\n    },\n    monitorConfig: {\n        protocol: \"http\",\n        port: 80,\n        path: \"/\",\n        intervalInSeconds: 30,\n        timeoutInSeconds: 9,\n        toleratedNumberOfFailures: 3,\n    },\n    tags: {\n        environment: \"Production\",\n    },\n});\nconst exampleTrafficManagerEndpoint = new azure.network.TrafficManagerEndpoint(\"exampleTrafficManagerEndpoint\", {\n    resourceGroupName: exampleResourceGroup.name,\n    profileName: exampleTrafficManagerProfile.name,\n    type: \"externalEndpoints\",\n    weight: 100,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_random as random\n\nserver = random.RandomId(\"server\",\n    keepers={\n        \"azi_id\": 1,\n    },\n    byte_length=8)\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_traffic_manager_profile = azure.network.TrafficManagerProfile(\"exampleTrafficManagerProfile\",\n    resource_group_name=example_resource_group.name,\n    traffic_routing_method=\"Weighted\",\n    dns_config=azure.network.TrafficManagerProfileDnsConfigArgs(\n        relative_name=server.hex,\n        ttl=100,\n    ),\n    monitor_config=azure.network.TrafficManagerProfileMonitorConfigArgs(\n        protocol=\"http\",\n        port=80,\n        path=\"/\",\n        interval_in_seconds=30,\n        timeout_in_seconds=9,\n        tolerated_number_of_failures=3,\n    ),\n    tags={\n        \"environment\": \"Production\",\n    })\nexample_traffic_manager_endpoint = azure.network.TrafficManagerEndpoint(\"exampleTrafficManagerEndpoint\",\n    resource_group_name=example_resource_group.name,\n    profile_name=example_traffic_manager_profile.name,\n    type=\"externalEndpoints\",\n    weight=100)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing Random = Pulumi.Random;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var server = new Random.RandomId(\"server\", new Random.RandomIdArgs\n        {\n            Keepers = \n            {\n                { \"azi_id\", 1 },\n            },\n            ByteLength = 8,\n        });\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleTrafficManagerProfile = new Azure.Network.TrafficManagerProfile(\"exampleTrafficManagerProfile\", new Azure.Network.TrafficManagerProfileArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            TrafficRoutingMethod = \"Weighted\",\n            DnsConfig = new Azure.Network.Inputs.TrafficManagerProfileDnsConfigArgs\n            {\n                RelativeName = server.Hex,\n                Ttl = 100,\n            },\n            MonitorConfig = new Azure.Network.Inputs.TrafficManagerProfileMonitorConfigArgs\n            {\n                Protocol = \"http\",\n                Port = 80,\n                Path = \"/\",\n                IntervalInSeconds = 30,\n                TimeoutInSeconds = 9,\n                ToleratedNumberOfFailures = 3,\n            },\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n        var exampleTrafficManagerEndpoint = new Azure.Network.TrafficManagerEndpoint(\"exampleTrafficManagerEndpoint\", new Azure.Network.TrafficManagerEndpointArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ProfileName = exampleTrafficManagerProfile.Name,\n            Type = \"externalEndpoints\",\n            Weight = 100,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tserver, err := random.NewRandomId(ctx, \"server\", \u0026random.RandomIdArgs{\n\t\t\tKeepers: pulumi.AnyMap{\n\t\t\t\t\"azi_id\": pulumi.Any(1),\n\t\t\t},\n\t\t\tByteLength: pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTrafficManagerProfile, err := network.NewTrafficManagerProfile(ctx, \"exampleTrafficManagerProfile\", \u0026network.TrafficManagerProfileArgs{\n\t\t\tResourceGroupName:    exampleResourceGroup.Name,\n\t\t\tTrafficRoutingMethod: pulumi.String(\"Weighted\"),\n\t\t\tDnsConfig: \u0026network.TrafficManagerProfileDnsConfigArgs{\n\t\t\t\tRelativeName: server.Hex,\n\t\t\t\tTtl:          pulumi.Int(100),\n\t\t\t},\n\t\t\tMonitorConfig: \u0026network.TrafficManagerProfileMonitorConfigArgs{\n\t\t\t\tProtocol:                  pulumi.String(\"http\"),\n\t\t\t\tPort:                      pulumi.Int(80),\n\t\t\t\tPath:                      pulumi.String(\"/\"),\n\t\t\t\tIntervalInSeconds:         pulumi.Int(30),\n\t\t\t\tTimeoutInSeconds:          pulumi.Int(9),\n\t\t\t\tToleratedNumberOfFailures: pulumi.Int(3),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewTrafficManagerEndpoint(ctx, \"exampleTrafficManagerEndpoint\", \u0026network.TrafficManagerEndpointArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tProfileName:       exampleTrafficManagerProfile.Name,\n\t\t\tType:              pulumi.String(\"externalEndpoints\"),\n\t\t\tWeight:            pulumi.Int(100),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nTraffic Manager Endpoints can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/trafficManagerEndpoint:TrafficManagerEndpoint exampleEndpoints /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/trafficManagerProfiles/mytrafficmanagerprofile1/azureEndpoints/mytrafficmanagerendpoint\n```\n\n ",
      "inputProperties": {
        "customHeaders": {
          "description": "One or more `custom_header` blocks as defined below\n",
          "items": {
            "$ref": "#/types/azure:network/TrafficManagerEndpointCustomHeader:TrafficManagerEndpointCustomHeader"
          },
          "type": "array"
        },
        "endpointLocation": {
          "description": "Specifies the Azure location of the Endpoint,\nthis must be specified for Profiles using the `Performance` routing method\nif the Endpoint is of either type `nestedEndpoints` or `externalEndpoints`.\nFor Endpoints of type `azureEndpoints` the value will be taken from the\nlocation of the Azure target resource.\n",
          "type": "string"
        },
        "endpointStatus": {
          "description": "The status of the Endpoint, can be set to\neither `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
          "type": "string"
        },
        "geoMappings": {
          "description": "A list of Geographic Regions used to distribute traffic, such as `WORLD`, `UK` or `DE`. The same location can't be specified in two endpoints. [See the Geographic Hierarchies documentation for more information](https://docs.microsoft.com/en-us/rest/api/trafficmanager/geographichierarchies/getdefault).\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "minChildEndpoints": {
          "description": "This argument specifies the minimum number\nof endpoints that must be ‘online’ in the child profile in order for the\nparent profile to direct traffic to any of the endpoints in that child\nprofile. This argument only applies to Endpoints of type `nestedEndpoints`\nand has to be larger than `0`.\n",
          "type": "integer"
        },
        "minimumRequiredChildEndpointsIpv4": {
          "description": "This argument specifies the minimum number of IPv4 (DNS record type A) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and defaults to `1`.\n",
          "type": "integer"
        },
        "minimumRequiredChildEndpointsIpv6": {
          "description": "This argument specifies the minimum number of IPv6 (DNS record type AAAA) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and defaults to `1`.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name of the Traffic Manager endpoint. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "Specifies the priority of this Endpoint, this must be\nspecified for Profiles using the `Priority` traffic routing method. Supports\nvalues between 1 and 1000, with no Endpoints sharing the same value. If\nomitted the value will be computed in order of creation.\n",
          "type": "integer"
        },
        "profileName": {
          "description": "The name of the Traffic Manager Profile to attach\ncreate the Traffic Manager endpoint.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Traffic Manager Profile exists.\n",
          "type": "string"
        },
        "subnets": {
          "description": "One or more `subnet` blocks as defined below\n",
          "items": {
            "$ref": "#/types/azure:network/TrafficManagerEndpointSubnet:TrafficManagerEndpointSubnet"
          },
          "type": "array"
        },
        "target": {
          "description": "The FQDN DNS name of the target. This argument must be\nprovided for an endpoint of type `externalEndpoints`, for other types it\nwill be computed.\n",
          "type": "string"
        },
        "targetResourceId": {
          "description": "The resource id of an Azure resource to\ntarget. This argument must be provided for an endpoint of type\n`azureEndpoints` or `nestedEndpoints`.\n",
          "type": "string"
        },
        "type": {
          "description": "The Endpoint type, must be one of:\n- `azureEndpoints`\n- `externalEndpoints`\n- `nestedEndpoints`\n",
          "type": "string"
        },
        "weight": {
          "description": "Specifies how much traffic should be distributed to this\nendpoint, this must be specified for Profiles using the  `Weighted` traffic\nrouting method. Supports values between 1 and 1000.\n",
          "type": "integer"
        }
      },
      "properties": {
        "customHeaders": {
          "description": "One or more `custom_header` blocks as defined below\n",
          "items": {
            "$ref": "#/types/azure:network/TrafficManagerEndpointCustomHeader:TrafficManagerEndpointCustomHeader"
          },
          "type": "array"
        },
        "endpointLocation": {
          "description": "Specifies the Azure location of the Endpoint,\nthis must be specified for Profiles using the `Performance` routing method\nif the Endpoint is of either type `nestedEndpoints` or `externalEndpoints`.\nFor Endpoints of type `azureEndpoints` the value will be taken from the\nlocation of the Azure target resource.\n",
          "type": "string"
        },
        "endpointMonitorStatus": {
          "type": "string"
        },
        "endpointStatus": {
          "description": "The status of the Endpoint, can be set to\neither `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
          "type": "string"
        },
        "geoMappings": {
          "description": "A list of Geographic Regions used to distribute traffic, such as `WORLD`, `UK` or `DE`. The same location can't be specified in two endpoints. [See the Geographic Hierarchies documentation for more information](https://docs.microsoft.com/en-us/rest/api/trafficmanager/geographichierarchies/getdefault).\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "minChildEndpoints": {
          "description": "This argument specifies the minimum number\nof endpoints that must be ‘online’ in the child profile in order for the\nparent profile to direct traffic to any of the endpoints in that child\nprofile. This argument only applies to Endpoints of type `nestedEndpoints`\nand has to be larger than `0`.\n",
          "type": "integer"
        },
        "minimumRequiredChildEndpointsIpv4": {
          "description": "This argument specifies the minimum number of IPv4 (DNS record type A) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and defaults to `1`.\n",
          "type": "integer"
        },
        "minimumRequiredChildEndpointsIpv6": {
          "description": "This argument specifies the minimum number of IPv6 (DNS record type AAAA) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and defaults to `1`.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name of the Traffic Manager endpoint. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "Specifies the priority of this Endpoint, this must be\nspecified for Profiles using the `Priority` traffic routing method. Supports\nvalues between 1 and 1000, with no Endpoints sharing the same value. If\nomitted the value will be computed in order of creation.\n",
          "type": "integer"
        },
        "profileName": {
          "description": "The name of the Traffic Manager Profile to attach\ncreate the Traffic Manager endpoint.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Traffic Manager Profile exists.\n",
          "type": "string"
        },
        "subnets": {
          "description": "One or more `subnet` blocks as defined below\n",
          "items": {
            "$ref": "#/types/azure:network/TrafficManagerEndpointSubnet:TrafficManagerEndpointSubnet"
          },
          "type": "array"
        },
        "target": {
          "description": "The FQDN DNS name of the target. This argument must be\nprovided for an endpoint of type `externalEndpoints`, for other types it\nwill be computed.\n",
          "type": "string"
        },
        "targetResourceId": {
          "description": "The resource id of an Azure resource to\ntarget. This argument must be provided for an endpoint of type\n`azureEndpoints` or `nestedEndpoints`.\n",
          "type": "string"
        },
        "type": {
          "description": "The Endpoint type, must be one of:\n- `azureEndpoints`\n- `externalEndpoints`\n- `nestedEndpoints`\n",
          "type": "string"
        },
        "weight": {
          "description": "Specifies how much traffic should be distributed to this\nendpoint, this must be specified for Profiles using the  `Weighted` traffic\nrouting method. Supports values between 1 and 1000.\n",
          "type": "integer"
        }
      },
      "required": [
        "endpointLocation",
        "endpointMonitorStatus",
        "endpointStatus",
        "name",
        "priority",
        "profileName",
        "resourceGroupName",
        "target",
        "type",
        "weight"
      ],
      "requiredInputs": [
        "profileName",
        "resourceGroupName",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TrafficManagerEndpoint resources.\n",
        "properties": {
          "customHeaders": {
            "description": "One or more `custom_header` blocks as defined below\n",
            "items": {
              "$ref": "#/types/azure:network/TrafficManagerEndpointCustomHeader:TrafficManagerEndpointCustomHeader"
            },
            "type": "array"
          },
          "endpointLocation": {
            "description": "Specifies the Azure location of the Endpoint,\nthis must be specified for Profiles using the `Performance` routing method\nif the Endpoint is of either type `nestedEndpoints` or `externalEndpoints`.\nFor Endpoints of type `azureEndpoints` the value will be taken from the\nlocation of the Azure target resource.\n",
            "type": "string"
          },
          "endpointMonitorStatus": {
            "type": "string"
          },
          "endpointStatus": {
            "description": "The status of the Endpoint, can be set to\neither `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
            "type": "string"
          },
          "geoMappings": {
            "description": "A list of Geographic Regions used to distribute traffic, such as `WORLD`, `UK` or `DE`. The same location can't be specified in two endpoints. [See the Geographic Hierarchies documentation for more information](https://docs.microsoft.com/en-us/rest/api/trafficmanager/geographichierarchies/getdefault).\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "minChildEndpoints": {
            "description": "This argument specifies the minimum number\nof endpoints that must be ‘online’ in the child profile in order for the\nparent profile to direct traffic to any of the endpoints in that child\nprofile. This argument only applies to Endpoints of type `nestedEndpoints`\nand has to be larger than `0`.\n",
            "type": "integer"
          },
          "minimumRequiredChildEndpointsIpv4": {
            "description": "This argument specifies the minimum number of IPv4 (DNS record type A) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and defaults to `1`.\n",
            "type": "integer"
          },
          "minimumRequiredChildEndpointsIpv6": {
            "description": "This argument specifies the minimum number of IPv6 (DNS record type AAAA) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and defaults to `1`.\n",
            "type": "integer"
          },
          "name": {
            "description": "The name of the Traffic Manager endpoint. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "priority": {
            "description": "Specifies the priority of this Endpoint, this must be\nspecified for Profiles using the `Priority` traffic routing method. Supports\nvalues between 1 and 1000, with no Endpoints sharing the same value. If\nomitted the value will be computed in order of creation.\n",
            "type": "integer"
          },
          "profileName": {
            "description": "The name of the Traffic Manager Profile to attach\ncreate the Traffic Manager endpoint.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the Traffic Manager Profile exists.\n",
            "type": "string"
          },
          "subnets": {
            "description": "One or more `subnet` blocks as defined below\n",
            "items": {
              "$ref": "#/types/azure:network/TrafficManagerEndpointSubnet:TrafficManagerEndpointSubnet"
            },
            "type": "array"
          },
          "target": {
            "description": "The FQDN DNS name of the target. This argument must be\nprovided for an endpoint of type `externalEndpoints`, for other types it\nwill be computed.\n",
            "type": "string"
          },
          "targetResourceId": {
            "description": "The resource id of an Azure resource to\ntarget. This argument must be provided for an endpoint of type\n`azureEndpoints` or `nestedEndpoints`.\n",
            "type": "string"
          },
          "type": {
            "description": "The Endpoint type, must be one of:\n- `azureEndpoints`\n- `externalEndpoints`\n- `nestedEndpoints`\n",
            "type": "string"
          },
          "weight": {
            "description": "Specifies how much traffic should be distributed to this\nendpoint, this must be specified for Profiles using the  `Weighted` traffic\nrouting method. Supports values between 1 and 1000.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:network/trafficManagerProfile:TrafficManagerProfile": {
      "aliases": [
        {
          "type": "azure:trafficmanager/profile:Profile"
        }
      ],
      "description": "Manages a Traffic Manager Profile to which multiple endpoints can be attached.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as random from \"@pulumi/random\";\n\nconst server = new random.RandomId(\"server\", {\n    keepers: {\n        azi_id: 1,\n    },\n    byteLength: 8,\n});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleTrafficManagerProfile = new azure.network.TrafficManagerProfile(\"exampleTrafficManagerProfile\", {\n    resourceGroupName: exampleResourceGroup.name,\n    trafficRoutingMethod: \"Weighted\",\n    dnsConfig: {\n        relativeName: server.hex,\n        ttl: 100,\n    },\n    monitorConfig: {\n        protocol: \"http\",\n        port: 80,\n        path: \"/\",\n        intervalInSeconds: 30,\n        timeoutInSeconds: 9,\n        toleratedNumberOfFailures: 3,\n    },\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_random as random\n\nserver = random.RandomId(\"server\",\n    keepers={\n        \"azi_id\": 1,\n    },\n    byte_length=8)\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_traffic_manager_profile = azure.network.TrafficManagerProfile(\"exampleTrafficManagerProfile\",\n    resource_group_name=example_resource_group.name,\n    traffic_routing_method=\"Weighted\",\n    dns_config=azure.network.TrafficManagerProfileDnsConfigArgs(\n        relative_name=server.hex,\n        ttl=100,\n    ),\n    monitor_config=azure.network.TrafficManagerProfileMonitorConfigArgs(\n        protocol=\"http\",\n        port=80,\n        path=\"/\",\n        interval_in_seconds=30,\n        timeout_in_seconds=9,\n        tolerated_number_of_failures=3,\n    ),\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing Random = Pulumi.Random;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var server = new Random.RandomId(\"server\", new Random.RandomIdArgs\n        {\n            Keepers = \n            {\n                { \"azi_id\", 1 },\n            },\n            ByteLength = 8,\n        });\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleTrafficManagerProfile = new Azure.Network.TrafficManagerProfile(\"exampleTrafficManagerProfile\", new Azure.Network.TrafficManagerProfileArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            TrafficRoutingMethod = \"Weighted\",\n            DnsConfig = new Azure.Network.Inputs.TrafficManagerProfileDnsConfigArgs\n            {\n                RelativeName = server.Hex,\n                Ttl = 100,\n            },\n            MonitorConfig = new Azure.Network.Inputs.TrafficManagerProfileMonitorConfigArgs\n            {\n                Protocol = \"http\",\n                Port = 80,\n                Path = \"/\",\n                IntervalInSeconds = 30,\n                TimeoutInSeconds = 9,\n                ToleratedNumberOfFailures = 3,\n            },\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tserver, err := random.NewRandomId(ctx, \"server\", \u0026random.RandomIdArgs{\n\t\t\tKeepers: pulumi.AnyMap{\n\t\t\t\t\"azi_id\": pulumi.Any(1),\n\t\t\t},\n\t\t\tByteLength: pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewTrafficManagerProfile(ctx, \"exampleTrafficManagerProfile\", \u0026network.TrafficManagerProfileArgs{\n\t\t\tResourceGroupName:    exampleResourceGroup.Name,\n\t\t\tTrafficRoutingMethod: pulumi.String(\"Weighted\"),\n\t\t\tDnsConfig: \u0026network.TrafficManagerProfileDnsConfigArgs{\n\t\t\t\tRelativeName: server.Hex,\n\t\t\t\tTtl:          pulumi.Int(100),\n\t\t\t},\n\t\t\tMonitorConfig: \u0026network.TrafficManagerProfileMonitorConfigArgs{\n\t\t\t\tProtocol:                  pulumi.String(\"http\"),\n\t\t\t\tPort:                      pulumi.Int(80),\n\t\t\t\tPath:                      pulumi.String(\"/\"),\n\t\t\t\tIntervalInSeconds:         pulumi.Int(30),\n\t\t\t\tTimeoutInSeconds:          pulumi.Int(9),\n\t\t\t\tToleratedNumberOfFailures: pulumi.Int(3),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nTraffic Manager Profiles can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/trafficManagerProfile:TrafficManagerProfile exampleProfile /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/trafficManagerProfiles/mytrafficmanagerprofile1\n```\n\n ",
      "inputProperties": {
        "dnsConfig": {
          "$ref": "#/types/azure:network/TrafficManagerProfileDnsConfig:TrafficManagerProfileDnsConfig",
          "description": "This block specifies the DNS configuration of the Profile, it supports the fields documented below.\n"
        },
        "maxReturn": {
          "description": "The amount of endpoints to return for DNS queries to this Profile. Possible values range from `1` to `8`.\n",
          "type": "integer"
        },
        "monitorConfig": {
          "$ref": "#/types/azure:network/TrafficManagerProfileMonitorConfig:TrafficManagerProfileMonitorConfig",
          "description": "This block specifies the Endpoint monitoring configuration for the Profile, it supports the fields documented below.\n"
        },
        "name": {
          "description": "The name of the Traffic Manager profile. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "profileStatus": {
          "description": "The status of the profile, can be set to either `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Traffic Manager profile.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "trafficRoutingMethod": {
          "description": "Specifies the algorithm used to route traffic, possible values are:\n",
          "type": "string"
        },
        "trafficViewEnabled": {
          "description": "Indicates whether Traffic View is enabled for the Traffic Manager profile.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "dnsConfig": {
          "$ref": "#/types/azure:network/TrafficManagerProfileDnsConfig:TrafficManagerProfileDnsConfig",
          "description": "This block specifies the DNS configuration of the Profile, it supports the fields documented below.\n"
        },
        "fqdn": {
          "description": "The FQDN of the created Profile.\n",
          "type": "string"
        },
        "maxReturn": {
          "description": "The amount of endpoints to return for DNS queries to this Profile. Possible values range from `1` to `8`.\n",
          "type": "integer"
        },
        "monitorConfig": {
          "$ref": "#/types/azure:network/TrafficManagerProfileMonitorConfig:TrafficManagerProfileMonitorConfig",
          "description": "This block specifies the Endpoint monitoring configuration for the Profile, it supports the fields documented below.\n"
        },
        "name": {
          "description": "The name of the Traffic Manager profile. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "profileStatus": {
          "description": "The status of the profile, can be set to either `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Traffic Manager profile.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "trafficRoutingMethod": {
          "description": "Specifies the algorithm used to route traffic, possible values are:\n",
          "type": "string"
        },
        "trafficViewEnabled": {
          "description": "Indicates whether Traffic View is enabled for the Traffic Manager profile.\n",
          "type": "boolean"
        }
      },
      "required": [
        "dnsConfig",
        "fqdn",
        "monitorConfig",
        "name",
        "profileStatus",
        "resourceGroupName",
        "trafficRoutingMethod"
      ],
      "requiredInputs": [
        "dnsConfig",
        "monitorConfig",
        "resourceGroupName",
        "trafficRoutingMethod"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TrafficManagerProfile resources.\n",
        "properties": {
          "dnsConfig": {
            "$ref": "#/types/azure:network/TrafficManagerProfileDnsConfig:TrafficManagerProfileDnsConfig",
            "description": "This block specifies the DNS configuration of the Profile, it supports the fields documented below.\n"
          },
          "fqdn": {
            "description": "The FQDN of the created Profile.\n",
            "type": "string"
          },
          "maxReturn": {
            "description": "The amount of endpoints to return for DNS queries to this Profile. Possible values range from `1` to `8`.\n",
            "type": "integer"
          },
          "monitorConfig": {
            "$ref": "#/types/azure:network/TrafficManagerProfileMonitorConfig:TrafficManagerProfileMonitorConfig",
            "description": "This block specifies the Endpoint monitoring configuration for the Profile, it supports the fields documented below.\n"
          },
          "name": {
            "description": "The name of the Traffic Manager profile. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "profileStatus": {
            "description": "The status of the profile, can be set to either `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Traffic Manager profile.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "trafficRoutingMethod": {
            "description": "Specifies the algorithm used to route traffic, possible values are:\n",
            "type": "string"
          },
          "trafficViewEnabled": {
            "description": "Indicates whether Traffic View is enabled for the Traffic Manager profile.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:network/virtualHub:VirtualHub": {
      "description": "Manages a Virtual Hub within a Virtual WAN.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualWan = new azure.network.VirtualWan(\"exampleVirtualWan\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleVirtualHub = new azure.network.VirtualHub(\"exampleVirtualHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    virtualWanId: exampleVirtualWan.id,\n    addressPrefix: \"10.0.0.0/23\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_wan = azure.network.VirtualWan(\"exampleVirtualWan\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_virtual_hub = azure.network.VirtualHub(\"exampleVirtualHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    virtual_wan_id=example_virtual_wan.id,\n    address_prefix=\"10.0.0.0/23\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualWan = new Azure.Network.VirtualWan(\"exampleVirtualWan\", new Azure.Network.VirtualWanArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleVirtualHub = new Azure.Network.VirtualHub(\"exampleVirtualHub\", new Azure.Network.VirtualHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            VirtualWanId = exampleVirtualWan.Id,\n            AddressPrefix = \"10.0.0.0/23\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualWan, err := network.NewVirtualWan(ctx, \"exampleVirtualWan\", \u0026network.VirtualWanArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualHub(ctx, \"exampleVirtualHub\", \u0026network.VirtualHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tVirtualWanId:      exampleVirtualWan.ID(),\n\t\t\tAddressPrefix:     pulumi.String(\"10.0.0.0/23\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Hub's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/virtualHub:VirtualHub example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/virtualHubs/hub1\n```\n\n ",
      "inputProperties": {
        "addressPrefix": {
          "description": "The Address Prefix which should be used for this Virtual Hub. Changing this forces a new resource to be created. [The address prefix subnet cannot be smaller than a `/24`. Azure recommends using a `/23`](https://docs.microsoft.com/en-us/azure/virtual-wan/virtual-wan-faq#what-is-the-recommended-hub-address-space-during-hub-creation).\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the Virtual Hub should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Virtual Hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group where the Virtual Hub should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routes": {
          "description": "One or more `route` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VirtualHubRoute:VirtualHubRoute"
          },
          "type": "array"
        },
        "sku": {
          "description": "The sku of the Virtual Hub. Possible values are `Basic` and `Standard`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Virtual Hub.\n",
          "type": "object"
        },
        "virtualWanId": {
          "description": "The ID of a Virtual WAN within which the Virtual Hub should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "addressPrefix": {
          "description": "The Address Prefix which should be used for this Virtual Hub. Changing this forces a new resource to be created. [The address prefix subnet cannot be smaller than a `/24`. Azure recommends using a `/23`](https://docs.microsoft.com/en-us/azure/virtual-wan/virtual-wan-faq#what-is-the-recommended-hub-address-space-during-hub-creation).\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the Virtual Hub should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Virtual Hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group where the Virtual Hub should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routes": {
          "description": "One or more `route` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VirtualHubRoute:VirtualHubRoute"
          },
          "type": "array"
        },
        "sku": {
          "description": "The sku of the Virtual Hub. Possible values are `Basic` and `Standard`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Virtual Hub.\n",
          "type": "object"
        },
        "virtualWanId": {
          "description": "The ID of a Virtual WAN within which the Virtual Hub should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualHub resources.\n",
        "properties": {
          "addressPrefix": {
            "description": "The Address Prefix which should be used for this Virtual Hub. Changing this forces a new resource to be created. [The address prefix subnet cannot be smaller than a `/24`. Azure recommends using a `/23`](https://docs.microsoft.com/en-us/azure/virtual-wan/virtual-wan-faq#what-is-the-recommended-hub-address-space-during-hub-creation).\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the Virtual Hub should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Virtual Hub. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where the Virtual Hub should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "routes": {
            "description": "One or more `route` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/VirtualHubRoute:VirtualHubRoute"
            },
            "type": "array"
          },
          "sku": {
            "description": "The sku of the Virtual Hub. Possible values are `Basic` and `Standard`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Virtual Hub.\n",
            "type": "object"
          },
          "virtualWanId": {
            "description": "The ID of a Virtual WAN within which the Virtual Hub should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/virtualHubConnection:VirtualHubConnection": {
      "description": "Manages a Connection for a Virtual Hub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"172.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst test = new azure.network.VirtualWan(\"test\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleVirtualHub = new azure.network.VirtualHub(\"exampleVirtualHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    virtualWanId: azurerm_virtual_wan.example.id,\n    addressPrefix: \"10.0.1.0/24\",\n});\nconst exampleVirtualHubConnection = new azure.network.VirtualHubConnection(\"exampleVirtualHubConnection\", {\n    virtualHubId: exampleVirtualHub.id,\n    remoteVirtualNetworkId: exampleVirtualNetwork.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"172.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\ntest = azure.network.VirtualWan(\"test\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_virtual_hub = azure.network.VirtualHub(\"exampleVirtualHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    virtual_wan_id=azurerm_virtual_wan[\"example\"][\"id\"],\n    address_prefix=\"10.0.1.0/24\")\nexample_virtual_hub_connection = azure.network.VirtualHubConnection(\"exampleVirtualHubConnection\",\n    virtual_hub_id=example_virtual_hub.id,\n    remote_virtual_network_id=example_virtual_network.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"172.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var test = new Azure.Network.VirtualWan(\"test\", new Azure.Network.VirtualWanArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleVirtualHub = new Azure.Network.VirtualHub(\"exampleVirtualHub\", new Azure.Network.VirtualHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            VirtualWanId = azurerm_virtual_wan.Example.Id,\n            AddressPrefix = \"10.0.1.0/24\",\n        });\n        var exampleVirtualHubConnection = new Azure.Network.VirtualHubConnection(\"exampleVirtualHubConnection\", new Azure.Network.VirtualHubConnectionArgs\n        {\n            VirtualHubId = exampleVirtualHub.Id,\n            RemoteVirtualNetworkId = exampleVirtualNetwork.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"172.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualWan(ctx, \"test\", \u0026network.VirtualWanArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualHub, err := network.NewVirtualHub(ctx, \"exampleVirtualHub\", \u0026network.VirtualHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tVirtualWanId:      pulumi.Any(azurerm_virtual_wan.Example.Id),\n\t\t\tAddressPrefix:     pulumi.String(\"10.0.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualHubConnection(ctx, \"exampleVirtualHubConnection\", \u0026network.VirtualHubConnectionArgs{\n\t\t\tVirtualHubId:           exampleVirtualHub.ID(),\n\t\t\tRemoteVirtualNetworkId: exampleVirtualNetwork.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Hub Connection's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/virtualHubConnection:VirtualHubConnection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/virtualHubs/hub1/hubVirtualNetworkConnections/connection1\n```\n\n ",
      "inputProperties": {
        "hubToVitualNetworkTrafficAllowed": {
          "deprecationMessage": "Due to a breaking behavioural change in the Azure API this property is no longer functional and will be removed in version 3.0 of the provider",
          "type": "boolean"
        },
        "internetSecurityEnabled": {
          "description": "Should Internet Security be enabled to secure internet traffic? Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The Name which should be used for this Connection, which must be unique within the Virtual Hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "remoteVirtualNetworkId": {
          "description": "The ID of the Virtual Network which the Virtual Hub should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routing": {
          "$ref": "#/types/azure:network/VirtualHubConnectionRouting:VirtualHubConnectionRouting",
          "description": "A `routing` block as defined below.\n"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub within which this connection should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "vitualNetworkToHubGatewaysTrafficAllowed": {
          "deprecationMessage": "Due to a breaking behavioural change in the Azure API this property is no longer functional and will be removed in version 3.0 of the provider",
          "type": "boolean"
        }
      },
      "properties": {
        "hubToVitualNetworkTrafficAllowed": {
          "deprecationMessage": "Due to a breaking behavioural change in the Azure API this property is no longer functional and will be removed in version 3.0 of the provider",
          "type": "boolean"
        },
        "internetSecurityEnabled": {
          "description": "Should Internet Security be enabled to secure internet traffic? Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The Name which should be used for this Connection, which must be unique within the Virtual Hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "remoteVirtualNetworkId": {
          "description": "The ID of the Virtual Network which the Virtual Hub should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routing": {
          "$ref": "#/types/azure:network/VirtualHubConnectionRouting:VirtualHubConnectionRouting",
          "description": "A `routing` block as defined below.\n"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub within which this connection should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "vitualNetworkToHubGatewaysTrafficAllowed": {
          "deprecationMessage": "Due to a breaking behavioural change in the Azure API this property is no longer functional and will be removed in version 3.0 of the provider",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "remoteVirtualNetworkId",
        "routing",
        "virtualHubId"
      ],
      "requiredInputs": [
        "remoteVirtualNetworkId",
        "virtualHubId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualHubConnection resources.\n",
        "properties": {
          "hubToVitualNetworkTrafficAllowed": {
            "deprecationMessage": "Due to a breaking behavioural change in the Azure API this property is no longer functional and will be removed in version 3.0 of the provider",
            "type": "boolean"
          },
          "internetSecurityEnabled": {
            "description": "Should Internet Security be enabled to secure internet traffic? Changing this forces a new resource to be created. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The Name which should be used for this Connection, which must be unique within the Virtual Hub. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "remoteVirtualNetworkId": {
            "description": "The ID of the Virtual Network which the Virtual Hub should be connected to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "routing": {
            "$ref": "#/types/azure:network/VirtualHubConnectionRouting:VirtualHubConnectionRouting",
            "description": "A `routing` block as defined below.\n"
          },
          "virtualHubId": {
            "description": "The ID of the Virtual Hub within which this connection should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "vitualNetworkToHubGatewaysTrafficAllowed": {
            "deprecationMessage": "Due to a breaking behavioural change in the Azure API this property is no longer functional and will be removed in version 3.0 of the provider",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:network/virtualHubIp:VirtualHubIp": {
      "description": "Manages a Virtual Hub IP.\n\n\u003e **NOTE** Virtual Hub IP only supports Standard Virtual Hub without Virtual Wan.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualHub = new azure.network.VirtualHub(\"exampleVirtualHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: \"Standard\",\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Dynamic\",\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.5.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefix: \"10.5.1.0/24\",\n});\nconst exampleVirtualHubIp = new azure.network.VirtualHubIp(\"exampleVirtualHubIp\", {\n    virtualHubId: exampleVirtualHub.id,\n    privateIpAddress: \"10.5.1.18\",\n    privateIpAllocationMethod: \"Static\",\n    publicIpAddressId: examplePublicIp.id,\n    subnetId: exampleSubnet.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_hub = azure.network.VirtualHub(\"exampleVirtualHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=\"Standard\")\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Dynamic\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.5.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefix=\"10.5.1.0/24\")\nexample_virtual_hub_ip = azure.network.VirtualHubIp(\"exampleVirtualHubIp\",\n    virtual_hub_id=example_virtual_hub.id,\n    private_ip_address=\"10.5.1.18\",\n    private_ip_allocation_method=\"Static\",\n    public_ip_address_id=example_public_ip.id,\n    subnet_id=example_subnet.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualHub = new Azure.Network.VirtualHub(\"exampleVirtualHub\", new Azure.Network.VirtualHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = \"Standard\",\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Dynamic\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.5.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefix = \"10.5.1.0/24\",\n        });\n        var exampleVirtualHubIp = new Azure.Network.VirtualHubIp(\"exampleVirtualHubIp\", new Azure.Network.VirtualHubIpArgs\n        {\n            VirtualHubId = exampleVirtualHub.Id,\n            PrivateIpAddress = \"10.5.1.18\",\n            PrivateIpAllocationMethod = \"Static\",\n            PublicIpAddressId = examplePublicIp.Id,\n            SubnetId = exampleSubnet.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualHub, err := network.NewVirtualHub(ctx, \"exampleVirtualHub\", \u0026network.VirtualHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Dynamic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefix:      pulumi.String(\"10.5.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualHubIp(ctx, \"exampleVirtualHubIp\", \u0026network.VirtualHubIpArgs{\n\t\t\tVirtualHubId:              exampleVirtualHub.ID(),\n\t\t\tPrivateIpAddress:          pulumi.String(\"10.5.1.18\"),\n\t\t\tPrivateIpAllocationMethod: pulumi.String(\"Static\"),\n\t\t\tPublicIpAddressId:         examplePublicIp.ID(),\n\t\t\tSubnetId:                  exampleSubnet.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Hub IPs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/virtualHubIp:VirtualHubIp example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/virtualHubs/virtualHub1/ipConfigurations/ipConfig1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name which should be used for this Virtual Hub IP. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privateIpAddress": {
          "description": "The private IP address of the IP configuration.\n",
          "type": "string"
        },
        "privateIpAllocationMethod": {
          "description": "The private IP address allocation method. Possible values are `Static` and `Dynamic` is allowed. Defaults to `Dynamic`.\n",
          "type": "string"
        },
        "publicIpAddressId": {
          "description": "The ID of the Public IP Address.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet that the IP will reside. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub within which this ip configuration should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "The name which should be used for this Virtual Hub IP. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privateIpAddress": {
          "description": "The private IP address of the IP configuration.\n",
          "type": "string"
        },
        "privateIpAllocationMethod": {
          "description": "The private IP address allocation method. Possible values are `Static` and `Dynamic` is allowed. Defaults to `Dynamic`.\n",
          "type": "string"
        },
        "publicIpAddressId": {
          "description": "The ID of the Public IP Address.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet that the IP will reside. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub within which this ip configuration should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "subnetId",
        "virtualHubId"
      ],
      "requiredInputs": [
        "subnetId",
        "virtualHubId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualHubIp resources.\n",
        "properties": {
          "name": {
            "description": "The name which should be used for this Virtual Hub IP. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "privateIpAddress": {
            "description": "The private IP address of the IP configuration.\n",
            "type": "string"
          },
          "privateIpAllocationMethod": {
            "description": "The private IP address allocation method. Possible values are `Static` and `Dynamic` is allowed. Defaults to `Dynamic`.\n",
            "type": "string"
          },
          "publicIpAddressId": {
            "description": "The ID of the Public IP Address.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the Subnet that the IP will reside. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "virtualHubId": {
            "description": "The ID of the Virtual Hub within which this ip configuration should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/virtualHubRouteTable:VirtualHubRouteTable": {
      "description": "Manages a Virtual Hub Route Table.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.5.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleNetworkSecurityGroup = new azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.5.1.0/24\"],\n});\nconst exampleSubnetNetworkSecurityGroupAssociation = new azure.network.SubnetNetworkSecurityGroupAssociation(\"exampleSubnetNetworkSecurityGroupAssociation\", {\n    subnetId: exampleSubnet.id,\n    networkSecurityGroupId: exampleNetworkSecurityGroup.id,\n});\nconst exampleVirtualWan = new azure.network.VirtualWan(\"exampleVirtualWan\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleVirtualHub = new azure.network.VirtualHub(\"exampleVirtualHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    virtualWanId: exampleVirtualWan.id,\n    addressPrefix: \"10.0.2.0/24\",\n});\nconst exampleVirtualHubConnection = new azure.network.VirtualHubConnection(\"exampleVirtualHubConnection\", {\n    virtualHubId: exampleVirtualHub.id,\n    remoteVirtualNetworkId: exampleVirtualNetwork.id,\n});\nconst exampleVirtualHubRouteTable = new azure.network.VirtualHubRouteTable(\"exampleVirtualHubRouteTable\", {\n    virtualHubId: exampleVirtualHub.id,\n    labels: [\"label1\"],\n    routes: [{\n        name: \"example-route\",\n        destinationsType: \"CIDR\",\n        destinations: [\"10.0.0.0/16\"],\n        nextHopType: \"ResourceId\",\n        nextHop: exampleVirtualHubConnection.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.5.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_network_security_group = azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.5.1.0/24\"])\nexample_subnet_network_security_group_association = azure.network.SubnetNetworkSecurityGroupAssociation(\"exampleSubnetNetworkSecurityGroupAssociation\",\n    subnet_id=example_subnet.id,\n    network_security_group_id=example_network_security_group.id)\nexample_virtual_wan = azure.network.VirtualWan(\"exampleVirtualWan\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_virtual_hub = azure.network.VirtualHub(\"exampleVirtualHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    virtual_wan_id=example_virtual_wan.id,\n    address_prefix=\"10.0.2.0/24\")\nexample_virtual_hub_connection = azure.network.VirtualHubConnection(\"exampleVirtualHubConnection\",\n    virtual_hub_id=example_virtual_hub.id,\n    remote_virtual_network_id=example_virtual_network.id)\nexample_virtual_hub_route_table = azure.network.VirtualHubRouteTable(\"exampleVirtualHubRouteTable\",\n    virtual_hub_id=example_virtual_hub.id,\n    labels=[\"label1\"],\n    routes=[azure.network.VirtualHubRouteTableRouteArgs(\n        name=\"example-route\",\n        destinations_type=\"CIDR\",\n        destinations=[\"10.0.0.0/16\"],\n        next_hop_type=\"ResourceId\",\n        next_hop=example_virtual_hub_connection.id,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.5.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleNetworkSecurityGroup = new Azure.Network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", new Azure.Network.NetworkSecurityGroupArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.5.1.0/24\",\n            },\n        });\n        var exampleSubnetNetworkSecurityGroupAssociation = new Azure.Network.SubnetNetworkSecurityGroupAssociation(\"exampleSubnetNetworkSecurityGroupAssociation\", new Azure.Network.SubnetNetworkSecurityGroupAssociationArgs\n        {\n            SubnetId = exampleSubnet.Id,\n            NetworkSecurityGroupId = exampleNetworkSecurityGroup.Id,\n        });\n        var exampleVirtualWan = new Azure.Network.VirtualWan(\"exampleVirtualWan\", new Azure.Network.VirtualWanArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleVirtualHub = new Azure.Network.VirtualHub(\"exampleVirtualHub\", new Azure.Network.VirtualHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            VirtualWanId = exampleVirtualWan.Id,\n            AddressPrefix = \"10.0.2.0/24\",\n        });\n        var exampleVirtualHubConnection = new Azure.Network.VirtualHubConnection(\"exampleVirtualHubConnection\", new Azure.Network.VirtualHubConnectionArgs\n        {\n            VirtualHubId = exampleVirtualHub.Id,\n            RemoteVirtualNetworkId = exampleVirtualNetwork.Id,\n        });\n        var exampleVirtualHubRouteTable = new Azure.Network.VirtualHubRouteTable(\"exampleVirtualHubRouteTable\", new Azure.Network.VirtualHubRouteTableArgs\n        {\n            VirtualHubId = exampleVirtualHub.Id,\n            Labels = \n            {\n                \"label1\",\n            },\n            Routes = \n            {\n                new Azure.Network.Inputs.VirtualHubRouteTableRouteArgs\n                {\n                    Name = \"example-route\",\n                    DestinationsType = \"CIDR\",\n                    Destinations = \n                    {\n                        \"10.0.0.0/16\",\n                    },\n                    NextHopType = \"ResourceId\",\n                    NextHop = exampleVirtualHubConnection.Id,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkSecurityGroup, err := network.NewNetworkSecurityGroup(ctx, \"exampleNetworkSecurityGroup\", \u0026network.NetworkSecurityGroupArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewSubnetNetworkSecurityGroupAssociation(ctx, \"exampleSubnetNetworkSecurityGroupAssociation\", \u0026network.SubnetNetworkSecurityGroupAssociationArgs{\n\t\t\tSubnetId:               exampleSubnet.ID(),\n\t\t\tNetworkSecurityGroupId: exampleNetworkSecurityGroup.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualWan, err := network.NewVirtualWan(ctx, \"exampleVirtualWan\", \u0026network.VirtualWanArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualHub, err := network.NewVirtualHub(ctx, \"exampleVirtualHub\", \u0026network.VirtualHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tVirtualWanId:      exampleVirtualWan.ID(),\n\t\t\tAddressPrefix:     pulumi.String(\"10.0.2.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualHubConnection, err := network.NewVirtualHubConnection(ctx, \"exampleVirtualHubConnection\", \u0026network.VirtualHubConnectionArgs{\n\t\t\tVirtualHubId:           exampleVirtualHub.ID(),\n\t\t\tRemoteVirtualNetworkId: exampleVirtualNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualHubRouteTable(ctx, \"exampleVirtualHubRouteTable\", \u0026network.VirtualHubRouteTableArgs{\n\t\t\tVirtualHubId: exampleVirtualHub.ID(),\n\t\t\tLabels: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"label1\"),\n\t\t\t},\n\t\t\tRoutes: network.VirtualHubRouteTableRouteArray{\n\t\t\t\t\u0026network.VirtualHubRouteTableRouteArgs{\n\t\t\t\t\tName:             pulumi.String(\"example-route\"),\n\t\t\t\t\tDestinationsType: pulumi.String(\"CIDR\"),\n\t\t\t\t\tDestinations: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t\t\t},\n\t\t\t\t\tNextHopType: pulumi.String(\"ResourceId\"),\n\t\t\t\t\tNextHop:     exampleVirtualHubConnection.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Hub Route Tables can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/virtualHubRouteTable:VirtualHubRouteTable example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/virtualHubs/virtualHub1/hubRouteTables/routeTable1\n```\n\n ",
      "inputProperties": {
        "labels": {
          "description": "List of labels associated with this route table.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for Virtual Hub Route Table. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routes": {
          "description": "A `route` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VirtualHubRouteTableRoute:VirtualHubRouteTableRoute"
          },
          "type": "array"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub within which this route table should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "labels": {
          "description": "List of labels associated with this route table.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for Virtual Hub Route Table. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routes": {
          "description": "A `route` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VirtualHubRouteTableRoute:VirtualHubRouteTableRoute"
          },
          "type": "array"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub within which this route table should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "virtualHubId"
      ],
      "requiredInputs": [
        "virtualHubId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualHubRouteTable resources.\n",
        "properties": {
          "labels": {
            "description": "List of labels associated with this route table.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name which should be used for Virtual Hub Route Table. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "routes": {
            "description": "A `route` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/VirtualHubRouteTableRoute:VirtualHubRouteTableRoute"
            },
            "type": "array"
          },
          "virtualHubId": {
            "description": "The ID of the Virtual Hub within which this route table should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/virtualNetwork:VirtualNetwork": {
      "description": "Manages a virtual network including any configured subnets. Each subnet can\noptionally be configured with a security group to be associated with the subnet.\n\n\u003e **NOTE on Virtual Networks and Subnet's:** This provider currently\nprovides both a standalone Subnet resource, and allows for Subnets to be defined in-line within the Virtual Network resource.\nAt this time you cannot use a Virtual Network with in-line Subnets in conjunction with any Subnet resources. Doing so will cause a conflict of Subnet configurations and will overwrite Subnet's.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNetworkSecurityGroup = new azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleDdosProtectionPlan = new azure.network.DdosProtectionPlan(\"exampleDdosProtectionPlan\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"10.0.0.0/16\"],\n    dnsServers: [\n        \"10.0.0.4\",\n        \"10.0.0.5\",\n    ],\n    ddosProtectionPlan: {\n        id: exampleDdosProtectionPlan.id,\n        enable: true,\n    },\n    subnets: [\n        {\n            name: \"subnet1\",\n            addressPrefix: \"10.0.1.0/24\",\n        },\n        {\n            name: \"subnet2\",\n            addressPrefix: \"10.0.2.0/24\",\n        },\n        {\n            name: \"subnet3\",\n            addressPrefix: \"10.0.3.0/24\",\n            securityGroup: exampleNetworkSecurityGroup.id,\n        },\n    ],\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_network_security_group = azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_ddos_protection_plan = azure.network.DdosProtectionPlan(\"exampleDdosProtectionPlan\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    address_spaces=[\"10.0.0.0/16\"],\n    dns_servers=[\n        \"10.0.0.4\",\n        \"10.0.0.5\",\n    ],\n    ddos_protection_plan=azure.network.VirtualNetworkDdosProtectionPlanArgs(\n        id=example_ddos_protection_plan.id,\n        enable=True,\n    ),\n    subnets=[\n        azure.network.VirtualNetworkSubnetArgs(\n            name=\"subnet1\",\n            address_prefix=\"10.0.1.0/24\",\n        ),\n        azure.network.VirtualNetworkSubnetArgs(\n            name=\"subnet2\",\n            address_prefix=\"10.0.2.0/24\",\n        ),\n        azure.network.VirtualNetworkSubnetArgs(\n            name=\"subnet3\",\n            address_prefix=\"10.0.3.0/24\",\n            security_group=example_network_security_group.id,\n        ),\n    ],\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNetworkSecurityGroup = new Azure.Network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", new Azure.Network.NetworkSecurityGroupArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleDdosProtectionPlan = new Azure.Network.DdosProtectionPlan(\"exampleDdosProtectionPlan\", new Azure.Network.DdosProtectionPlanArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            DnsServers = \n            {\n                \"10.0.0.4\",\n                \"10.0.0.5\",\n            },\n            DdosProtectionPlan = new Azure.Network.Inputs.VirtualNetworkDdosProtectionPlanArgs\n            {\n                Id = exampleDdosProtectionPlan.Id,\n                Enable = true,\n            },\n            Subnets = \n            {\n                new Azure.Network.Inputs.VirtualNetworkSubnetArgs\n                {\n                    Name = \"subnet1\",\n                    AddressPrefix = \"10.0.1.0/24\",\n                },\n                new Azure.Network.Inputs.VirtualNetworkSubnetArgs\n                {\n                    Name = \"subnet2\",\n                    AddressPrefix = \"10.0.2.0/24\",\n                },\n                new Azure.Network.Inputs.VirtualNetworkSubnetArgs\n                {\n                    Name = \"subnet3\",\n                    AddressPrefix = \"10.0.3.0/24\",\n                    SecurityGroup = exampleNetworkSecurityGroup.Id,\n                },\n            },\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkSecurityGroup, err := network.NewNetworkSecurityGroup(ctx, \"exampleNetworkSecurityGroup\", \u0026network.NetworkSecurityGroupArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDdosProtectionPlan, err := network.NewDdosProtectionPlan(ctx, \"exampleDdosProtectionPlan\", \u0026network.DdosProtectionPlanArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tDnsServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.4\"),\n\t\t\t\tpulumi.String(\"10.0.0.5\"),\n\t\t\t},\n\t\t\tDdosProtectionPlan: \u0026network.VirtualNetworkDdosProtectionPlanArgs{\n\t\t\t\tId:     exampleDdosProtectionPlan.ID(),\n\t\t\t\tEnable: pulumi.Bool(true),\n\t\t\t},\n\t\t\tSubnets: network.VirtualNetworkSubnetArray{\n\t\t\t\t\u0026network.VirtualNetworkSubnetArgs{\n\t\t\t\t\tName:          pulumi.String(\"subnet1\"),\n\t\t\t\t\tAddressPrefix: pulumi.String(\"10.0.1.0/24\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.VirtualNetworkSubnetArgs{\n\t\t\t\t\tName:          pulumi.String(\"subnet2\"),\n\t\t\t\t\tAddressPrefix: pulumi.String(\"10.0.2.0/24\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.VirtualNetworkSubnetArgs{\n\t\t\t\t\tName:          pulumi.String(\"subnet3\"),\n\t\t\t\t\tAddressPrefix: pulumi.String(\"10.0.3.0/24\"),\n\t\t\t\t\tSecurityGroup: exampleNetworkSecurityGroup.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Networks can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/virtualNetwork:VirtualNetwork exampleNetwork /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/virtualNetworks/myvnet1\n```\n\n ",
      "inputProperties": {
        "addressSpaces": {
          "description": "The address space that is used the virtual network. You can supply more than one address space.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "bgpCommunity": {
          "description": "The BGP community attribute in format `\u003cas-number\u003e:\u003ccommunity-value\u003e`.\n",
          "type": "string"
        },
        "ddosProtectionPlan": {
          "$ref": "#/types/azure:network/VirtualNetworkDdosProtectionPlan:VirtualNetworkDdosProtectionPlan",
          "description": "A `ddos_protection_plan` block as documented below.\n"
        },
        "dnsServers": {
          "description": "List of IP addresses of DNS servers\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "The location/region where the virtual network is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the virtual network. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the virtual network.\n",
          "type": "string"
        },
        "subnets": {
          "description": "Can be specified multiple times to define multiple subnets. Each `subnet` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:network/VirtualNetworkSubnet:VirtualNetworkSubnet"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "vmProtectionEnabled": {
          "deprecationMessage": "This is deprecated in favor of `ddos_protection_plan`",
          "type": "boolean"
        }
      },
      "properties": {
        "addressSpaces": {
          "description": "The address space that is used the virtual network. You can supply more than one address space.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "bgpCommunity": {
          "description": "The BGP community attribute in format `\u003cas-number\u003e:\u003ccommunity-value\u003e`.\n",
          "type": "string"
        },
        "ddosProtectionPlan": {
          "$ref": "#/types/azure:network/VirtualNetworkDdosProtectionPlan:VirtualNetworkDdosProtectionPlan",
          "description": "A `ddos_protection_plan` block as documented below.\n"
        },
        "dnsServers": {
          "description": "List of IP addresses of DNS servers\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "guid": {
          "description": "The GUID of the virtual network.\n",
          "type": "string"
        },
        "location": {
          "description": "The location/region where the virtual network is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the virtual network. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the virtual network.\n",
          "type": "string"
        },
        "subnets": {
          "description": "Can be specified multiple times to define multiple subnets. Each `subnet` block supports fields documented below.\n",
          "items": {
            "$ref": "#/types/azure:network/VirtualNetworkSubnet:VirtualNetworkSubnet"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "vmProtectionEnabled": {
          "deprecationMessage": "This is deprecated in favor of `ddos_protection_plan`",
          "type": "boolean"
        }
      },
      "required": [
        "addressSpaces",
        "dnsServers",
        "guid",
        "location",
        "name",
        "resourceGroupName",
        "subnets"
      ],
      "requiredInputs": [
        "addressSpaces",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualNetwork resources.\n",
        "properties": {
          "addressSpaces": {
            "description": "The address space that is used the virtual network. You can supply more than one address space.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "bgpCommunity": {
            "description": "The BGP community attribute in format `\u003cas-number\u003e:\u003ccommunity-value\u003e`.\n",
            "type": "string"
          },
          "ddosProtectionPlan": {
            "$ref": "#/types/azure:network/VirtualNetworkDdosProtectionPlan:VirtualNetworkDdosProtectionPlan",
            "description": "A `ddos_protection_plan` block as documented below.\n"
          },
          "dnsServers": {
            "description": "List of IP addresses of DNS servers\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "guid": {
            "description": "The GUID of the virtual network.\n",
            "type": "string"
          },
          "location": {
            "description": "The location/region where the virtual network is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the virtual network. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the virtual network.\n",
            "type": "string"
          },
          "subnets": {
            "description": "Can be specified multiple times to define multiple subnets. Each `subnet` block supports fields documented below.\n",
            "items": {
              "$ref": "#/types/azure:network/VirtualNetworkSubnet:VirtualNetworkSubnet"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "vmProtectionEnabled": {
            "deprecationMessage": "This is deprecated in favor of `ddos_protection_plan`",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:network/virtualNetworkDnsServers:VirtualNetworkDnsServers": {
      "inputProperties": {
        "dnsServers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "virtualNetworkId": {
          "type": "string"
        }
      },
      "properties": {
        "dnsServers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "virtualNetworkId": {
          "type": "string"
        }
      },
      "required": [
        "virtualNetworkId"
      ],
      "requiredInputs": [
        "virtualNetworkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualNetworkDnsServers resources.\n",
        "properties": {
          "dnsServers": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "virtualNetworkId": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/virtualNetworkGateway:VirtualNetworkGateway": {
      "description": "Manages a Virtual Network Gateway to establish secure, cross-premises connectivity.\n\n\u003e **Note:** Please be aware that provisioning a Virtual Network Gateway takes a long time (between 30 minutes and 1 hour)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"10.0.0.0/16\"],\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Dynamic\",\n});\nconst exampleVirtualNetworkGateway = new azure.network.VirtualNetworkGateway(\"exampleVirtualNetworkGateway\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    type: \"Vpn\",\n    vpnType: \"RouteBased\",\n    activeActive: false,\n    enableBgp: false,\n    sku: \"Basic\",\n    ipConfigurations: [{\n        name: \"vnetGatewayConfig\",\n        publicIpAddressId: examplePublicIp.id,\n        privateIpAddressAllocation: \"Dynamic\",\n        subnetId: exampleSubnet.id,\n    }],\n    vpnClientConfiguration: {\n        addressSpaces: [\"10.2.0.0/24\"],\n        rootCertificates: [{\n            name: \"DigiCert-Federated-ID-Root-CA\",\n            publicCertData: `MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg\nUm9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV\nBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp\nY2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j\nQPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8\nzAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf\nGTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d\nGTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8\nDk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2\nDwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV\nHQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW\njKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP\n9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR\nQELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL\nuGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn\nWsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq\nM/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=\n`,\n        }],\n        revokedCertificates: [{\n            name: \"Verizon-Global-Root-CA\",\n            thumbprint: \"912198EEF23DCAC40939312FEE97DD560BAE49B1\",\n        }],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    address_spaces=[\"10.0.0.0/16\"])\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Dynamic\")\nexample_virtual_network_gateway = azure.network.VirtualNetworkGateway(\"exampleVirtualNetworkGateway\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    type=\"Vpn\",\n    vpn_type=\"RouteBased\",\n    active_active=False,\n    enable_bgp=False,\n    sku=\"Basic\",\n    ip_configurations=[azure.network.VirtualNetworkGatewayIpConfigurationArgs(\n        name=\"vnetGatewayConfig\",\n        public_ip_address_id=example_public_ip.id,\n        private_ip_address_allocation=\"Dynamic\",\n        subnet_id=example_subnet.id,\n    )],\n    vpn_client_configuration=azure.network.VirtualNetworkGatewayVpnClientConfigurationArgs(\n        address_spaces=[\"10.2.0.0/24\"],\n        root_certificates=[azure.network.VirtualNetworkGatewayVpnClientConfigurationRootCertificateArgs(\n            name=\"DigiCert-Federated-ID-Root-CA\",\n            public_cert_data=\"\"\"MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg\nUm9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV\nBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp\nY2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j\nQPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8\nzAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf\nGTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d\nGTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8\nDk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2\nDwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV\nHQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW\njKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP\n9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR\nQELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL\nuGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn\nWsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq\nM/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=\n\"\"\",\n        )],\n        revoked_certificates=[azure.network.VirtualNetworkGatewayVpnClientConfigurationRevokedCertificateArgs(\n            name=\"Verizon-Global-Root-CA\",\n            thumbprint=\"912198EEF23DCAC40939312FEE97DD560BAE49B1\",\n        )],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Dynamic\",\n        });\n        var exampleVirtualNetworkGateway = new Azure.Network.VirtualNetworkGateway(\"exampleVirtualNetworkGateway\", new Azure.Network.VirtualNetworkGatewayArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Type = \"Vpn\",\n            VpnType = \"RouteBased\",\n            ActiveActive = false,\n            EnableBgp = false,\n            Sku = \"Basic\",\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.VirtualNetworkGatewayIpConfigurationArgs\n                {\n                    Name = \"vnetGatewayConfig\",\n                    PublicIpAddressId = examplePublicIp.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                    SubnetId = exampleSubnet.Id,\n                },\n            },\n            VpnClientConfiguration = new Azure.Network.Inputs.VirtualNetworkGatewayVpnClientConfigurationArgs\n            {\n                AddressSpaces = \n                {\n                    \"10.2.0.0/24\",\n                },\n                RootCertificates = \n                {\n                    new Azure.Network.Inputs.VirtualNetworkGatewayVpnClientConfigurationRootCertificateArgs\n                    {\n                        Name = \"DigiCert-Federated-ID-Root-CA\",\n                        PublicCertData = @\"MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg\nUm9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV\nBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp\nY2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j\nQPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8\nzAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf\nGTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d\nGTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8\nDk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2\nDwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV\nHQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW\njKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP\n9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR\nQELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL\nuGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn\nWsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq\nM/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=\n\",\n                    },\n                },\n                RevokedCertificates = \n                {\n                    new Azure.Network.Inputs.VirtualNetworkGatewayVpnClientConfigurationRevokedCertificateArgs\n                    {\n                        Name = \"Verizon-Global-Root-CA\",\n                        Thumbprint = \"912198EEF23DCAC40939312FEE97DD560BAE49B1\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Dynamic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualNetworkGateway(ctx, \"exampleVirtualNetworkGateway\", \u0026network.VirtualNetworkGatewayArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tType:              pulumi.String(\"Vpn\"),\n\t\t\tVpnType:           pulumi.String(\"RouteBased\"),\n\t\t\tActiveActive:      pulumi.Bool(false),\n\t\t\tEnableBgp:         pulumi.Bool(false),\n\t\t\tSku:               pulumi.String(\"Basic\"),\n\t\t\tIpConfigurations: network.VirtualNetworkGatewayIpConfigurationArray{\n\t\t\t\t\u0026network.VirtualNetworkGatewayIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"vnetGatewayConfig\"),\n\t\t\t\t\tPublicIpAddressId:          examplePublicIp.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\n\t\t\t\t\tSubnetId:                   exampleSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVpnClientConfiguration: \u0026network.VirtualNetworkGatewayVpnClientConfigurationArgs{\n\t\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"10.2.0.0/24\"),\n\t\t\t\t},\n\t\t\t\tRootCertificates: network.VirtualNetworkGatewayVpnClientConfigurationRootCertificateArray{\n\t\t\t\t\t\u0026network.VirtualNetworkGatewayVpnClientConfigurationRootCertificateArgs{\n\t\t\t\t\t\tName:           pulumi.String(\"DigiCert-Federated-ID-Root-CA\"),\n\t\t\t\t\t\tPublicCertData: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn\\n\", \"MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\n\", \"d3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg\\n\", \"Um9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV\\n\", \"BAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp\\n\", \"Y2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB\\n\", \"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j\\n\", \"QPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8\\n\", \"zAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf\\n\", \"GTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d\\n\", \"GTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8\\n\", \"Dk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2\\n\", \"DwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV\\n\", \"HQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW\\n\", \"jKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP\\n\", \"9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR\\n\", \"QELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL\\n\", \"uGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn\\n\", \"WsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq\\n\", \"M/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=\\n\")),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRevokedCertificates: network.VirtualNetworkGatewayVpnClientConfigurationRevokedCertificateArray{\n\t\t\t\t\t\u0026network.VirtualNetworkGatewayVpnClientConfigurationRevokedCertificateArgs{\n\t\t\t\t\t\tName:       pulumi.String(\"Verizon-Global-Root-CA\"),\n\t\t\t\t\t\tThumbprint: pulumi.String(\"912198EEF23DCAC40939312FEE97DD560BAE49B1\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Network Gateways can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/virtualNetworkGateway:VirtualNetworkGateway exampleGateway /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myGroup1/providers/Microsoft.Network/virtualNetworkGateways/myGateway1\n```\n\n ",
      "inputProperties": {
        "activeActive": {
          "description": "If `true`, an active-active Virtual Network Gateway\nwill be created. An active-active gateway requires a `HighPerformance` or an\n`UltraPerformance` sku. If `false`, an active-standby gateway will be created.\nDefaults to `false`.\n",
          "type": "boolean"
        },
        "bgpSettings": {
          "$ref": "#/types/azure:network/VirtualNetworkGatewayBgpSettings:VirtualNetworkGatewayBgpSettings",
          "description": "A block of `bgp_settings`.\n"
        },
        "customRoute": {
          "$ref": "#/types/azure:network/VirtualNetworkGatewayCustomRoute:VirtualNetworkGatewayCustomRoute"
        },
        "defaultLocalNetworkGatewayId": {
          "description": "The ID of the local network gateway\nthrough which outbound Internet traffic from the virtual network in which the\ngateway is created will be routed (*forced tunnelling*). Refer to the\n[Azure documentation on forced tunnelling](https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-forced-tunneling-rm).\nIf not specified, forced tunnelling is disabled.\n",
          "type": "string"
        },
        "enableBgp": {
          "description": "If `true`, BGP (Border Gateway Protocol) will be enabled\nfor this Virtual Network Gateway. Defaults to `false`.\n",
          "type": "boolean"
        },
        "generation": {
          "description": "The Generation of the Virtual Network gateway. Possible values include `Generation1`, `Generation2` or `None`.\n",
          "type": "string"
        },
        "ipConfigurations": {
          "description": "One or two `ip_configuration` blocks documented below.\nAn active-standby gateway requires exactly one `ip_configuration` block whereas\nan active-active gateway requires exactly two `ip_configuration` blocks.\n",
          "items": {
            "$ref": "#/types/azure:network/VirtualNetworkGatewayIpConfiguration:VirtualNetworkGatewayIpConfiguration"
          },
          "type": "array"
        },
        "location": {
          "description": "The location/region where the Virtual Network Gateway is\nlocated. Changing the location/region forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "A user-defined name of the IP configuration. Defaults to\n`vnetGatewayConfig`.\n",
          "type": "string"
        },
        "privateIpAddressEnabled": {
          "description": "Should private IP be enabled on this gateway for connections? Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the Virtual Network Gateway. Changing the resource group name forces\na new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "Configuration of the size and capacity of the virtual network\ngateway. Valid options are `Basic`, `Standard`, `HighPerformance`, `UltraPerformance`,\n`ErGw1AZ`, `ErGw2AZ`, `ErGw3AZ`, `VpnGw1`, `VpnGw2`, `VpnGw3`, `VpnGw4`,`VpnGw5`, `VpnGw1AZ`,\n`VpnGw2AZ`, `VpnGw3AZ`,`VpnGw4AZ` and `VpnGw5AZ` and depend on the `type`, `vpn_type` and\n`generation` arguments.\nA `PolicyBased` gateway only supports the `Basic` sku. Further, the `UltraPerformance`\nsku is only supported by an `ExpressRoute` gateway.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "type": {
          "description": "The type of the Virtual Network Gateway. Valid options are\n`Vpn` or `ExpressRoute`. Changing the type forces a new resource to be created.\n",
          "type": "string"
        },
        "vpnClientConfiguration": {
          "$ref": "#/types/azure:network/VirtualNetworkGatewayVpnClientConfiguration:VirtualNetworkGatewayVpnClientConfiguration",
          "description": "A `vpn_client_configuration` block which\nis documented below. In this block the Virtual Network Gateway can be configured\nto accept IPSec point-to-site connections.\n"
        },
        "vpnType": {
          "description": "The routing type of the Virtual Network Gateway. Valid\noptions are `RouteBased` or `PolicyBased`. Defaults to `RouteBased`.\n",
          "type": "string"
        }
      },
      "properties": {
        "activeActive": {
          "description": "If `true`, an active-active Virtual Network Gateway\nwill be created. An active-active gateway requires a `HighPerformance` or an\n`UltraPerformance` sku. If `false`, an active-standby gateway will be created.\nDefaults to `false`.\n",
          "type": "boolean"
        },
        "bgpSettings": {
          "$ref": "#/types/azure:network/VirtualNetworkGatewayBgpSettings:VirtualNetworkGatewayBgpSettings",
          "description": "A block of `bgp_settings`.\n"
        },
        "customRoute": {
          "$ref": "#/types/azure:network/VirtualNetworkGatewayCustomRoute:VirtualNetworkGatewayCustomRoute"
        },
        "defaultLocalNetworkGatewayId": {
          "description": "The ID of the local network gateway\nthrough which outbound Internet traffic from the virtual network in which the\ngateway is created will be routed (*forced tunnelling*). Refer to the\n[Azure documentation on forced tunnelling](https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-forced-tunneling-rm).\nIf not specified, forced tunnelling is disabled.\n",
          "type": "string"
        },
        "enableBgp": {
          "description": "If `true`, BGP (Border Gateway Protocol) will be enabled\nfor this Virtual Network Gateway. Defaults to `false`.\n",
          "type": "boolean"
        },
        "generation": {
          "description": "The Generation of the Virtual Network gateway. Possible values include `Generation1`, `Generation2` or `None`.\n",
          "type": "string"
        },
        "ipConfigurations": {
          "description": "One or two `ip_configuration` blocks documented below.\nAn active-standby gateway requires exactly one `ip_configuration` block whereas\nan active-active gateway requires exactly two `ip_configuration` blocks.\n",
          "items": {
            "$ref": "#/types/azure:network/VirtualNetworkGatewayIpConfiguration:VirtualNetworkGatewayIpConfiguration"
          },
          "type": "array"
        },
        "location": {
          "description": "The location/region where the Virtual Network Gateway is\nlocated. Changing the location/region forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "A user-defined name of the IP configuration. Defaults to\n`vnetGatewayConfig`.\n",
          "type": "string"
        },
        "privateIpAddressEnabled": {
          "description": "Should private IP be enabled on this gateway for connections? Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the Virtual Network Gateway. Changing the resource group name forces\na new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "Configuration of the size and capacity of the virtual network\ngateway. Valid options are `Basic`, `Standard`, `HighPerformance`, `UltraPerformance`,\n`ErGw1AZ`, `ErGw2AZ`, `ErGw3AZ`, `VpnGw1`, `VpnGw2`, `VpnGw3`, `VpnGw4`,`VpnGw5`, `VpnGw1AZ`,\n`VpnGw2AZ`, `VpnGw3AZ`,`VpnGw4AZ` and `VpnGw5AZ` and depend on the `type`, `vpn_type` and\n`generation` arguments.\nA `PolicyBased` gateway only supports the `Basic` sku. Further, the `UltraPerformance`\nsku is only supported by an `ExpressRoute` gateway.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "type": {
          "description": "The type of the Virtual Network Gateway. Valid options are\n`Vpn` or `ExpressRoute`. Changing the type forces a new resource to be created.\n",
          "type": "string"
        },
        "vpnClientConfiguration": {
          "$ref": "#/types/azure:network/VirtualNetworkGatewayVpnClientConfiguration:VirtualNetworkGatewayVpnClientConfiguration",
          "description": "A `vpn_client_configuration` block which\nis documented below. In this block the Virtual Network Gateway can be configured\nto accept IPSec point-to-site connections.\n"
        },
        "vpnType": {
          "description": "The routing type of the Virtual Network Gateway. Valid\noptions are `RouteBased` or `PolicyBased`. Defaults to `RouteBased`.\n",
          "type": "string"
        }
      },
      "required": [
        "activeActive",
        "bgpSettings",
        "enableBgp",
        "generation",
        "ipConfigurations",
        "location",
        "name",
        "resourceGroupName",
        "sku",
        "type"
      ],
      "requiredInputs": [
        "ipConfigurations",
        "resourceGroupName",
        "sku",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualNetworkGateway resources.\n",
        "properties": {
          "activeActive": {
            "description": "If `true`, an active-active Virtual Network Gateway\nwill be created. An active-active gateway requires a `HighPerformance` or an\n`UltraPerformance` sku. If `false`, an active-standby gateway will be created.\nDefaults to `false`.\n",
            "type": "boolean"
          },
          "bgpSettings": {
            "$ref": "#/types/azure:network/VirtualNetworkGatewayBgpSettings:VirtualNetworkGatewayBgpSettings",
            "description": "A block of `bgp_settings`.\n"
          },
          "customRoute": {
            "$ref": "#/types/azure:network/VirtualNetworkGatewayCustomRoute:VirtualNetworkGatewayCustomRoute"
          },
          "defaultLocalNetworkGatewayId": {
            "description": "The ID of the local network gateway\nthrough which outbound Internet traffic from the virtual network in which the\ngateway is created will be routed (*forced tunnelling*). Refer to the\n[Azure documentation on forced tunnelling](https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-forced-tunneling-rm).\nIf not specified, forced tunnelling is disabled.\n",
            "type": "string"
          },
          "enableBgp": {
            "description": "If `true`, BGP (Border Gateway Protocol) will be enabled\nfor this Virtual Network Gateway. Defaults to `false`.\n",
            "type": "boolean"
          },
          "generation": {
            "description": "The Generation of the Virtual Network gateway. Possible values include `Generation1`, `Generation2` or `None`.\n",
            "type": "string"
          },
          "ipConfigurations": {
            "description": "One or two `ip_configuration` blocks documented below.\nAn active-standby gateway requires exactly one `ip_configuration` block whereas\nan active-active gateway requires exactly two `ip_configuration` blocks.\n",
            "items": {
              "$ref": "#/types/azure:network/VirtualNetworkGatewayIpConfiguration:VirtualNetworkGatewayIpConfiguration"
            },
            "type": "array"
          },
          "location": {
            "description": "The location/region where the Virtual Network Gateway is\nlocated. Changing the location/region forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "A user-defined name of the IP configuration. Defaults to\n`vnetGatewayConfig`.\n",
            "type": "string"
          },
          "privateIpAddressEnabled": {
            "description": "Should private IP be enabled on this gateway for connections? Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the Virtual Network Gateway. Changing the resource group name forces\na new resource to be created.\n",
            "type": "string"
          },
          "sku": {
            "description": "Configuration of the size and capacity of the virtual network\ngateway. Valid options are `Basic`, `Standard`, `HighPerformance`, `UltraPerformance`,\n`ErGw1AZ`, `ErGw2AZ`, `ErGw3AZ`, `VpnGw1`, `VpnGw2`, `VpnGw3`, `VpnGw4`,`VpnGw5`, `VpnGw1AZ`,\n`VpnGw2AZ`, `VpnGw3AZ`,`VpnGw4AZ` and `VpnGw5AZ` and depend on the `type`, `vpn_type` and\n`generation` arguments.\nA `PolicyBased` gateway only supports the `Basic` sku. Further, the `UltraPerformance`\nsku is only supported by an `ExpressRoute` gateway.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "type": {
            "description": "The type of the Virtual Network Gateway. Valid options are\n`Vpn` or `ExpressRoute`. Changing the type forces a new resource to be created.\n",
            "type": "string"
          },
          "vpnClientConfiguration": {
            "$ref": "#/types/azure:network/VirtualNetworkGatewayVpnClientConfiguration:VirtualNetworkGatewayVpnClientConfiguration",
            "description": "A `vpn_client_configuration` block which\nis documented below. In this block the Virtual Network Gateway can be configured\nto accept IPSec point-to-site connections.\n"
          },
          "vpnType": {
            "description": "The routing type of the Virtual Network Gateway. Valid\noptions are `RouteBased` or `PolicyBased`. Defaults to `RouteBased`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/virtualNetworkGatewayConnection:VirtualNetworkGatewayConnection": {
      "description": "Manages a connection in an existing Virtual Network Gateway.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Site-to-Site connection\n\nThe following example shows a connection between an Azure virtual network\nand an on-premises VPN device and network.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West US\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"10.0.0.0/16\"],\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst onpremiseLocalNetworkGateway = new azure.network.LocalNetworkGateway(\"onpremiseLocalNetworkGateway\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    gatewayAddress: \"168.62.225.23\",\n    addressSpaces: [\"10.1.1.0/24\"],\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Dynamic\",\n});\nconst exampleVirtualNetworkGateway = new azure.network.VirtualNetworkGateway(\"exampleVirtualNetworkGateway\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    type: \"Vpn\",\n    vpnType: \"RouteBased\",\n    activeActive: false,\n    enableBgp: false,\n    sku: \"Basic\",\n    ipConfigurations: [{\n        publicIpAddressId: examplePublicIp.id,\n        privateIpAddressAllocation: \"Dynamic\",\n        subnetId: exampleSubnet.id,\n    }],\n});\nconst onpremiseVirtualNetworkGatewayConnection = new azure.network.VirtualNetworkGatewayConnection(\"onpremiseVirtualNetworkGatewayConnection\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    type: \"IPsec\",\n    virtualNetworkGatewayId: exampleVirtualNetworkGateway.id,\n    localNetworkGatewayId: onpremiseLocalNetworkGateway.id,\n    sharedKey: \"4-v3ry-53cr37-1p53c-5h4r3d-k3y\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West US\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    address_spaces=[\"10.0.0.0/16\"])\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"])\nonpremise_local_network_gateway = azure.network.LocalNetworkGateway(\"onpremiseLocalNetworkGateway\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    gateway_address=\"168.62.225.23\",\n    address_spaces=[\"10.1.1.0/24\"])\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Dynamic\")\nexample_virtual_network_gateway = azure.network.VirtualNetworkGateway(\"exampleVirtualNetworkGateway\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    type=\"Vpn\",\n    vpn_type=\"RouteBased\",\n    active_active=False,\n    enable_bgp=False,\n    sku=\"Basic\",\n    ip_configurations=[azure.network.VirtualNetworkGatewayIpConfigurationArgs(\n        public_ip_address_id=example_public_ip.id,\n        private_ip_address_allocation=\"Dynamic\",\n        subnet_id=example_subnet.id,\n    )])\nonpremise_virtual_network_gateway_connection = azure.network.VirtualNetworkGatewayConnection(\"onpremiseVirtualNetworkGatewayConnection\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    type=\"IPsec\",\n    virtual_network_gateway_id=example_virtual_network_gateway.id,\n    local_network_gateway_id=onpremise_local_network_gateway.id,\n    shared_key=\"4-v3ry-53cr37-1p53c-5h4r3d-k3y\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West US\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n        });\n        var onpremiseLocalNetworkGateway = new Azure.Network.LocalNetworkGateway(\"onpremiseLocalNetworkGateway\", new Azure.Network.LocalNetworkGatewayArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            GatewayAddress = \"168.62.225.23\",\n            AddressSpaces = \n            {\n                \"10.1.1.0/24\",\n            },\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Dynamic\",\n        });\n        var exampleVirtualNetworkGateway = new Azure.Network.VirtualNetworkGateway(\"exampleVirtualNetworkGateway\", new Azure.Network.VirtualNetworkGatewayArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Type = \"Vpn\",\n            VpnType = \"RouteBased\",\n            ActiveActive = false,\n            EnableBgp = false,\n            Sku = \"Basic\",\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.VirtualNetworkGatewayIpConfigurationArgs\n                {\n                    PublicIpAddressId = examplePublicIp.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                    SubnetId = exampleSubnet.Id,\n                },\n            },\n        });\n        var onpremiseVirtualNetworkGatewayConnection = new Azure.Network.VirtualNetworkGatewayConnection(\"onpremiseVirtualNetworkGatewayConnection\", new Azure.Network.VirtualNetworkGatewayConnectionArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Type = \"IPsec\",\n            VirtualNetworkGatewayId = exampleVirtualNetworkGateway.Id,\n            LocalNetworkGatewayId = onpremiseLocalNetworkGateway.Id,\n            SharedKey = \"4-v3ry-53cr37-1p53c-5h4r3d-k3y\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tonpremiseLocalNetworkGateway, err := network.NewLocalNetworkGateway(ctx, \"onpremiseLocalNetworkGateway\", \u0026network.LocalNetworkGatewayArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tGatewayAddress:    pulumi.String(\"168.62.225.23\"),\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Dynamic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetworkGateway, err := network.NewVirtualNetworkGateway(ctx, \"exampleVirtualNetworkGateway\", \u0026network.VirtualNetworkGatewayArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tType:              pulumi.String(\"Vpn\"),\n\t\t\tVpnType:           pulumi.String(\"RouteBased\"),\n\t\t\tActiveActive:      pulumi.Bool(false),\n\t\t\tEnableBgp:         pulumi.Bool(false),\n\t\t\tSku:               pulumi.String(\"Basic\"),\n\t\t\tIpConfigurations: network.VirtualNetworkGatewayIpConfigurationArray{\n\t\t\t\t\u0026network.VirtualNetworkGatewayIpConfigurationArgs{\n\t\t\t\t\tPublicIpAddressId:          examplePublicIp.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\n\t\t\t\t\tSubnetId:                   exampleSubnet.ID(),\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 = network.NewVirtualNetworkGatewayConnection(ctx, \"onpremiseVirtualNetworkGatewayConnection\", \u0026network.VirtualNetworkGatewayConnectionArgs{\n\t\t\tLocation:                exampleResourceGroup.Location,\n\t\t\tResourceGroupName:       exampleResourceGroup.Name,\n\t\t\tType:                    pulumi.String(\"IPsec\"),\n\t\t\tVirtualNetworkGatewayId: exampleVirtualNetworkGateway.ID(),\n\t\t\tLocalNetworkGatewayId:   onpremiseLocalNetworkGateway.ID(),\n\t\t\tSharedKey:               pulumi.String(\"4-v3ry-53cr37-1p53c-5h4r3d-k3y\"),\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{{% /example %}}\n{{% example %}}\n### VNet-to-VNet connection\n\nThe following example shows a connection between two Azure virtual network\nin different locations/regions.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst usResourceGroup = new azure.core.ResourceGroup(\"usResourceGroup\", {location: \"East US\"});\nconst usVirtualNetwork = new azure.network.VirtualNetwork(\"usVirtualNetwork\", {\n    location: usResourceGroup.location,\n    resourceGroupName: usResourceGroup.name,\n    addressSpaces: [\"10.0.0.0/16\"],\n});\nconst usGateway = new azure.network.Subnet(\"usGateway\", {\n    resourceGroupName: usResourceGroup.name,\n    virtualNetworkName: usVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst usPublicIp = new azure.network.PublicIp(\"usPublicIp\", {\n    location: usResourceGroup.location,\n    resourceGroupName: usResourceGroup.name,\n    allocationMethod: \"Dynamic\",\n});\nconst usVirtualNetworkGateway = new azure.network.VirtualNetworkGateway(\"usVirtualNetworkGateway\", {\n    location: usResourceGroup.location,\n    resourceGroupName: usResourceGroup.name,\n    type: \"Vpn\",\n    vpnType: \"RouteBased\",\n    sku: \"Basic\",\n    ipConfigurations: [{\n        publicIpAddressId: usPublicIp.id,\n        privateIpAddressAllocation: \"Dynamic\",\n        subnetId: usGateway.id,\n    }],\n});\nconst europeResourceGroup = new azure.core.ResourceGroup(\"europeResourceGroup\", {location: \"West Europe\"});\nconst europeVirtualNetwork = new azure.network.VirtualNetwork(\"europeVirtualNetwork\", {\n    location: europeResourceGroup.location,\n    resourceGroupName: europeResourceGroup.name,\n    addressSpaces: [\"10.1.0.0/16\"],\n});\nconst europeGateway = new azure.network.Subnet(\"europeGateway\", {\n    resourceGroupName: europeResourceGroup.name,\n    virtualNetworkName: europeVirtualNetwork.name,\n    addressPrefixes: [\"10.1.1.0/24\"],\n});\nconst europePublicIp = new azure.network.PublicIp(\"europePublicIp\", {\n    location: europeResourceGroup.location,\n    resourceGroupName: europeResourceGroup.name,\n    allocationMethod: \"Dynamic\",\n});\nconst europeVirtualNetworkGateway = new azure.network.VirtualNetworkGateway(\"europeVirtualNetworkGateway\", {\n    location: europeResourceGroup.location,\n    resourceGroupName: europeResourceGroup.name,\n    type: \"Vpn\",\n    vpnType: \"RouteBased\",\n    sku: \"Basic\",\n    ipConfigurations: [{\n        publicIpAddressId: europePublicIp.id,\n        privateIpAddressAllocation: \"Dynamic\",\n        subnetId: europeGateway.id,\n    }],\n});\nconst usToEurope = new azure.network.VirtualNetworkGatewayConnection(\"usToEurope\", {\n    location: usResourceGroup.location,\n    resourceGroupName: usResourceGroup.name,\n    type: \"Vnet2Vnet\",\n    virtualNetworkGatewayId: usVirtualNetworkGateway.id,\n    peerVirtualNetworkGatewayId: europeVirtualNetworkGateway.id,\n    sharedKey: \"4-v3ry-53cr37-1p53c-5h4r3d-k3y\",\n});\nconst europeToUs = new azure.network.VirtualNetworkGatewayConnection(\"europeToUs\", {\n    location: europeResourceGroup.location,\n    resourceGroupName: europeResourceGroup.name,\n    type: \"Vnet2Vnet\",\n    virtualNetworkGatewayId: europeVirtualNetworkGateway.id,\n    peerVirtualNetworkGatewayId: usVirtualNetworkGateway.id,\n    sharedKey: \"4-v3ry-53cr37-1p53c-5h4r3d-k3y\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nus_resource_group = azure.core.ResourceGroup(\"usResourceGroup\", location=\"East US\")\nus_virtual_network = azure.network.VirtualNetwork(\"usVirtualNetwork\",\n    location=us_resource_group.location,\n    resource_group_name=us_resource_group.name,\n    address_spaces=[\"10.0.0.0/16\"])\nus_gateway = azure.network.Subnet(\"usGateway\",\n    resource_group_name=us_resource_group.name,\n    virtual_network_name=us_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"])\nus_public_ip = azure.network.PublicIp(\"usPublicIp\",\n    location=us_resource_group.location,\n    resource_group_name=us_resource_group.name,\n    allocation_method=\"Dynamic\")\nus_virtual_network_gateway = azure.network.VirtualNetworkGateway(\"usVirtualNetworkGateway\",\n    location=us_resource_group.location,\n    resource_group_name=us_resource_group.name,\n    type=\"Vpn\",\n    vpn_type=\"RouteBased\",\n    sku=\"Basic\",\n    ip_configurations=[azure.network.VirtualNetworkGatewayIpConfigurationArgs(\n        public_ip_address_id=us_public_ip.id,\n        private_ip_address_allocation=\"Dynamic\",\n        subnet_id=us_gateway.id,\n    )])\neurope_resource_group = azure.core.ResourceGroup(\"europeResourceGroup\", location=\"West Europe\")\neurope_virtual_network = azure.network.VirtualNetwork(\"europeVirtualNetwork\",\n    location=europe_resource_group.location,\n    resource_group_name=europe_resource_group.name,\n    address_spaces=[\"10.1.0.0/16\"])\neurope_gateway = azure.network.Subnet(\"europeGateway\",\n    resource_group_name=europe_resource_group.name,\n    virtual_network_name=europe_virtual_network.name,\n    address_prefixes=[\"10.1.1.0/24\"])\neurope_public_ip = azure.network.PublicIp(\"europePublicIp\",\n    location=europe_resource_group.location,\n    resource_group_name=europe_resource_group.name,\n    allocation_method=\"Dynamic\")\neurope_virtual_network_gateway = azure.network.VirtualNetworkGateway(\"europeVirtualNetworkGateway\",\n    location=europe_resource_group.location,\n    resource_group_name=europe_resource_group.name,\n    type=\"Vpn\",\n    vpn_type=\"RouteBased\",\n    sku=\"Basic\",\n    ip_configurations=[azure.network.VirtualNetworkGatewayIpConfigurationArgs(\n        public_ip_address_id=europe_public_ip.id,\n        private_ip_address_allocation=\"Dynamic\",\n        subnet_id=europe_gateway.id,\n    )])\nus_to_europe = azure.network.VirtualNetworkGatewayConnection(\"usToEurope\",\n    location=us_resource_group.location,\n    resource_group_name=us_resource_group.name,\n    type=\"Vnet2Vnet\",\n    virtual_network_gateway_id=us_virtual_network_gateway.id,\n    peer_virtual_network_gateway_id=europe_virtual_network_gateway.id,\n    shared_key=\"4-v3ry-53cr37-1p53c-5h4r3d-k3y\")\neurope_to_us = azure.network.VirtualNetworkGatewayConnection(\"europeToUs\",\n    location=europe_resource_group.location,\n    resource_group_name=europe_resource_group.name,\n    type=\"Vnet2Vnet\",\n    virtual_network_gateway_id=europe_virtual_network_gateway.id,\n    peer_virtual_network_gateway_id=us_virtual_network_gateway.id,\n    shared_key=\"4-v3ry-53cr37-1p53c-5h4r3d-k3y\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var usResourceGroup = new Azure.Core.ResourceGroup(\"usResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"East US\",\n        });\n        var usVirtualNetwork = new Azure.Network.VirtualNetwork(\"usVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            Location = usResourceGroup.Location,\n            ResourceGroupName = usResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n        });\n        var usGateway = new Azure.Network.Subnet(\"usGateway\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = usResourceGroup.Name,\n            VirtualNetworkName = usVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n        });\n        var usPublicIp = new Azure.Network.PublicIp(\"usPublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = usResourceGroup.Location,\n            ResourceGroupName = usResourceGroup.Name,\n            AllocationMethod = \"Dynamic\",\n        });\n        var usVirtualNetworkGateway = new Azure.Network.VirtualNetworkGateway(\"usVirtualNetworkGateway\", new Azure.Network.VirtualNetworkGatewayArgs\n        {\n            Location = usResourceGroup.Location,\n            ResourceGroupName = usResourceGroup.Name,\n            Type = \"Vpn\",\n            VpnType = \"RouteBased\",\n            Sku = \"Basic\",\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.VirtualNetworkGatewayIpConfigurationArgs\n                {\n                    PublicIpAddressId = usPublicIp.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                    SubnetId = usGateway.Id,\n                },\n            },\n        });\n        var europeResourceGroup = new Azure.Core.ResourceGroup(\"europeResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var europeVirtualNetwork = new Azure.Network.VirtualNetwork(\"europeVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            Location = europeResourceGroup.Location,\n            ResourceGroupName = europeResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"10.1.0.0/16\",\n            },\n        });\n        var europeGateway = new Azure.Network.Subnet(\"europeGateway\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = europeResourceGroup.Name,\n            VirtualNetworkName = europeVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.1.1.0/24\",\n            },\n        });\n        var europePublicIp = new Azure.Network.PublicIp(\"europePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Location = europeResourceGroup.Location,\n            ResourceGroupName = europeResourceGroup.Name,\n            AllocationMethod = \"Dynamic\",\n        });\n        var europeVirtualNetworkGateway = new Azure.Network.VirtualNetworkGateway(\"europeVirtualNetworkGateway\", new Azure.Network.VirtualNetworkGatewayArgs\n        {\n            Location = europeResourceGroup.Location,\n            ResourceGroupName = europeResourceGroup.Name,\n            Type = \"Vpn\",\n            VpnType = \"RouteBased\",\n            Sku = \"Basic\",\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.VirtualNetworkGatewayIpConfigurationArgs\n                {\n                    PublicIpAddressId = europePublicIp.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                    SubnetId = europeGateway.Id,\n                },\n            },\n        });\n        var usToEurope = new Azure.Network.VirtualNetworkGatewayConnection(\"usToEurope\", new Azure.Network.VirtualNetworkGatewayConnectionArgs\n        {\n            Location = usResourceGroup.Location,\n            ResourceGroupName = usResourceGroup.Name,\n            Type = \"Vnet2Vnet\",\n            VirtualNetworkGatewayId = usVirtualNetworkGateway.Id,\n            PeerVirtualNetworkGatewayId = europeVirtualNetworkGateway.Id,\n            SharedKey = \"4-v3ry-53cr37-1p53c-5h4r3d-k3y\",\n        });\n        var europeToUs = new Azure.Network.VirtualNetworkGatewayConnection(\"europeToUs\", new Azure.Network.VirtualNetworkGatewayConnectionArgs\n        {\n            Location = europeResourceGroup.Location,\n            ResourceGroupName = europeResourceGroup.Name,\n            Type = \"Vnet2Vnet\",\n            VirtualNetworkGatewayId = europeVirtualNetworkGateway.Id,\n            PeerVirtualNetworkGatewayId = usVirtualNetworkGateway.Id,\n            SharedKey = \"4-v3ry-53cr37-1p53c-5h4r3d-k3y\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tusResourceGroup, err := core.NewResourceGroup(ctx, \"usResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"East US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tusVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"usVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tLocation:          usResourceGroup.Location,\n\t\t\tResourceGroupName: usResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tusGateway, err := network.NewSubnet(ctx, \"usGateway\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  usResourceGroup.Name,\n\t\t\tVirtualNetworkName: usVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tusPublicIp, err := network.NewPublicIp(ctx, \"usPublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          usResourceGroup.Location,\n\t\t\tResourceGroupName: usResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Dynamic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tusVirtualNetworkGateway, err := network.NewVirtualNetworkGateway(ctx, \"usVirtualNetworkGateway\", \u0026network.VirtualNetworkGatewayArgs{\n\t\t\tLocation:          usResourceGroup.Location,\n\t\t\tResourceGroupName: usResourceGroup.Name,\n\t\t\tType:              pulumi.String(\"Vpn\"),\n\t\t\tVpnType:           pulumi.String(\"RouteBased\"),\n\t\t\tSku:               pulumi.String(\"Basic\"),\n\t\t\tIpConfigurations: network.VirtualNetworkGatewayIpConfigurationArray{\n\t\t\t\t\u0026network.VirtualNetworkGatewayIpConfigurationArgs{\n\t\t\t\t\tPublicIpAddressId:          usPublicIp.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\n\t\t\t\t\tSubnetId:                   usGateway.ID(),\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\teuropeResourceGroup, err := core.NewResourceGroup(ctx, \"europeResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teuropeVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"europeVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tLocation:          europeResourceGroup.Location,\n\t\t\tResourceGroupName: europeResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teuropeGateway, err := network.NewSubnet(ctx, \"europeGateway\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  europeResourceGroup.Name,\n\t\t\tVirtualNetworkName: europeVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teuropePublicIp, err := network.NewPublicIp(ctx, \"europePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tLocation:          europeResourceGroup.Location,\n\t\t\tResourceGroupName: europeResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Dynamic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teuropeVirtualNetworkGateway, err := network.NewVirtualNetworkGateway(ctx, \"europeVirtualNetworkGateway\", \u0026network.VirtualNetworkGatewayArgs{\n\t\t\tLocation:          europeResourceGroup.Location,\n\t\t\tResourceGroupName: europeResourceGroup.Name,\n\t\t\tType:              pulumi.String(\"Vpn\"),\n\t\t\tVpnType:           pulumi.String(\"RouteBased\"),\n\t\t\tSku:               pulumi.String(\"Basic\"),\n\t\t\tIpConfigurations: network.VirtualNetworkGatewayIpConfigurationArray{\n\t\t\t\t\u0026network.VirtualNetworkGatewayIpConfigurationArgs{\n\t\t\t\t\tPublicIpAddressId:          europePublicIp.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\n\t\t\t\t\tSubnetId:                   europeGateway.ID(),\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 = network.NewVirtualNetworkGatewayConnection(ctx, \"usToEurope\", \u0026network.VirtualNetworkGatewayConnectionArgs{\n\t\t\tLocation:                    usResourceGroup.Location,\n\t\t\tResourceGroupName:           usResourceGroup.Name,\n\t\t\tType:                        pulumi.String(\"Vnet2Vnet\"),\n\t\t\tVirtualNetworkGatewayId:     usVirtualNetworkGateway.ID(),\n\t\t\tPeerVirtualNetworkGatewayId: europeVirtualNetworkGateway.ID(),\n\t\t\tSharedKey:                   pulumi.String(\"4-v3ry-53cr37-1p53c-5h4r3d-k3y\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualNetworkGatewayConnection(ctx, \"europeToUs\", \u0026network.VirtualNetworkGatewayConnectionArgs{\n\t\t\tLocation:                    europeResourceGroup.Location,\n\t\t\tResourceGroupName:           europeResourceGroup.Name,\n\t\t\tType:                        pulumi.String(\"Vnet2Vnet\"),\n\t\t\tVirtualNetworkGatewayId:     europeVirtualNetworkGateway.ID(),\n\t\t\tPeerVirtualNetworkGatewayId: usVirtualNetworkGateway.ID(),\n\t\t\tSharedKey:                   pulumi.String(\"4-v3ry-53cr37-1p53c-5h4r3d-k3y\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Network Gateway Connections can be imported using their `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/virtualNetworkGatewayConnection:VirtualNetworkGatewayConnection exampleConnection /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myGroup1/providers/Microsoft.Network/connections/myConnection1\n```\n\n ",
      "inputProperties": {
        "authorizationKey": {
          "description": "The authorization key associated with the\nExpress Route Circuit. This field is required only if the type is an\nExpressRoute connection.\n",
          "type": "string"
        },
        "connectionProtocol": {
          "description": "The IKE protocol version to use. Possible\nvalues are `IKEv1` and `IKEv2`. Defaults to `IKEv2`.\nChanging this value will force a resource to be created.\n\u003e **Note**: Only valid for `IPSec` connections on virtual network gateways with SKU `VpnGw1`, `VpnGw2`, `VpnGw3`, `VpnGw1AZ`, `VpnGw2AZ` or `VpnGw3AZ`.\n",
          "type": "string"
        },
        "dpdTimeoutSeconds": {
          "description": "The dead peer detection timeout of this connection in seconds. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "enableBgp": {
          "description": "If `true`, BGP (Border Gateway Protocol) is enabled\nfor this connection. Defaults to `false`.\n",
          "type": "boolean"
        },
        "expressRouteCircuitId": {
          "description": "The ID of the Express Route Circuit\nwhen creating an ExpressRoute connection (i.e. when `type` is `ExpressRoute`).\nThe Express Route Circuit can be in the same or in a different subscription.\n",
          "type": "string"
        },
        "expressRouteGatewayBypass": {
          "description": "If `true`, data packets will bypass ExpressRoute Gateway for data forwarding This is only valid for ExpressRoute connections.\n",
          "type": "boolean"
        },
        "ipsecPolicy": {
          "$ref": "#/types/azure:network/VirtualNetworkGatewayConnectionIpsecPolicy:VirtualNetworkGatewayConnectionIpsecPolicy",
          "description": "A `ipsec_policy` block which is documented below.\nOnly a single policy can be defined for a connection. For details on\ncustom policies refer to [the relevant section in the Azure documentation](https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-ipsecikepolicy-rm-powershell).\n"
        },
        "localAzureIpAddressEnabled": {
          "description": "Use private local Azure IP for the connection. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "localNetworkGatewayId": {
          "description": "The ID of the local network gateway\nwhen creating Site-to-Site connection (i.e. when `type` is `IPsec`).\n",
          "type": "string"
        },
        "location": {
          "description": "The location/region where the connection is\nlocated. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the connection. Changing the name forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "peerVirtualNetworkGatewayId": {
          "description": "The ID of the peer virtual\nnetwork gateway when creating a VNet-to-VNet connection (i.e. when `type`\nis `Vnet2Vnet`). The peer Virtual Network Gateway can be in the same or\nin a different subscription.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the connection Changing the name forces a new resource to be created.\n",
          "type": "string"
        },
        "routingWeight": {
          "description": "The routing weight. Defaults to `10`.\n",
          "type": "integer"
        },
        "sharedKey": {
          "description": "The shared IPSec key. A key could be provided if a\nSite-to-Site, VNet-to-VNet or ExpressRoute connection is created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "trafficSelectorPolicy": {
          "$ref": "#/types/azure:network/VirtualNetworkGatewayConnectionTrafficSelectorPolicy:VirtualNetworkGatewayConnectionTrafficSelectorPolicy",
          "description": "A `traffic_selector_policy` which allows to specify traffic selector policy proposal to be used in a virtual network gateway connection.\nOnly one block can be defined for a connection.\nFor details about traffic selectors refer to [the relevant section in the Azure documentation](https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-connect-multiple-policybased-rm-ps).\n"
        },
        "type": {
          "description": "The type of connection. Valid options are `IPsec`\n(Site-to-Site), `ExpressRoute` (ExpressRoute), and `Vnet2Vnet` (VNet-to-VNet).\nEach connection type requires different mandatory arguments (refer to the\nexamples above). Changing the connection type will force a new connection\nto be created.\n",
          "type": "string"
        },
        "usePolicyBasedTrafficSelectors": {
          "description": "If `true`, policy-based traffic\nselectors are enabled for this connection. Enabling policy-based traffic\nselectors requires an `ipsec_policy` block. Defaults to `false`.\n",
          "type": "boolean"
        },
        "virtualNetworkGatewayId": {
          "description": "The ID of the Virtual Network Gateway\nin which the connection will be created. Changing the gateway forces a new\nresource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "authorizationKey": {
          "description": "The authorization key associated with the\nExpress Route Circuit. This field is required only if the type is an\nExpressRoute connection.\n",
          "type": "string"
        },
        "connectionProtocol": {
          "description": "The IKE protocol version to use. Possible\nvalues are `IKEv1` and `IKEv2`. Defaults to `IKEv2`.\nChanging this value will force a resource to be created.\n\u003e **Note**: Only valid for `IPSec` connections on virtual network gateways with SKU `VpnGw1`, `VpnGw2`, `VpnGw3`, `VpnGw1AZ`, `VpnGw2AZ` or `VpnGw3AZ`.\n",
          "type": "string"
        },
        "dpdTimeoutSeconds": {
          "description": "The dead peer detection timeout of this connection in seconds. Changing this forces a new resource to be created.\n",
          "type": "integer"
        },
        "enableBgp": {
          "description": "If `true`, BGP (Border Gateway Protocol) is enabled\nfor this connection. Defaults to `false`.\n",
          "type": "boolean"
        },
        "expressRouteCircuitId": {
          "description": "The ID of the Express Route Circuit\nwhen creating an ExpressRoute connection (i.e. when `type` is `ExpressRoute`).\nThe Express Route Circuit can be in the same or in a different subscription.\n",
          "type": "string"
        },
        "expressRouteGatewayBypass": {
          "description": "If `true`, data packets will bypass ExpressRoute Gateway for data forwarding This is only valid for ExpressRoute connections.\n",
          "type": "boolean"
        },
        "ipsecPolicy": {
          "$ref": "#/types/azure:network/VirtualNetworkGatewayConnectionIpsecPolicy:VirtualNetworkGatewayConnectionIpsecPolicy",
          "description": "A `ipsec_policy` block which is documented below.\nOnly a single policy can be defined for a connection. For details on\ncustom policies refer to [the relevant section in the Azure documentation](https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-ipsecikepolicy-rm-powershell).\n"
        },
        "localAzureIpAddressEnabled": {
          "description": "Use private local Azure IP for the connection. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "localNetworkGatewayId": {
          "description": "The ID of the local network gateway\nwhen creating Site-to-Site connection (i.e. when `type` is `IPsec`).\n",
          "type": "string"
        },
        "location": {
          "description": "The location/region where the connection is\nlocated. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the connection. Changing the name forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "peerVirtualNetworkGatewayId": {
          "description": "The ID of the peer virtual\nnetwork gateway when creating a VNet-to-VNet connection (i.e. when `type`\nis `Vnet2Vnet`). The peer Virtual Network Gateway can be in the same or\nin a different subscription.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the connection Changing the name forces a new resource to be created.\n",
          "type": "string"
        },
        "routingWeight": {
          "description": "The routing weight. Defaults to `10`.\n",
          "type": "integer"
        },
        "sharedKey": {
          "description": "The shared IPSec key. A key could be provided if a\nSite-to-Site, VNet-to-VNet or ExpressRoute connection is created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "trafficSelectorPolicy": {
          "$ref": "#/types/azure:network/VirtualNetworkGatewayConnectionTrafficSelectorPolicy:VirtualNetworkGatewayConnectionTrafficSelectorPolicy",
          "description": "A `traffic_selector_policy` which allows to specify traffic selector policy proposal to be used in a virtual network gateway connection.\nOnly one block can be defined for a connection.\nFor details about traffic selectors refer to [the relevant section in the Azure documentation](https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-connect-multiple-policybased-rm-ps).\n"
        },
        "type": {
          "description": "The type of connection. Valid options are `IPsec`\n(Site-to-Site), `ExpressRoute` (ExpressRoute), and `Vnet2Vnet` (VNet-to-VNet).\nEach connection type requires different mandatory arguments (refer to the\nexamples above). Changing the connection type will force a new connection\nto be created.\n",
          "type": "string"
        },
        "usePolicyBasedTrafficSelectors": {
          "description": "If `true`, policy-based traffic\nselectors are enabled for this connection. Enabling policy-based traffic\nselectors requires an `ipsec_policy` block. Defaults to `false`.\n",
          "type": "boolean"
        },
        "virtualNetworkGatewayId": {
          "description": "The ID of the Virtual Network Gateway\nin which the connection will be created. Changing the gateway forces a new\nresource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "connectionProtocol",
        "enableBgp",
        "expressRouteGatewayBypass",
        "location",
        "name",
        "resourceGroupName",
        "routingWeight",
        "type",
        "usePolicyBasedTrafficSelectors",
        "virtualNetworkGatewayId"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "type",
        "virtualNetworkGatewayId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualNetworkGatewayConnection resources.\n",
        "properties": {
          "authorizationKey": {
            "description": "The authorization key associated with the\nExpress Route Circuit. This field is required only if the type is an\nExpressRoute connection.\n",
            "type": "string"
          },
          "connectionProtocol": {
            "description": "The IKE protocol version to use. Possible\nvalues are `IKEv1` and `IKEv2`. Defaults to `IKEv2`.\nChanging this value will force a resource to be created.\n\u003e **Note**: Only valid for `IPSec` connections on virtual network gateways with SKU `VpnGw1`, `VpnGw2`, `VpnGw3`, `VpnGw1AZ`, `VpnGw2AZ` or `VpnGw3AZ`.\n",
            "type": "string"
          },
          "dpdTimeoutSeconds": {
            "description": "The dead peer detection timeout of this connection in seconds. Changing this forces a new resource to be created.\n",
            "type": "integer"
          },
          "enableBgp": {
            "description": "If `true`, BGP (Border Gateway Protocol) is enabled\nfor this connection. Defaults to `false`.\n",
            "type": "boolean"
          },
          "expressRouteCircuitId": {
            "description": "The ID of the Express Route Circuit\nwhen creating an ExpressRoute connection (i.e. when `type` is `ExpressRoute`).\nThe Express Route Circuit can be in the same or in a different subscription.\n",
            "type": "string"
          },
          "expressRouteGatewayBypass": {
            "description": "If `true`, data packets will bypass ExpressRoute Gateway for data forwarding This is only valid for ExpressRoute connections.\n",
            "type": "boolean"
          },
          "ipsecPolicy": {
            "$ref": "#/types/azure:network/VirtualNetworkGatewayConnectionIpsecPolicy:VirtualNetworkGatewayConnectionIpsecPolicy",
            "description": "A `ipsec_policy` block which is documented below.\nOnly a single policy can be defined for a connection. For details on\ncustom policies refer to [the relevant section in the Azure documentation](https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-ipsecikepolicy-rm-powershell).\n"
          },
          "localAzureIpAddressEnabled": {
            "description": "Use private local Azure IP for the connection. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "localNetworkGatewayId": {
            "description": "The ID of the local network gateway\nwhen creating Site-to-Site connection (i.e. when `type` is `IPsec`).\n",
            "type": "string"
          },
          "location": {
            "description": "The location/region where the connection is\nlocated. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the connection. Changing the name forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "peerVirtualNetworkGatewayId": {
            "description": "The ID of the peer virtual\nnetwork gateway when creating a VNet-to-VNet connection (i.e. when `type`\nis `Vnet2Vnet`). The peer Virtual Network Gateway can be in the same or\nin a different subscription.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the connection Changing the name forces a new resource to be created.\n",
            "type": "string"
          },
          "routingWeight": {
            "description": "The routing weight. Defaults to `10`.\n",
            "type": "integer"
          },
          "sharedKey": {
            "description": "The shared IPSec key. A key could be provided if a\nSite-to-Site, VNet-to-VNet or ExpressRoute connection is created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "trafficSelectorPolicy": {
            "$ref": "#/types/azure:network/VirtualNetworkGatewayConnectionTrafficSelectorPolicy:VirtualNetworkGatewayConnectionTrafficSelectorPolicy",
            "description": "A `traffic_selector_policy` which allows to specify traffic selector policy proposal to be used in a virtual network gateway connection.\nOnly one block can be defined for a connection.\nFor details about traffic selectors refer to [the relevant section in the Azure documentation](https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-connect-multiple-policybased-rm-ps).\n"
          },
          "type": {
            "description": "The type of connection. Valid options are `IPsec`\n(Site-to-Site), `ExpressRoute` (ExpressRoute), and `Vnet2Vnet` (VNet-to-VNet).\nEach connection type requires different mandatory arguments (refer to the\nexamples above). Changing the connection type will force a new connection\nto be created.\n",
            "type": "string"
          },
          "usePolicyBasedTrafficSelectors": {
            "description": "If `true`, policy-based traffic\nselectors are enabled for this connection. Enabling policy-based traffic\nselectors requires an `ipsec_policy` block. Defaults to `false`.\n",
            "type": "boolean"
          },
          "virtualNetworkGatewayId": {
            "description": "The ID of the Virtual Network Gateway\nin which the connection will be created. Changing the gateway forces a new\nresource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/virtualNetworkPeering:VirtualNetworkPeering": {
      "description": "Manages a virtual network peering which allows resources to access other\nresources in the linked virtual network.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst example_1VirtualNetwork = new azure.network.VirtualNetwork(\"example-1VirtualNetwork\", {\n    resourceGroupName: example.name,\n    addressSpaces: [\"10.0.1.0/24\"],\n    location: \"West US\",\n});\nconst example_2VirtualNetwork = new azure.network.VirtualNetwork(\"example-2VirtualNetwork\", {\n    resourceGroupName: example.name,\n    addressSpaces: [\"10.0.2.0/24\"],\n    location: \"West US\",\n});\nconst example_1VirtualNetworkPeering = new azure.network.VirtualNetworkPeering(\"example-1VirtualNetworkPeering\", {\n    resourceGroupName: example.name,\n    virtualNetworkName: example_1VirtualNetwork.name,\n    remoteVirtualNetworkId: example_2VirtualNetwork.id,\n});\nconst example_2VirtualNetworkPeering = new azure.network.VirtualNetworkPeering(\"example-2VirtualNetworkPeering\", {\n    resourceGroupName: example.name,\n    virtualNetworkName: example_2VirtualNetwork.name,\n    remoteVirtualNetworkId: example_1VirtualNetwork.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\nexample_1_virtual_network = azure.network.VirtualNetwork(\"example-1VirtualNetwork\",\n    resource_group_name=example.name,\n    address_spaces=[\"10.0.1.0/24\"],\n    location=\"West US\")\nexample_2_virtual_network = azure.network.VirtualNetwork(\"example-2VirtualNetwork\",\n    resource_group_name=example.name,\n    address_spaces=[\"10.0.2.0/24\"],\n    location=\"West US\")\nexample_1_virtual_network_peering = azure.network.VirtualNetworkPeering(\"example-1VirtualNetworkPeering\",\n    resource_group_name=example.name,\n    virtual_network_name=example_1_virtual_network.name,\n    remote_virtual_network_id=example_2_virtual_network.id)\nexample_2_virtual_network_peering = azure.network.VirtualNetworkPeering(\"example-2VirtualNetworkPeering\",\n    resource_group_name=example.name,\n    virtual_network_name=example_2_virtual_network.name,\n    remote_virtual_network_id=example_1_virtual_network.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var example_1VirtualNetwork = new Azure.Network.VirtualNetwork(\"example-1VirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            ResourceGroupName = example.Name,\n            AddressSpaces = \n            {\n                \"10.0.1.0/24\",\n            },\n            Location = \"West US\",\n        });\n        var example_2VirtualNetwork = new Azure.Network.VirtualNetwork(\"example-2VirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            ResourceGroupName = example.Name,\n            AddressSpaces = \n            {\n                \"10.0.2.0/24\",\n            },\n            Location = \"West US\",\n        });\n        var example_1VirtualNetworkPeering = new Azure.Network.VirtualNetworkPeering(\"example-1VirtualNetworkPeering\", new Azure.Network.VirtualNetworkPeeringArgs\n        {\n            ResourceGroupName = example.Name,\n            VirtualNetworkName = example_1VirtualNetwork.Name,\n            RemoteVirtualNetworkId = example_2VirtualNetwork.Id,\n        });\n        var example_2VirtualNetworkPeering = new Azure.Network.VirtualNetworkPeering(\"example-2VirtualNetworkPeering\", new Azure.Network.VirtualNetworkPeeringArgs\n        {\n            ResourceGroupName = example.Name,\n            VirtualNetworkName = example_2VirtualNetwork.Name,\n            RemoteVirtualNetworkId = example_1VirtualNetwork.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualNetwork(ctx, \"example_1VirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tResourceGroupName: example.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualNetwork(ctx, \"example_2VirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tResourceGroupName: example.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualNetworkPeering(ctx, \"example_1VirtualNetworkPeering\", \u0026network.VirtualNetworkPeeringArgs{\n\t\t\tResourceGroupName:      example.Name,\n\t\t\tVirtualNetworkName:     example_1VirtualNetwork.Name,\n\t\t\tRemoteVirtualNetworkId: example_2VirtualNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualNetworkPeering(ctx, \"example_2VirtualNetworkPeering\", \u0026network.VirtualNetworkPeeringArgs{\n\t\t\tResourceGroupName:      example.Name,\n\t\t\tVirtualNetworkName:     example_2VirtualNetwork.Name,\n\t\t\tRemoteVirtualNetworkId: example_1VirtualNetwork.ID(),\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\n{{% /example %}}\n{{% /examples %}}\n## Note\n\nVirtual Network peerings cannot be created, updated or deleted concurrently.\n\n\n## Import\n\nVirtual Network Peerings can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/virtualNetworkPeering:VirtualNetworkPeering examplePeering /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/virtualNetworks/myvnet1/virtualNetworkPeerings/myvnet1peering\n```\n\n ",
      "inputProperties": {
        "allowForwardedTraffic": {
          "description": "Controls if forwarded traffic from  VMs\nin the remote virtual network is allowed. Defaults to false.\n",
          "type": "boolean"
        },
        "allowGatewayTransit": {
          "description": "Controls gatewayLinks can be used in the\nremote virtual network’s link to the local virtual network.\n",
          "type": "boolean"
        },
        "allowVirtualNetworkAccess": {
          "description": "Controls if the VMs in the remote\nvirtual network can access VMs in the local virtual network. Defaults to\ntrue.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the virtual network peering. Changing this\nforces a new resource to be created.\n",
          "type": "string"
        },
        "remoteVirtualNetworkId": {
          "description": "The full Azure resource ID of the\nremote virtual network.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the virtual network peering. Changing this forces a new resource to be\ncreated.\n",
          "type": "string"
        },
        "useRemoteGateways": {
          "description": "Controls if remote gateways can be used on\nthe local virtual network. If the flag is set to `true`, and\n`allow_gateway_transit` on the remote peering is also `true`, virtual network will\nuse gateways of remote virtual network for transit. Only one peering can\nhave this flag set to `true`. This flag cannot be set if virtual network\nalready has a gateway. Defaults to `false`.\n",
          "type": "boolean"
        },
        "virtualNetworkName": {
          "description": "The name of the virtual network. Changing\nthis forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "allowForwardedTraffic": {
          "description": "Controls if forwarded traffic from  VMs\nin the remote virtual network is allowed. Defaults to false.\n",
          "type": "boolean"
        },
        "allowGatewayTransit": {
          "description": "Controls gatewayLinks can be used in the\nremote virtual network’s link to the local virtual network.\n",
          "type": "boolean"
        },
        "allowVirtualNetworkAccess": {
          "description": "Controls if the VMs in the remote\nvirtual network can access VMs in the local virtual network. Defaults to\ntrue.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the virtual network peering. Changing this\nforces a new resource to be created.\n",
          "type": "string"
        },
        "remoteVirtualNetworkId": {
          "description": "The full Azure resource ID of the\nremote virtual network.  Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the virtual network peering. Changing this forces a new resource to be\ncreated.\n",
          "type": "string"
        },
        "useRemoteGateways": {
          "description": "Controls if remote gateways can be used on\nthe local virtual network. If the flag is set to `true`, and\n`allow_gateway_transit` on the remote peering is also `true`, virtual network will\nuse gateways of remote virtual network for transit. Only one peering can\nhave this flag set to `true`. This flag cannot be set if virtual network\nalready has a gateway. Defaults to `false`.\n",
          "type": "boolean"
        },
        "virtualNetworkName": {
          "description": "The name of the virtual network. Changing\nthis forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "allowForwardedTraffic",
        "allowGatewayTransit",
        "name",
        "remoteVirtualNetworkId",
        "resourceGroupName",
        "useRemoteGateways",
        "virtualNetworkName"
      ],
      "requiredInputs": [
        "remoteVirtualNetworkId",
        "resourceGroupName",
        "virtualNetworkName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualNetworkPeering resources.\n",
        "properties": {
          "allowForwardedTraffic": {
            "description": "Controls if forwarded traffic from  VMs\nin the remote virtual network is allowed. Defaults to false.\n",
            "type": "boolean"
          },
          "allowGatewayTransit": {
            "description": "Controls gatewayLinks can be used in the\nremote virtual network’s link to the local virtual network.\n",
            "type": "boolean"
          },
          "allowVirtualNetworkAccess": {
            "description": "Controls if the VMs in the remote\nvirtual network can access VMs in the local virtual network. Defaults to\ntrue.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name of the virtual network peering. Changing this\nforces a new resource to be created.\n",
            "type": "string"
          },
          "remoteVirtualNetworkId": {
            "description": "The full Azure resource ID of the\nremote virtual network.  Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the virtual network peering. Changing this forces a new resource to be\ncreated.\n",
            "type": "string"
          },
          "useRemoteGateways": {
            "description": "Controls if remote gateways can be used on\nthe local virtual network. If the flag is set to `true`, and\n`allow_gateway_transit` on the remote peering is also `true`, virtual network will\nuse gateways of remote virtual network for transit. Only one peering can\nhave this flag set to `true`. This flag cannot be set if virtual network\nalready has a gateway. Defaults to `false`.\n",
            "type": "boolean"
          },
          "virtualNetworkName": {
            "description": "The name of the virtual network. Changing\nthis forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/virtualWan:VirtualWan": {
      "description": "Manages a Virtual WAN.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualWan = new azure.network.VirtualWan(\"exampleVirtualWan\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_wan = azure.network.VirtualWan(\"exampleVirtualWan\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualWan = new Azure.Network.VirtualWan(\"exampleVirtualWan\", new Azure.Network.VirtualWanArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualWan(ctx, \"exampleVirtualWan\", \u0026network.VirtualWanArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual WAN can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/virtualWan:VirtualWan example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/virtualWans/testvwan\n```\n\n ",
      "inputProperties": {
        "allowBranchToBranchTraffic": {
          "description": "Boolean flag to specify whether branch to branch traffic is allowed. Defaults to `true`.\n",
          "type": "boolean"
        },
        "allowVnetToVnetTraffic": {
          "deprecationMessage": "this property has been removed from the API and will be removed in version 3.0 of the provider",
          "type": "boolean"
        },
        "disableVpnEncryption": {
          "description": "Boolean flag to specify whether VPN encryption is disabled. Defaults to `false`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Virtual WAN. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "office365LocalBreakoutCategory": {
          "description": "Specifies the Office365 local breakout category. Possible values include: `Optimize`, `OptimizeAndAllow`, `All`, `None`. Defaults to `None`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Virtual WAN. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Virtual WAN.\n",
          "type": "object"
        },
        "type": {
          "description": "Specifies the Virtual WAN type. Possible Values include: `Basic` and `Standard`. Defaults to `Standard`.\n",
          "type": "string"
        }
      },
      "properties": {
        "allowBranchToBranchTraffic": {
          "description": "Boolean flag to specify whether branch to branch traffic is allowed. Defaults to `true`.\n",
          "type": "boolean"
        },
        "allowVnetToVnetTraffic": {
          "deprecationMessage": "this property has been removed from the API and will be removed in version 3.0 of the provider",
          "type": "boolean"
        },
        "disableVpnEncryption": {
          "description": "Boolean flag to specify whether VPN encryption is disabled. Defaults to `false`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Virtual WAN. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "office365LocalBreakoutCategory": {
          "description": "Specifies the Office365 local breakout category. Possible values include: `Optimize`, `OptimizeAndAllow`, `All`, `None`. Defaults to `None`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Virtual WAN. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Virtual WAN.\n",
          "type": "object"
        },
        "type": {
          "description": "Specifies the Virtual WAN type. Possible Values include: `Basic` and `Standard`. Defaults to `Standard`.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualWan resources.\n",
        "properties": {
          "allowBranchToBranchTraffic": {
            "description": "Boolean flag to specify whether branch to branch traffic is allowed. Defaults to `true`.\n",
            "type": "boolean"
          },
          "allowVnetToVnetTraffic": {
            "deprecationMessage": "this property has been removed from the API and will be removed in version 3.0 of the provider",
            "type": "boolean"
          },
          "disableVpnEncryption": {
            "description": "Boolean flag to specify whether VPN encryption is disabled. Defaults to `false`.\n",
            "type": "boolean"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Virtual WAN. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "office365LocalBreakoutCategory": {
            "description": "Specifies the Office365 local breakout category. Possible values include: `Optimize`, `OptimizeAndAllow`, `All`, `None`. Defaults to `None`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Virtual WAN. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Virtual WAN.\n",
            "type": "object"
          },
          "type": {
            "description": "Specifies the Virtual WAN type. Possible Values include: `Basic` and `Standard`. Defaults to `Standard`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/vpnGateway:VpnGateway": {
      "description": "Manages a VPN Gateway within a Virtual Hub, which enables Site-to-Site communication.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"10.0.0.0/16\"],\n});\nconst exampleVirtualWan = new azure.network.VirtualWan(\"exampleVirtualWan\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleVirtualHub = new azure.network.VirtualHub(\"exampleVirtualHub\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    virtualWanId: exampleVirtualWan.id,\n    addressPrefix: \"10.0.1.0/24\",\n});\nconst exampleVpnGateway = new azure.network.VpnGateway(\"exampleVpnGateway\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    virtualHubId: exampleVirtualHub.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    address_spaces=[\"10.0.0.0/16\"])\nexample_virtual_wan = azure.network.VirtualWan(\"exampleVirtualWan\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_virtual_hub = azure.network.VirtualHub(\"exampleVirtualHub\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    virtual_wan_id=example_virtual_wan.id,\n    address_prefix=\"10.0.1.0/24\")\nexample_vpn_gateway = azure.network.VpnGateway(\"exampleVpnGateway\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    virtual_hub_id=example_virtual_hub.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n        });\n        var exampleVirtualWan = new Azure.Network.VirtualWan(\"exampleVirtualWan\", new Azure.Network.VirtualWanArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleVirtualHub = new Azure.Network.VirtualHub(\"exampleVirtualHub\", new Azure.Network.VirtualHubArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            VirtualWanId = exampleVirtualWan.Id,\n            AddressPrefix = \"10.0.1.0/24\",\n        });\n        var exampleVpnGateway = new Azure.Network.VpnGateway(\"exampleVpnGateway\", new Azure.Network.VpnGatewayArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualHubId = exampleVirtualHub.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualWan, err := network.NewVirtualWan(ctx, \"exampleVirtualWan\", \u0026network.VirtualWanArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualHub, err := network.NewVirtualHub(ctx, \"exampleVirtualHub\", \u0026network.VirtualHubArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tVirtualWanId:      exampleVirtualWan.ID(),\n\t\t\tAddressPrefix:     pulumi.String(\"10.0.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVpnGateway(ctx, \"exampleVpnGateway\", \u0026network.VpnGatewayArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tVirtualHubId:      exampleVirtualHub.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVPN Gateways can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/vpnGateway:VpnGateway gateway1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/vpnGateways/gateway1\n```\n\n ",
      "inputProperties": {
        "bgpSettings": {
          "$ref": "#/types/azure:network/VpnGatewayBgpSettings:VpnGatewayBgpSettings",
          "description": "A `bgp_settings` block as defined below.\n"
        },
        "location": {
          "description": "The Azure location where this VPN Gateway should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The Name which should be used for this VPN Gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group in which this VPN Gateway should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scaleUnit": {
          "description": "The Scale Unit for this VPN Gateway. Defaults to `1`.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the VPN Gateway.\n",
          "type": "object"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub within which this VPN Gateway should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "bgpSettings": {
          "$ref": "#/types/azure:network/VpnGatewayBgpSettings:VpnGatewayBgpSettings",
          "description": "A `bgp_settings` block as defined below.\n"
        },
        "location": {
          "description": "The Azure location where this VPN Gateway should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The Name which should be used for this VPN Gateway. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group in which this VPN Gateway should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scaleUnit": {
          "description": "The Scale Unit for this VPN Gateway. Defaults to `1`.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the VPN Gateway.\n",
          "type": "object"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub within which this VPN Gateway should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "bgpSettings",
        "location",
        "name",
        "resourceGroupName",
        "virtualHubId"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "virtualHubId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpnGateway resources.\n",
        "properties": {
          "bgpSettings": {
            "$ref": "#/types/azure:network/VpnGatewayBgpSettings:VpnGatewayBgpSettings",
            "description": "A `bgp_settings` block as defined below.\n"
          },
          "location": {
            "description": "The Azure location where this VPN Gateway should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The Name which should be used for this VPN Gateway. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group in which this VPN Gateway should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "scaleUnit": {
            "description": "The Scale Unit for this VPN Gateway. Defaults to `1`.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the VPN Gateway.\n",
            "type": "object"
          },
          "virtualHubId": {
            "description": "The ID of the Virtual Hub within which this VPN Gateway should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:network/vpnGatewayConnection:VpnGatewayConnection": {
      "description": "Manages a VPN Gateway Connection.\n\n\n## Import\n\nVPN Gateway Connections can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/vpnGatewayConnection:VpnGatewayConnection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/vpnGateways/gateway1/vpnConnections/conn1\n```\n\n ",
      "inputProperties": {
        "internetSecurityEnabled": {
          "description": "Whether Internet Security is enabled for this VPN Connection. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name which should be used for this VPN Gateway Connection. Changing this forces a new VPN Gateway Connection to be created.\n",
          "type": "string"
        },
        "remoteVpnSiteId": {
          "description": "The ID of the remote VPN Site, which will connect to the VPN Gateway. Changing this forces a new VPN Gateway Connection to be created.\n",
          "type": "string"
        },
        "routings": {
          "description": "A `routing` block as defined below. If this is not specified, there will be a default route table created implicitly.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnGatewayConnectionRouting:VpnGatewayConnectionRouting"
          },
          "type": "array"
        },
        "vpnGatewayId": {
          "description": "The ID of the VPN Gateway that this VPN Gateway Connection belongs to. Changing this forces a new VPN Gateway Connection to be created.\n",
          "type": "string"
        },
        "vpnLinks": {
          "description": "One or more `vpn_link` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnGatewayConnectionVpnLink:VpnGatewayConnectionVpnLink"
          },
          "type": "array"
        }
      },
      "properties": {
        "internetSecurityEnabled": {
          "description": "Whether Internet Security is enabled for this VPN Connection. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name which should be used for this VPN Gateway Connection. Changing this forces a new VPN Gateway Connection to be created.\n",
          "type": "string"
        },
        "remoteVpnSiteId": {
          "description": "The ID of the remote VPN Site, which will connect to the VPN Gateway. Changing this forces a new VPN Gateway Connection to be created.\n",
          "type": "string"
        },
        "routings": {
          "description": "A `routing` block as defined below. If this is not specified, there will be a default route table created implicitly.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnGatewayConnectionRouting:VpnGatewayConnectionRouting"
          },
          "type": "array"
        },
        "vpnGatewayId": {
          "description": "The ID of the VPN Gateway that this VPN Gateway Connection belongs to. Changing this forces a new VPN Gateway Connection to be created.\n",
          "type": "string"
        },
        "vpnLinks": {
          "description": "One or more `vpn_link` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnGatewayConnectionVpnLink:VpnGatewayConnectionVpnLink"
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "remoteVpnSiteId",
        "routings",
        "vpnGatewayId",
        "vpnLinks"
      ],
      "requiredInputs": [
        "remoteVpnSiteId",
        "vpnGatewayId",
        "vpnLinks"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpnGatewayConnection resources.\n",
        "properties": {
          "internetSecurityEnabled": {
            "description": "Whether Internet Security is enabled for this VPN Connection. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name which should be used for this VPN Gateway Connection. Changing this forces a new VPN Gateway Connection to be created.\n",
            "type": "string"
          },
          "remoteVpnSiteId": {
            "description": "The ID of the remote VPN Site, which will connect to the VPN Gateway. Changing this forces a new VPN Gateway Connection to be created.\n",
            "type": "string"
          },
          "routings": {
            "description": "A `routing` block as defined below. If this is not specified, there will be a default route table created implicitly.\n",
            "items": {
              "$ref": "#/types/azure:network/VpnGatewayConnectionRouting:VpnGatewayConnectionRouting"
            },
            "type": "array"
          },
          "vpnGatewayId": {
            "description": "The ID of the VPN Gateway that this VPN Gateway Connection belongs to. Changing this forces a new VPN Gateway Connection to be created.\n",
            "type": "string"
          },
          "vpnLinks": {
            "description": "One or more `vpn_link` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/VpnGatewayConnectionVpnLink:VpnGatewayConnectionVpnLink"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:network/vpnServerConfiguration:VpnServerConfiguration": {
      "description": "Manages a VPN Server Configuration.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst test = new azure.network.VpnServerConfiguration(\"test\", {\n    resourceGroupName: example.name,\n    location: example.location,\n    vpnAuthenticationTypes: [\"Certificate\"],\n    clientRootCertificates: [{\n        name: \"DigiCert-Federated-ID-Root-CA\",\n        publicCertData: `MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg\nUm9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV\nBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp\nY2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j\nQPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8\nzAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf\nGTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d\nGTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8\nDk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2\nDwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV\nHQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW\njKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP\n9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR\nQELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL\nuGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn\nWsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq\nM/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=\n`,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\ntest = azure.network.VpnServerConfiguration(\"test\",\n    resource_group_name=example.name,\n    location=example.location,\n    vpn_authentication_types=[\"Certificate\"],\n    client_root_certificates=[azure.network.VpnServerConfigurationClientRootCertificateArgs(\n        name=\"DigiCert-Federated-ID-Root-CA\",\n        public_cert_data=\"\"\"MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg\nUm9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV\nBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp\nY2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j\nQPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8\nzAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf\nGTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d\nGTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8\nDk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2\nDwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV\nHQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW\njKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP\n9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR\nQELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL\nuGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn\nWsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq\nM/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=\n\"\"\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var test = new Azure.Network.VpnServerConfiguration(\"test\", new Azure.Network.VpnServerConfigurationArgs\n        {\n            ResourceGroupName = example.Name,\n            Location = example.Location,\n            VpnAuthenticationTypes = \n            {\n                \"Certificate\",\n            },\n            ClientRootCertificates = \n            {\n                new Azure.Network.Inputs.VpnServerConfigurationClientRootCertificateArgs\n                {\n                    Name = \"DigiCert-Federated-ID-Root-CA\",\n                    PublicCertData = @\"MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg\nUm9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV\nBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp\nY2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j\nQPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8\nzAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf\nGTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d\nGTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8\nDk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2\nDwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV\nHQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW\njKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP\n9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR\nQELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL\nuGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn\nWsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq\nM/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=\n\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVpnServerConfiguration(ctx, \"test\", \u0026network.VpnServerConfigurationArgs{\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation:          example.Location,\n\t\t\tVpnAuthenticationTypes: pulumi.String{\n\t\t\t\t\"Certificate\",\n\t\t\t},\n\t\t\tClientRootCertificates: network.VpnServerConfigurationClientRootCertificateArray{\n\t\t\t\t\u0026network.VpnServerConfigurationClientRootCertificateArgs{\n\t\t\t\t\tName:           pulumi.String(\"DigiCert-Federated-ID-Root-CA\"),\n\t\t\t\t\tPublicCertData: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn\\n\", \"MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\n\", \"d3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg\\n\", \"Um9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV\\n\", \"BAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp\\n\", \"Y2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB\\n\", \"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j\\n\", \"QPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8\\n\", \"zAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf\\n\", \"GTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d\\n\", \"GTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8\\n\", \"Dk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2\\n\", \"DwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV\\n\", \"HQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW\\n\", \"jKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP\\n\", \"9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR\\n\", \"QELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL\\n\", \"uGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn\\n\", \"WsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq\\n\", \"M/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=\\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVPN Server Configurations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/vpnServerConfiguration:VpnServerConfiguration config1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/vpnServerConfigurations/config1\n```\n\n ",
      "inputProperties": {
        "azureActiveDirectoryAuthentications": {
          "description": "A `azure_active_directory_authentication` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnServerConfigurationAzureActiveDirectoryAuthentication:VpnServerConfigurationAzureActiveDirectoryAuthentication"
          },
          "type": "array"
        },
        "clientRevokedCertificates": {
          "description": "One or more `client_revoked_certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnServerConfigurationClientRevokedCertificate:VpnServerConfigurationClientRevokedCertificate"
          },
          "type": "array"
        },
        "clientRootCertificates": {
          "description": "One or more `client_root_certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnServerConfigurationClientRootCertificate:VpnServerConfigurationClientRootCertificate"
          },
          "type": "array"
        },
        "ipsecPolicy": {
          "$ref": "#/types/azure:network/VpnServerConfigurationIpsecPolicy:VpnServerConfigurationIpsecPolicy",
          "description": "A `ipsec_policy` block as defined below.\n"
        },
        "location": {
          "description": "The Azure location where this VPN Server Configuration should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The Name which should be used for this VPN Server Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "radius": {
          "$ref": "#/types/azure:network/VpnServerConfigurationRadius:VpnServerConfigurationRadius",
          "description": "A `radius` block as defined below.\n"
        },
        "radiusServer": {
          "$ref": "#/types/azure:network/VpnServerConfigurationRadiusServer:VpnServerConfigurationRadiusServer",
          "deprecationMessage": "Deprecated in favour of `radius`",
          "description": "A `radius_server` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group in which this VPN Server Configuration should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "vpnAuthenticationTypes": {
          "description": "A list of Authentication Types applicable for this VPN Server Configuration. Possible values are `AAD` (Azure Active Directory), `Certificate` and `Radius`.\n",
          "type": "string"
        },
        "vpnProtocols": {
          "description": "A list of VPN Protocols to use for this Server Configuration. Possible values are `IkeV2` and `OpenVPN`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "azureActiveDirectoryAuthentications": {
          "description": "A `azure_active_directory_authentication` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnServerConfigurationAzureActiveDirectoryAuthentication:VpnServerConfigurationAzureActiveDirectoryAuthentication"
          },
          "type": "array"
        },
        "clientRevokedCertificates": {
          "description": "One or more `client_revoked_certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnServerConfigurationClientRevokedCertificate:VpnServerConfigurationClientRevokedCertificate"
          },
          "type": "array"
        },
        "clientRootCertificates": {
          "description": "One or more `client_root_certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnServerConfigurationClientRootCertificate:VpnServerConfigurationClientRootCertificate"
          },
          "type": "array"
        },
        "ipsecPolicy": {
          "$ref": "#/types/azure:network/VpnServerConfigurationIpsecPolicy:VpnServerConfigurationIpsecPolicy",
          "description": "A `ipsec_policy` block as defined below.\n"
        },
        "location": {
          "description": "The Azure location where this VPN Server Configuration should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The Name which should be used for this VPN Server Configuration. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "radius": {
          "$ref": "#/types/azure:network/VpnServerConfigurationRadius:VpnServerConfigurationRadius",
          "description": "A `radius` block as defined below.\n"
        },
        "radiusServer": {
          "$ref": "#/types/azure:network/VpnServerConfigurationRadiusServer:VpnServerConfigurationRadiusServer",
          "deprecationMessage": "Deprecated in favour of `radius`",
          "description": "A `radius_server` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The Name of the Resource Group in which this VPN Server Configuration should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "vpnAuthenticationTypes": {
          "description": "A list of Authentication Types applicable for this VPN Server Configuration. Possible values are `AAD` (Azure Active Directory), `Certificate` and `Radius`.\n",
          "type": "string"
        },
        "vpnProtocols": {
          "description": "A list of VPN Protocols to use for this Server Configuration. Possible values are `IkeV2` and `OpenVPN`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "vpnAuthenticationTypes",
        "vpnProtocols"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "vpnAuthenticationTypes"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpnServerConfiguration resources.\n",
        "properties": {
          "azureActiveDirectoryAuthentications": {
            "description": "A `azure_active_directory_authentication` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/VpnServerConfigurationAzureActiveDirectoryAuthentication:VpnServerConfigurationAzureActiveDirectoryAuthentication"
            },
            "type": "array"
          },
          "clientRevokedCertificates": {
            "description": "One or more `client_revoked_certificate` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/VpnServerConfigurationClientRevokedCertificate:VpnServerConfigurationClientRevokedCertificate"
            },
            "type": "array"
          },
          "clientRootCertificates": {
            "description": "One or more `client_root_certificate` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/VpnServerConfigurationClientRootCertificate:VpnServerConfigurationClientRootCertificate"
            },
            "type": "array"
          },
          "ipsecPolicy": {
            "$ref": "#/types/azure:network/VpnServerConfigurationIpsecPolicy:VpnServerConfigurationIpsecPolicy",
            "description": "A `ipsec_policy` block as defined below.\n"
          },
          "location": {
            "description": "The Azure location where this VPN Server Configuration should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The Name which should be used for this VPN Server Configuration. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "radius": {
            "$ref": "#/types/azure:network/VpnServerConfigurationRadius:VpnServerConfigurationRadius",
            "description": "A `radius` block as defined below.\n"
          },
          "radiusServer": {
            "$ref": "#/types/azure:network/VpnServerConfigurationRadiusServer:VpnServerConfigurationRadiusServer",
            "deprecationMessage": "Deprecated in favour of `radius`",
            "description": "A `radius_server` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "The Name of the Resource Group in which this VPN Server Configuration should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "vpnAuthenticationTypes": {
            "description": "A list of Authentication Types applicable for this VPN Server Configuration. Possible values are `AAD` (Azure Active Directory), `Certificate` and `Radius`.\n",
            "type": "string"
          },
          "vpnProtocols": {
            "description": "A list of VPN Protocols to use for this Server Configuration. Possible values are `IkeV2` and `OpenVPN`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:network/vpnSite:VpnSite": {
      "description": "Manages a VPN Site.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualWan = new azure.network.VirtualWan(\"exampleVirtualWan\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleVpnSite = new azure.network.VpnSite(\"exampleVpnSite\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    virtualWanId: exampleVirtualWan.id,\n    links: [{\n        name: \"link1\",\n        ipAddress: \"10.0.0.1\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_wan = azure.network.VirtualWan(\"exampleVirtualWan\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_vpn_site = azure.network.VpnSite(\"exampleVpnSite\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    virtual_wan_id=example_virtual_wan.id,\n    links=[azure.network.VpnSiteLinkArgs(\n        name=\"link1\",\n        ip_address=\"10.0.0.1\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualWan = new Azure.Network.VirtualWan(\"exampleVirtualWan\", new Azure.Network.VirtualWanArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleVpnSite = new Azure.Network.VpnSite(\"exampleVpnSite\", new Azure.Network.VpnSiteArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            VirtualWanId = exampleVirtualWan.Id,\n            Links = \n            {\n                new Azure.Network.Inputs.VpnSiteLinkArgs\n                {\n                    Name = \"link1\",\n                    IpAddress = \"10.0.0.1\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualWan, err := network.NewVirtualWan(ctx, \"exampleVirtualWan\", \u0026network.VirtualWanArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVpnSite(ctx, \"exampleVpnSite\", \u0026network.VpnSiteArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tVirtualWanId:      exampleVirtualWan.ID(),\n\t\t\tLinks: network.VpnSiteLinkArray{\n\t\t\t\t\u0026network.VpnSiteLinkArgs{\n\t\t\t\t\tName:      pulumi.String(\"link1\"),\n\t\t\t\t\tIpAddress: pulumi.String(\"10.0.0.1\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVPN Sites can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/vpnSite:VpnSite example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/vpnSites/site1\n```\n\n ",
      "inputProperties": {
        "addressCidrs": {
          "description": "Specifies a list of IP address CIDRs that are located on your on-premises site. Traffic destined for these address spaces is routed to your local site.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "deviceModel": {
          "description": "The model of the VPN device.\n",
          "type": "string"
        },
        "deviceVendor": {
          "description": "The name of the VPN device vendor.\n",
          "type": "string"
        },
        "links": {
          "description": "One or more `link` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnSiteLink:VpnSiteLink"
          },
          "type": "array"
        },
        "location": {
          "description": "The Azure Region where the VPN Site should exist. Changing this forces a new VPN Site to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this VPN Site. Changing this forces a new VPN Site to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the VPN Site should exist. Changing this forces a new VPN Site to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the VPN Site.\n",
          "type": "object"
        },
        "virtualWanId": {
          "description": "The ID of the Virtual Wan where this VPN site resides in. Changing this forces a new VPN Site to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "addressCidrs": {
          "description": "Specifies a list of IP address CIDRs that are located on your on-premises site. Traffic destined for these address spaces is routed to your local site.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "deviceModel": {
          "description": "The model of the VPN device.\n",
          "type": "string"
        },
        "deviceVendor": {
          "description": "The name of the VPN device vendor.\n",
          "type": "string"
        },
        "links": {
          "description": "One or more `link` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnSiteLink:VpnSiteLink"
          },
          "type": "array"
        },
        "location": {
          "description": "The Azure Region where the VPN Site should exist. Changing this forces a new VPN Site to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this VPN Site. Changing this forces a new VPN Site to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the VPN Site should exist. Changing this forces a new VPN Site to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the VPN Site.\n",
          "type": "object"
        },
        "virtualWanId": {
          "description": "The ID of the Virtual Wan where this VPN site resides in. Changing this forces a new VPN Site to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "virtualWanId"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "virtualWanId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VpnSite resources.\n",
        "properties": {
          "addressCidrs": {
            "description": "Specifies a list of IP address CIDRs that are located on your on-premises site. Traffic destined for these address spaces is routed to your local site.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "deviceModel": {
            "description": "The model of the VPN device.\n",
            "type": "string"
          },
          "deviceVendor": {
            "description": "The name of the VPN device vendor.\n",
            "type": "string"
          },
          "links": {
            "description": "One or more `link` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:network/VpnSiteLink:VpnSiteLink"
            },
            "type": "array"
          },
          "location": {
            "description": "The Azure Region where the VPN Site should exist. Changing this forces a new VPN Site to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this VPN Site. Changing this forces a new VPN Site to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the VPN Site should exist. Changing this forces a new VPN Site to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the VPN Site.\n",
            "type": "object"
          },
          "virtualWanId": {
            "description": "The ID of the Virtual Wan where this VPN site resides in. Changing this forces a new VPN Site to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:notificationhub/authorizationRule:AuthorizationRule": {
      "description": "Manages an Authorization Rule associated with a Notification Hub within a Notification Hub Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.notificationhub.Namespace(\"exampleNamespace\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    namespaceType: \"NotificationHub\",\n    skuName: \"Free\",\n});\nconst exampleHub = new azure.notificationhub.Hub(\"exampleHub\", {\n    namespaceName: exampleNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleAuthorizationRule = new azure.notificationhub.AuthorizationRule(\"exampleAuthorizationRule\", {\n    notificationHubName: exampleHub.name,\n    namespaceName: exampleNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    manage: true,\n    send: true,\n    listen: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.notificationhub.Namespace(\"exampleNamespace\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    namespace_type=\"NotificationHub\",\n    sku_name=\"Free\")\nexample_hub = azure.notificationhub.Hub(\"exampleHub\",\n    namespace_name=example_namespace.name,\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_authorization_rule = azure.notificationhub.AuthorizationRule(\"exampleAuthorizationRule\",\n    notification_hub_name=example_hub.name,\n    namespace_name=example_namespace.name,\n    resource_group_name=example_resource_group.name,\n    manage=True,\n    send=True,\n    listen=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.NotificationHub.Namespace(\"exampleNamespace\", new Azure.NotificationHub.NamespaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            NamespaceType = \"NotificationHub\",\n            SkuName = \"Free\",\n        });\n        var exampleHub = new Azure.NotificationHub.Hub(\"exampleHub\", new Azure.NotificationHub.HubArgs\n        {\n            NamespaceName = exampleNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleAuthorizationRule = new Azure.NotificationHub.AuthorizationRule(\"exampleAuthorizationRule\", new Azure.NotificationHub.AuthorizationRuleArgs\n        {\n            NotificationHubName = exampleHub.Name,\n            NamespaceName = exampleNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Manage = true,\n            Send = true,\n            Listen = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/notificationhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := notificationhub.NewNamespace(ctx, \"exampleNamespace\", \u0026notificationhub.NamespaceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tNamespaceType:     pulumi.String(\"NotificationHub\"),\n\t\t\tSkuName:           pulumi.String(\"Free\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleHub, err := notificationhub.NewHub(ctx, \"exampleHub\", \u0026notificationhub.HubArgs{\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = notificationhub.NewAuthorizationRule(ctx, \"exampleAuthorizationRule\", \u0026notificationhub.AuthorizationRuleArgs{\n\t\t\tNotificationHubName: exampleHub.Name,\n\t\t\tNamespaceName:       exampleNamespace.Name,\n\t\t\tResourceGroupName:   exampleResourceGroup.Name,\n\t\t\tManage:              pulumi.Bool(true),\n\t\t\tSend:                pulumi.Bool(true),\n\t\t\tListen:              pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNotification Hub Authorization Rule can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:notificationhub/authorizationRule:AuthorizationRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.NotificationHubs/namespaces/namespace1/notificationHubs/hub1/authorizationRules/rule1\n```\n\n ",
      "inputProperties": {
        "listen": {
          "description": "Does this Authorization Rule have Listen access to the Notification Hub? Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Does this Authorization Rule have Manage access to the Notification Hub? Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name to use for this Authorization Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the Notification Hub Namespace in which the Notification Hub exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notificationHubName": {
          "description": "The name of the Notification Hub for which the Authorization Rule should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Notification Hub Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "send": {
          "description": "Does this Authorization Rule have Send access to the Notification Hub? Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "listen": {
          "description": "Does this Authorization Rule have Listen access to the Notification Hub? Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Does this Authorization Rule have Manage access to the Notification Hub? Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name to use for this Authorization Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the Notification Hub Namespace in which the Notification Hub exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notificationHubName": {
          "description": "The name of the Notification Hub for which the Authorization Rule should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryAccessKey": {
          "description": "The Primary Access Key associated with this Authorization Rule.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Notification Hub Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryAccessKey": {
          "description": "The Secondary Access Key associated with this Authorization Rule.\n",
          "type": "string"
        },
        "send": {
          "description": "Does this Authorization Rule have Send access to the Notification Hub? Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "namespaceName",
        "notificationHubName",
        "primaryAccessKey",
        "resourceGroupName",
        "secondaryAccessKey"
      ],
      "requiredInputs": [
        "namespaceName",
        "notificationHubName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AuthorizationRule resources.\n",
        "properties": {
          "listen": {
            "description": "Does this Authorization Rule have Listen access to the Notification Hub? Defaults to `false`.\n",
            "type": "boolean"
          },
          "manage": {
            "description": "Does this Authorization Rule have Manage access to the Notification Hub? Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name to use for this Authorization Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the Notification Hub Namespace in which the Notification Hub exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "notificationHubName": {
            "description": "The name of the Notification Hub for which the Authorization Rule should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The Primary Access Key associated with this Authorization Rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Notification Hub Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The Secondary Access Key associated with this Authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "description": "Does this Authorization Rule have Send access to the Notification Hub? Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:notificationhub/hub:Hub": {
      "description": "Manages a Notification Hub within a Notification Hub Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.notificationhub.Namespace(\"exampleNamespace\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    namespaceType: \"NotificationHub\",\n    skuName: \"Free\",\n});\nconst exampleHub = new azure.notificationhub.Hub(\"exampleHub\", {\n    namespaceName: exampleNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.notificationhub.Namespace(\"exampleNamespace\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    namespace_type=\"NotificationHub\",\n    sku_name=\"Free\")\nexample_hub = azure.notificationhub.Hub(\"exampleHub\",\n    namespace_name=example_namespace.name,\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.NotificationHub.Namespace(\"exampleNamespace\", new Azure.NotificationHub.NamespaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            NamespaceType = \"NotificationHub\",\n            SkuName = \"Free\",\n        });\n        var exampleHub = new Azure.NotificationHub.Hub(\"exampleHub\", new Azure.NotificationHub.HubArgs\n        {\n            NamespaceName = exampleNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/notificationhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := notificationhub.NewNamespace(ctx, \"exampleNamespace\", \u0026notificationhub.NamespaceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tNamespaceType:     pulumi.String(\"NotificationHub\"),\n\t\t\tSkuName:           pulumi.String(\"Free\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = notificationhub.NewHub(ctx, \"exampleHub\", \u0026notificationhub.HubArgs{\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNotification Hubs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:notificationhub/hub:Hub hub1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.NotificationHubs/namespaces/namespace1/notificationHubs/hub1\n```\n\n ",
      "inputProperties": {
        "apnsCredential": {
          "$ref": "#/types/azure:notificationhub/HubApnsCredential:HubApnsCredential",
          "description": "A `apns_credential` block as defined below.\n"
        },
        "gcmCredential": {
          "$ref": "#/types/azure:notificationhub/HubGcmCredential:HubGcmCredential",
          "description": "A `gcm_credential` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region in which this Notification Hub Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name to use for this Notification Hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the Notification Hub Namespace in which to create this Notification Hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Notification Hub Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "apnsCredential": {
          "$ref": "#/types/azure:notificationhub/HubApnsCredential:HubApnsCredential",
          "description": "A `apns_credential` block as defined below.\n"
        },
        "gcmCredential": {
          "$ref": "#/types/azure:notificationhub/HubGcmCredential:HubGcmCredential",
          "description": "A `gcm_credential` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region in which this Notification Hub Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name to use for this Notification Hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the Notification Hub Namespace in which to create this Notification Hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Notification Hub Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "namespaceName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Hub resources.\n",
        "properties": {
          "apnsCredential": {
            "$ref": "#/types/azure:notificationhub/HubApnsCredential:HubApnsCredential",
            "description": "A `apns_credential` block as defined below.\n"
          },
          "gcmCredential": {
            "$ref": "#/types/azure:notificationhub/HubGcmCredential:HubGcmCredential",
            "description": "A `gcm_credential` block as defined below.\n"
          },
          "location": {
            "description": "The Azure Region in which this Notification Hub Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name to use for this Notification Hub. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the Notification Hub Namespace in which to create this Notification Hub. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Notification Hub Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:notificationhub/namespace:Namespace": {
      "description": "Manages a Notification Hub Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.notificationhub.Namespace(\"exampleNamespace\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    namespaceType: \"NotificationHub\",\n    skuName: \"Free\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.notificationhub.Namespace(\"exampleNamespace\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    namespace_type=\"NotificationHub\",\n    sku_name=\"Free\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.NotificationHub.Namespace(\"exampleNamespace\", new Azure.NotificationHub.NamespaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            NamespaceType = \"NotificationHub\",\n            SkuName = \"Free\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/notificationhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = notificationhub.NewNamespace(ctx, \"exampleNamespace\", \u0026notificationhub.NamespaceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tNamespaceType:     pulumi.String(\"NotificationHub\"),\n\t\t\tSkuName:           pulumi.String(\"Free\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNotification Hub Namespaces can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:notificationhub/namespace:Namespace namespace1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.NotificationHubs/namespaces/namespace1\n```\n\n ",
      "inputProperties": {
        "enabled": {
          "description": "Is this Notification Hub Namespace enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "The Azure Region in which this Notification Hub Namespace should be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name to use for this Notification Hub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceType": {
          "description": "The Type of Namespace - possible values are `Messaging` or `NotificationHub`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Notification Hub Namespace should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The name of the SKU to use for this Notification Hub Namespace. Possible values are `Free`, `Basic` or `Standard`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "enabled": {
          "description": "Is this Notification Hub Namespace enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "The Azure Region in which this Notification Hub Namespace should be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name to use for this Notification Hub Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceType": {
          "description": "The Type of Namespace - possible values are `Messaging` or `NotificationHub`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Notification Hub Namespace should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "servicebusEndpoint": {
          "description": "The ServiceBus Endpoint for this Notification Hub Namespace.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The name of the SKU to use for this Notification Hub Namespace. Possible values are `Free`, `Basic` or `Standard`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "namespaceType",
        "resourceGroupName",
        "servicebusEndpoint",
        "skuName"
      ],
      "requiredInputs": [
        "namespaceType",
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Namespace resources.\n",
        "properties": {
          "enabled": {
            "description": "Is this Notification Hub Namespace enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "location": {
            "description": "The Azure Region in which this Notification Hub Namespace should be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name to use for this Notification Hub Namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceType": {
            "description": "The Type of Namespace - possible values are `Messaging` or `NotificationHub`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Notification Hub Namespace should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "servicebusEndpoint": {
            "description": "The ServiceBus Endpoint for this Notification Hub Namespace.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The name of the SKU to use for this Notification Hub Namespace. Possible values are `Free`, `Basic` or `Standard`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:operationalinsights/analyticsSolution:AnalyticsSolution": {
      "description": "Manages a Log Analytics (formally Operational Insights) Solution.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as random from \"@pulumi/random\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst workspace = new random.RandomId(\"workspace\", {\n    keepers: {\n        group_name: exampleResourceGroup.name,\n    },\n    byteLength: 8,\n});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n});\nconst exampleAnalyticsSolution = new azure.operationalinsights.AnalyticsSolution(\"exampleAnalyticsSolution\", {\n    solutionName: \"ContainerInsights\",\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    workspaceResourceId: exampleAnalyticsWorkspace.id,\n    workspaceName: exampleAnalyticsWorkspace.name,\n    plan: {\n        publisher: \"Microsoft\",\n        product: \"OMSGallery/ContainerInsights\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_random as random\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nworkspace = random.RandomId(\"workspace\",\n    keepers={\n        \"group_name\": example_resource_group.name,\n    },\n    byte_length=8)\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\")\nexample_analytics_solution = azure.operationalinsights.AnalyticsSolution(\"exampleAnalyticsSolution\",\n    solution_name=\"ContainerInsights\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    workspace_resource_id=example_analytics_workspace.id,\n    workspace_name=example_analytics_workspace.name,\n    plan=azure.operationalinsights.AnalyticsSolutionPlanArgs(\n        publisher=\"Microsoft\",\n        product=\"OMSGallery/ContainerInsights\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing Random = Pulumi.Random;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var workspace = new Random.RandomId(\"workspace\", new Random.RandomIdArgs\n        {\n            Keepers = \n            {\n                { \"group_name\", exampleResourceGroup.Name },\n            },\n            ByteLength = 8,\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n        });\n        var exampleAnalyticsSolution = new Azure.OperationalInsights.AnalyticsSolution(\"exampleAnalyticsSolution\", new Azure.OperationalInsights.AnalyticsSolutionArgs\n        {\n            SolutionName = \"ContainerInsights\",\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            WorkspaceResourceId = exampleAnalyticsWorkspace.Id,\n            WorkspaceName = exampleAnalyticsWorkspace.Name,\n            Plan = new Azure.OperationalInsights.Inputs.AnalyticsSolutionPlanArgs\n            {\n                Publisher = \"Microsoft\",\n                Product = \"OMSGallery/ContainerInsights\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = random.NewRandomId(ctx, \"workspace\", \u0026random.RandomIdArgs{\n\t\t\tKeepers: pulumi.AnyMap{\n\t\t\t\t\"group_name\": exampleResourceGroup.Name,\n\t\t\t},\n\t\t\tByteLength: pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = operationalinsights.NewAnalyticsSolution(ctx, \"exampleAnalyticsSolution\", \u0026operationalinsights.AnalyticsSolutionArgs{\n\t\t\tSolutionName:        pulumi.String(\"ContainerInsights\"),\n\t\t\tLocation:            exampleResourceGroup.Location,\n\t\t\tResourceGroupName:   exampleResourceGroup.Name,\n\t\t\tWorkspaceResourceId: exampleAnalyticsWorkspace.ID(),\n\t\t\tWorkspaceName:       exampleAnalyticsWorkspace.Name,\n\t\t\tPlan: \u0026operationalinsights.AnalyticsSolutionPlanArgs{\n\t\t\t\tPublisher: pulumi.String(\"Microsoft\"),\n\t\t\t\tProduct:   pulumi.String(\"OMSGallery/ContainerInsights\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLog Analytics Solutions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:operationalinsights/analyticsSolution:AnalyticsSolution solution1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.OperationsManagement/solutions/solution1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "plan": {
          "$ref": "#/types/azure:operationalinsights/AnalyticsSolutionPlan:AnalyticsSolutionPlan",
          "description": "A `plan` block as documented below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Log Analytics solution is created. Changing this forces a new resource to be created. Note: The solution and its related workspace can only exist in the same resource group.\n",
          "type": "string"
        },
        "solutionName": {
          "description": "Specifies the name of the solution to be deployed. See [here for options](https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-add-solutions).Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "workspaceName": {
          "description": "The full name of the Log Analytics workspace with which the solution will be linked. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "workspaceResourceId": {
          "description": "The full resource ID of the Log Analytics workspace with which the solution will be linked. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "plan": {
          "$ref": "#/types/azure:operationalinsights/AnalyticsSolutionPlan:AnalyticsSolutionPlan",
          "description": "A `plan` block as documented below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Log Analytics solution is created. Changing this forces a new resource to be created. Note: The solution and its related workspace can only exist in the same resource group.\n",
          "type": "string"
        },
        "solutionName": {
          "description": "Specifies the name of the solution to be deployed. See [here for options](https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-add-solutions).Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "workspaceName": {
          "description": "The full name of the Log Analytics workspace with which the solution will be linked. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "workspaceResourceId": {
          "description": "The full resource ID of the Log Analytics workspace with which the solution will be linked. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "plan",
        "resourceGroupName",
        "solutionName",
        "workspaceName",
        "workspaceResourceId"
      ],
      "requiredInputs": [
        "plan",
        "resourceGroupName",
        "solutionName",
        "workspaceName",
        "workspaceResourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AnalyticsSolution resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "plan": {
            "$ref": "#/types/azure:operationalinsights/AnalyticsSolutionPlan:AnalyticsSolutionPlan",
            "description": "A `plan` block as documented below.\n"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Log Analytics solution is created. Changing this forces a new resource to be created. Note: The solution and its related workspace can only exist in the same resource group.\n",
            "type": "string"
          },
          "solutionName": {
            "description": "Specifies the name of the solution to be deployed. See [here for options](https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-add-solutions).Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "workspaceName": {
            "description": "The full name of the Log Analytics workspace with which the solution will be linked. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "workspaceResourceId": {
            "description": "The full resource ID of the Log Analytics workspace with which the solution will be linked. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:operationalinsights/analyticsWorkspace:AnalyticsWorkspace": {
      "description": "Manages a Log Analytics (formally Operational Insights) Workspace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n    retentionInDays: 30,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\",\n    retention_in_days=30)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n            RetentionInDays = 30,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t\tRetentionInDays:   pulumi.Int(30),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLog Analytics Workspaces can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:operationalinsights/analyticsWorkspace:AnalyticsWorkspace workspace1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.OperationalInsights/workspaces/workspace1\n```\n\n ",
      "inputProperties": {
        "dailyQuotaGb": {
          "description": "The workspace daily quota for ingestion in GB.  Defaults to -1 (unlimited) if omitted.\n",
          "type": "number"
        },
        "internetIngestionEnabled": {
          "type": "boolean"
        },
        "internetQueryEnabled": {
          "description": "Should the Log Analytics Workflow support querying over the Public Internet? Defaults to `true`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Log Analytics Workspace. Workspace name should include 4-63 letters, digits or '-'. The '-' shouldn't be the first or the last symbol. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "reservationCapcityInGbPerDay": {
          "description": "The capacity reservation level in GB for this workspace.  Must be in increments of 100  between 100 and 5000.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Log Analytics workspace is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retentionInDays": {
          "description": "The workspace data retention in days. Possible values are either 7 (Free Tier only) or range between 30 and 730.\n",
          "type": "integer"
        },
        "sku": {
          "description": "Specifies the Sku of the Log Analytics Workspace. Possible values are `Free`, `PerNode`, `Premium`, `Standard`, `Standalone`, `Unlimited`, `CapacityReservation`, and `PerGB2018` (new Sku as of `2018-04-03`). Defaults to `PerGB2018`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "dailyQuotaGb": {
          "description": "The workspace daily quota for ingestion in GB.  Defaults to -1 (unlimited) if omitted.\n",
          "type": "number"
        },
        "internetIngestionEnabled": {
          "type": "boolean"
        },
        "internetQueryEnabled": {
          "description": "Should the Log Analytics Workflow support querying over the Public Internet? Defaults to `true`.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Log Analytics Workspace. Workspace name should include 4-63 letters, digits or '-'. The '-' shouldn't be the first or the last symbol. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "portalUrl": {
          "deprecationMessage": "this property has been removed from the API and will be removed in version 3.0 of the provider",
          "type": "string"
        },
        "primarySharedKey": {
          "description": "The Primary shared key for the Log Analytics Workspace.\n",
          "type": "string"
        },
        "reservationCapcityInGbPerDay": {
          "description": "The capacity reservation level in GB for this workspace.  Must be in increments of 100  between 100 and 5000.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the Log Analytics workspace is created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "retentionInDays": {
          "description": "The workspace data retention in days. Possible values are either 7 (Free Tier only) or range between 30 and 730.\n",
          "type": "integer"
        },
        "secondarySharedKey": {
          "description": "The Secondary shared key for the Log Analytics Workspace.\n",
          "type": "string"
        },
        "sku": {
          "description": "Specifies the Sku of the Log Analytics Workspace. Possible values are `Free`, `PerNode`, `Premium`, `Standard`, `Standalone`, `Unlimited`, `CapacityReservation`, and `PerGB2018` (new Sku as of `2018-04-03`). Defaults to `PerGB2018`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "workspaceId": {
          "description": "The Workspace (or Customer) ID for the Log Analytics Workspace.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "portalUrl",
        "primarySharedKey",
        "resourceGroupName",
        "retentionInDays",
        "secondarySharedKey",
        "workspaceId"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AnalyticsWorkspace resources.\n",
        "properties": {
          "dailyQuotaGb": {
            "description": "The workspace daily quota for ingestion in GB.  Defaults to -1 (unlimited) if omitted.\n",
            "type": "number"
          },
          "internetIngestionEnabled": {
            "type": "boolean"
          },
          "internetQueryEnabled": {
            "description": "Should the Log Analytics Workflow support querying over the Public Internet? Defaults to `true`.\n",
            "type": "boolean"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Log Analytics Workspace. Workspace name should include 4-63 letters, digits or '-'. The '-' shouldn't be the first or the last symbol. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "portalUrl": {
            "deprecationMessage": "this property has been removed from the API and will be removed in version 3.0 of the provider",
            "type": "string"
          },
          "primarySharedKey": {
            "description": "The Primary shared key for the Log Analytics Workspace.\n",
            "type": "string"
          },
          "reservationCapcityInGbPerDay": {
            "description": "The capacity reservation level in GB for this workspace.  Must be in increments of 100  between 100 and 5000.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the Log Analytics workspace is created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "retentionInDays": {
            "description": "The workspace data retention in days. Possible values are either 7 (Free Tier only) or range between 30 and 730.\n",
            "type": "integer"
          },
          "secondarySharedKey": {
            "description": "The Secondary shared key for the Log Analytics Workspace.\n",
            "type": "string"
          },
          "sku": {
            "description": "Specifies the Sku of the Log Analytics Workspace. Possible values are `Free`, `PerNode`, `Premium`, `Standard`, `Standalone`, `Unlimited`, `CapacityReservation`, and `PerGB2018` (new Sku as of `2018-04-03`). Defaults to `PerGB2018`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "workspaceId": {
            "description": "The Workspace (or Customer) ID for the Log Analytics Workspace.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:policy/assignment:Assignment": {
      "description": "Configures the specified Policy Definition at the specified Scope. Also, Policy Set Definitions are supported.\n\n!\u003e **Note:** The `azure.policy.Assignment` resource has been deprecated in favour of the `azure.management.GroupPolicyAssignment`, `azure.core.ResourcePolicyAssignment`, `azure.core.ResourceGroupPolicyAssignment` and `azure.core.SubscriptionPolicyAssignment` resources and will be removed in v3.0 of the Azure Provider.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleDefinition = new azure.policy.Definition(\"exampleDefinition\", {\n    policyType: \"Custom\",\n    mode: \"All\",\n    displayName: \"my-policy-definition\",\n    policyRule: `\t{\n    \"if\": {\n      \"not\": {\n        \"field\": \"location\",\n        \"in\": \"[parameters('allowedLocations')]\"\n      }\n    },\n    \"then\": {\n      \"effect\": \"audit\"\n    }\n  }\n`,\n    parameters: `\t{\n    \"allowedLocations\": {\n      \"type\": \"Array\",\n      \"metadata\": {\n        \"description\": \"The list of allowed locations for resources.\",\n        \"displayName\": \"Allowed locations\",\n        \"strongType\": \"location\"\n      }\n    }\n  }\n`,\n});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAssignment = new azure.policy.Assignment(\"exampleAssignment\", {\n    scope: exampleResourceGroup.id,\n    policyDefinitionId: exampleDefinition.id,\n    description: \"Policy Assignment created via an Acceptance Test\",\n    displayName: \"My Example Policy Assignment\",\n    metadata: `    {\n    \"category\": \"General\"\n    }\n`,\n    parameters: `{\n  \"allowedLocations\": {\n    \"value\": [ \"West Europe\" ]\n  }\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_definition = azure.policy.Definition(\"exampleDefinition\",\n    policy_type=\"Custom\",\n    mode=\"All\",\n    display_name=\"my-policy-definition\",\n    policy_rule=\"\"\"\t{\n    \"if\": {\n      \"not\": {\n        \"field\": \"location\",\n        \"in\": \"[parameters('allowedLocations')]\"\n      }\n    },\n    \"then\": {\n      \"effect\": \"audit\"\n    }\n  }\n\"\"\",\n    parameters=\"\"\"\t{\n    \"allowedLocations\": {\n      \"type\": \"Array\",\n      \"metadata\": {\n        \"description\": \"The list of allowed locations for resources.\",\n        \"displayName\": \"Allowed locations\",\n        \"strongType\": \"location\"\n      }\n    }\n  }\n\"\"\")\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_assignment = azure.policy.Assignment(\"exampleAssignment\",\n    scope=example_resource_group.id,\n    policy_definition_id=example_definition.id,\n    description=\"Policy Assignment created via an Acceptance Test\",\n    display_name=\"My Example Policy Assignment\",\n    metadata=\"\"\"    {\n    \"category\": \"General\"\n    }\n\"\"\",\n    parameters=\"\"\"{\n  \"allowedLocations\": {\n    \"value\": [ \"West Europe\" ]\n  }\n}\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleDefinition = new Azure.Policy.Definition(\"exampleDefinition\", new Azure.Policy.DefinitionArgs\n        {\n            PolicyType = \"Custom\",\n            Mode = \"All\",\n            DisplayName = \"my-policy-definition\",\n            PolicyRule = @\"\t{\n    \"\"if\"\": {\n      \"\"not\"\": {\n        \"\"field\"\": \"\"location\"\",\n        \"\"in\"\": \"\"[parameters('allowedLocations')]\"\"\n      }\n    },\n    \"\"then\"\": {\n      \"\"effect\"\": \"\"audit\"\"\n    }\n  }\n\",\n            Parameters = @\"\t{\n    \"\"allowedLocations\"\": {\n      \"\"type\"\": \"\"Array\"\",\n      \"\"metadata\"\": {\n        \"\"description\"\": \"\"The list of allowed locations for resources.\"\",\n        \"\"displayName\"\": \"\"Allowed locations\"\",\n        \"\"strongType\"\": \"\"location\"\"\n      }\n    }\n  }\n\",\n        });\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAssignment = new Azure.Policy.Assignment(\"exampleAssignment\", new Azure.Policy.AssignmentArgs\n        {\n            Scope = exampleResourceGroup.Id,\n            PolicyDefinitionId = exampleDefinition.Id,\n            Description = \"Policy Assignment created via an Acceptance Test\",\n            DisplayName = \"My Example Policy Assignment\",\n            Metadata = @\"    {\n    \"\"category\"\": \"\"General\"\"\n    }\n\",\n            Parameters = @\"{\n  \"\"allowedLocations\"\": {\n    \"\"value\"\": [ \"\"West Europe\"\" ]\n  }\n}\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/policy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDefinition, err := policy.NewDefinition(ctx, \"exampleDefinition\", \u0026policy.DefinitionArgs{\n\t\t\tPolicyType:  pulumi.String(\"Custom\"),\n\t\t\tMode:        pulumi.String(\"All\"),\n\t\t\tDisplayName: pulumi.String(\"my-policy-definition\"),\n\t\t\tPolicyRule: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v\", \"\t{\\n\", \"    \\\"if\\\": {\\n\", \"      \\\"not\\\": {\\n\", \"        \\\"field\\\": \\\"location\\\",\\n\", \"        \\\"in\\\": \\\"[parameters('allowedLocations')]\\\"\\n\", \"      }\\n\", \"    },\\n\", \"    \\\"then\\\": {\\n\", \"      \\\"effect\\\": \\\"audit\\\"\\n\", \"    }\\n\", \"  }\\n\")),\n\t\t\tParameters: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v\", \"\t{\\n\", \"    \\\"allowedLocations\\\": {\\n\", \"      \\\"type\\\": \\\"Array\\\",\\n\", \"      \\\"metadata\\\": {\\n\", \"        \\\"description\\\": \\\"The list of allowed locations for resources.\\\",\\n\", \"        \\\"displayName\\\": \\\"Allowed locations\\\",\\n\", \"        \\\"strongType\\\": \\\"location\\\"\\n\", \"      }\\n\", \"    }\\n\", \"  }\\n\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = policy.NewAssignment(ctx, \"exampleAssignment\", \u0026policy.AssignmentArgs{\n\t\t\tScope:              exampleResourceGroup.ID(),\n\t\t\tPolicyDefinitionId: exampleDefinition.ID(),\n\t\t\tDescription:        pulumi.String(\"Policy Assignment created via an Acceptance Test\"),\n\t\t\tDisplayName:        pulumi.String(\"My Example Policy Assignment\"),\n\t\t\tMetadata:           pulumi.String(fmt.Sprintf(\"%v%v%v\", \"    {\\n\", \"    \\\"category\\\": \\\"General\\\"\\n\", \"    }\\n\")),\n\t\t\tParameters:         pulumi.String(fmt.Sprintf(\"%v%v%v%v%v\", \"{\\n\", \"  \\\"allowedLocations\\\": {\\n\", \"    \\\"value\\\": [ \\\"West Europe\\\" ]\\n\", \"  }\\n\", \"}\\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPolicy Assignments can be imported using the `policy name`, e.g.\n\n```sh\n $ pulumi import azure:policy/assignment:Assignment assignment1 /subscriptions/00000000-0000-0000-000000000000/providers/Microsoft.Authorization/policyAssignments/assignment1\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "A description to use for this Policy Assignment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "A friendly display name to use for this Policy Assignment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "enforcementMode": {
          "description": "Can be set to 'true' or 'false' to control whether the assignment is enforced (true) or not (false). Default is 'true'.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:policy/AssignmentIdentity:AssignmentIdentity",
          "description": "An `identity` block.\n"
        },
        "location": {
          "description": "The Azure location where this policy assignment should exist. This is required when an Identity is assigned. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "The metadata for the policy assignment. This is a JSON string representing additional metadata that should be stored with the policy assignment.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Policy Assignment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notScopes": {
          "description": "A list of the Policy Assignment's excluded scopes. The list must contain Resource IDs (such as Subscriptions e.g. `/subscriptions/00000000-0000-0000-000000000000` or Resource Groups e.g.`/subscriptions/00000000-0000-0000-000000000000/resourceGroups/myResourceGroup`).\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "parameters": {
          "description": "Parameters for the policy definition. This field is a JSON string that maps to the Parameters field from the Policy Definition. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "policyDefinitionId": {
          "description": "The ID of the Policy Definition to be applied at the specified Scope.\n",
          "type": "string"
        },
        "scope": {
          "description": "The Scope at which the Policy Assignment should be applied, which must be a Resource ID (such as Subscription e.g. `/subscriptions/00000000-0000-0000-000000000000` or a Resource Group e.g.`/subscriptions/00000000-0000-0000-000000000000/resourceGroups/myResourceGroup`). Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "description": {
          "description": "A description to use for this Policy Assignment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "displayName": {
          "description": "A friendly display name to use for this Policy Assignment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "enforcementMode": {
          "description": "Can be set to 'true' or 'false' to control whether the assignment is enforced (true) or not (false). Default is 'true'.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:policy/AssignmentIdentity:AssignmentIdentity",
          "description": "An `identity` block.\n"
        },
        "location": {
          "description": "The Azure location where this policy assignment should exist. This is required when an Identity is assigned. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "The metadata for the policy assignment. This is a JSON string representing additional metadata that should be stored with the policy assignment.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Policy Assignment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "notScopes": {
          "description": "A list of the Policy Assignment's excluded scopes. The list must contain Resource IDs (such as Subscriptions e.g. `/subscriptions/00000000-0000-0000-000000000000` or Resource Groups e.g.`/subscriptions/00000000-0000-0000-000000000000/resourceGroups/myResourceGroup`).\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "parameters": {
          "description": "Parameters for the policy definition. This field is a JSON string that maps to the Parameters field from the Policy Definition. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "policyDefinitionId": {
          "description": "The ID of the Policy Definition to be applied at the specified Scope.\n",
          "type": "string"
        },
        "scope": {
          "description": "The Scope at which the Policy Assignment should be applied, which must be a Resource ID (such as Subscription e.g. `/subscriptions/00000000-0000-0000-000000000000` or a Resource Group e.g.`/subscriptions/00000000-0000-0000-000000000000/resourceGroups/myResourceGroup`). Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "identity",
        "location",
        "metadata",
        "name",
        "policyDefinitionId",
        "scope"
      ],
      "requiredInputs": [
        "policyDefinitionId",
        "scope"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Assignment resources.\n",
        "properties": {
          "description": {
            "description": "A description to use for this Policy Assignment. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "displayName": {
            "description": "A friendly display name to use for this Policy Assignment. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "enforcementMode": {
            "description": "Can be set to 'true' or 'false' to control whether the assignment is enforced (true) or not (false). Default is 'true'.\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:policy/AssignmentIdentity:AssignmentIdentity",
            "description": "An `identity` block.\n"
          },
          "location": {
            "description": "The Azure location where this policy assignment should exist. This is required when an Identity is assigned. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metadata": {
            "description": "The metadata for the policy assignment. This is a JSON string representing additional metadata that should be stored with the policy assignment.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Policy Assignment. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "notScopes": {
            "description": "A list of the Policy Assignment's excluded scopes. The list must contain Resource IDs (such as Subscriptions e.g. `/subscriptions/00000000-0000-0000-000000000000` or Resource Groups e.g.`/subscriptions/00000000-0000-0000-000000000000/resourceGroups/myResourceGroup`).\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "parameters": {
            "description": "Parameters for the policy definition. This field is a JSON string that maps to the Parameters field from the Policy Definition. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "policyDefinitionId": {
            "description": "The ID of the Policy Definition to be applied at the specified Scope.\n",
            "type": "string"
          },
          "scope": {
            "description": "The Scope at which the Policy Assignment should be applied, which must be a Resource ID (such as Subscription e.g. `/subscriptions/00000000-0000-0000-000000000000` or a Resource Group e.g.`/subscriptions/00000000-0000-0000-000000000000/resourceGroups/myResourceGroup`). Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:policy/definition:Definition": {
      "description": "Manages a policy rule definition on a management group or your provider subscription.\n\nPolicy definitions do not take effect until they are assigned to a scope using a Policy Assignment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst policy = new azure.policy.Definition(\"policy\", {\n    displayName: \"acceptance test policy definition\",\n    metadata: `    {\n    \"category\": \"General\"\n    }\n\n`,\n    mode: \"Indexed\",\n    parameters: `\t{\n    \"allowedLocations\": {\n      \"type\": \"Array\",\n      \"metadata\": {\n        \"description\": \"The list of allowed locations for resources.\",\n        \"displayName\": \"Allowed locations\",\n        \"strongType\": \"location\"\n      }\n    }\n  }\n`,\n    policyRule: `\t{\n    \"if\": {\n      \"not\": {\n        \"field\": \"location\",\n        \"in\": \"[parameters('allowedLocations')]\"\n      }\n    },\n    \"then\": {\n      \"effect\": \"audit\"\n    }\n  }\n`,\n    policyType: \"Custom\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\npolicy = azure.policy.Definition(\"policy\",\n    display_name=\"acceptance test policy definition\",\n    metadata=\"\"\"    {\n    \"category\": \"General\"\n    }\n\n\n\"\"\",\n    mode=\"Indexed\",\n    parameters=\"\"\"\t{\n    \"allowedLocations\": {\n      \"type\": \"Array\",\n      \"metadata\": {\n        \"description\": \"The list of allowed locations for resources.\",\n        \"displayName\": \"Allowed locations\",\n        \"strongType\": \"location\"\n      }\n    }\n  }\n\n\"\"\",\n    policy_rule=\"\"\"\t{\n    \"if\": {\n      \"not\": {\n        \"field\": \"location\",\n        \"in\": \"[parameters('allowedLocations')]\"\n      }\n    },\n    \"then\": {\n      \"effect\": \"audit\"\n    }\n  }\n\n\"\"\",\n    policy_type=\"Custom\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var policy = new Azure.Policy.Definition(\"policy\", new Azure.Policy.DefinitionArgs\n        {\n            DisplayName = \"acceptance test policy definition\",\n            Metadata = @\"    {\n    \"\"category\"\": \"\"General\"\"\n    }\n\n\n\",\n            Mode = \"Indexed\",\n            Parameters = @\"\t{\n    \"\"allowedLocations\"\": {\n      \"\"type\"\": \"\"Array\"\",\n      \"\"metadata\"\": {\n        \"\"description\"\": \"\"The list of allowed locations for resources.\"\",\n        \"\"displayName\"\": \"\"Allowed locations\"\",\n        \"\"strongType\"\": \"\"location\"\"\n      }\n    }\n  }\n\n\",\n            PolicyRule = @\"\t{\n    \"\"if\"\": {\n      \"\"not\"\": {\n        \"\"field\"\": \"\"location\"\",\n        \"\"in\"\": \"\"[parameters('allowedLocations')]\"\"\n      }\n    },\n    \"\"then\"\": {\n      \"\"effect\"\": \"\"audit\"\"\n    }\n  }\n\n\",\n            PolicyType = \"Custom\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/policy\"\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 := policy.NewDefinition(ctx, \"policy\", \u0026policy.DefinitionArgs{\n\t\t\tDisplayName: pulumi.String(\"acceptance test policy definition\"),\n\t\t\tMetadata:    pulumi.String(fmt.Sprintf(\"%v%v%v%v%v\", \"    {\\n\", \"    \\\"category\\\": \\\"General\\\"\\n\", \"    }\\n\", \"\\n\", \"\\n\")),\n\t\t\tMode:        pulumi.String(\"Indexed\"),\n\t\t\tParameters: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v\", \"\t{\\n\", \"    \\\"allowedLocations\\\": {\\n\", \"      \\\"type\\\": \\\"Array\\\",\\n\", \"      \\\"metadata\\\": {\\n\", \"        \\\"description\\\": \\\"The list of allowed locations for resources.\\\",\\n\", \"        \\\"displayName\\\": \\\"Allowed locations\\\",\\n\", \"        \\\"strongType\\\": \\\"location\\\"\\n\", \"      }\\n\", \"    }\\n\", \"  }\\n\", \"\\n\")),\n\t\t\tPolicyRule: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v\", \"\t{\\n\", \"    \\\"if\\\": {\\n\", \"      \\\"not\\\": {\\n\", \"        \\\"field\\\": \\\"location\\\",\\n\", \"        \\\"in\\\": \\\"[parameters('allowedLocations')]\\\"\\n\", \"      }\\n\", \"    },\\n\", \"    \\\"then\\\": {\\n\", \"      \\\"effect\\\": \\\"audit\\\"\\n\", \"    }\\n\", \"  }\\n\", \"\\n\")),\n\t\t\tPolicyType: pulumi.String(\"Custom\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPolicy Definitions can be imported using the `policy name`, e.g.\n\n```sh\n $ pulumi import azure:policy/definition:Definition examplePolicy /subscriptions/\u003cSUBSCRIPTION_ID\u003e/providers/Microsoft.Authorization/policyDefinitions/\u003cPOLICY_NAME\u003e\n```\n\n or\n\n```sh\n $ pulumi import azure:policy/definition:Definition examplePolicy /providers/Microsoft.Management/managementgroups/\u003cMANGAGEMENT_GROUP_ID\u003e/providers/Microsoft.Authorization/policyDefinitions/\u003cPOLICY_NAME\u003e\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "The description of the policy definition.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the policy definition.\n",
          "type": "string"
        },
        "managementGroupId": {
          "deprecationMessage": "Deprecated in favour of `management_group_name`",
          "description": "The name of the Management Group where this policy should be defined. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managementGroupName": {
          "description": "The name of the Management Group where this policy should be defined. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "The metadata for the policy definition. This\nis a JSON string representing additional metadata that should be stored\nwith the policy definition.\n",
          "type": "string"
        },
        "mode": {
          "description": "The policy mode that allows you to specify which resource\ntypes will be evaluated. Possible values are `All`, `Indexed`, `Microsoft.ContainerService.Data`, `Microsoft.CustomerLockbox.Data`, `Microsoft.DataCatalog.Data`, `Microsoft.KeyVault.Data`, `Microsoft.Kubernetes.Data`, `Microsoft.MachineLearningServices.Data`, `Microsoft.Network.Data` and `Microsoft.Synapse.Data`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the policy definition. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "parameters": {
          "description": "Parameters for the policy definition. This field\nis a JSON string that allows you to parameterize your policy definition.\n",
          "type": "string"
        },
        "policyRule": {
          "description": "The policy rule for the policy definition. This\nis a JSON string representing the rule that contains an if and\na then block.\n",
          "type": "string"
        },
        "policyType": {
          "description": "The policy type. Possible values are `BuiltIn`, `Custom` and `NotSpecified`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "description": {
          "description": "The description of the policy definition.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the policy definition.\n",
          "type": "string"
        },
        "managementGroupId": {
          "deprecationMessage": "Deprecated in favour of `management_group_name`",
          "description": "The name of the Management Group where this policy should be defined. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managementGroupName": {
          "description": "The name of the Management Group where this policy should be defined. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "The metadata for the policy definition. This\nis a JSON string representing additional metadata that should be stored\nwith the policy definition.\n",
          "type": "string"
        },
        "mode": {
          "description": "The policy mode that allows you to specify which resource\ntypes will be evaluated. Possible values are `All`, `Indexed`, `Microsoft.ContainerService.Data`, `Microsoft.CustomerLockbox.Data`, `Microsoft.DataCatalog.Data`, `Microsoft.KeyVault.Data`, `Microsoft.Kubernetes.Data`, `Microsoft.MachineLearningServices.Data`, `Microsoft.Network.Data` and `Microsoft.Synapse.Data`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the policy definition. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "parameters": {
          "description": "Parameters for the policy definition. This field\nis a JSON string that allows you to parameterize your policy definition.\n",
          "type": "string"
        },
        "policyRule": {
          "description": "The policy rule for the policy definition. This\nis a JSON string representing the rule that contains an if and\na then block.\n",
          "type": "string"
        },
        "policyType": {
          "description": "The policy type. Possible values are `BuiltIn`, `Custom` and `NotSpecified`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "displayName",
        "managementGroupId",
        "managementGroupName",
        "metadata",
        "mode",
        "name",
        "policyType"
      ],
      "requiredInputs": [
        "displayName",
        "mode",
        "policyType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Definition resources.\n",
        "properties": {
          "description": {
            "description": "The description of the policy definition.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the policy definition.\n",
            "type": "string"
          },
          "managementGroupId": {
            "deprecationMessage": "Deprecated in favour of `management_group_name`",
            "description": "The name of the Management Group where this policy should be defined. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "managementGroupName": {
            "description": "The name of the Management Group where this policy should be defined. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metadata": {
            "description": "The metadata for the policy definition. This\nis a JSON string representing additional metadata that should be stored\nwith the policy definition.\n",
            "type": "string"
          },
          "mode": {
            "description": "The policy mode that allows you to specify which resource\ntypes will be evaluated. Possible values are `All`, `Indexed`, `Microsoft.ContainerService.Data`, `Microsoft.CustomerLockbox.Data`, `Microsoft.DataCatalog.Data`, `Microsoft.KeyVault.Data`, `Microsoft.Kubernetes.Data`, `Microsoft.MachineLearningServices.Data`, `Microsoft.Network.Data` and `Microsoft.Synapse.Data`.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the policy definition. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "parameters": {
            "description": "Parameters for the policy definition. This field\nis a JSON string that allows you to parameterize your policy definition.\n",
            "type": "string"
          },
          "policyRule": {
            "description": "The policy rule for the policy definition. This\nis a JSON string representing the rule that contains an if and\na then block.\n",
            "type": "string"
          },
          "policyType": {
            "description": "The policy type. Possible values are `BuiltIn`, `Custom` and `NotSpecified`. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:policy/policySetDefinition:PolicySetDefinition": {
      "description": "Manages a policy set definition.\n\n\u003e **NOTE:**  Policy set definitions (also known as policy initiatives) do not take effect until they are assigned to a scope using a Policy Set Assignment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.policy.PolicySetDefinition(\"example\", {\n    displayName: \"Test Policy Set\",\n    parameters: `    {\n        \"allowedLocations\": {\n            \"type\": \"Array\",\n            \"metadata\": {\n                \"description\": \"The list of allowed locations for resources.\",\n                \"displayName\": \"Allowed locations\",\n                \"strongType\": \"location\"\n            }\n        }\n    }\n`,\n    policyDefinitionReferences: [{\n        parameterValues: `    {\n      \"listOfAllowedLocations\": {\"value\": \"[parameters('allowedLocations')]\"}\n    }\n    `,\n        policyDefinitionId: \"/providers/Microsoft.Authorization/policyDefinitions/e765b5de-1225-4ba3-bd56-1ac6695af988\",\n    }],\n    policyType: \"Custom\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.policy.PolicySetDefinition(\"example\",\n    display_name=\"Test Policy Set\",\n    parameters=\"\"\"    {\n        \"allowedLocations\": {\n            \"type\": \"Array\",\n            \"metadata\": {\n                \"description\": \"The list of allowed locations for resources.\",\n                \"displayName\": \"Allowed locations\",\n                \"strongType\": \"location\"\n            }\n        }\n    }\n\n\"\"\",\n    policy_definition_references=[azure.policy.PolicySetDefinitionPolicyDefinitionReferenceArgs(\n        parameter_values=\"\"\"    {\n      \"listOfAllowedLocations\": {\"value\": \"[parameters('allowedLocations')]\"}\n    }\n    \n\"\"\",\n        policy_definition_id=\"/providers/Microsoft.Authorization/policyDefinitions/e765b5de-1225-4ba3-bd56-1ac6695af988\",\n    )],\n    policy_type=\"Custom\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Policy.PolicySetDefinition(\"example\", new Azure.Policy.PolicySetDefinitionArgs\n        {\n            DisplayName = \"Test Policy Set\",\n            Parameters = @\"    {\n        \"\"allowedLocations\"\": {\n            \"\"type\"\": \"\"Array\"\",\n            \"\"metadata\"\": {\n                \"\"description\"\": \"\"The list of allowed locations for resources.\"\",\n                \"\"displayName\"\": \"\"Allowed locations\"\",\n                \"\"strongType\"\": \"\"location\"\"\n            }\n        }\n    }\n\n\",\n            PolicyDefinitionReferences = \n            {\n                new Azure.Policy.Inputs.PolicySetDefinitionPolicyDefinitionReferenceArgs\n                {\n                    ParameterValues = @\"    {\n      \"\"listOfAllowedLocations\"\": {\"\"value\"\": \"\"[parameters('allowedLocations')]\"\"}\n    }\n    \n\",\n                    PolicyDefinitionId = \"/providers/Microsoft.Authorization/policyDefinitions/e765b5de-1225-4ba3-bd56-1ac6695af988\",\n                },\n            },\n            PolicyType = \"Custom\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/policy\"\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 := policy.NewPolicySetDefinition(ctx, \"example\", \u0026policy.PolicySetDefinitionArgs{\n\t\t\tDisplayName: pulumi.String(\"Test Policy Set\"),\n\t\t\tParameters:  pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v\", \"    {\\n\", \"        \\\"allowedLocations\\\": {\\n\", \"            \\\"type\\\": \\\"Array\\\",\\n\", \"            \\\"metadata\\\": {\\n\", \"                \\\"description\\\": \\\"The list of allowed locations for resources.\\\",\\n\", \"                \\\"displayName\\\": \\\"Allowed locations\\\",\\n\", \"                \\\"strongType\\\": \\\"location\\\"\\n\", \"            }\\n\", \"        }\\n\", \"    }\\n\", \"\\n\")),\n\t\t\tPolicyDefinitionReferences: policy.PolicySetDefinitionPolicyDefinitionReferenceArray{\n\t\t\t\t\u0026policy.PolicySetDefinitionPolicyDefinitionReferenceArgs{\n\t\t\t\t\tParameterValues:    pulumi.String(fmt.Sprintf(\"%v%v%v%v\", \"    {\\n\", \"      \\\"listOfAllowedLocations\\\": {\\\"value\\\": \\\"[parameters('allowedLocations')]\\\"}\\n\", \"    }\\n\", \"    \\n\")),\n\t\t\t\t\tPolicyDefinitionId: pulumi.String(\"/providers/Microsoft.Authorization/policyDefinitions/e765b5de-1225-4ba3-bd56-1ac6695af988\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyType: pulumi.String(\"Custom\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPolicy Set Definitions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:policy/policySetDefinition:PolicySetDefinition example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/policySetDefinitions/testPolicySet\n```\n\n or\n\n```sh\n $ pulumi import azure:policy/policySetDefinition:PolicySetDefinition example /providers/Microsoft.Management/managementGroups/my-mgmt-group-id/providers/Microsoft.Authorization/policySetDefinitions/testPolicySet\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "The description of the policy set definition.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the policy set definition.\n",
          "type": "string"
        },
        "managementGroupId": {
          "deprecationMessage": "Deprecated in favour of `management_group_name`",
          "description": "The name of the Management Group where this policy set definition should be defined. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managementGroupName": {
          "description": "The name of the Management Group where this policy set definition should be defined. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "The metadata for the policy set definition. This is a json object representing additional metadata that should be stored with the policy definition.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the policy set definition. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "parameters": {
          "description": "Parameters for the policy set definition. This field is a json object that allows you to parameterize your policy definition.\n",
          "type": "string"
        },
        "policyDefinitionGroups": {
          "description": "One or more `policy_definition_group` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:policy/PolicySetDefinitionPolicyDefinitionGroup:PolicySetDefinitionPolicyDefinitionGroup"
          },
          "type": "array"
        },
        "policyDefinitionReferences": {
          "description": "One or more `policy_definition_reference` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:policy/PolicySetDefinitionPolicyDefinitionReference:PolicySetDefinitionPolicyDefinitionReference"
          },
          "type": "array"
        },
        "policyDefinitions": {
          "deprecationMessage": "Deprecated in favour of `policy_definition_reference`",
          "description": "The policy definitions for the policy set definition. This is a json object representing the bundled policy definitions.\n",
          "type": "string"
        },
        "policyType": {
          "description": "The policy set type. Possible values are `BuiltIn` or `Custom`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "description": {
          "description": "The description of the policy set definition.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The display name of the policy set definition.\n",
          "type": "string"
        },
        "managementGroupId": {
          "deprecationMessage": "Deprecated in favour of `management_group_name`",
          "description": "The name of the Management Group where this policy set definition should be defined. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managementGroupName": {
          "description": "The name of the Management Group where this policy set definition should be defined. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metadata": {
          "description": "The metadata for the policy set definition. This is a json object representing additional metadata that should be stored with the policy definition.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the policy set definition. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "parameters": {
          "description": "Parameters for the policy set definition. This field is a json object that allows you to parameterize your policy definition.\n",
          "type": "string"
        },
        "policyDefinitionGroups": {
          "description": "One or more `policy_definition_group` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:policy/PolicySetDefinitionPolicyDefinitionGroup:PolicySetDefinitionPolicyDefinitionGroup"
          },
          "type": "array"
        },
        "policyDefinitionReferences": {
          "description": "One or more `policy_definition_reference` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:policy/PolicySetDefinitionPolicyDefinitionReference:PolicySetDefinitionPolicyDefinitionReference"
          },
          "type": "array"
        },
        "policyDefinitions": {
          "deprecationMessage": "Deprecated in favour of `policy_definition_reference`",
          "description": "The policy definitions for the policy set definition. This is a json object representing the bundled policy definitions.\n",
          "type": "string"
        },
        "policyType": {
          "description": "The policy set type. Possible values are `BuiltIn` or `Custom`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "displayName",
        "managementGroupId",
        "managementGroupName",
        "metadata",
        "name",
        "policyDefinitionReferences",
        "policyDefinitions",
        "policyType"
      ],
      "requiredInputs": [
        "displayName",
        "policyType"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering PolicySetDefinition resources.\n",
        "properties": {
          "description": {
            "description": "The description of the policy set definition.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the policy set definition.\n",
            "type": "string"
          },
          "managementGroupId": {
            "deprecationMessage": "Deprecated in favour of `management_group_name`",
            "description": "The name of the Management Group where this policy set definition should be defined. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "managementGroupName": {
            "description": "The name of the Management Group where this policy set definition should be defined. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metadata": {
            "description": "The metadata for the policy set definition. This is a json object representing additional metadata that should be stored with the policy definition.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the policy set definition. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "parameters": {
            "description": "Parameters for the policy set definition. This field is a json object that allows you to parameterize your policy definition.\n",
            "type": "string"
          },
          "policyDefinitionGroups": {
            "description": "One or more `policy_definition_group` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:policy/PolicySetDefinitionPolicyDefinitionGroup:PolicySetDefinitionPolicyDefinitionGroup"
            },
            "type": "array"
          },
          "policyDefinitionReferences": {
            "description": "One or more `policy_definition_reference` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:policy/PolicySetDefinitionPolicyDefinitionReference:PolicySetDefinitionPolicyDefinitionReference"
            },
            "type": "array"
          },
          "policyDefinitions": {
            "deprecationMessage": "Deprecated in favour of `policy_definition_reference`",
            "description": "The policy definitions for the policy set definition. This is a json object representing the bundled policy definitions.\n",
            "type": "string"
          },
          "policyType": {
            "description": "The policy set type. Possible values are `BuiltIn` or `Custom`. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:policy/remediation:Remediation": {
      "description": "Manages an Azure Policy Remediation at the specified Scope.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleDefinition = new azure.policy.Definition(\"exampleDefinition\", {\n    policyType: \"Custom\",\n    mode: \"All\",\n    displayName: \"my-policy-definition\",\n    policyRule: `    {\n    \"if\": {\n      \"not\": {\n        \"field\": \"location\",\n        \"in\": \"[parameters('allowedLocations')]\"\n      }\n    },\n    \"then\": {\n      \"effect\": \"audit\"\n    }\n  }\n`,\n    parameters: `    {\n    \"allowedLocations\": {\n      \"type\": \"Array\",\n      \"metadata\": {\n        \"description\": \"The list of allowed locations for resources.\",\n        \"displayName\": \"Allowed locations\",\n        \"strongType\": \"location\"\n      }\n    }\n  }\n`,\n});\nconst exampleAssignment = new azure.policy.Assignment(\"exampleAssignment\", {\n    scope: exampleResourceGroup.id,\n    policyDefinitionId: exampleDefinition.id,\n    description: \"Policy Assignment created via an Acceptance Test\",\n    displayName: \"My Example Policy Assignment\",\n    parameters: `{\n  \"allowedLocations\": {\n    \"value\": [ \"West Europe\" ]\n  }\n}\n`,\n});\nconst exampleRemediation = new azure.policy.Remediation(\"exampleRemediation\", {\n    scope: exampleAssignment.scope,\n    policyAssignmentId: exampleAssignment.id,\n    locationFilters: [\"West Europe\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_definition = azure.policy.Definition(\"exampleDefinition\",\n    policy_type=\"Custom\",\n    mode=\"All\",\n    display_name=\"my-policy-definition\",\n    policy_rule=\"\"\"    {\n    \"if\": {\n      \"not\": {\n        \"field\": \"location\",\n        \"in\": \"[parameters('allowedLocations')]\"\n      }\n    },\n    \"then\": {\n      \"effect\": \"audit\"\n    }\n  }\n\"\"\",\n    parameters=\"\"\"    {\n    \"allowedLocations\": {\n      \"type\": \"Array\",\n      \"metadata\": {\n        \"description\": \"The list of allowed locations for resources.\",\n        \"displayName\": \"Allowed locations\",\n        \"strongType\": \"location\"\n      }\n    }\n  }\n\"\"\")\nexample_assignment = azure.policy.Assignment(\"exampleAssignment\",\n    scope=example_resource_group.id,\n    policy_definition_id=example_definition.id,\n    description=\"Policy Assignment created via an Acceptance Test\",\n    display_name=\"My Example Policy Assignment\",\n    parameters=\"\"\"{\n  \"allowedLocations\": {\n    \"value\": [ \"West Europe\" ]\n  }\n}\n\"\"\")\nexample_remediation = azure.policy.Remediation(\"exampleRemediation\",\n    scope=example_assignment.scope,\n    policy_assignment_id=example_assignment.id,\n    location_filters=[\"West Europe\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleDefinition = new Azure.Policy.Definition(\"exampleDefinition\", new Azure.Policy.DefinitionArgs\n        {\n            PolicyType = \"Custom\",\n            Mode = \"All\",\n            DisplayName = \"my-policy-definition\",\n            PolicyRule = @\"    {\n    \"\"if\"\": {\n      \"\"not\"\": {\n        \"\"field\"\": \"\"location\"\",\n        \"\"in\"\": \"\"[parameters('allowedLocations')]\"\"\n      }\n    },\n    \"\"then\"\": {\n      \"\"effect\"\": \"\"audit\"\"\n    }\n  }\n\",\n            Parameters = @\"    {\n    \"\"allowedLocations\"\": {\n      \"\"type\"\": \"\"Array\"\",\n      \"\"metadata\"\": {\n        \"\"description\"\": \"\"The list of allowed locations for resources.\"\",\n        \"\"displayName\"\": \"\"Allowed locations\"\",\n        \"\"strongType\"\": \"\"location\"\"\n      }\n    }\n  }\n\",\n        });\n        var exampleAssignment = new Azure.Policy.Assignment(\"exampleAssignment\", new Azure.Policy.AssignmentArgs\n        {\n            Scope = exampleResourceGroup.Id,\n            PolicyDefinitionId = exampleDefinition.Id,\n            Description = \"Policy Assignment created via an Acceptance Test\",\n            DisplayName = \"My Example Policy Assignment\",\n            Parameters = @\"{\n  \"\"allowedLocations\"\": {\n    \"\"value\"\": [ \"\"West Europe\"\" ]\n  }\n}\n\",\n        });\n        var exampleRemediation = new Azure.Policy.Remediation(\"exampleRemediation\", new Azure.Policy.RemediationArgs\n        {\n            Scope = exampleAssignment.Scope,\n            PolicyAssignmentId = exampleAssignment.Id,\n            LocationFilters = \n            {\n                \"West Europe\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/policy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDefinition, err := policy.NewDefinition(ctx, \"exampleDefinition\", \u0026policy.DefinitionArgs{\n\t\t\tPolicyType:  pulumi.String(\"Custom\"),\n\t\t\tMode:        pulumi.String(\"All\"),\n\t\t\tDisplayName: pulumi.String(\"my-policy-definition\"),\n\t\t\tPolicyRule:  pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v\", \"    {\\n\", \"    \\\"if\\\": {\\n\", \"      \\\"not\\\": {\\n\", \"        \\\"field\\\": \\\"location\\\",\\n\", \"        \\\"in\\\": \\\"[parameters('allowedLocations')]\\\"\\n\", \"      }\\n\", \"    },\\n\", \"    \\\"then\\\": {\\n\", \"      \\\"effect\\\": \\\"audit\\\"\\n\", \"    }\\n\", \"  }\\n\")),\n\t\t\tParameters:  pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v\", \"    {\\n\", \"    \\\"allowedLocations\\\": {\\n\", \"      \\\"type\\\": \\\"Array\\\",\\n\", \"      \\\"metadata\\\": {\\n\", \"        \\\"description\\\": \\\"The list of allowed locations for resources.\\\",\\n\", \"        \\\"displayName\\\": \\\"Allowed locations\\\",\\n\", \"        \\\"strongType\\\": \\\"location\\\"\\n\", \"      }\\n\", \"    }\\n\", \"  }\\n\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAssignment, err := policy.NewAssignment(ctx, \"exampleAssignment\", \u0026policy.AssignmentArgs{\n\t\t\tScope:              exampleResourceGroup.ID(),\n\t\t\tPolicyDefinitionId: exampleDefinition.ID(),\n\t\t\tDescription:        pulumi.String(\"Policy Assignment created via an Acceptance Test\"),\n\t\t\tDisplayName:        pulumi.String(\"My Example Policy Assignment\"),\n\t\t\tParameters:         pulumi.String(fmt.Sprintf(\"%v%v%v%v%v\", \"{\\n\", \"  \\\"allowedLocations\\\": {\\n\", \"    \\\"value\\\": [ \\\"West Europe\\\" ]\\n\", \"  }\\n\", \"}\\n\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = policy.NewRemediation(ctx, \"exampleRemediation\", \u0026policy.RemediationArgs{\n\t\t\tScope:              exampleAssignment.Scope,\n\t\t\tPolicyAssignmentId: exampleAssignment.ID(),\n\t\t\tLocationFilters: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"West Europe\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPolicy Remediations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:policy/remediation:Remediation example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.PolicyInsights/remediations/remediation1\n```\n\n or\n\n```sh\n $ pulumi import azure:policy/remediation:Remediation example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.PolicyInsights/remediations/remediation1\n```\n\n or\n\n```sh\n $ pulumi import azure:policy/remediation:Remediation example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Compute/virtualMachines/vm1/providers/Microsoft.PolicyInsights/remediations/remediation1\n```\n\n or\n\n```sh\n $ pulumi import azure:policy/remediation:Remediation example /providers/Microsoft.Management/managementGroups/my-mgmt-group-id/providers/Microsoft.PolicyInsights/remediations/remediation1\n```\n\n ",
      "inputProperties": {
        "locationFilters": {
          "description": "A list of the resource locations that will be remediated.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the Policy Remediation. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "policyAssignmentId": {
          "description": "The ID of the Policy Assignment that should be remediated.\n",
          "type": "string"
        },
        "policyDefinitionReferenceId": {
          "description": "The unique ID for the policy definition within the policy set definition that should be remediated. Required when the policy assignment being remediated assigns a policy set definition.\n",
          "type": "string"
        },
        "resourceDiscoveryMode": {
          "description": "The way that resources to remediate are discovered. Possible values are `ExistingNonCompliant`, `ReEvaluateCompliance`. Defaults to `ExistingNonCompliant`.\n",
          "type": "string"
        },
        "scope": {
          "description": "The Scope at which the Policy Remediation should be applied. Changing this forces a new resource to be created. A scope must be a Resource ID out of one of the following list:\n",
          "type": "string"
        }
      },
      "properties": {
        "locationFilters": {
          "description": "A list of the resource locations that will be remediated.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the Policy Remediation. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "policyAssignmentId": {
          "description": "The ID of the Policy Assignment that should be remediated.\n",
          "type": "string"
        },
        "policyDefinitionReferenceId": {
          "description": "The unique ID for the policy definition within the policy set definition that should be remediated. Required when the policy assignment being remediated assigns a policy set definition.\n",
          "type": "string"
        },
        "resourceDiscoveryMode": {
          "description": "The way that resources to remediate are discovered. Possible values are `ExistingNonCompliant`, `ReEvaluateCompliance`. Defaults to `ExistingNonCompliant`.\n",
          "type": "string"
        },
        "scope": {
          "description": "The Scope at which the Policy Remediation should be applied. Changing this forces a new resource to be created. A scope must be a Resource ID out of one of the following list:\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "policyAssignmentId",
        "scope"
      ],
      "requiredInputs": [
        "policyAssignmentId",
        "scope"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Remediation resources.\n",
        "properties": {
          "locationFilters": {
            "description": "A list of the resource locations that will be remediated.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the Policy Remediation. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "policyAssignmentId": {
            "description": "The ID of the Policy Assignment that should be remediated.\n",
            "type": "string"
          },
          "policyDefinitionReferenceId": {
            "description": "The unique ID for the policy definition within the policy set definition that should be remediated. Required when the policy assignment being remediated assigns a policy set definition.\n",
            "type": "string"
          },
          "resourceDiscoveryMode": {
            "description": "The way that resources to remediate are discovered. Possible values are `ExistingNonCompliant`, `ReEvaluateCompliance`. Defaults to `ExistingNonCompliant`.\n",
            "type": "string"
          },
          "scope": {
            "description": "The Scope at which the Policy Remediation should be applied. Changing this forces a new resource to be created. A scope must be a Resource ID out of one of the following list:\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:policy/virtualMachineConfigurationAssignment:VirtualMachineConfigurationAssignment": {
      "description": "Applies a Configuration Policy to a Virtual Machine.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"10.0.0.0/16\"],\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    ipConfigurations: [{\n        name: \"internal\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleWindowsVirtualMachine = new azure.compute.WindowsVirtualMachine(\"exampleWindowsVirtualMachine\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    size: \"Standard_F2\",\n    adminUsername: \"adminuser\",\n    adminPassword: `P@$$w0rd1234!`,\n    networkInterfaceIds: [exampleNetworkInterface.id],\n    identity: {\n        type: \"SystemAssigned\",\n    },\n    osDisk: {\n        caching: \"ReadWrite\",\n        storageAccountType: \"Standard_LRS\",\n    },\n    sourceImageReference: {\n        publisher: \"MicrosoftWindowsServer\",\n        offer: \"WindowsServer\",\n        sku: \"2019-Datacenter\",\n        version: \"latest\",\n    },\n});\nconst exampleExtension = new azure.compute.Extension(\"exampleExtension\", {\n    virtualMachineId: exampleWindowsVirtualMachine.id,\n    publisher: \"Microsoft.GuestConfiguration\",\n    type: \"ConfigurationforWindows\",\n    typeHandlerVersion: \"1.0\",\n    autoUpgradeMinorVersion: \"true\",\n});\nconst exampleVirtualMachineConfigurationAssignment = new azure.policy.VirtualMachineConfigurationAssignment(\"exampleVirtualMachineConfigurationAssignment\", {\n    location: exampleWindowsVirtualMachine.location,\n    virtualMachineId: exampleWindowsVirtualMachine.id,\n    configuration: {\n        name: \"AzureWindowsBaseline\",\n        version: \"1.*\",\n        parameters: [\n            {\n                name: \"Minimum Password Length;ExpectedValue\",\n                value: \"16\",\n            },\n            {\n                name: \"Minimum Password Age;ExpectedValue\",\n                value: \"0\",\n            },\n            {\n                name: \"Maximum Password Age;ExpectedValue\",\n                value: \"30,45\",\n            },\n            {\n                name: \"Enforce Password History;ExpectedValue\",\n                value: \"10\",\n            },\n            {\n                name: \"Password Must Meet Complexity Requirements;ExpectedValue\",\n                value: \"1\",\n            },\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    address_spaces=[\"10.0.0.0/16\"])\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"internal\",\n        subnet_id=example_subnet.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nexample_windows_virtual_machine = azure.compute.WindowsVirtualMachine(\"exampleWindowsVirtualMachine\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    size=\"Standard_F2\",\n    admin_username=\"adminuser\",\n    admin_password=\"P@$$w0rd1234!\",\n    network_interface_ids=[example_network_interface.id],\n    identity=azure.compute.WindowsVirtualMachineIdentityArgs(\n        type=\"SystemAssigned\",\n    ),\n    os_disk=azure.compute.WindowsVirtualMachineOsDiskArgs(\n        caching=\"ReadWrite\",\n        storage_account_type=\"Standard_LRS\",\n    ),\n    source_image_reference=azure.compute.WindowsVirtualMachineSourceImageReferenceArgs(\n        publisher=\"MicrosoftWindowsServer\",\n        offer=\"WindowsServer\",\n        sku=\"2019-Datacenter\",\n        version=\"latest\",\n    ))\nexample_extension = azure.compute.Extension(\"exampleExtension\",\n    virtual_machine_id=example_windows_virtual_machine.id,\n    publisher=\"Microsoft.GuestConfiguration\",\n    type=\"ConfigurationforWindows\",\n    type_handler_version=\"1.0\",\n    auto_upgrade_minor_version=True)\nexample_virtual_machine_configuration_assignment = azure.policy.VirtualMachineConfigurationAssignment(\"exampleVirtualMachineConfigurationAssignment\",\n    location=example_windows_virtual_machine.location,\n    virtual_machine_id=example_windows_virtual_machine.id,\n    configuration=azure.policy.VirtualMachineConfigurationAssignmentConfigurationArgs(\n        name=\"AzureWindowsBaseline\",\n        version=\"1.*\",\n        parameters=[\n            azure.policy.VirtualMachineConfigurationAssignmentConfigurationParameterArgs(\n                name=\"Minimum Password Length;ExpectedValue\",\n                value=\"16\",\n            ),\n            azure.policy.VirtualMachineConfigurationAssignmentConfigurationParameterArgs(\n                name=\"Minimum Password Age;ExpectedValue\",\n                value=\"0\",\n            ),\n            azure.policy.VirtualMachineConfigurationAssignmentConfigurationParameterArgs(\n                name=\"Maximum Password Age;ExpectedValue\",\n                value=\"30,45\",\n            ),\n            azure.policy.VirtualMachineConfigurationAssignmentConfigurationParameterArgs(\n                name=\"Enforce Password History;ExpectedValue\",\n                value=\"10\",\n            ),\n            azure.policy.VirtualMachineConfigurationAssignmentConfigurationParameterArgs(\n                name=\"Password Must Meet Complexity Requirements;ExpectedValue\",\n                value=\"1\",\n            ),\n        ],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"internal\",\n                    SubnetId = exampleSubnet.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var exampleWindowsVirtualMachine = new Azure.Compute.WindowsVirtualMachine(\"exampleWindowsVirtualMachine\", new Azure.Compute.WindowsVirtualMachineArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Size = \"Standard_F2\",\n            AdminUsername = \"adminuser\",\n            AdminPassword = \"P@$$w0rd1234!\",\n            NetworkInterfaceIds = \n            {\n                exampleNetworkInterface.Id,\n            },\n            Identity = new Azure.Compute.Inputs.WindowsVirtualMachineIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n            OsDisk = new Azure.Compute.Inputs.WindowsVirtualMachineOsDiskArgs\n            {\n                Caching = \"ReadWrite\",\n                StorageAccountType = \"Standard_LRS\",\n            },\n            SourceImageReference = new Azure.Compute.Inputs.WindowsVirtualMachineSourceImageReferenceArgs\n            {\n                Publisher = \"MicrosoftWindowsServer\",\n                Offer = \"WindowsServer\",\n                Sku = \"2019-Datacenter\",\n                Version = \"latest\",\n            },\n        });\n        var exampleExtension = new Azure.Compute.Extension(\"exampleExtension\", new Azure.Compute.ExtensionArgs\n        {\n            VirtualMachineId = exampleWindowsVirtualMachine.Id,\n            Publisher = \"Microsoft.GuestConfiguration\",\n            Type = \"ConfigurationforWindows\",\n            TypeHandlerVersion = \"1.0\",\n            AutoUpgradeMinorVersion = true,\n        });\n        var exampleVirtualMachineConfigurationAssignment = new Azure.Policy.VirtualMachineConfigurationAssignment(\"exampleVirtualMachineConfigurationAssignment\", new Azure.Policy.VirtualMachineConfigurationAssignmentArgs\n        {\n            Location = exampleWindowsVirtualMachine.Location,\n            VirtualMachineId = exampleWindowsVirtualMachine.Id,\n            Configuration = new Azure.Policy.Inputs.VirtualMachineConfigurationAssignmentConfigurationArgs\n            {\n                Name = \"AzureWindowsBaseline\",\n                Version = \"1.*\",\n                Parameters = \n                {\n                    new Azure.Policy.Inputs.VirtualMachineConfigurationAssignmentConfigurationParameterArgs\n                    {\n                        Name = \"Minimum Password Length;ExpectedValue\",\n                        Value = \"16\",\n                    },\n                    new Azure.Policy.Inputs.VirtualMachineConfigurationAssignmentConfigurationParameterArgs\n                    {\n                        Name = \"Minimum Password Age;ExpectedValue\",\n                        Value = \"0\",\n                    },\n                    new Azure.Policy.Inputs.VirtualMachineConfigurationAssignmentConfigurationParameterArgs\n                    {\n                        Name = \"Maximum Password Age;ExpectedValue\",\n                        Value = \"30,45\",\n                    },\n                    new Azure.Policy.Inputs.VirtualMachineConfigurationAssignmentConfigurationParameterArgs\n                    {\n                        Name = \"Enforce Password History;ExpectedValue\",\n                        Value = \"10\",\n                    },\n                    new Azure.Policy.Inputs.VirtualMachineConfigurationAssignmentConfigurationParameterArgs\n                    {\n                        Name = \"Password Must Meet Complexity Requirements;ExpectedValue\",\n                        Value = \"1\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/policy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkInterface, err := network.NewNetworkInterface(ctx, \"exampleNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"internal\"),\n\t\t\t\t\tSubnetId:                   exampleSubnet.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\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\texampleWindowsVirtualMachine, err := compute.NewWindowsVirtualMachine(ctx, \"exampleWindowsVirtualMachine\", \u0026compute.WindowsVirtualMachineArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSize:              pulumi.String(\"Standard_F2\"),\n\t\t\tAdminUsername:     pulumi.String(\"adminuser\"),\n\t\t\tAdminPassword:     pulumi.String(fmt.Sprintf(\"%v%v%v%v\", \"P@\", \"$\", \"$\", \"w0rd1234!\")),\n\t\t\tNetworkInterfaceIds: pulumi.StringArray{\n\t\t\t\texampleNetworkInterface.ID(),\n\t\t\t},\n\t\t\tIdentity: \u0026compute.WindowsVirtualMachineIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t\tOsDisk: \u0026compute.WindowsVirtualMachineOsDiskArgs{\n\t\t\t\tCaching:            pulumi.String(\"ReadWrite\"),\n\t\t\t\tStorageAccountType: pulumi.String(\"Standard_LRS\"),\n\t\t\t},\n\t\t\tSourceImageReference: \u0026compute.WindowsVirtualMachineSourceImageReferenceArgs{\n\t\t\t\tPublisher: pulumi.String(\"MicrosoftWindowsServer\"),\n\t\t\t\tOffer:     pulumi.String(\"WindowsServer\"),\n\t\t\t\tSku:       pulumi.String(\"2019-Datacenter\"),\n\t\t\t\tVersion:   pulumi.String(\"latest\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewExtension(ctx, \"exampleExtension\", \u0026compute.ExtensionArgs{\n\t\t\tVirtualMachineId:        exampleWindowsVirtualMachine.ID(),\n\t\t\tPublisher:               pulumi.String(\"Microsoft.GuestConfiguration\"),\n\t\t\tType:                    pulumi.String(\"ConfigurationforWindows\"),\n\t\t\tTypeHandlerVersion:      pulumi.String(\"1.0\"),\n\t\t\tAutoUpgradeMinorVersion: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = policy.NewVirtualMachineConfigurationAssignment(ctx, \"exampleVirtualMachineConfigurationAssignment\", \u0026policy.VirtualMachineConfigurationAssignmentArgs{\n\t\t\tLocation:         exampleWindowsVirtualMachine.Location,\n\t\t\tVirtualMachineId: exampleWindowsVirtualMachine.ID(),\n\t\t\tConfiguration: \u0026policy.VirtualMachineConfigurationAssignmentConfigurationArgs{\n\t\t\t\tName:    pulumi.String(\"AzureWindowsBaseline\"),\n\t\t\t\tVersion: pulumi.String(\"1.*\"),\n\t\t\t\tParameters: policy.VirtualMachineConfigurationAssignmentConfigurationParameterArray{\n\t\t\t\t\t\u0026policy.VirtualMachineConfigurationAssignmentConfigurationParameterArgs{\n\t\t\t\t\t\tName:  pulumi.String(\"Minimum Password Length;ExpectedValue\"),\n\t\t\t\t\t\tValue: pulumi.String(\"16\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026policy.VirtualMachineConfigurationAssignmentConfigurationParameterArgs{\n\t\t\t\t\t\tName:  pulumi.String(\"Minimum Password Age;ExpectedValue\"),\n\t\t\t\t\t\tValue: pulumi.String(\"0\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026policy.VirtualMachineConfigurationAssignmentConfigurationParameterArgs{\n\t\t\t\t\t\tName:  pulumi.String(\"Maximum Password Age;ExpectedValue\"),\n\t\t\t\t\t\tValue: pulumi.String(\"30,45\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026policy.VirtualMachineConfigurationAssignmentConfigurationParameterArgs{\n\t\t\t\t\t\tName:  pulumi.String(\"Enforce Password History;ExpectedValue\"),\n\t\t\t\t\t\tValue: pulumi.String(\"10\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026policy.VirtualMachineConfigurationAssignmentConfigurationParameterArgs{\n\t\t\t\t\t\tName:  pulumi.String(\"Password Must Meet Complexity Requirements;ExpectedValue\"),\n\t\t\t\t\t\tValue: pulumi.String(\"1\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPolicy Virtual Machine Configuration Assignments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:policy/virtualMachineConfigurationAssignment:VirtualMachineConfigurationAssignment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Compute/virtualMachines/vm1/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/assignment1\n```\n\n ",
      "inputProperties": {
        "configuration": {
          "$ref": "#/types/azure:policy/VirtualMachineConfigurationAssignmentConfiguration:VirtualMachineConfigurationAssignmentConfiguration",
          "description": "A `configuration` block as defined below.\n"
        },
        "location": {
          "description": "The Azure location where the Policy Virtual Machine Configuration Assignment should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Policy Virtual Machine Configuration Assignment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "The resource ID of the Policy Virtual Machine which this Guest Configuration Assignment should apply to. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "configuration": {
          "$ref": "#/types/azure:policy/VirtualMachineConfigurationAssignmentConfiguration:VirtualMachineConfigurationAssignmentConfiguration",
          "description": "A `configuration` block as defined below.\n"
        },
        "location": {
          "description": "The Azure location where the Policy Virtual Machine Configuration Assignment should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Policy Virtual Machine Configuration Assignment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "The resource ID of the Policy Virtual Machine which this Guest Configuration Assignment should apply to. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "configuration",
        "location",
        "name",
        "virtualMachineId"
      ],
      "requiredInputs": [
        "configuration",
        "virtualMachineId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualMachineConfigurationAssignment resources.\n",
        "properties": {
          "configuration": {
            "$ref": "#/types/azure:policy/VirtualMachineConfigurationAssignmentConfiguration:VirtualMachineConfigurationAssignmentConfiguration",
            "description": "A `configuration` block as defined below.\n"
          },
          "location": {
            "description": "The Azure location where the Policy Virtual Machine Configuration Assignment should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Policy Virtual Machine Configuration Assignment. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "virtualMachineId": {
            "description": "The resource ID of the Policy Virtual Machine which this Guest Configuration Assignment should apply to. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:postgresql/activeDirectoryAdministrator:ActiveDirectoryAdministrator": {
      "description": "Allows you to set a user or group as the AD administrator for an PostgreSQL server in Azure\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.postgresql.Server(\"exampleServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"9.6\",\n    administratorLogin: \"4dm1n157r470r\",\n    administratorLoginPassword: \"4-v3ry-53cr37-p455w0rd\",\n});\nconst exampleActiveDirectoryAdministrator = new azure.postgresql.ActiveDirectoryAdministrator(\"exampleActiveDirectoryAdministrator\", {\n    serverName: exampleServer.name,\n    resourceGroupName: exampleResourceGroup.name,\n    login: \"sqladmin\",\n    tenantId: current.then(current =\u003e current.tenantId),\n    objectId: current.then(current =\u003e current.objectId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.postgresql.Server(\"exampleServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"9.6\",\n    administrator_login=\"4dm1n157r470r\",\n    administrator_login_password=\"4-v3ry-53cr37-p455w0rd\")\nexample_active_directory_administrator = azure.postgresql.ActiveDirectoryAdministrator(\"exampleActiveDirectoryAdministrator\",\n    server_name=example_server.name,\n    resource_group_name=example_resource_group.name,\n    login=\"sqladmin\",\n    tenant_id=current.tenant_id,\n    object_id=current.object_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.PostgreSql.Server(\"exampleServer\", new Azure.PostgreSql.ServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"9.6\",\n            AdministratorLogin = \"4dm1n157r470r\",\n            AdministratorLoginPassword = \"4-v3ry-53cr37-p455w0rd\",\n        });\n        var exampleActiveDirectoryAdministrator = new Azure.PostgreSql.ActiveDirectoryAdministrator(\"exampleActiveDirectoryAdministrator\", new Azure.PostgreSql.ActiveDirectoryAdministratorArgs\n        {\n            ServerName = exampleServer.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Login = \"sqladmin\",\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            ObjectId = current.Apply(current =\u003e current.ObjectId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := postgresql.NewServer(ctx, \"exampleServer\", \u0026postgresql.ServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"9.6\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"4dm1n157r470r\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"4-v3ry-53cr37-p455w0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewActiveDirectoryAdministrator(ctx, \"exampleActiveDirectoryAdministrator\", \u0026postgresql.ActiveDirectoryAdministratorArgs{\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLogin:             pulumi.String(\"sqladmin\"),\n\t\t\tTenantId:          pulumi.String(current.TenantId),\n\t\t\tObjectId:          pulumi.String(current.ObjectId),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA PostgreSQL Active Directory Administrator can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:postgresql/activeDirectoryAdministrator:ActiveDirectoryAdministrator administrator /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforPostgreSQL/servers/myserver/administrators/activeDirectory\n```\n\n ",
      "inputProperties": {
        "login": {
          "description": "The login name of the principal to set as the server administrator\n",
          "type": "string"
        },
        "objectId": {
          "description": "The ID of the principal to set as the server administrator. For a managed identity this should be the Client ID of the identity.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group for the PostgreSQL server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the PostgreSQL Server on which to set the administrator. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The Azure Tenant ID\n",
          "type": "string"
        }
      },
      "properties": {
        "login": {
          "description": "The login name of the principal to set as the server administrator\n",
          "type": "string"
        },
        "objectId": {
          "description": "The ID of the principal to set as the server administrator. For a managed identity this should be the Client ID of the identity.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group for the PostgreSQL server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the PostgreSQL Server on which to set the administrator. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The Azure Tenant ID\n",
          "type": "string"
        }
      },
      "required": [
        "login",
        "objectId",
        "resourceGroupName",
        "serverName",
        "tenantId"
      ],
      "requiredInputs": [
        "login",
        "objectId",
        "resourceGroupName",
        "serverName",
        "tenantId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ActiveDirectoryAdministrator resources.\n",
        "properties": {
          "login": {
            "description": "The login name of the principal to set as the server administrator\n",
            "type": "string"
          },
          "objectId": {
            "description": "The ID of the principal to set as the server administrator. For a managed identity this should be the Client ID of the identity.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group for the PostgreSQL server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the PostgreSQL Server on which to set the administrator. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tenantId": {
            "description": "The Azure Tenant ID\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:postgresql/configuration:Configuration": {
      "description": "Sets a PostgreSQL Configuration value on a PostgreSQL Server.\n\n## Disclaimers\n\n\u003e **Note:** Since this resource is provisioned by default, the Azure Provider will not check for the presence of an existing resource prior to attempting to create it.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.postgresql.Server(\"exampleServer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"B_Gen5_2\",\n    storageMb: 5120,\n    backupRetentionDays: 7,\n    geoRedundantBackupEnabled: false,\n    autoGrowEnabled: true,\n    administratorLogin: \"psqladminun\",\n    administratorLoginPassword: \"H@Sh1CoR3!\",\n    version: \"9.5\",\n    sslEnforcementEnabled: true,\n});\nconst exampleConfiguration = new azure.postgresql.Configuration(\"exampleConfiguration\", {\n    name: \"backslash_quote\",\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    value: \"on\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.postgresql.Server(\"exampleServer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"B_Gen5_2\",\n    storage_mb=5120,\n    backup_retention_days=7,\n    geo_redundant_backup_enabled=False,\n    auto_grow_enabled=True,\n    administrator_login=\"psqladminun\",\n    administrator_login_password=\"H@Sh1CoR3!\",\n    version=\"9.5\",\n    ssl_enforcement_enabled=True)\nexample_configuration = azure.postgresql.Configuration(\"exampleConfiguration\",\n    name=\"backslash_quote\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    value=\"on\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.PostgreSql.Server(\"exampleServer\", new Azure.PostgreSql.ServerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"B_Gen5_2\",\n            StorageMb = 5120,\n            BackupRetentionDays = 7,\n            GeoRedundantBackupEnabled = false,\n            AutoGrowEnabled = true,\n            AdministratorLogin = \"psqladminun\",\n            AdministratorLoginPassword = \"H@Sh1CoR3!\",\n            Version = \"9.5\",\n            SslEnforcementEnabled = true,\n        });\n        var exampleConfiguration = new Azure.PostgreSql.Configuration(\"exampleConfiguration\", new Azure.PostgreSql.ConfigurationArgs\n        {\n            Name = \"backslash_quote\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            Value = \"on\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := postgresql.NewServer(ctx, \"exampleServer\", \u0026postgresql.ServerArgs{\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tSkuName:                    pulumi.String(\"B_Gen5_2\"),\n\t\t\tStorageMb:                  pulumi.Int(5120),\n\t\t\tBackupRetentionDays:        pulumi.Int(7),\n\t\t\tGeoRedundantBackupEnabled:  pulumi.Bool(false),\n\t\t\tAutoGrowEnabled:            pulumi.Bool(true),\n\t\t\tAdministratorLogin:         pulumi.String(\"psqladminun\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tVersion:                    pulumi.String(\"9.5\"),\n\t\t\tSslEnforcementEnabled:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewConfiguration(ctx, \"exampleConfiguration\", \u0026postgresql.ConfigurationArgs{\n\t\t\tName:              pulumi.String(\"backslash_quote\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tValue:             pulumi.String(\"on\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPostgreSQL Configurations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:postgresql/configuration:Configuration backslash_quote /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforPostgreSQL/servers/server1/configurations/backslash_quote\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "Specifies the name of the PostgreSQL Configuration, which needs [to be a valid PostgreSQL configuration name](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIER). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "Specifies the value of the PostgreSQL Configuration. See the PostgreSQL documentation for valid values.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the PostgreSQL Configuration, which needs [to be a valid PostgreSQL configuration name](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIER). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "value": {
          "description": "Specifies the value of the PostgreSQL Configuration. See the PostgreSQL documentation for valid values.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "serverName",
        "value"
      ],
      "requiredInputs": [
        "name",
        "resourceGroupName",
        "serverName",
        "value"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Configuration resources.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the PostgreSQL Configuration, which needs [to be a valid PostgreSQL configuration name](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIER). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "value": {
            "description": "Specifies the value of the PostgreSQL Configuration. See the PostgreSQL documentation for valid values.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:postgresql/database:Database": {
      "description": "Manages a PostgreSQL Database within a PostgreSQL Server\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.postgresql.Server(\"exampleServer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"B_Gen5_2\",\n    storageMb: 5120,\n    backupRetentionDays: 7,\n    geoRedundantBackupEnabled: false,\n    autoGrowEnabled: true,\n    administratorLogin: \"psqladminun\",\n    administratorLoginPassword: \"H@Sh1CoR3!\",\n    version: \"9.5\",\n    sslEnforcementEnabled: true,\n});\nconst exampleDatabase = new azure.postgresql.Database(\"exampleDatabase\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    charset: \"UTF8\",\n    collation: \"English_United States.1252\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.postgresql.Server(\"exampleServer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"B_Gen5_2\",\n    storage_mb=5120,\n    backup_retention_days=7,\n    geo_redundant_backup_enabled=False,\n    auto_grow_enabled=True,\n    administrator_login=\"psqladminun\",\n    administrator_login_password=\"H@Sh1CoR3!\",\n    version=\"9.5\",\n    ssl_enforcement_enabled=True)\nexample_database = azure.postgresql.Database(\"exampleDatabase\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    charset=\"UTF8\",\n    collation=\"English_United States.1252\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.PostgreSql.Server(\"exampleServer\", new Azure.PostgreSql.ServerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"B_Gen5_2\",\n            StorageMb = 5120,\n            BackupRetentionDays = 7,\n            GeoRedundantBackupEnabled = false,\n            AutoGrowEnabled = true,\n            AdministratorLogin = \"psqladminun\",\n            AdministratorLoginPassword = \"H@Sh1CoR3!\",\n            Version = \"9.5\",\n            SslEnforcementEnabled = true,\n        });\n        var exampleDatabase = new Azure.PostgreSql.Database(\"exampleDatabase\", new Azure.PostgreSql.DatabaseArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            Charset = \"UTF8\",\n            Collation = \"English_United States.1252\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := postgresql.NewServer(ctx, \"exampleServer\", \u0026postgresql.ServerArgs{\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tSkuName:                    pulumi.String(\"B_Gen5_2\"),\n\t\t\tStorageMb:                  pulumi.Int(5120),\n\t\t\tBackupRetentionDays:        pulumi.Int(7),\n\t\t\tGeoRedundantBackupEnabled:  pulumi.Bool(false),\n\t\t\tAutoGrowEnabled:            pulumi.Bool(true),\n\t\t\tAdministratorLogin:         pulumi.String(\"psqladminun\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tVersion:                    pulumi.String(\"9.5\"),\n\t\t\tSslEnforcementEnabled:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewDatabase(ctx, \"exampleDatabase\", \u0026postgresql.DatabaseArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tCharset:           pulumi.String(\"UTF8\"),\n\t\t\tCollation:         pulumi.String(\"English_United States.1252\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPostgreSQL Database's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:postgresql/database:Database database1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforPostgreSQL/servers/server1/databases/database1\n```\n\n ",
      "inputProperties": {
        "charset": {
          "description": "Specifies the Charset for the PostgreSQL Database, which needs [to be a valid PostgreSQL Charset](https://www.postgresql.org/docs/current/static/multibyte.html). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "collation": {
          "description": "Specifies the Collation for the PostgreSQL Database, which needs [to be a valid PostgreSQL Collation](https://www.postgresql.org/docs/current/static/collation.html). Note that Microsoft uses different [notation](https://msdn.microsoft.com/library/windows/desktop/dd373814.aspx) - en-US instead of en_US. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the PostgreSQL Database, which needs [to be a valid PostgreSQL identifier](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS). Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "charset": {
          "description": "Specifies the Charset for the PostgreSQL Database, which needs [to be a valid PostgreSQL Charset](https://www.postgresql.org/docs/current/static/multibyte.html). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "collation": {
          "description": "Specifies the Collation for the PostgreSQL Database, which needs [to be a valid PostgreSQL Collation](https://www.postgresql.org/docs/current/static/collation.html). Note that Microsoft uses different [notation](https://msdn.microsoft.com/library/windows/desktop/dd373814.aspx) - en-US instead of en_US. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the PostgreSQL Database, which needs [to be a valid PostgreSQL identifier](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS). Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "charset",
        "collation",
        "name",
        "resourceGroupName",
        "serverName"
      ],
      "requiredInputs": [
        "charset",
        "collation",
        "resourceGroupName",
        "serverName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Database resources.\n",
        "properties": {
          "charset": {
            "description": "Specifies the Charset for the PostgreSQL Database, which needs [to be a valid PostgreSQL Charset](https://www.postgresql.org/docs/current/static/multibyte.html). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "collation": {
            "description": "Specifies the Collation for the PostgreSQL Database, which needs [to be a valid PostgreSQL Collation](https://www.postgresql.org/docs/current/static/collation.html). Note that Microsoft uses different [notation](https://msdn.microsoft.com/library/windows/desktop/dd373814.aspx) - en-US instead of en_US. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the PostgreSQL Database, which needs [to be a valid PostgreSQL identifier](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS). Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:postgresql/firewallRule:FirewallRule": {
      "description": "Manages a Firewall Rule for a PostgreSQL Server\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Single IP Address)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.postgresql.Server(\"exampleServer\", {});\n// ...\nconst exampleFirewallRule = new azure.postgresql.FirewallRule(\"exampleFirewallRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    startIpAddress: \"40.112.8.12\",\n    endIpAddress: \"40.112.8.12\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.postgresql.Server(\"exampleServer\")\n# ...\nexample_firewall_rule = azure.postgresql.FirewallRule(\"exampleFirewallRule\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    start_ip_address=\"40.112.8.12\",\n    end_ip_address=\"40.112.8.12\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.PostgreSql.Server(\"exampleServer\", new Azure.PostgreSql.ServerArgs\n        {\n        });\n        // ...\n        var exampleFirewallRule = new Azure.PostgreSql.FirewallRule(\"exampleFirewallRule\", new Azure.PostgreSql.FirewallRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            StartIpAddress = \"40.112.8.12\",\n            EndIpAddress = \"40.112.8.12\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := postgresql.NewServer(ctx, \"exampleServer\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewFirewallRule(ctx, \"exampleFirewallRule\", \u0026postgresql.FirewallRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tStartIpAddress:    pulumi.String(\"40.112.8.12\"),\n\t\t\tEndIpAddress:      pulumi.String(\"40.112.8.12\"),\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\n{{% /example %}}\n{{% example %}}\n### IP Range)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.postgresql.Server(\"exampleServer\", {});\n// ...\nconst exampleFirewallRule = new azure.postgresql.FirewallRule(\"exampleFirewallRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    startIpAddress: \"40.112.0.0\",\n    endIpAddress: \"40.112.255.255\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.postgresql.Server(\"exampleServer\")\n# ...\nexample_firewall_rule = azure.postgresql.FirewallRule(\"exampleFirewallRule\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    start_ip_address=\"40.112.0.0\",\n    end_ip_address=\"40.112.255.255\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.PostgreSql.Server(\"exampleServer\", new Azure.PostgreSql.ServerArgs\n        {\n        });\n        // ...\n        var exampleFirewallRule = new Azure.PostgreSql.FirewallRule(\"exampleFirewallRule\", new Azure.PostgreSql.FirewallRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            StartIpAddress = \"40.112.0.0\",\n            EndIpAddress = \"40.112.255.255\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := postgresql.NewServer(ctx, \"exampleServer\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewFirewallRule(ctx, \"exampleFirewallRule\", \u0026postgresql.FirewallRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleServer.Name,\n\t\t\tStartIpAddress:    pulumi.String(\"40.112.0.0\"),\n\t\t\tEndIpAddress:      pulumi.String(\"40.112.255.255\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPostgreSQL Firewall Rule's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:postgresql/firewallRule:FirewallRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforPostgreSQL/servers/server1/firewallRules/rule1\n```\n\n ",
      "inputProperties": {
        "endIpAddress": {
          "description": "Specifies the End IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the PostgreSQL Firewall Rule. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "Specifies the Start IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "endIpAddress": {
          "description": "Specifies the End IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the PostgreSQL Firewall Rule. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "Specifies the Start IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "endIpAddress",
        "name",
        "resourceGroupName",
        "serverName",
        "startIpAddress"
      ],
      "requiredInputs": [
        "endIpAddress",
        "resourceGroupName",
        "serverName",
        "startIpAddress"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FirewallRule resources.\n",
        "properties": {
          "endIpAddress": {
            "description": "Specifies the End IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the PostgreSQL Firewall Rule. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "startIpAddress": {
            "description": "Specifies the Start IP Address associated with this Firewall Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:postgresql/flexibleServer:FlexibleServer": {
      "description": "Manages a PostgreSQL Flexible Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"10.0.0.0/16\"],\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n    serviceEndpoints: [\"Microsoft.Storage\"],\n    delegations: [{\n        name: \"fs\",\n        serviceDelegation: {\n            name: \"Microsoft.DBforPostgreSQL/flexibleServers\",\n            actions: [\"Microsoft.Network/virtualNetworks/subnets/join/action\"],\n        },\n    }],\n});\nconst exampleZone = new azure.privatedns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst exampleZoneVirtualNetworkLink = new azure.privatedns.ZoneVirtualNetworkLink(\"exampleZoneVirtualNetworkLink\", {\n    privateDnsZoneName: exampleZone.name,\n    virtualNetworkId: exampleVirtualNetwork.id,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleFlexibleServer = new azure.postgresql.FlexibleServer(\"exampleFlexibleServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12\",\n    delegatedSubnetId: exampleSubnet.id,\n    privateDnsZoneId: exampleZone.id,\n    administratorLogin: \"psqladminun\",\n    administratorPassword: \"H@Sh1CoR3!\",\n    storageMb: 32768,\n    skuName: \"GP_Standard_D4s_v3\",\n}, {\n    dependsOn: [exampleZoneVirtualNetworkLink],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    address_spaces=[\"10.0.0.0/16\"])\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"],\n    service_endpoints=[\"Microsoft.Storage\"],\n    delegations=[azure.network.SubnetDelegationArgs(\n        name=\"fs\",\n        service_delegation=azure.network.SubnetDelegationServiceDelegationArgs(\n            name=\"Microsoft.DBforPostgreSQL/flexibleServers\",\n            actions=[\"Microsoft.Network/virtualNetworks/subnets/join/action\"],\n        ),\n    )])\nexample_zone = azure.privatedns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_zone_virtual_network_link = azure.privatedns.ZoneVirtualNetworkLink(\"exampleZoneVirtualNetworkLink\",\n    private_dns_zone_name=example_zone.name,\n    virtual_network_id=example_virtual_network.id,\n    resource_group_name=example_resource_group.name)\nexample_flexible_server = azure.postgresql.FlexibleServer(\"exampleFlexibleServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12\",\n    delegated_subnet_id=example_subnet.id,\n    private_dns_zone_id=example_zone.id,\n    administrator_login=\"psqladminun\",\n    administrator_password=\"H@Sh1CoR3!\",\n    storage_mb=32768,\n    sku_name=\"GP_Standard_D4s_v3\",\n    opts=pulumi.ResourceOptions(depends_on=[example_zone_virtual_network_link]))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n            ServiceEndpoints = \n            {\n                \"Microsoft.Storage\",\n            },\n            Delegations = \n            {\n                new Azure.Network.Inputs.SubnetDelegationArgs\n                {\n                    Name = \"fs\",\n                    ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs\n                    {\n                        Name = \"Microsoft.DBforPostgreSQL/flexibleServers\",\n                        Actions = \n                        {\n                            \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n                        },\n                    },\n                },\n            },\n        });\n        var exampleZone = new Azure.PrivateDns.Zone(\"exampleZone\", new Azure.PrivateDns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleZoneVirtualNetworkLink = new Azure.PrivateDns.ZoneVirtualNetworkLink(\"exampleZoneVirtualNetworkLink\", new Azure.PrivateDns.ZoneVirtualNetworkLinkArgs\n        {\n            PrivateDnsZoneName = exampleZone.Name,\n            VirtualNetworkId = exampleVirtualNetwork.Id,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleFlexibleServer = new Azure.PostgreSql.FlexibleServer(\"exampleFlexibleServer\", new Azure.PostgreSql.FlexibleServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12\",\n            DelegatedSubnetId = exampleSubnet.Id,\n            PrivateDnsZoneId = exampleZone.Id,\n            AdministratorLogin = \"psqladminun\",\n            AdministratorPassword = \"H@Sh1CoR3!\",\n            StorageMb = 32768,\n            SkuName = \"GP_Standard_D4s_v3\",\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                exampleZoneVirtualNetworkLink,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/postgresql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatedns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t\tServiceEndpoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Microsoft.Storage\"),\n\t\t\t},\n\t\t\tDelegations: network.SubnetDelegationArray{\n\t\t\t\t\u0026network.SubnetDelegationArgs{\n\t\t\t\t\tName: pulumi.String(\"fs\"),\n\t\t\t\t\tServiceDelegation: \u0026network.SubnetDelegationServiceDelegationArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Microsoft.DBforPostgreSQL/flexibleServers\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/join/action\"),\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\texampleZone, err := privatedns.NewZone(ctx, \"exampleZone\", \u0026privatedns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZoneVirtualNetworkLink, err := privatedns.NewZoneVirtualNetworkLink(ctx, \"exampleZoneVirtualNetworkLink\", \u0026privatedns.ZoneVirtualNetworkLinkArgs{\n\t\t\tPrivateDnsZoneName: exampleZone.Name,\n\t\t\tVirtualNetworkId:   exampleVirtualNetwork.ID(),\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewFlexibleServer(ctx, \"exampleFlexibleServer\", \u0026postgresql.FlexibleServerArgs{\n\t\t\tResourceGroupName:     exampleResourceGroup.Name,\n\t\t\tLocation:              exampleResourceGroup.Location,\n\t\t\tVersion:               pulumi.String(\"12\"),\n\t\t\tDelegatedSubnetId:     exampleSubnet.ID(),\n\t\t\tPrivateDnsZoneId:      exampleZone.ID(),\n\t\t\tAdministratorLogin:    pulumi.String(\"psqladminun\"),\n\t\t\tAdministratorPassword: pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tStorageMb:             pulumi.Int(32768),\n\t\t\tSkuName:               pulumi.String(\"GP_Standard_D4s_v3\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleZoneVirtualNetworkLink,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPostgreSQL Flexible Servers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:postgresql/flexibleServer:FlexibleServer example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforPostgreSQL/flexibleServers/server1\n```\n\n ",
      "inputProperties": {
        "administratorLogin": {
          "description": "The Administrator Login for the PostgreSQL Flexible Server. Required when `create_mode` is `Default`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "administratorPassword": {
          "description": "The Password associated with the `administrator_login` for the PostgreSQL Flexible Server. Required when `create_mode` is `Default`.\n",
          "type": "string"
        },
        "backupRetentionDays": {
          "description": "The backup retention days for the PostgreSQL Flexible Server. Possible values are between `7` and `35` days.\n",
          "type": "integer"
        },
        "createMode": {
          "description": "The creation mode which can be used to restore or replicate existing servers. Possible values are `Default` and `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "delegatedSubnetId": {
          "description": "The ID of the virtual network subnet to create the PostgreSQL Flexible Server. The provided subnet should not have any other resource deployed in it and this subnet will be delegated to the PostgreSQL Flexible Server, if not already delegated. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "highAvailability": {
          "$ref": "#/types/azure:postgresql/FlexibleServerHighAvailability:FlexibleServerHighAvailability",
          "description": "A `high_availability` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "maintenanceWindow": {
          "$ref": "#/types/azure:postgresql/FlexibleServerMaintenanceWindow:FlexibleServerMaintenanceWindow",
          "description": "A `maintenance_window` block as defined below.\n"
        },
        "name": {
          "description": "The name which should be used for this PostgreSQL Flexible Server. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "pointInTimeRestoreTimeInUtc": {
          "description": "The point in time to restore from `creation_source_server_id` when `create_mode` is `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "privateDnsZoneId": {
          "description": "The ID of the private dns zone to create the PostgreSQL Flexible Server. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The SKU Name for the PostgreSQL Flexible Server. The name of the SKU, follows the `tier` + `name` pattern (e.g. `B_Standard_B1ms`, `GP_Standard_D2s_v3`, `MO_Standard_E4s_v3`).\n",
          "type": "string"
        },
        "sourceServerId": {
          "description": "The resource ID of the source PostgreSQL Flexible Server to be restored. Required when `create_mode` is `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "storageMb": {
          "description": "The max storage allowed for the PostgreSQL Flexible Server. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4194304`, `8388608`, `16777216`, and `33554432`.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the PostgreSQL Flexible Server.\n",
          "type": "object"
        },
        "version": {
          "description": "The version of PostgreSQL Flexible Server to use. Possible values are `11`,`12` and `13`. Required when `create_mode` is `Default`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "zone": {
          "description": "The availability zone of the PostgreSQL Flexible Server. Possible values are `1`, `2` and `3`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "administratorLogin": {
          "description": "The Administrator Login for the PostgreSQL Flexible Server. Required when `create_mode` is `Default`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "administratorPassword": {
          "description": "The Password associated with the `administrator_login` for the PostgreSQL Flexible Server. Required when `create_mode` is `Default`.\n",
          "type": "string"
        },
        "backupRetentionDays": {
          "description": "The backup retention days for the PostgreSQL Flexible Server. Possible values are between `7` and `35` days.\n",
          "type": "integer"
        },
        "cmkEnabled": {
          "deprecationMessage": "This attribute has been removed from the API and will be removed in version 3.0 of the provider.",
          "description": "The status showing whether the data encryption is enabled with a customer-managed key.\n",
          "type": "string"
        },
        "createMode": {
          "description": "The creation mode which can be used to restore or replicate existing servers. Possible values are `Default` and `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "delegatedSubnetId": {
          "description": "The ID of the virtual network subnet to create the PostgreSQL Flexible Server. The provided subnet should not have any other resource deployed in it and this subnet will be delegated to the PostgreSQL Flexible Server, if not already delegated. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "fqdn": {
          "description": "The FQDN of the PostgreSQL Flexible Server.\n",
          "type": "string"
        },
        "highAvailability": {
          "$ref": "#/types/azure:postgresql/FlexibleServerHighAvailability:FlexibleServerHighAvailability",
          "description": "A `high_availability` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "maintenanceWindow": {
          "$ref": "#/types/azure:postgresql/FlexibleServerMaintenanceWindow:FlexibleServerMaintenanceWindow",
          "description": "A `maintenance_window` block as defined below.\n"
        },
        "name": {
          "description": "The name which should be used for this PostgreSQL Flexible Server. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "pointInTimeRestoreTimeInUtc": {
          "description": "The point in time to restore from `creation_source_server_id` when `create_mode` is `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "privateDnsZoneId": {
          "description": "The ID of the private dns zone to create the PostgreSQL Flexible Server. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Is public network access enabled?\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The SKU Name for the PostgreSQL Flexible Server. The name of the SKU, follows the `tier` + `name` pattern (e.g. `B_Standard_B1ms`, `GP_Standard_D2s_v3`, `MO_Standard_E4s_v3`).\n",
          "type": "string"
        },
        "sourceServerId": {
          "description": "The resource ID of the source PostgreSQL Flexible Server to be restored. Required when `create_mode` is `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "storageMb": {
          "description": "The max storage allowed for the PostgreSQL Flexible Server. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4194304`, `8388608`, `16777216`, and `33554432`.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the PostgreSQL Flexible Server.\n",
          "type": "object"
        },
        "version": {
          "description": "The version of PostgreSQL Flexible Server to use. Possible values are `11`,`12` and `13`. Required when `create_mode` is `Default`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        },
        "zone": {
          "description": "The availability zone of the PostgreSQL Flexible Server. Possible values are `1`, `2` and `3`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "administratorLogin",
        "backupRetentionDays",
        "cmkEnabled",
        "fqdn",
        "location",
        "name",
        "privateDnsZoneId",
        "publicNetworkAccessEnabled",
        "resourceGroupName",
        "skuName",
        "storageMb",
        "version",
        "zone"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FlexibleServer resources.\n",
        "properties": {
          "administratorLogin": {
            "description": "The Administrator Login for the PostgreSQL Flexible Server. Required when `create_mode` is `Default`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
            "type": "string"
          },
          "administratorPassword": {
            "description": "The Password associated with the `administrator_login` for the PostgreSQL Flexible Server. Required when `create_mode` is `Default`.\n",
            "type": "string"
          },
          "backupRetentionDays": {
            "description": "The backup retention days for the PostgreSQL Flexible Server. Possible values are between `7` and `35` days.\n",
            "type": "integer"
          },
          "cmkEnabled": {
            "deprecationMessage": "This attribute has been removed from the API and will be removed in version 3.0 of the provider.",
            "description": "The status showing whether the data encryption is enabled with a customer-managed key.\n",
            "type": "string"
          },
          "createMode": {
            "description": "The creation mode which can be used to restore or replicate existing servers. Possible values are `Default` and `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
            "type": "string"
          },
          "delegatedSubnetId": {
            "description": "The ID of the virtual network subnet to create the PostgreSQL Flexible Server. The provided subnet should not have any other resource deployed in it and this subnet will be delegated to the PostgreSQL Flexible Server, if not already delegated. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
            "type": "string"
          },
          "fqdn": {
            "description": "The FQDN of the PostgreSQL Flexible Server.\n",
            "type": "string"
          },
          "highAvailability": {
            "$ref": "#/types/azure:postgresql/FlexibleServerHighAvailability:FlexibleServerHighAvailability",
            "description": "A `high_availability` block as defined below.\n"
          },
          "location": {
            "description": "The Azure Region where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
            "type": "string"
          },
          "maintenanceWindow": {
            "$ref": "#/types/azure:postgresql/FlexibleServerMaintenanceWindow:FlexibleServerMaintenanceWindow",
            "description": "A `maintenance_window` block as defined below.\n"
          },
          "name": {
            "description": "The name which should be used for this PostgreSQL Flexible Server. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
            "type": "string"
          },
          "pointInTimeRestoreTimeInUtc": {
            "description": "The point in time to restore from `creation_source_server_id` when `create_mode` is `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
            "type": "string"
          },
          "privateDnsZoneId": {
            "description": "The ID of the private dns zone to create the PostgreSQL Flexible Server. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Is public network access enabled?\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the PostgreSQL Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The SKU Name for the PostgreSQL Flexible Server. The name of the SKU, follows the `tier` + `name` pattern (e.g. `B_Standard_B1ms`, `GP_Standard_D2s_v3`, `MO_Standard_E4s_v3`).\n",
            "type": "string"
          },
          "sourceServerId": {
            "description": "The resource ID of the source PostgreSQL Flexible Server to be restored. Required when `create_mode` is `PointInTimeRestore`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
            "type": "string"
          },
          "storageMb": {
            "description": "The max storage allowed for the PostgreSQL Flexible Server. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4194304`, `8388608`, `16777216`, and `33554432`.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the PostgreSQL Flexible Server.\n",
            "type": "object"
          },
          "version": {
            "description": "The version of PostgreSQL Flexible Server to use. Possible values are `11`,`12` and `13`. Required when `create_mode` is `Default`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
            "type": "string"
          },
          "zone": {
            "description": "The availability zone of the PostgreSQL Flexible Server. Possible values are `1`, `2` and `3`. Changing this forces a new PostgreSQL Flexible Server to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:postgresql/flexibleServerConfiguration:FlexibleServerConfiguration": {
      "description": "Sets a PostgreSQL Configuration value on a Azure PostgreSQL Flexible Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFlexibleServer = new azure.postgresql.FlexibleServer(\"exampleFlexibleServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12\",\n    administratorLogin: \"psqladminun\",\n    administratorPassword: \"H@Sh1CoR3!\",\n    storageMb: 32768,\n    skuName: \"GP_Standard_D4s_v3\",\n});\nconst exampleFlexibleServerConfiguration = new azure.postgresql.FlexibleServerConfiguration(\"exampleFlexibleServerConfiguration\", {\n    serverId: exampleFlexibleServer.id,\n    value: \"on\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_flexible_server = azure.postgresql.FlexibleServer(\"exampleFlexibleServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12\",\n    administrator_login=\"psqladminun\",\n    administrator_password=\"H@Sh1CoR3!\",\n    storage_mb=32768,\n    sku_name=\"GP_Standard_D4s_v3\")\nexample_flexible_server_configuration = azure.postgresql.FlexibleServerConfiguration(\"exampleFlexibleServerConfiguration\",\n    server_id=example_flexible_server.id,\n    value=\"on\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFlexibleServer = new Azure.PostgreSql.FlexibleServer(\"exampleFlexibleServer\", new Azure.PostgreSql.FlexibleServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12\",\n            AdministratorLogin = \"psqladminun\",\n            AdministratorPassword = \"H@Sh1CoR3!\",\n            StorageMb = 32768,\n            SkuName = \"GP_Standard_D4s_v3\",\n        });\n        var exampleFlexibleServerConfiguration = new Azure.PostgreSql.FlexibleServerConfiguration(\"exampleFlexibleServerConfiguration\", new Azure.PostgreSql.FlexibleServerConfigurationArgs\n        {\n            ServerId = exampleFlexibleServer.Id,\n            Value = \"on\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFlexibleServer, err := postgresql.NewFlexibleServer(ctx, \"exampleFlexibleServer\", \u0026postgresql.FlexibleServerArgs{\n\t\t\tResourceGroupName:     exampleResourceGroup.Name,\n\t\t\tLocation:              exampleResourceGroup.Location,\n\t\t\tVersion:               pulumi.String(\"12\"),\n\t\t\tAdministratorLogin:    pulumi.String(\"psqladminun\"),\n\t\t\tAdministratorPassword: pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tStorageMb:             pulumi.Int(32768),\n\t\t\tSkuName:               pulumi.String(\"GP_Standard_D4s_v3\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewFlexibleServerConfiguration(ctx, \"exampleFlexibleServerConfiguration\", \u0026postgresql.FlexibleServerConfigurationArgs{\n\t\t\tServerId: exampleFlexibleServer.ID(),\n\t\t\tValue:    pulumi.String(\"on\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPostgreSQL Configurations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:postgresql/flexibleServerConfiguration:FlexibleServerConfiguration example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforPostgreSQL/flexibleServers/server1/configurations/configuration1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "Specifies the name of the PostgreSQL Configuration, which needs [to be a valid PostgreSQL configuration name](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIER). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The ID of the PostgreSQL Flexible Server where we want to change configuration. Changing this forces a new PostgreSQL Flexible Server Configuration resource.\n",
          "type": "string"
        },
        "value": {
          "description": "Specifies the value of the PostgreSQL Configuration. See the PostgreSQL documentation for valid values.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the PostgreSQL Configuration, which needs [to be a valid PostgreSQL configuration name](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIER). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The ID of the PostgreSQL Flexible Server where we want to change configuration. Changing this forces a new PostgreSQL Flexible Server Configuration resource.\n",
          "type": "string"
        },
        "value": {
          "description": "Specifies the value of the PostgreSQL Configuration. See the PostgreSQL documentation for valid values.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "serverId",
        "value"
      ],
      "requiredInputs": [
        "serverId",
        "value"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FlexibleServerConfiguration resources.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the PostgreSQL Configuration, which needs [to be a valid PostgreSQL configuration name](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIER). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverId": {
            "description": "The ID of the PostgreSQL Flexible Server where we want to change configuration. Changing this forces a new PostgreSQL Flexible Server Configuration resource.\n",
            "type": "string"
          },
          "value": {
            "description": "Specifies the value of the PostgreSQL Configuration. See the PostgreSQL documentation for valid values.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:postgresql/flexibleServerDatabase:FlexibleServerDatabase": {
      "description": "Manages a PostgreSQL Flexible Server Database.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFlexibleServer = new azure.postgresql.FlexibleServer(\"exampleFlexibleServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12\",\n    administratorLogin: \"psqladminun\",\n    administratorPassword: \"H@Sh1CoR3!\",\n    storageMb: 32768,\n    skuName: \"GP_Standard_D4s_v3\",\n});\nconst exampleFlexibleServerDatabase = new azure.postgresql.FlexibleServerDatabase(\"exampleFlexibleServerDatabase\", {\n    serverId: exampleFlexibleServer.id,\n    collation: \"en_US.utf8\",\n    charset: \"utf8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_flexible_server = azure.postgresql.FlexibleServer(\"exampleFlexibleServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12\",\n    administrator_login=\"psqladminun\",\n    administrator_password=\"H@Sh1CoR3!\",\n    storage_mb=32768,\n    sku_name=\"GP_Standard_D4s_v3\")\nexample_flexible_server_database = azure.postgresql.FlexibleServerDatabase(\"exampleFlexibleServerDatabase\",\n    server_id=example_flexible_server.id,\n    collation=\"en_US.utf8\",\n    charset=\"utf8\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFlexibleServer = new Azure.PostgreSql.FlexibleServer(\"exampleFlexibleServer\", new Azure.PostgreSql.FlexibleServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12\",\n            AdministratorLogin = \"psqladminun\",\n            AdministratorPassword = \"H@Sh1CoR3!\",\n            StorageMb = 32768,\n            SkuName = \"GP_Standard_D4s_v3\",\n        });\n        var exampleFlexibleServerDatabase = new Azure.PostgreSql.FlexibleServerDatabase(\"exampleFlexibleServerDatabase\", new Azure.PostgreSql.FlexibleServerDatabaseArgs\n        {\n            ServerId = exampleFlexibleServer.Id,\n            Collation = \"en_US.utf8\",\n            Charset = \"utf8\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFlexibleServer, err := postgresql.NewFlexibleServer(ctx, \"exampleFlexibleServer\", \u0026postgresql.FlexibleServerArgs{\n\t\t\tResourceGroupName:     exampleResourceGroup.Name,\n\t\t\tLocation:              exampleResourceGroup.Location,\n\t\t\tVersion:               pulumi.String(\"12\"),\n\t\t\tAdministratorLogin:    pulumi.String(\"psqladminun\"),\n\t\t\tAdministratorPassword: pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tStorageMb:             pulumi.Int(32768),\n\t\t\tSkuName:               pulumi.String(\"GP_Standard_D4s_v3\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewFlexibleServerDatabase(ctx, \"exampleFlexibleServerDatabase\", \u0026postgresql.FlexibleServerDatabaseArgs{\n\t\t\tServerId:  exampleFlexibleServer.ID(),\n\t\t\tCollation: pulumi.String(\"en_US.utf8\"),\n\t\t\tCharset:   pulumi.String(\"utf8\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure PostgreSQL Flexible Server Database can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:postgresql/flexibleServerDatabase:FlexibleServerDatabase example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DBforPostgreSQL/flexibleServers/flexibleServer1/databases/database1\n```\n\n ",
      "inputProperties": {
        "charset": {
          "description": "Specifies the Charset for the Azure PostgreSQL Flexible Server Database, which needs [to be a valid PostgreSQL Charset](https://www.postgresql.org/docs/current/static/multibyte.html). Defaults to `UTF8`. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.\n",
          "type": "string"
        },
        "collation": {
          "description": "Specifies the Collation for the Azure PostgreSQL Flexible Server Database, which needs [to be a valid PostgreSQL Collation](https://www.postgresql.org/docs/current/static/collation.html). Defaults to `en_US.utf8`. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Azure PostgreSQL Flexible Server Database. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The ID of the Azure PostgreSQL Flexible Server from which to create this PostgreSQL Flexible Server Database. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "charset": {
          "description": "Specifies the Charset for the Azure PostgreSQL Flexible Server Database, which needs [to be a valid PostgreSQL Charset](https://www.postgresql.org/docs/current/static/multibyte.html). Defaults to `UTF8`. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.\n",
          "type": "string"
        },
        "collation": {
          "description": "Specifies the Collation for the Azure PostgreSQL Flexible Server Database, which needs [to be a valid PostgreSQL Collation](https://www.postgresql.org/docs/current/static/collation.html). Defaults to `en_US.utf8`. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Azure PostgreSQL Flexible Server Database. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The ID of the Azure PostgreSQL Flexible Server from which to create this PostgreSQL Flexible Server Database. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "serverId"
      ],
      "requiredInputs": [
        "serverId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FlexibleServerDatabase resources.\n",
        "properties": {
          "charset": {
            "description": "Specifies the Charset for the Azure PostgreSQL Flexible Server Database, which needs [to be a valid PostgreSQL Charset](https://www.postgresql.org/docs/current/static/multibyte.html). Defaults to `UTF8`. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.\n",
            "type": "string"
          },
          "collation": {
            "description": "Specifies the Collation for the Azure PostgreSQL Flexible Server Database, which needs [to be a valid PostgreSQL Collation](https://www.postgresql.org/docs/current/static/collation.html). Defaults to `en_US.utf8`. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Azure PostgreSQL Flexible Server Database. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.\n",
            "type": "string"
          },
          "serverId": {
            "description": "The ID of the Azure PostgreSQL Flexible Server from which to create this PostgreSQL Flexible Server Database. Changing this forces a new Azure PostgreSQL Flexible Server Database to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:postgresql/flexibleServerFirewallRule:FlexibleServerFirewallRule": {
      "description": "Manages a PostgreSQL Flexible Server Firewall Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleFlexibleServer = new azure.postgresql.FlexibleServer(\"exampleFlexibleServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12\",\n    administratorLogin: \"psqladminun\",\n    administratorPassword: \"H@Sh1CoR3!\",\n    storageMb: 32768,\n    skuName: \"GP_Standard_D4s_v3\",\n});\nconst exampleFlexibleServerFirewallRule = new azure.postgresql.FlexibleServerFirewallRule(\"exampleFlexibleServerFirewallRule\", {\n    serverId: exampleFlexibleServer.id,\n    startIpAddress: \"122.122.0.0\",\n    endIpAddress: \"122.122.0.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_flexible_server = azure.postgresql.FlexibleServer(\"exampleFlexibleServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12\",\n    administrator_login=\"psqladminun\",\n    administrator_password=\"H@Sh1CoR3!\",\n    storage_mb=32768,\n    sku_name=\"GP_Standard_D4s_v3\")\nexample_flexible_server_firewall_rule = azure.postgresql.FlexibleServerFirewallRule(\"exampleFlexibleServerFirewallRule\",\n    server_id=example_flexible_server.id,\n    start_ip_address=\"122.122.0.0\",\n    end_ip_address=\"122.122.0.0\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleFlexibleServer = new Azure.PostgreSql.FlexibleServer(\"exampleFlexibleServer\", new Azure.PostgreSql.FlexibleServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12\",\n            AdministratorLogin = \"psqladminun\",\n            AdministratorPassword = \"H@Sh1CoR3!\",\n            StorageMb = 32768,\n            SkuName = \"GP_Standard_D4s_v3\",\n        });\n        var exampleFlexibleServerFirewallRule = new Azure.PostgreSql.FlexibleServerFirewallRule(\"exampleFlexibleServerFirewallRule\", new Azure.PostgreSql.FlexibleServerFirewallRuleArgs\n        {\n            ServerId = exampleFlexibleServer.Id,\n            StartIpAddress = \"122.122.0.0\",\n            EndIpAddress = \"122.122.0.0\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFlexibleServer, err := postgresql.NewFlexibleServer(ctx, \"exampleFlexibleServer\", \u0026postgresql.FlexibleServerArgs{\n\t\t\tResourceGroupName:     exampleResourceGroup.Name,\n\t\t\tLocation:              exampleResourceGroup.Location,\n\t\t\tVersion:               pulumi.String(\"12\"),\n\t\t\tAdministratorLogin:    pulumi.String(\"psqladminun\"),\n\t\t\tAdministratorPassword: pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tStorageMb:             pulumi.Int(32768),\n\t\t\tSkuName:               pulumi.String(\"GP_Standard_D4s_v3\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewFlexibleServerFirewallRule(ctx, \"exampleFlexibleServerFirewallRule\", \u0026postgresql.FlexibleServerFirewallRuleArgs{\n\t\t\tServerId:       exampleFlexibleServer.ID(),\n\t\t\tStartIpAddress: pulumi.String(\"122.122.0.0\"),\n\t\t\tEndIpAddress:   pulumi.String(\"122.122.0.0\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPostgreSQL Flexible Server Firewall Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:postgresql/flexibleServerFirewallRule:FlexibleServerFirewallRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DBforPostgreSQL/flexibleServers/flexibleServer1/firewallRules/firewallRule1\n```\n\n ",
      "inputProperties": {
        "endIpAddress": {
          "description": "The End IP Address associated with this PostgreSQL Flexible Server Firewall Rule.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this PostgreSQL Flexible Server Firewall Rule. Changing this forces a new PostgreSQL Flexible Server Firewall Rule to be created.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The ID of the PostgreSQL Flexible Server from which to create this PostgreSQL Flexible Server Firewall Rule. Changing this forces a new PostgreSQL Flexible Server Firewall Rule to be created.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "The Start IP Address associated with this PostgreSQL Flexible Server Firewall Rule.\n",
          "type": "string"
        }
      },
      "properties": {
        "endIpAddress": {
          "description": "The End IP Address associated with this PostgreSQL Flexible Server Firewall Rule.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this PostgreSQL Flexible Server Firewall Rule. Changing this forces a new PostgreSQL Flexible Server Firewall Rule to be created.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The ID of the PostgreSQL Flexible Server from which to create this PostgreSQL Flexible Server Firewall Rule. Changing this forces a new PostgreSQL Flexible Server Firewall Rule to be created.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "The Start IP Address associated with this PostgreSQL Flexible Server Firewall Rule.\n",
          "type": "string"
        }
      },
      "required": [
        "endIpAddress",
        "name",
        "serverId",
        "startIpAddress"
      ],
      "requiredInputs": [
        "endIpAddress",
        "serverId",
        "startIpAddress"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FlexibleServerFirewallRule resources.\n",
        "properties": {
          "endIpAddress": {
            "description": "The End IP Address associated with this PostgreSQL Flexible Server Firewall Rule.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this PostgreSQL Flexible Server Firewall Rule. Changing this forces a new PostgreSQL Flexible Server Firewall Rule to be created.\n",
            "type": "string"
          },
          "serverId": {
            "description": "The ID of the PostgreSQL Flexible Server from which to create this PostgreSQL Flexible Server Firewall Rule. Changing this forces a new PostgreSQL Flexible Server Firewall Rule to be created.\n",
            "type": "string"
          },
          "startIpAddress": {
            "description": "The Start IP Address associated with this PostgreSQL Flexible Server Firewall Rule.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:postgresql/server:Server": {
      "description": "Manages a PostgreSQL Server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleServer = new azure.postgresql.Server(\"exampleServer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    administratorLogin: \"psqladminun\",\n    administratorLoginPassword: \"H@Sh1CoR3!\",\n    skuName: \"GP_Gen5_4\",\n    version: \"9.6\",\n    storageMb: 640000,\n    backupRetentionDays: 7,\n    geoRedundantBackupEnabled: true,\n    autoGrowEnabled: true,\n    publicNetworkAccessEnabled: false,\n    sslEnforcementEnabled: true,\n    sslMinimalTlsVersionEnforced: \"TLS1_2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_server = azure.postgresql.Server(\"exampleServer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    administrator_login=\"psqladminun\",\n    administrator_login_password=\"H@Sh1CoR3!\",\n    sku_name=\"GP_Gen5_4\",\n    version=\"9.6\",\n    storage_mb=640000,\n    backup_retention_days=7,\n    geo_redundant_backup_enabled=True,\n    auto_grow_enabled=True,\n    public_network_access_enabled=False,\n    ssl_enforcement_enabled=True,\n    ssl_minimal_tls_version_enforced=\"TLS1_2\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleServer = new Azure.PostgreSql.Server(\"exampleServer\", new Azure.PostgreSql.ServerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AdministratorLogin = \"psqladminun\",\n            AdministratorLoginPassword = \"H@Sh1CoR3!\",\n            SkuName = \"GP_Gen5_4\",\n            Version = \"9.6\",\n            StorageMb = 640000,\n            BackupRetentionDays = 7,\n            GeoRedundantBackupEnabled = true,\n            AutoGrowEnabled = true,\n            PublicNetworkAccessEnabled = false,\n            SslEnforcementEnabled = true,\n            SslMinimalTlsVersionEnforced = \"TLS1_2\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewServer(ctx, \"exampleServer\", \u0026postgresql.ServerArgs{\n\t\t\tLocation:                     exampleResourceGroup.Location,\n\t\t\tResourceGroupName:            exampleResourceGroup.Name,\n\t\t\tAdministratorLogin:           pulumi.String(\"psqladminun\"),\n\t\t\tAdministratorLoginPassword:   pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tSkuName:                      pulumi.String(\"GP_Gen5_4\"),\n\t\t\tVersion:                      pulumi.String(\"9.6\"),\n\t\t\tStorageMb:                    pulumi.Int(640000),\n\t\t\tBackupRetentionDays:          pulumi.Int(7),\n\t\t\tGeoRedundantBackupEnabled:    pulumi.Bool(true),\n\t\t\tAutoGrowEnabled:              pulumi.Bool(true),\n\t\t\tPublicNetworkAccessEnabled:   pulumi.Bool(false),\n\t\t\tSslEnforcementEnabled:        pulumi.Bool(true),\n\t\t\tSslMinimalTlsVersionEnforced: pulumi.String(\"TLS1_2\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPostgreSQL Server's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:postgresql/server:Server server1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DBforPostgreSQL/servers/server1\n```\n\n ",
      "inputProperties": {
        "administratorLogin": {
          "description": "The Administrator Login for the PostgreSQL Server. Required when `create_mode` is `Default`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "administratorLoginPassword": {
          "description": "The Password associated with the `administrator_login` for the PostgreSQL Server. Required when `create_mode` is `Default`.\n",
          "type": "string"
        },
        "autoGrowEnabled": {
          "description": "Enable/Disable auto-growing of the storage. Storage auto-grow prevents your server from running out of storage and becoming read-only. If storage auto grow is enabled, the storage automatically grows without impacting the workload. The default value if not explicitly specified is `true`.\n",
          "type": "boolean"
        },
        "backupRetentionDays": {
          "description": "Backup retention days for the server, supported values are between `7` and `35` days.\n",
          "type": "integer"
        },
        "createMode": {
          "description": "The creation mode. Can be used to restore or replicate existing servers. Possible values are `Default`, `Replica`, `GeoRestore`, and `PointInTimeRestore`. Defaults to `Default.`\n",
          "type": "string"
        },
        "creationSourceServerId": {
          "description": "For creation modes other then default the source server ID to use.\n",
          "type": "string"
        },
        "geoRedundantBackupEnabled": {
          "description": "Turn Geo-redundant server backups on/off. This allows you to choose between locally redundant or geo-redundant backup storage in the General Purpose and Memory Optimized tiers. When the backups are stored in geo-redundant backup storage, they are not only stored within the region in which your server is hosted, but are also replicated to a paired data center. This provides better protection and ability to restore your server in a different region in the event of a disaster. This is not support for the Basic tier. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:postgresql/ServerIdentity:ServerIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "infrastructureEncryptionEnabled": {
          "description": "Whether or not infrastructure is encrypted for this server. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the PostgreSQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "restorePointInTime": {
          "description": "When `create_mode` is `PointInTimeRestore` the point in time to restore from `creation_source_server_id`.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this PostgreSQL Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/postgresql/singleserver/servers/create#sku).\n",
          "type": "string"
        },
        "sslEnforcement": {
          "deprecationMessage": "this has been renamed to the boolean `ssl_enforcement_enabled` and will be removed in version 3.0 of the provider.",
          "type": "string"
        },
        "sslEnforcementEnabled": {
          "description": "Specifies if SSL should be enforced on connections. Possible values are `true` and `false`.\n",
          "type": "boolean"
        },
        "sslMinimalTlsVersionEnforced": {
          "description": "The mimimun TLS version to support on the sever. Possible values are `TLSEnforcementDisabled`, `TLS1_0`, `TLS1_1`, and `TLS1_2`. Defaults to `TLSEnforcementDisabled`.\n",
          "type": "string"
        },
        "storageMb": {
          "description": "Max storage allowed for a server. Possible values are between `5120` MB(5GB) and `1048576` MB(1TB) for the Basic SKU and between `5120` MB(5GB) and `16777216` MB(16TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/postgresql/servers/create#StorageProfile).\n",
          "type": "integer"
        },
        "storageProfile": {
          "$ref": "#/types/azure:postgresql/ServerStorageProfile:ServerStorageProfile",
          "deprecationMessage": "all storage_profile properties have been move to the top level. This block will be removed in version 3.0 of the provider."
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "threatDetectionPolicy": {
          "$ref": "#/types/azure:postgresql/ServerThreatDetectionPolicy:ServerThreatDetectionPolicy",
          "description": "Threat detection policy configuration, known in the API as Server Security Alerts Policy. The `threat_detection_policy` block supports fields documented below.\n"
        },
        "version": {
          "description": "Specifies the version of PostgreSQL to use. Valid values are `9.5`, `9.6`, `10`, `10.0`, and `11`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "administratorLogin": {
          "description": "The Administrator Login for the PostgreSQL Server. Required when `create_mode` is `Default`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "administratorLoginPassword": {
          "description": "The Password associated with the `administrator_login` for the PostgreSQL Server. Required when `create_mode` is `Default`.\n",
          "type": "string"
        },
        "autoGrowEnabled": {
          "description": "Enable/Disable auto-growing of the storage. Storage auto-grow prevents your server from running out of storage and becoming read-only. If storage auto grow is enabled, the storage automatically grows without impacting the workload. The default value if not explicitly specified is `true`.\n",
          "type": "boolean"
        },
        "backupRetentionDays": {
          "description": "Backup retention days for the server, supported values are between `7` and `35` days.\n",
          "type": "integer"
        },
        "createMode": {
          "description": "The creation mode. Can be used to restore or replicate existing servers. Possible values are `Default`, `Replica`, `GeoRestore`, and `PointInTimeRestore`. Defaults to `Default.`\n",
          "type": "string"
        },
        "creationSourceServerId": {
          "description": "For creation modes other then default the source server ID to use.\n",
          "type": "string"
        },
        "fqdn": {
          "description": "The FQDN of the PostgreSQL Server.\n",
          "type": "string"
        },
        "geoRedundantBackupEnabled": {
          "description": "Turn Geo-redundant server backups on/off. This allows you to choose between locally redundant or geo-redundant backup storage in the General Purpose and Memory Optimized tiers. When the backups are stored in geo-redundant backup storage, they are not only stored within the region in which your server is hosted, but are also replicated to a paired data center. This provides better protection and ability to restore your server in a different region in the event of a disaster. This is not support for the Basic tier. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:postgresql/ServerIdentity:ServerIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "infrastructureEncryptionEnabled": {
          "description": "Whether or not infrastructure is encrypted for this server. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the PostgreSQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "restorePointInTime": {
          "description": "When `create_mode` is `PointInTimeRestore` the point in time to restore from `creation_source_server_id`.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this PostgreSQL Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/postgresql/singleserver/servers/create#sku).\n",
          "type": "string"
        },
        "sslEnforcement": {
          "deprecationMessage": "this has been renamed to the boolean `ssl_enforcement_enabled` and will be removed in version 3.0 of the provider.",
          "type": "string"
        },
        "sslEnforcementEnabled": {
          "description": "Specifies if SSL should be enforced on connections. Possible values are `true` and `false`.\n",
          "type": "boolean"
        },
        "sslMinimalTlsVersionEnforced": {
          "description": "The mimimun TLS version to support on the sever. Possible values are `TLSEnforcementDisabled`, `TLS1_0`, `TLS1_1`, and `TLS1_2`. Defaults to `TLSEnforcementDisabled`.\n",
          "type": "string"
        },
        "storageMb": {
          "description": "Max storage allowed for a server. Possible values are between `5120` MB(5GB) and `1048576` MB(1TB) for the Basic SKU and between `5120` MB(5GB) and `16777216` MB(16TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/postgresql/servers/create#StorageProfile).\n",
          "type": "integer"
        },
        "storageProfile": {
          "$ref": "#/types/azure:postgresql/ServerStorageProfile:ServerStorageProfile",
          "deprecationMessage": "all storage_profile properties have been move to the top level. This block will be removed in version 3.0 of the provider."
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "threatDetectionPolicy": {
          "$ref": "#/types/azure:postgresql/ServerThreatDetectionPolicy:ServerThreatDetectionPolicy",
          "description": "Threat detection policy configuration, known in the API as Server Security Alerts Policy. The `threat_detection_policy` block supports fields documented below.\n"
        },
        "version": {
          "description": "Specifies the version of PostgreSQL to use. Valid values are `9.5`, `9.6`, `10`, `10.0`, and `11`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "administratorLogin",
        "autoGrowEnabled",
        "backupRetentionDays",
        "fqdn",
        "geoRedundantBackupEnabled",
        "location",
        "name",
        "resourceGroupName",
        "skuName",
        "sslEnforcement",
        "storageMb",
        "storageProfile",
        "version"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "skuName",
        "version"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Server resources.\n",
        "properties": {
          "administratorLogin": {
            "description": "The Administrator Login for the PostgreSQL Server. Required when `create_mode` is `Default`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "administratorLoginPassword": {
            "description": "The Password associated with the `administrator_login` for the PostgreSQL Server. Required when `create_mode` is `Default`.\n",
            "type": "string"
          },
          "autoGrowEnabled": {
            "description": "Enable/Disable auto-growing of the storage. Storage auto-grow prevents your server from running out of storage and becoming read-only. If storage auto grow is enabled, the storage automatically grows without impacting the workload. The default value if not explicitly specified is `true`.\n",
            "type": "boolean"
          },
          "backupRetentionDays": {
            "description": "Backup retention days for the server, supported values are between `7` and `35` days.\n",
            "type": "integer"
          },
          "createMode": {
            "description": "The creation mode. Can be used to restore or replicate existing servers. Possible values are `Default`, `Replica`, `GeoRestore`, and `PointInTimeRestore`. Defaults to `Default.`\n",
            "type": "string"
          },
          "creationSourceServerId": {
            "description": "For creation modes other then default the source server ID to use.\n",
            "type": "string"
          },
          "fqdn": {
            "description": "The FQDN of the PostgreSQL Server.\n",
            "type": "string"
          },
          "geoRedundantBackupEnabled": {
            "description": "Turn Geo-redundant server backups on/off. This allows you to choose between locally redundant or geo-redundant backup storage in the General Purpose and Memory Optimized tiers. When the backups are stored in geo-redundant backup storage, they are not only stored within the region in which your server is hosted, but are also replicated to a paired data center. This provides better protection and ability to restore your server in a different region in the event of a disaster. This is not support for the Basic tier. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:postgresql/ServerIdentity:ServerIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "infrastructureEncryptionEnabled": {
            "description": "Whether or not infrastructure is encrypted for this server. Defaults to `false`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether or not public network access is allowed for this server. Defaults to `true`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the PostgreSQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "restorePointInTime": {
            "description": "When `create_mode` is `PointInTimeRestore` the point in time to restore from `creation_source_server_id`.\n",
            "type": "string"
          },
          "skuName": {
            "description": "Specifies the SKU Name for this PostgreSQL Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/postgresql/singleserver/servers/create#sku).\n",
            "type": "string"
          },
          "sslEnforcement": {
            "deprecationMessage": "this has been renamed to the boolean `ssl_enforcement_enabled` and will be removed in version 3.0 of the provider.",
            "type": "string"
          },
          "sslEnforcementEnabled": {
            "description": "Specifies if SSL should be enforced on connections. Possible values are `true` and `false`.\n",
            "type": "boolean"
          },
          "sslMinimalTlsVersionEnforced": {
            "description": "The mimimun TLS version to support on the sever. Possible values are `TLSEnforcementDisabled`, `TLS1_0`, `TLS1_1`, and `TLS1_2`. Defaults to `TLSEnforcementDisabled`.\n",
            "type": "string"
          },
          "storageMb": {
            "description": "Max storage allowed for a server. Possible values are between `5120` MB(5GB) and `1048576` MB(1TB) for the Basic SKU and between `5120` MB(5GB) and `16777216` MB(16TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/postgresql/servers/create#StorageProfile).\n",
            "type": "integer"
          },
          "storageProfile": {
            "$ref": "#/types/azure:postgresql/ServerStorageProfile:ServerStorageProfile",
            "deprecationMessage": "all storage_profile properties have been move to the top level. This block will be removed in version 3.0 of the provider."
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "threatDetectionPolicy": {
            "$ref": "#/types/azure:postgresql/ServerThreatDetectionPolicy:ServerThreatDetectionPolicy",
            "description": "Threat detection policy configuration, known in the API as Server Security Alerts Policy. The `threat_detection_policy` block supports fields documented below.\n"
          },
          "version": {
            "description": "Specifies the version of PostgreSQL to use. Valid values are `9.5`, `9.6`, `10`, `10.0`, and `11`. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:postgresql/serverKey:ServerKey": {
      "description": "Manages a Customer Managed Key for a PostgreSQL Server.\n\n\n## Import\n\nA PostgreSQL Server Key can be imported using the `resource id` of the PostgreSQL Server Key, e.g.\n\n```sh\n $ pulumi import azure:postgresql/serverKey:ServerKey example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DBforPostgreSQL/servers/server1/keys/keyvaultname_key-name_keyversion\n```\n\n ",
      "inputProperties": {
        "keyVaultKeyId": {
          "description": "The URL to a Key Vault Key.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The ID of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "keyVaultKeyId": {
          "description": "The URL to a Key Vault Key.\n",
          "type": "string"
        },
        "serverId": {
          "description": "The ID of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "keyVaultKeyId",
        "serverId"
      ],
      "requiredInputs": [
        "keyVaultKeyId",
        "serverId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ServerKey resources.\n",
        "properties": {
          "keyVaultKeyId": {
            "description": "The URL to a Key Vault Key.\n",
            "type": "string"
          },
          "serverId": {
            "description": "The ID of the PostgreSQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:postgresql/virtualNetworkRule:VirtualNetworkRule": {
      "description": "Manages a PostgreSQL Virtual Network Rule.\n\n\u003e **NOTE:** PostgreSQL Virtual Network Rules [can only be used with SKU Tiers of `GeneralPurpose` or `MemoryOptimized`](https://docs.microsoft.com/en-us/azure/postgresql/concepts-data-access-and-security-vnet)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.7.29.0/29\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst internal = new azure.network.Subnet(\"internal\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.7.29.0/29\"],\n    serviceEndpoints: [\"Microsoft.Sql\"],\n});\nconst exampleServer = new azure.postgresql.Server(\"exampleServer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"GP_Gen5_2\",\n    storageProfile: {\n        storageMb: 5120,\n        backupRetentionDays: 7,\n        geoRedundantBackup: \"Disabled\",\n    },\n    administratorLogin: \"psqladminun\",\n    administratorLoginPassword: \"H@Sh1CoR3!\",\n    version: \"9.5\",\n    sslEnforcement: \"Enabled\",\n});\nconst exampleVirtualNetworkRule = new azure.postgresql.VirtualNetworkRule(\"exampleVirtualNetworkRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleServer.name,\n    subnetId: internal.id,\n    ignoreMissingVnetServiceEndpoint: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.7.29.0/29\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\ninternal = azure.network.Subnet(\"internal\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.7.29.0/29\"],\n    service_endpoints=[\"Microsoft.Sql\"])\nexample_server = azure.postgresql.Server(\"exampleServer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"GP_Gen5_2\",\n    storage_profile=azure.postgresql.ServerStorageProfileArgs(\n        storage_mb=5120,\n        backup_retention_days=7,\n        geo_redundant_backup=\"Disabled\",\n    ),\n    administrator_login=\"psqladminun\",\n    administrator_login_password=\"H@Sh1CoR3!\",\n    version=\"9.5\",\n    ssl_enforcement=\"Enabled\")\nexample_virtual_network_rule = azure.postgresql.VirtualNetworkRule(\"exampleVirtualNetworkRule\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_server.name,\n    subnet_id=internal.id,\n    ignore_missing_vnet_service_endpoint=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.7.29.0/29\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var @internal = new Azure.Network.Subnet(\"internal\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.7.29.0/29\",\n            },\n            ServiceEndpoints = \n            {\n                \"Microsoft.Sql\",\n            },\n        });\n        var exampleServer = new Azure.PostgreSql.Server(\"exampleServer\", new Azure.PostgreSql.ServerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"GP_Gen5_2\",\n            StorageProfile = new Azure.PostgreSql.Inputs.ServerStorageProfileArgs\n            {\n                StorageMb = 5120,\n                BackupRetentionDays = 7,\n                GeoRedundantBackup = \"Disabled\",\n            },\n            AdministratorLogin = \"psqladminun\",\n            AdministratorLoginPassword = \"H@Sh1CoR3!\",\n            Version = \"9.5\",\n            SslEnforcement = \"Enabled\",\n        });\n        var exampleVirtualNetworkRule = new Azure.PostgreSql.VirtualNetworkRule(\"exampleVirtualNetworkRule\", new Azure.PostgreSql.VirtualNetworkRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleServer.Name,\n            SubnetId = @internal.Id,\n            IgnoreMissingVnetServiceEndpoint = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/postgresql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.7.29.0/29\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinternal, err := network.NewSubnet(ctx, \"internal\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.7.29.0/29\"),\n\t\t\t},\n\t\t\tServiceEndpoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Microsoft.Sql\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := postgresql.NewServer(ctx, \"exampleServer\", \u0026postgresql.ServerArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"GP_Gen5_2\"),\n\t\t\tStorageProfile: \u0026postgresql.ServerStorageProfileArgs{\n\t\t\t\tStorageMb:           pulumi.Int(5120),\n\t\t\t\tBackupRetentionDays: pulumi.Int(7),\n\t\t\t\tGeoRedundantBackup:  pulumi.String(\"Disabled\"),\n\t\t\t},\n\t\t\tAdministratorLogin:         pulumi.String(\"psqladminun\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tVersion:                    pulumi.String(\"9.5\"),\n\t\t\tSslEnforcement:             pulumi.String(\"Enabled\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = postgresql.NewVirtualNetworkRule(ctx, \"exampleVirtualNetworkRule\", \u0026postgresql.VirtualNetworkRuleArgs{\n\t\t\tResourceGroupName:                exampleResourceGroup.Name,\n\t\t\tServerName:                       exampleServer.Name,\n\t\t\tSubnetId:                         internal.ID(),\n\t\t\tIgnoreMissingVnetServiceEndpoint: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPostgreSQL Virtual Network Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:postgresql/virtualNetworkRule:VirtualNetworkRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforPostgreSQL/servers/myserver/virtualNetworkRules/vnetrulename\n```\n\n ",
      "inputProperties": {
        "ignoreMissingVnetServiceEndpoint": {
          "description": "Should the Virtual Network Rule be created before the Subnet has the Virtual Network Service Endpoint enabled? Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the PostgreSQL virtual network rule. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the PostgreSQL server resides. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server to which this PostgreSQL virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet that the PostgreSQL server will be connected to.\n",
          "type": "string"
        }
      },
      "properties": {
        "ignoreMissingVnetServiceEndpoint": {
          "description": "Should the Virtual Network Rule be created before the Subnet has the Virtual Network Service Endpoint enabled? Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the PostgreSQL virtual network rule. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the PostgreSQL server resides. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server to which this PostgreSQL virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet that the PostgreSQL server will be connected to.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "serverName",
        "subnetId"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "serverName",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualNetworkRule resources.\n",
        "properties": {
          "ignoreMissingVnetServiceEndpoint": {
            "description": "Should the Virtual Network Rule be created before the Subnet has the Virtual Network Service Endpoint enabled? Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name of the PostgreSQL virtual network rule. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the PostgreSQL server resides. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the SQL Server to which this PostgreSQL virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the subnet that the PostgreSQL server will be connected to.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:powerbi/embedded:Embedded": {
      "description": "Manages a PowerBI Embedded.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleEmbedded = new azure.powerbi.Embedded(\"exampleEmbedded\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"A1\",\n    administrators: [\"azsdktest@microsoft.com\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_embedded = azure.powerbi.Embedded(\"exampleEmbedded\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"A1\",\n    administrators=[\"azsdktest@microsoft.com\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleEmbedded = new Azure.PowerBI.Embedded(\"exampleEmbedded\", new Azure.PowerBI.EmbeddedArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"A1\",\n            Administrators = \n            {\n                \"azsdktest@microsoft.com\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/powerbi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = powerbi.NewEmbedded(ctx, \"exampleEmbedded\", \u0026powerbi.EmbeddedArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"A1\"),\n\t\t\tAdministrators: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"azsdktest@microsoft.com\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPowerBI Embedded can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:powerbi/embedded:Embedded example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.PowerBIDedicated/capacities/capacity1\n```\n\n ",
      "inputProperties": {
        "administrators": {
          "description": "A set of administrator user identities, which manages the Power BI Embedded and must be a member user or a service principal in your AAD tenant.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mode": {
          "description": "Sets the PowerBI Embedded's mode. Possible values include: `Gen1`, `Gen2`. Defaults to `Gen1`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the PowerBI Embedded. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the PowerBI Embedded should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Sets the PowerBI Embedded's pricing level's SKU. Possible values include: `A1`, `A2`, `A3`, `A4`, `A5`, `A6`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "administrators": {
          "description": "A set of administrator user identities, which manages the Power BI Embedded and must be a member user or a service principal in your AAD tenant.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "mode": {
          "description": "Sets the PowerBI Embedded's mode. Possible values include: `Gen1`, `Gen2`. Defaults to `Gen1`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the PowerBI Embedded. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the PowerBI Embedded should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Sets the PowerBI Embedded's pricing level's SKU. Possible values include: `A1`, `A2`, `A3`, `A4`, `A5`, `A6`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "administrators",
        "location",
        "name",
        "resourceGroupName",
        "skuName"
      ],
      "requiredInputs": [
        "administrators",
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Embedded resources.\n",
        "properties": {
          "administrators": {
            "description": "A set of administrator user identities, which manages the Power BI Embedded and must be a member user or a service principal in your AAD tenant.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "mode": {
            "description": "Sets the PowerBI Embedded's mode. Possible values include: `Gen1`, `Gen2`. Defaults to `Gen1`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the PowerBI Embedded. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the PowerBI Embedded should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "Sets the PowerBI Embedded's pricing level's SKU. Possible values include: `A1`, `A2`, `A3`, `A4`, `A5`, `A6`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:privatedns/aAAARecord:AAAARecord": {
      "description": "Enables you to manage DNS AAAA Records within Azure Private DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst testResourceGroup = new azure.core.ResourceGroup(\"testResourceGroup\", {location: \"West Europe\"});\nconst testZone = new azure.privatedns.Zone(\"testZone\", {resourceGroupName: testResourceGroup.name});\nconst testAAAARecord = new azure.privatedns.AAAARecord(\"testAAAARecord\", {\n    zoneName: testZone.name,\n    resourceGroupName: testResourceGroup.name,\n    ttl: 300,\n    records: [\n        \"fd5d:70bc:930e:d008:0000:0000:0000:7334\",\n        \"fd5d:70bc:930e:d008::7335\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ntest_resource_group = azure.core.ResourceGroup(\"testResourceGroup\", location=\"West Europe\")\ntest_zone = azure.privatedns.Zone(\"testZone\", resource_group_name=test_resource_group.name)\ntest_aaaa_record = azure.privatedns.AAAARecord(\"testAAAARecord\",\n    zone_name=test_zone.name,\n    resource_group_name=test_resource_group.name,\n    ttl=300,\n    records=[\n        \"fd5d:70bc:930e:d008:0000:0000:0000:7334\",\n        \"fd5d:70bc:930e:d008::7335\",\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var testResourceGroup = new Azure.Core.ResourceGroup(\"testResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var testZone = new Azure.PrivateDns.Zone(\"testZone\", new Azure.PrivateDns.ZoneArgs\n        {\n            ResourceGroupName = testResourceGroup.Name,\n        });\n        var testAAAARecord = new Azure.PrivateDns.AAAARecord(\"testAAAARecord\", new Azure.PrivateDns.AAAARecordArgs\n        {\n            ZoneName = testZone.Name,\n            ResourceGroupName = testResourceGroup.Name,\n            Ttl = 300,\n            Records = \n            {\n                \"fd5d:70bc:930e:d008:0000:0000:0000:7334\",\n                \"fd5d:70bc:930e:d008::7335\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatedns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestResourceGroup, err := core.NewResourceGroup(ctx, \"testResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestZone, err := privatedns.NewZone(ctx, \"testZone\", \u0026privatedns.ZoneArgs{\n\t\t\tResourceGroupName: testResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatedns.NewAAAARecord(ctx, \"testAAAARecord\", \u0026privatedns.AAAARecordArgs{\n\t\t\tZoneName:          testZone.Name,\n\t\t\tResourceGroupName: testResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"fd5d:70bc:930e:d008:0000:0000:0000:7334\"),\n\t\t\t\tpulumi.String(\"fd5d:70bc:930e:d008::7335\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPrivate DNS AAAA Records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:privatedns/aAAARecord:AAAARecord test /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/privateDnsZones/zone1/AAAA/myrecord1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS A Record.\n",
          "type": "string"
        },
        "records": {
          "description": "A list of IPv6 Addresses.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS AAAA Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS A Record.\n",
          "type": "string"
        },
        "records": {
          "description": "A list of IPv6 Addresses.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AAAARecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS AAAA Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS A Record.\n",
            "type": "string"
          },
          "records": {
            "description": "A list of IPv6 Addresses.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "ttl": {
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:privatedns/aRecord:ARecord": {
      "description": "Enables you to manage DNS A Records within Azure Private DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.privatedns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst exampleARecord = new azure.privatedns.ARecord(\"exampleARecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    records: [\"10.0.180.17\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.privatedns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_a_record = azure.privatedns.ARecord(\"exampleARecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    records=[\"10.0.180.17\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.PrivateDns.Zone(\"exampleZone\", new Azure.PrivateDns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleARecord = new Azure.PrivateDns.ARecord(\"exampleARecord\", new Azure.PrivateDns.ARecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            Records = \n            {\n                \"10.0.180.17\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatedns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := privatedns.NewZone(ctx, \"exampleZone\", \u0026privatedns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatedns.NewARecord(ctx, \"exampleARecord\", \u0026privatedns.ARecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.180.17\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPrivate DNS A Records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:privatedns/aRecord:ARecord example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/privateDnsZones/zone1/A/myrecord1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS A Record.\n",
          "type": "string"
        },
        "records": {
          "description": "List of IPv4 Addresses.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the Private DNS Zone exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS A Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS A Record.\n",
          "type": "string"
        },
        "records": {
          "description": "List of IPv4 Addresses.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the Private DNS Zone exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ARecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS A Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS A Record.\n",
            "type": "string"
          },
          "records": {
            "description": "List of IPv4 Addresses.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the Private DNS Zone exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "ttl": {
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:privatedns/cnameRecord:CnameRecord": {
      "description": "Enables you to manage DNS CNAME Records within Azure Private DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.privatedns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst exampleCnameRecord = new azure.privatedns.CnameRecord(\"exampleCnameRecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    record: \"contoso.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.privatedns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_cname_record = azure.privatedns.CnameRecord(\"exampleCnameRecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    record=\"contoso.com\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.PrivateDns.Zone(\"exampleZone\", new Azure.PrivateDns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleCnameRecord = new Azure.PrivateDns.CnameRecord(\"exampleCnameRecord\", new Azure.PrivateDns.CnameRecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            Record = \"contoso.com\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatedns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := privatedns.NewZone(ctx, \"exampleZone\", \u0026privatedns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatedns.NewCnameRecord(ctx, \"exampleCnameRecord\", \u0026privatedns.CnameRecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecord:            pulumi.String(\"contoso.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPrivate DNS CName Records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:privatedns/cnameRecord:CnameRecord example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/privateDnsZones/zone1/CNAME/myrecord1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS CNAME Record.\n",
          "type": "string"
        },
        "record": {
          "description": "The target of the CNAME.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS CNAME Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS CNAME Record.\n",
          "type": "string"
        },
        "record": {
          "description": "The target of the CNAME.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "record",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "record",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CnameRecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS CNAME Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS CNAME Record.\n",
            "type": "string"
          },
          "record": {
            "description": "The target of the CNAME.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "ttl": {
            "description": "The Time To Live (TTL) of the DNS record in seconds.\n",
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:privatedns/linkService:LinkService": {
      "description": "Manages a Private Link Service.\n\n\u003e **NOTE** Private Link is now in [GA](https://docs.microsoft.com/en-gb/azure/private-link/).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    addressSpaces: [\"10.5.0.0/16\"],\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.5.1.0/24\"],\n    enforcePrivateLinkServiceNetworkPolicies: true,\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    sku: \"Standard\",\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n});\nconst exampleLoadBalancer = new azure.lb.LoadBalancer(\"exampleLoadBalancer\", {\n    sku: \"Standard\",\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    frontendIpConfigurations: [{\n        name: examplePublicIp.name,\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst exampleLinkService = new azure.privatedns.LinkService(\"exampleLinkService\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    autoApprovalSubscriptionIds: [\"00000000-0000-0000-0000-000000000000\"],\n    visibilitySubscriptionIds: [\"00000000-0000-0000-0000-000000000000\"],\n    loadBalancerFrontendIpConfigurationIds: [exampleLoadBalancer.frontendIpConfigurations.apply(frontendIpConfigurations =\u003e frontendIpConfigurations?[0]?.id)],\n    natIpConfigurations: [\n        {\n            name: \"primary\",\n            privateIpAddress: \"10.5.1.17\",\n            privateIpAddressVersion: \"IPv4\",\n            subnetId: exampleSubnet.id,\n            primary: true,\n        },\n        {\n            name: \"secondary\",\n            privateIpAddress: \"10.5.1.18\",\n            privateIpAddressVersion: \"IPv4\",\n            subnetId: exampleSubnet.id,\n            primary: false,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    address_spaces=[\"10.5.0.0/16\"])\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.5.1.0/24\"],\n    enforce_private_link_service_network_policies=True)\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    sku=\"Standard\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\")\nexample_load_balancer = azure.lb.LoadBalancer(\"exampleLoadBalancer\",\n    sku=\"Standard\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    frontend_ip_configurations=[azure.lb.LoadBalancerFrontendIpConfigurationArgs(\n        name=example_public_ip.name,\n        public_ip_address_id=example_public_ip.id,\n    )])\nexample_link_service = azure.privatedns.LinkService(\"exampleLinkService\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    auto_approval_subscription_ids=[\"00000000-0000-0000-0000-000000000000\"],\n    visibility_subscription_ids=[\"00000000-0000-0000-0000-000000000000\"],\n    load_balancer_frontend_ip_configuration_ids=[example_load_balancer.frontend_ip_configurations[0].id],\n    nat_ip_configurations=[\n        azure.privatedns.LinkServiceNatIpConfigurationArgs(\n            name=\"primary\",\n            private_ip_address=\"10.5.1.17\",\n            private_ip_address_version=\"IPv4\",\n            subnet_id=example_subnet.id,\n            primary=True,\n        ),\n        azure.privatedns.LinkServiceNatIpConfigurationArgs(\n            name=\"secondary\",\n            private_ip_address=\"10.5.1.18\",\n            private_ip_address_version=\"IPv4\",\n            subnet_id=example_subnet.id,\n            primary=False,\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AddressSpaces = \n            {\n                \"10.5.0.0/16\",\n            },\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.5.1.0/24\",\n            },\n            EnforcePrivateLinkServiceNetworkPolicies = true,\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Sku = \"Standard\",\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n        });\n        var exampleLoadBalancer = new Azure.Lb.LoadBalancer(\"exampleLoadBalancer\", new Azure.Lb.LoadBalancerArgs\n        {\n            Sku = \"Standard\",\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            FrontendIpConfigurations = \n            {\n                new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs\n                {\n                    Name = examplePublicIp.Name,\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var exampleLinkService = new Azure.PrivateDns.LinkService(\"exampleLinkService\", new Azure.PrivateDns.LinkServiceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AutoApprovalSubscriptionIds = \n            {\n                \"00000000-0000-0000-0000-000000000000\",\n            },\n            VisibilitySubscriptionIds = \n            {\n                \"00000000-0000-0000-0000-000000000000\",\n            },\n            LoadBalancerFrontendIpConfigurationIds = \n            {\n                exampleLoadBalancer.FrontendIpConfigurations.Apply(frontendIpConfigurations =\u003e frontendIpConfigurations?[0]?.Id),\n            },\n            NatIpConfigurations = \n            {\n                new Azure.PrivateDns.Inputs.LinkServiceNatIpConfigurationArgs\n                {\n                    Name = \"primary\",\n                    PrivateIpAddress = \"10.5.1.17\",\n                    PrivateIpAddressVersion = \"IPv4\",\n                    SubnetId = exampleSubnet.Id,\n                    Primary = true,\n                },\n                new Azure.PrivateDns.Inputs.LinkServiceNatIpConfigurationArgs\n                {\n                    Name = \"secondary\",\n                    PrivateIpAddress = \"10.5.1.18\",\n                    PrivateIpAddressVersion = \"IPv4\",\n                    SubnetId = exampleSubnet.Id,\n                    Primary = false,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatedns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.1.0/24\"),\n\t\t\t},\n\t\t\tEnforcePrivateLinkServiceNetworkPolicies: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLoadBalancer, err := lb.NewLoadBalancer(ctx, \"exampleLoadBalancer\", \u0026lb.LoadBalancerArgs{\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tFrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{\n\t\t\t\t\u0026lb.LoadBalancerFrontendIpConfigurationArgs{\n\t\t\t\t\tName:              examplePublicIp.Name,\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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 = privatedns.NewLinkService(ctx, \"exampleLinkService\", \u0026privatedns.LinkServiceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tAutoApprovalSubscriptionIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t},\n\t\t\tVisibilitySubscriptionIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t},\n\t\t\tLoadBalancerFrontendIpConfigurationIds: pulumi.StringArray{\n\t\t\t\texampleLoadBalancer.FrontendIpConfigurations.ApplyT(func(frontendIpConfigurations []lb.LoadBalancerFrontendIpConfiguration) (string, error) {\n\t\t\t\t\treturn frontendIpConfigurations[0].Id, nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t\tNatIpConfigurations: privatedns.LinkServiceNatIpConfigurationArray{\n\t\t\t\t\u0026privatedns.LinkServiceNatIpConfigurationArgs{\n\t\t\t\t\tName:                    pulumi.String(\"primary\"),\n\t\t\t\t\tPrivateIpAddress:        pulumi.String(\"10.5.1.17\"),\n\t\t\t\t\tPrivateIpAddressVersion: pulumi.String(\"IPv4\"),\n\t\t\t\t\tSubnetId:                exampleSubnet.ID(),\n\t\t\t\t\tPrimary:                 pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026privatedns.LinkServiceNatIpConfigurationArgs{\n\t\t\t\t\tName:                    pulumi.String(\"secondary\"),\n\t\t\t\t\tPrivateIpAddress:        pulumi.String(\"10.5.1.18\"),\n\t\t\t\t\tPrivateIpAddressVersion: pulumi.String(\"IPv4\"),\n\t\t\t\t\tSubnetId:                exampleSubnet.ID(),\n\t\t\t\t\tPrimary:                 pulumi.Bool(false),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPrivate Link Services can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:privatedns/linkService:LinkService example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/privateLinkServices/service1\n```\n\n ",
      "inputProperties": {
        "autoApprovalSubscriptionIds": {
          "description": "A list of Subscription UUID/GUID's that will be automatically be able to use this Private Link Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "enableProxyProtocol": {
          "description": "Should the Private Link Service support the Proxy Protocol? Defaults to `false`.\n",
          "type": "boolean"
        },
        "loadBalancerFrontendIpConfigurationIds": {
          "description": "A list of Frontend IP Configuration ID's from a Standard Load Balancer, where traffic from the Private Link Service should be routed. You can use Load Balancer Rules to direct this traffic to appropriate backend pools where your applications are running.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of this Private Link Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "natIpConfigurations": {
          "description": "One or more (up to 8) `nat_ip_configuration` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:privatedns/LinkServiceNatIpConfiguration:LinkServiceNatIpConfiguration"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Private Link Service should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
          "type": "object"
        },
        "visibilitySubscriptionIds": {
          "description": "A list of Subscription UUID/GUID's that will be able to see this Private Link Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "alias": {
          "description": "A globally unique DNS Name for your Private Link Service. You can use this alias to request a connection to your Private Link Service.\n",
          "type": "string"
        },
        "autoApprovalSubscriptionIds": {
          "description": "A list of Subscription UUID/GUID's that will be automatically be able to use this Private Link Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "enableProxyProtocol": {
          "description": "Should the Private Link Service support the Proxy Protocol? Defaults to `false`.\n",
          "type": "boolean"
        },
        "loadBalancerFrontendIpConfigurationIds": {
          "description": "A list of Frontend IP Configuration ID's from a Standard Load Balancer, where traffic from the Private Link Service should be routed. You can use Load Balancer Rules to direct this traffic to appropriate backend pools where your applications are running.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of this Private Link Service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "natIpConfigurations": {
          "description": "One or more (up to 8) `nat_ip_configuration` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:privatedns/LinkServiceNatIpConfiguration:LinkServiceNatIpConfiguration"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Private Link Service should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
          "type": "object"
        },
        "visibilitySubscriptionIds": {
          "description": "A list of Subscription UUID/GUID's that will be able to see this Private Link Service.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "alias",
        "loadBalancerFrontendIpConfigurationIds",
        "location",
        "name",
        "natIpConfigurations",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "loadBalancerFrontendIpConfigurationIds",
        "natIpConfigurations",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkService resources.\n",
        "properties": {
          "alias": {
            "description": "A globally unique DNS Name for your Private Link Service. You can use this alias to request a connection to your Private Link Service.\n",
            "type": "string"
          },
          "autoApprovalSubscriptionIds": {
            "description": "A list of Subscription UUID/GUID's that will be automatically be able to use this Private Link Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "enableProxyProtocol": {
            "description": "Should the Private Link Service support the Proxy Protocol? Defaults to `false`.\n",
            "type": "boolean"
          },
          "loadBalancerFrontendIpConfigurationIds": {
            "description": "A list of Frontend IP Configuration ID's from a Standard Load Balancer, where traffic from the Private Link Service should be routed. You can use Load Balancer Rules to direct this traffic to appropriate backend pools where your applications are running.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of this Private Link Service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "natIpConfigurations": {
            "description": "One or more (up to 8) `nat_ip_configuration` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:privatedns/LinkServiceNatIpConfiguration:LinkServiceNatIpConfiguration"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Private Link Service should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource. Changing this forces a new resource to be created.\n",
            "type": "object"
          },
          "visibilitySubscriptionIds": {
            "description": "A list of Subscription UUID/GUID's that will be able to see this Private Link Service.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:privatedns/mxRecord:MxRecord": {
      "description": "Enables you to manage DNS MX Records within Azure Private DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.privatedns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst exampleMxRecord = new azure.privatedns.MxRecord(\"exampleMxRecord\", {\n    resourceGroupName: exampleResourceGroup.name,\n    zoneName: exampleZone.name,\n    ttl: 300,\n    records: [\n        {\n            preference: 10,\n            exchange: \"mx1.contoso.com\",\n        },\n        {\n            preference: 20,\n            exchange: \"backupmx.contoso.com\",\n        },\n    ],\n    tags: {\n        Environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.privatedns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_mx_record = azure.privatedns.MxRecord(\"exampleMxRecord\",\n    resource_group_name=example_resource_group.name,\n    zone_name=example_zone.name,\n    ttl=300,\n    records=[\n        azure.privatedns.MxRecordRecordArgs(\n            preference=10,\n            exchange=\"mx1.contoso.com\",\n        ),\n        azure.privatedns.MxRecordRecordArgs(\n            preference=20,\n            exchange=\"backupmx.contoso.com\",\n        ),\n    ],\n    tags={\n        \"Environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.PrivateDns.Zone(\"exampleZone\", new Azure.PrivateDns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleMxRecord = new Azure.PrivateDns.MxRecord(\"exampleMxRecord\", new Azure.PrivateDns.MxRecordArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ZoneName = exampleZone.Name,\n            Ttl = 300,\n            Records = \n            {\n                new Azure.PrivateDns.Inputs.MxRecordRecordArgs\n                {\n                    Preference = 10,\n                    Exchange = \"mx1.contoso.com\",\n                },\n                new Azure.PrivateDns.Inputs.MxRecordRecordArgs\n                {\n                    Preference = 20,\n                    Exchange = \"backupmx.contoso.com\",\n                },\n            },\n            Tags = \n            {\n                { \"Environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatedns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := privatedns.NewZone(ctx, \"exampleZone\", \u0026privatedns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatedns.NewMxRecord(ctx, \"exampleMxRecord\", \u0026privatedns.MxRecordArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecords: privatedns.MxRecordRecordArray{\n\t\t\t\t\u0026privatedns.MxRecordRecordArgs{\n\t\t\t\t\tPreference: pulumi.Int(10),\n\t\t\t\t\tExchange:   pulumi.String(\"mx1.contoso.com\"),\n\t\t\t\t},\n\t\t\t\t\u0026privatedns.MxRecordRecordArgs{\n\t\t\t\t\tPreference: pulumi.Int(20),\n\t\t\t\t\tExchange:   pulumi.String(\"backupmx.contoso.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPrivate DNS MX Records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:privatedns/mxRecord:MxRecord example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/privateDnsZones/contoso.com/MX/@\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS MX Record. Changing this forces a new resource to be created. Default to '@' for root zone entry.\n",
          "type": "string"
        },
        "records": {
          "description": "One or more `record` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:privatedns/MxRecordRecord:MxRecordRecord"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS MX Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS MX Record. Changing this forces a new resource to be created. Default to '@' for root zone entry.\n",
          "type": "string"
        },
        "records": {
          "description": "One or more `record` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:privatedns/MxRecordRecord:MxRecordRecord"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MxRecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS MX Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS MX Record. Changing this forces a new resource to be created. Default to '@' for root zone entry.\n",
            "type": "string"
          },
          "records": {
            "description": "One or more `record` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:privatedns/MxRecordRecord:MxRecordRecord"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "ttl": {
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:privatedns/pTRRecord:PTRRecord": {
      "description": "Enables you to manage DNS PTR Records within Azure Private DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.privatedns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst examplePTRRecord = new azure.privatedns.PTRRecord(\"examplePTRRecord\", {\n    zoneName: exampleZone.name,\n    resourceGroupName: exampleResourceGroup.name,\n    ttl: 300,\n    records: [\"test.example.com\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.privatedns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_ptr_record = azure.privatedns.PTRRecord(\"examplePTRRecord\",\n    zone_name=example_zone.name,\n    resource_group_name=example_resource_group.name,\n    ttl=300,\n    records=[\"test.example.com\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.PrivateDns.Zone(\"exampleZone\", new Azure.PrivateDns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var examplePTRRecord = new Azure.PrivateDns.PTRRecord(\"examplePTRRecord\", new Azure.PrivateDns.PTRRecordArgs\n        {\n            ZoneName = exampleZone.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Ttl = 300,\n            Records = \n            {\n                \"test.example.com\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatedns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := privatedns.NewZone(ctx, \"exampleZone\", \u0026privatedns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatedns.NewPTRRecord(ctx, \"examplePTRRecord\", \u0026privatedns.PTRRecordArgs{\n\t\t\tZoneName:          exampleZone.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"test.example.com\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPrivate DNS PTR Records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:privatedns/pTRRecord:PTRRecord example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/privateDnsZones/2.0.192.in-addr.arpa/PTR/15\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS PTR Record. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "records": {
          "description": "List of Fully Qualified Domain Names.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS PTR Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS PTR Record. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "records": {
          "description": "List of Fully Qualified Domain Names.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering PTRRecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS PTR Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS PTR Record. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "records": {
            "description": "List of Fully Qualified Domain Names.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "ttl": {
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:privatedns/sRVRecord:SRVRecord": {
      "description": "Enables you to manage DNS SRV Records within Azure Private DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst testZone = new azure.privatedns.Zone(\"testZone\", {resourceGroupName: azurerm_resource_group.test.name});\nconst testSRVRecord = new azure.privatedns.SRVRecord(\"testSRVRecord\", {\n    resourceGroupName: azurerm_resource_group.test.name,\n    zoneName: testZone.name,\n    ttl: 300,\n    records: [\n        {\n            priority: 1,\n            weight: 5,\n            port: 8080,\n            target: \"target1.contoso.com\",\n        },\n        {\n            priority: 10,\n            weight: 10,\n            port: 8080,\n            target: \"target2.contoso.com\",\n        },\n    ],\n    tags: {\n        Environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\ntest_zone = azure.privatedns.Zone(\"testZone\", resource_group_name=azurerm_resource_group[\"test\"][\"name\"])\ntest_srv_record = azure.privatedns.SRVRecord(\"testSRVRecord\",\n    resource_group_name=azurerm_resource_group[\"test\"][\"name\"],\n    zone_name=test_zone.name,\n    ttl=300,\n    records=[\n        azure.privatedns.SRVRecordRecordArgs(\n            priority=1,\n            weight=5,\n            port=8080,\n            target=\"target1.contoso.com\",\n        ),\n        azure.privatedns.SRVRecordRecordArgs(\n            priority=10,\n            weight=10,\n            port=8080,\n            target=\"target2.contoso.com\",\n        ),\n    ],\n    tags={\n        \"Environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var testZone = new Azure.PrivateDns.Zone(\"testZone\", new Azure.PrivateDns.ZoneArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n        });\n        var testSRVRecord = new Azure.PrivateDns.SRVRecord(\"testSRVRecord\", new Azure.PrivateDns.SRVRecordArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n            ZoneName = testZone.Name,\n            Ttl = 300,\n            Records = \n            {\n                new Azure.PrivateDns.Inputs.SRVRecordRecordArgs\n                {\n                    Priority = 1,\n                    Weight = 5,\n                    Port = 8080,\n                    Target = \"target1.contoso.com\",\n                },\n                new Azure.PrivateDns.Inputs.SRVRecordRecordArgs\n                {\n                    Priority = 10,\n                    Weight = 10,\n                    Port = 8080,\n                    Target = \"target2.contoso.com\",\n                },\n            },\n            Tags = \n            {\n                { \"Environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatedns\"\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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestZone, err := privatedns.NewZone(ctx, \"testZone\", \u0026privatedns.ZoneArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_resource_group.Test.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatedns.NewSRVRecord(ctx, \"testSRVRecord\", \u0026privatedns.SRVRecordArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_resource_group.Test.Name),\n\t\t\tZoneName:          testZone.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecords: privatedns.SRVRecordRecordArray{\n\t\t\t\t\u0026privatedns.SRVRecordRecordArgs{\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tWeight:   pulumi.Int(5),\n\t\t\t\t\tPort:     pulumi.Int(8080),\n\t\t\t\t\tTarget:   pulumi.String(\"target1.contoso.com\"),\n\t\t\t\t},\n\t\t\t\t\u0026privatedns.SRVRecordRecordArgs{\n\t\t\t\t\tPriority: pulumi.Int(10),\n\t\t\t\t\tWeight:   pulumi.Int(10),\n\t\t\t\t\tPort:     pulumi.Int(8080),\n\t\t\t\t\tTarget:   pulumi.String(\"target2.contoso.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPrivate DNS SRV Records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:privatedns/sRVRecord:SRVRecord test /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/privateDnsZones/contoso.com/SRV/test\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS SRV Record. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "records": {
          "description": "One or more `record` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:privatedns/SRVRecordRecord:SRVRecordRecord"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS SRV Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS SRV Record. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "records": {
          "description": "One or more `record` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:privatedns/SRVRecordRecord:SRVRecordRecord"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SRVRecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS SRV Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS SRV Record. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "records": {
            "description": "One or more `record` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:privatedns/SRVRecordRecord:SRVRecordRecord"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "ttl": {
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:privatedns/txtRecord:TxtRecord": {
      "description": "Enables you to manage DNS TXT Records within Azure Private DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst testZone = new azure.privatedns.Zone(\"testZone\", {resourceGroupName: azurerm_resource_group.test.name});\nconst testTxtRecord = new azure.privatedns.TxtRecord(\"testTxtRecord\", {\n    resourceGroupName: azurerm_resource_group.test.name,\n    zoneName: testZone.name,\n    ttl: 300,\n    records: [{\n        value: \"v=spf1 mx ~all\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\ntest_zone = azure.privatedns.Zone(\"testZone\", resource_group_name=azurerm_resource_group[\"test\"][\"name\"])\ntest_txt_record = azure.privatedns.TxtRecord(\"testTxtRecord\",\n    resource_group_name=azurerm_resource_group[\"test\"][\"name\"],\n    zone_name=test_zone.name,\n    ttl=300,\n    records=[azure.privatedns.TxtRecordRecordArgs(\n        value=\"v=spf1 mx ~all\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var testZone = new Azure.PrivateDns.Zone(\"testZone\", new Azure.PrivateDns.ZoneArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n        });\n        var testTxtRecord = new Azure.PrivateDns.TxtRecord(\"testTxtRecord\", new Azure.PrivateDns.TxtRecordArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n            ZoneName = testZone.Name,\n            Ttl = 300,\n            Records = \n            {\n                new Azure.PrivateDns.Inputs.TxtRecordRecordArgs\n                {\n                    Value = \"v=spf1 mx ~all\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatedns\"\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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestZone, err := privatedns.NewZone(ctx, \"testZone\", \u0026privatedns.ZoneArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_resource_group.Test.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatedns.NewTxtRecord(ctx, \"testTxtRecord\", \u0026privatedns.TxtRecordArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_resource_group.Test.Name),\n\t\t\tZoneName:          testZone.Name,\n\t\t\tTtl:               pulumi.Int(300),\n\t\t\tRecords: privatedns.TxtRecordRecordArray{\n\t\t\t\t\u0026privatedns.TxtRecordRecordArgs{\n\t\t\t\t\tValue: pulumi.String(\"v=spf1 mx ~all\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPrivate DNS TXT Records can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:privatedns/txtRecord:TxtRecord test /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/privateDnsZones/contoso.com/TXT/test\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the DNS TXT Record. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "records": {
          "description": "One or more `record` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:privatedns/TxtRecordRecord:TxtRecordRecord"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fqdn": {
          "description": "The FQDN of the DNS TXT Record.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the DNS TXT Record. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "records": {
          "description": "One or more `record` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:privatedns/TxtRecordRecord:TxtRecordRecord"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "ttl": {
          "type": "integer"
        },
        "zoneName": {
          "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fqdn",
        "name",
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "requiredInputs": [
        "records",
        "resourceGroupName",
        "ttl",
        "zoneName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TxtRecord resources.\n",
        "properties": {
          "fqdn": {
            "description": "The FQDN of the DNS TXT Record.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the DNS TXT Record. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "records": {
            "description": "One or more `record` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:privatedns/TxtRecordRecord:TxtRecordRecord"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "ttl": {
            "type": "integer"
          },
          "zoneName": {
            "description": "Specifies the Private DNS Zone where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:privatedns/zone:Zone": {
      "description": "Enables you to manage Private DNS zones within Azure DNS. These zones are hosted on Azure's name servers.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.privatedns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.privatedns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.PrivateDns.Zone(\"exampleZone\", new Azure.PrivateDns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatedns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatedns.NewZone(ctx, \"exampleZone\", \u0026privatedns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPrivate DNS Zones can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:privatedns/zone:Zone zone1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/privateDnsZones/zone1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the Private DNS Zone. Must be a valid domain name.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "soaRecord": {
          "$ref": "#/types/azure:privatedns/ZoneSoaRecord:ZoneSoaRecord",
          "description": "An `soa_record` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Record Set.\n",
          "type": "object"
        }
      },
      "properties": {
        "maxNumberOfRecordSets": {
          "description": "The maximum number of record sets that can be created in this Private DNS zone.\n",
          "type": "integer"
        },
        "maxNumberOfVirtualNetworkLinks": {
          "description": "The maximum number of virtual networks that can be linked to this Private DNS zone.\n",
          "type": "integer"
        },
        "maxNumberOfVirtualNetworkLinksWithRegistration": {
          "description": "The maximum number of virtual networks that can be linked to this Private DNS zone with registration enabled.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name of the Private DNS Zone. Must be a valid domain name.\n",
          "type": "string"
        },
        "numberOfRecordSets": {
          "description": "The current number of record sets in this Private DNS zone.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "soaRecord": {
          "$ref": "#/types/azure:privatedns/ZoneSoaRecord:ZoneSoaRecord",
          "description": "An `soa_record` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Record Set.\n",
          "type": "object"
        }
      },
      "required": [
        "maxNumberOfRecordSets",
        "maxNumberOfVirtualNetworkLinks",
        "maxNumberOfVirtualNetworkLinksWithRegistration",
        "name",
        "numberOfRecordSets",
        "resourceGroupName",
        "soaRecord"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Zone resources.\n",
        "properties": {
          "maxNumberOfRecordSets": {
            "description": "The maximum number of record sets that can be created in this Private DNS zone.\n",
            "type": "integer"
          },
          "maxNumberOfVirtualNetworkLinks": {
            "description": "The maximum number of virtual networks that can be linked to this Private DNS zone.\n",
            "type": "integer"
          },
          "maxNumberOfVirtualNetworkLinksWithRegistration": {
            "description": "The maximum number of virtual networks that can be linked to this Private DNS zone with registration enabled.\n",
            "type": "integer"
          },
          "name": {
            "description": "The name of the Private DNS Zone. Must be a valid domain name.\n",
            "type": "string"
          },
          "numberOfRecordSets": {
            "description": "The current number of record sets in this Private DNS zone.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "soaRecord": {
            "$ref": "#/types/azure:privatedns/ZoneSoaRecord:ZoneSoaRecord",
            "description": "An `soa_record` block as defined below. Changing this forces a new resource to be created.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Record Set.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:privatedns/zoneVirtualNetworkLink:ZoneVirtualNetworkLink": {
      "description": "Enables you to manage Private DNS zone Virtual Network Links. These Links enable DNS resolution and registration inside Azure Virtual Networks using Azure Private DNS.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleZone = new azure.privatedns.Zone(\"exampleZone\", {resourceGroupName: exampleResourceGroup.name});\nconst exampleZoneVirtualNetworkLink = new azure.privatedns.ZoneVirtualNetworkLink(\"exampleZoneVirtualNetworkLink\", {\n    resourceGroupName: exampleResourceGroup.name,\n    privateDnsZoneName: exampleZone.name,\n    virtualNetworkId: azurerm_virtual_network.example.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_zone = azure.privatedns.Zone(\"exampleZone\", resource_group_name=example_resource_group.name)\nexample_zone_virtual_network_link = azure.privatedns.ZoneVirtualNetworkLink(\"exampleZoneVirtualNetworkLink\",\n    resource_group_name=example_resource_group.name,\n    private_dns_zone_name=example_zone.name,\n    virtual_network_id=azurerm_virtual_network[\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleZone = new Azure.PrivateDns.Zone(\"exampleZone\", new Azure.PrivateDns.ZoneArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleZoneVirtualNetworkLink = new Azure.PrivateDns.ZoneVirtualNetworkLink(\"exampleZoneVirtualNetworkLink\", new Azure.PrivateDns.ZoneVirtualNetworkLinkArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            PrivateDnsZoneName = exampleZone.Name,\n            VirtualNetworkId = azurerm_virtual_network.Example.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatedns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleZone, err := privatedns.NewZone(ctx, \"exampleZone\", \u0026privatedns.ZoneArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatedns.NewZoneVirtualNetworkLink(ctx, \"exampleZoneVirtualNetworkLink\", \u0026privatedns.ZoneVirtualNetworkLinkArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tPrivateDnsZoneName: exampleZone.Name,\n\t\t\tVirtualNetworkId:   pulumi.Any(azurerm_virtual_network.Example.Id),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPrivate DNS Zone Virtual Network Links can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:privatedns/zoneVirtualNetworkLink:ZoneVirtualNetworkLink link1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/privateDnsZones/zone1.com/virtualNetworkLinks/myVnetLink1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the Private DNS Zone Virtual Network Link. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privateDnsZoneName": {
          "description": "The name of the Private DNS zone (without a terminating dot). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "registrationEnabled": {
          "description": "Is auto-registration of virtual machine records in the virtual network in the Private DNS zone enabled? Defaults to `false`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the Private DNS Zone exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network that should be linked to the DNS Zone. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "The name of the Private DNS Zone Virtual Network Link. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privateDnsZoneName": {
          "description": "The name of the Private DNS zone (without a terminating dot). Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "registrationEnabled": {
          "description": "Is auto-registration of virtual machine records in the virtual network in the Private DNS zone enabled? Defaults to `false`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "Specifies the resource group where the Private DNS Zone exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network that should be linked to the DNS Zone. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "privateDnsZoneName",
        "resourceGroupName",
        "virtualNetworkId"
      ],
      "requiredInputs": [
        "privateDnsZoneName",
        "resourceGroupName",
        "virtualNetworkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ZoneVirtualNetworkLink resources.\n",
        "properties": {
          "name": {
            "description": "The name of the Private DNS Zone Virtual Network Link. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "privateDnsZoneName": {
            "description": "The name of the Private DNS zone (without a terminating dot). Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "registrationEnabled": {
            "description": "Is auto-registration of virtual machine records in the virtual network in the Private DNS zone enabled? Defaults to `false`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "Specifies the resource group where the Private DNS Zone exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "virtualNetworkId": {
            "description": "The ID of the Virtual Network that should be linked to the DNS Zone. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:privatelink/endpoint:Endpoint": {
      "description": "Manages a Private Endpoint.\n\nAzure Private Endpoint is a network interface that connects you privately and securely to a service powered by Azure Private Link. Private Endpoint uses a private IP address from your VNet, effectively bringing the service into your VNet. The service could be an Azure service such as Azure Storage, SQL, etc. or your own Private Link Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst service = new azure.network.Subnet(\"service\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.1.0/24\"],\n    enforcePrivateLinkServiceNetworkPolicies: true,\n});\nconst endpoint = new azure.network.Subnet(\"endpoint\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n    enforcePrivateLinkEndpointNetworkPolicies: true,\n});\nconst examplePublicIp = new azure.network.PublicIp(\"examplePublicIp\", {\n    sku: \"Standard\",\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    allocationMethod: \"Static\",\n});\nconst exampleLoadBalancer = new azure.lb.LoadBalancer(\"exampleLoadBalancer\", {\n    sku: \"Standard\",\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    frontendIpConfigurations: [{\n        name: examplePublicIp.name,\n        publicIpAddressId: examplePublicIp.id,\n    }],\n});\nconst exampleLinkService = new azure.privatedns.LinkService(\"exampleLinkService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    natIpConfigurations: [{\n        name: examplePublicIp.name,\n        primary: true,\n        subnetId: service.id,\n    }],\n    loadBalancerFrontendIpConfigurationIds: [exampleLoadBalancer.frontendIpConfigurations.apply(frontendIpConfigurations =\u003e frontendIpConfigurations?[0]?.id)],\n});\nconst exampleEndpoint = new azure.privatelink.Endpoint(\"exampleEndpoint\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    subnetId: endpoint.id,\n    privateServiceConnection: {\n        name: \"example-privateserviceconnection\",\n        privateConnectionResourceId: exampleLinkService.id,\n        isManualConnection: false,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nservice = azure.network.Subnet(\"service\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.1.0/24\"],\n    enforce_private_link_service_network_policies=True)\nendpoint = azure.network.Subnet(\"endpoint\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"],\n    enforce_private_link_endpoint_network_policies=True)\nexample_public_ip = azure.network.PublicIp(\"examplePublicIp\",\n    sku=\"Standard\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    allocation_method=\"Static\")\nexample_load_balancer = azure.lb.LoadBalancer(\"exampleLoadBalancer\",\n    sku=\"Standard\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    frontend_ip_configurations=[azure.lb.LoadBalancerFrontendIpConfigurationArgs(\n        name=example_public_ip.name,\n        public_ip_address_id=example_public_ip.id,\n    )])\nexample_link_service = azure.privatedns.LinkService(\"exampleLinkService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    nat_ip_configurations=[azure.privatedns.LinkServiceNatIpConfigurationArgs(\n        name=example_public_ip.name,\n        primary=True,\n        subnet_id=service.id,\n    )],\n    load_balancer_frontend_ip_configuration_ids=[example_load_balancer.frontend_ip_configurations[0].id])\nexample_endpoint = azure.privatelink.Endpoint(\"exampleEndpoint\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    subnet_id=endpoint.id,\n    private_service_connection=azure.privatelink.EndpointPrivateServiceConnectionArgs(\n        name=\"example-privateserviceconnection\",\n        private_connection_resource_id=example_link_service.id,\n        is_manual_connection=False,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var service = new Azure.Network.Subnet(\"service\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.1.0/24\",\n            },\n            EnforcePrivateLinkServiceNetworkPolicies = true,\n        });\n        var endpoint = new Azure.Network.Subnet(\"endpoint\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n            EnforcePrivateLinkEndpointNetworkPolicies = true,\n        });\n        var examplePublicIp = new Azure.Network.PublicIp(\"examplePublicIp\", new Azure.Network.PublicIpArgs\n        {\n            Sku = \"Standard\",\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AllocationMethod = \"Static\",\n        });\n        var exampleLoadBalancer = new Azure.Lb.LoadBalancer(\"exampleLoadBalancer\", new Azure.Lb.LoadBalancerArgs\n        {\n            Sku = \"Standard\",\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            FrontendIpConfigurations = \n            {\n                new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs\n                {\n                    Name = examplePublicIp.Name,\n                    PublicIpAddressId = examplePublicIp.Id,\n                },\n            },\n        });\n        var exampleLinkService = new Azure.PrivateDns.LinkService(\"exampleLinkService\", new Azure.PrivateDns.LinkServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            NatIpConfigurations = \n            {\n                new Azure.PrivateDns.Inputs.LinkServiceNatIpConfigurationArgs\n                {\n                    Name = examplePublicIp.Name,\n                    Primary = true,\n                    SubnetId = service.Id,\n                },\n            },\n            LoadBalancerFrontendIpConfigurationIds = \n            {\n                exampleLoadBalancer.FrontendIpConfigurations.Apply(frontendIpConfigurations =\u003e frontendIpConfigurations?[0]?.Id),\n            },\n        });\n        var exampleEndpoint = new Azure.PrivateLink.Endpoint(\"exampleEndpoint\", new Azure.PrivateLink.EndpointArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SubnetId = endpoint.Id,\n            PrivateServiceConnection = new Azure.PrivateLink.Inputs.EndpointPrivateServiceConnectionArgs\n            {\n                Name = \"example-privateserviceconnection\",\n                PrivateConnectionResourceId = exampleLinkService.Id,\n                IsManualConnection = false,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/lb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatedns\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatelink\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tservice, err := network.NewSubnet(ctx, \"service\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t\tEnforcePrivateLinkServiceNetworkPolicies: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tendpoint, err := network.NewSubnet(ctx, \"endpoint\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t\tEnforcePrivateLinkEndpointNetworkPolicies: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePublicIp, err := network.NewPublicIp(ctx, \"examplePublicIp\", \u0026network.PublicIpArgs{\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAllocationMethod:  pulumi.String(\"Static\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLoadBalancer, err := lb.NewLoadBalancer(ctx, \"exampleLoadBalancer\", \u0026lb.LoadBalancerArgs{\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tFrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{\n\t\t\t\t\u0026lb.LoadBalancerFrontendIpConfigurationArgs{\n\t\t\t\t\tName:              examplePublicIp.Name,\n\t\t\t\t\tPublicIpAddressId: examplePublicIp.ID(),\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\texampleLinkService, err := privatedns.NewLinkService(ctx, \"exampleLinkService\", \u0026privatedns.LinkServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNatIpConfigurations: privatedns.LinkServiceNatIpConfigurationArray{\n\t\t\t\t\u0026privatedns.LinkServiceNatIpConfigurationArgs{\n\t\t\t\t\tName:     examplePublicIp.Name,\n\t\t\t\t\tPrimary:  pulumi.Bool(true),\n\t\t\t\t\tSubnetId: service.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancerFrontendIpConfigurationIds: pulumi.StringArray{\n\t\t\t\texampleLoadBalancer.FrontendIpConfigurations.ApplyT(func(frontendIpConfigurations []lb.LoadBalancerFrontendIpConfiguration) (string, error) {\n\t\t\t\t\treturn frontendIpConfigurations[0].Id, nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatelink.NewEndpoint(ctx, \"exampleEndpoint\", \u0026privatelink.EndpointArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSubnetId:          endpoint.ID(),\n\t\t\tPrivateServiceConnection: \u0026privatelink.EndpointPrivateServiceConnectionArgs{\n\t\t\t\tName:                        pulumi.String(\"example-privateserviceconnection\"),\n\t\t\t\tPrivateConnectionResourceId: exampleLinkService.ID(),\n\t\t\t\tIsManualConnection:          pulumi.Bool(false),\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\nUsing a Private Link Service Alias with existing resources:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = azure.core.getResourceGroup({\n    name: \"example-resources\",\n});\nconst vnet = rg.then(rg =\u003e azure.network.getVirtualNetwork({\n    name: \"example-network\",\n    resourceGroupName: rg.name,\n}));\nconst subnet = Promise.all([vnet, rg]).then(([vnet, rg]) =\u003e azure.network.getSubnet({\n    name: \"default\",\n    virtualNetworkName: vnet.name,\n    resourceGroupName: rg.name,\n}));\nconst example = new azure.privatelink.Endpoint(\"example\", {\n    location: rg.then(rg =\u003e rg.location),\n    resourceGroupName: rg.then(rg =\u003e rg.name),\n    subnetId: subnet.then(subnet =\u003e subnet.id),\n    privateServiceConnection: {\n        name: \"example-privateserviceconnection\",\n        privateConnectionResourceAlias: \"example-privatelinkservice.d20286c8-4ea5-11eb-9584-8f53157226c6.centralus.azure.privatelinkservice\",\n        isManualConnection: true,\n        requestMessage: \"PL\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.get_resource_group(name=\"example-resources\")\nvnet = azure.network.get_virtual_network(name=\"example-network\",\n    resource_group_name=rg.name)\nsubnet = azure.network.get_subnet(name=\"default\",\n    virtual_network_name=vnet.name,\n    resource_group_name=rg.name)\nexample = azure.privatelink.Endpoint(\"example\",\n    location=rg.location,\n    resource_group_name=rg.name,\n    subnet_id=subnet.id,\n    private_service_connection=azure.privatelink.EndpointPrivateServiceConnectionArgs(\n        name=\"example-privateserviceconnection\",\n        private_connection_resource_alias=\"example-privatelinkservice.d20286c8-4ea5-11eb-9584-8f53157226c6.centralus.azure.privatelinkservice\",\n        is_manual_connection=True,\n        request_message=\"PL\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = Output.Create(Azure.Core.GetResourceGroup.InvokeAsync(new Azure.Core.GetResourceGroupArgs\n        {\n            Name = \"example-resources\",\n        }));\n        var vnet = rg.Apply(rg =\u003e Output.Create(Azure.Network.GetVirtualNetwork.InvokeAsync(new Azure.Network.GetVirtualNetworkArgs\n        {\n            Name = \"example-network\",\n            ResourceGroupName = rg.Name,\n        })));\n        var subnet = Output.Tuple(vnet, rg).Apply(values =\u003e\n        {\n            var vnet = values.Item1;\n            var rg = values.Item2;\n            return Output.Create(Azure.Network.GetSubnet.InvokeAsync(new Azure.Network.GetSubnetArgs\n            {\n                Name = \"default\",\n                VirtualNetworkName = vnet.Name,\n                ResourceGroupName = rg.Name,\n            }));\n        });\n        var example = new Azure.PrivateLink.Endpoint(\"example\", new Azure.PrivateLink.EndpointArgs\n        {\n            Location = rg.Apply(rg =\u003e rg.Location),\n            ResourceGroupName = rg.Apply(rg =\u003e rg.Name),\n            SubnetId = subnet.Apply(subnet =\u003e subnet.Id),\n            PrivateServiceConnection = new Azure.PrivateLink.Inputs.EndpointPrivateServiceConnectionArgs\n            {\n                Name = \"example-privateserviceconnection\",\n                PrivateConnectionResourceAlias = \"example-privatelinkservice.d20286c8-4ea5-11eb-9584-8f53157226c6.centralus.azure.privatelinkservice\",\n                IsManualConnection = true,\n                RequestMessage = \"PL\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatelink\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.LookupResourceGroup(ctx, \u0026core.LookupResourceGroupArgs{\n\t\t\tName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvnet, err := network.LookupVirtualNetwork(ctx, \u0026network.LookupVirtualNetworkArgs{\n\t\t\tName:              \"example-network\",\n\t\t\tResourceGroupName: rg.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet, err := network.LookupSubnet(ctx, \u0026network.LookupSubnetArgs{\n\t\t\tName:               \"default\",\n\t\t\tVirtualNetworkName: vnet.Name,\n\t\t\tResourceGroupName:  rg.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatelink.NewEndpoint(ctx, \"example\", \u0026privatelink.EndpointArgs{\n\t\t\tLocation:          pulumi.String(rg.Location),\n\t\t\tResourceGroupName: pulumi.String(rg.Name),\n\t\t\tSubnetId:          pulumi.String(subnet.Id),\n\t\t\tPrivateServiceConnection: \u0026privatelink.EndpointPrivateServiceConnectionArgs{\n\t\t\t\tName:                           pulumi.String(\"example-privateserviceconnection\"),\n\t\t\t\tPrivateConnectionResourceAlias: pulumi.String(\"example-privatelinkservice.d20286c8-4ea5-11eb-9584-8f53157226c6.centralus.azure.privatelinkservice\"),\n\t\t\t\tIsManualConnection:             pulumi.Bool(true),\n\t\t\t\tRequestMessage:                 pulumi.String(\"PL\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPrivate Endpoints can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:privatelink/endpoint:Endpoint example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/privateEndpoints/endpoint1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the Name of the Private Endpoint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privateDnsZoneGroup": {
          "$ref": "#/types/azure:privatelink/EndpointPrivateDnsZoneGroup:EndpointPrivateDnsZoneGroup",
          "description": "A `private_dns_zone_group` block as defined below.\n"
        },
        "privateServiceConnection": {
          "$ref": "#/types/azure:privatelink/EndpointPrivateServiceConnection:EndpointPrivateServiceConnection",
          "description": "A `private_service_connection` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "Specifies the Name of the Resource Group within which the Private Endpoint should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet from which Private IP Addresses will be allocated for this Private Endpoint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "customDnsConfigs": {
          "items": {
            "$ref": "#/types/azure:privatelink/EndpointCustomDnsConfig:EndpointCustomDnsConfig"
          },
          "type": "array"
        },
        "location": {
          "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the Name of the Private Endpoint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "privateDnsZoneConfigs": {
          "items": {
            "$ref": "#/types/azure:privatelink/EndpointPrivateDnsZoneConfig:EndpointPrivateDnsZoneConfig"
          },
          "type": "array"
        },
        "privateDnsZoneGroup": {
          "$ref": "#/types/azure:privatelink/EndpointPrivateDnsZoneGroup:EndpointPrivateDnsZoneGroup",
          "description": "A `private_dns_zone_group` block as defined below.\n"
        },
        "privateServiceConnection": {
          "$ref": "#/types/azure:privatelink/EndpointPrivateServiceConnection:EndpointPrivateServiceConnection",
          "description": "A `private_service_connection` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "Specifies the Name of the Resource Group within which the Private Endpoint should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet from which Private IP Addresses will be allocated for this Private Endpoint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "customDnsConfigs",
        "location",
        "name",
        "privateDnsZoneConfigs",
        "privateServiceConnection",
        "resourceGroupName",
        "subnetId"
      ],
      "requiredInputs": [
        "privateServiceConnection",
        "resourceGroupName",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Endpoint resources.\n",
        "properties": {
          "customDnsConfigs": {
            "items": {
              "$ref": "#/types/azure:privatelink/EndpointCustomDnsConfig:EndpointCustomDnsConfig"
            },
            "type": "array"
          },
          "location": {
            "description": "The supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the Name of the Private Endpoint. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "privateDnsZoneConfigs": {
            "items": {
              "$ref": "#/types/azure:privatelink/EndpointPrivateDnsZoneConfig:EndpointPrivateDnsZoneConfig"
            },
            "type": "array"
          },
          "privateDnsZoneGroup": {
            "$ref": "#/types/azure:privatelink/EndpointPrivateDnsZoneGroup:EndpointPrivateDnsZoneGroup",
            "description": "A `private_dns_zone_group` block as defined below.\n"
          },
          "privateServiceConnection": {
            "$ref": "#/types/azure:privatelink/EndpointPrivateServiceConnection:EndpointPrivateServiceConnection",
            "description": "A `private_service_connection` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "Specifies the Name of the Resource Group within which the Private Endpoint should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the Subnet from which Private IP Addresses will be allocated for this Private Endpoint. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:proximity/placementGroup:PlacementGroup": {
      "description": "Manages a proximity placement group for virtual machines, virtual machine scale sets and availability sets.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePlacementGroup = new azure.proximity.PlacementGroup(\"examplePlacementGroup\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_placement_group = azure.proximity.PlacementGroup(\"examplePlacementGroup\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePlacementGroup = new Azure.Proximity.PlacementGroup(\"examplePlacementGroup\", new Azure.Proximity.PlacementGroupArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/proximity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = proximity.NewPlacementGroup(ctx, \"examplePlacementGroup\", \u0026proximity.PlacementGroupArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nProximity Placement Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:proximity/placementGroup:PlacementGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Compute/proximityPlacementGroups/example-ppg\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the availability set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the availability set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the availability set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the availability set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering PlacementGroup resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the availability set. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the availability set. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:purview/account:Account": {
      "description": "Manages a Purview Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.purview.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    skuName: \"Standard_4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.purview.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku_name=\"Standard_4\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Purview.Account(\"exampleAccount\", new Azure.Purview.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            SkuName = \"Standard_4\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/purview\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = purview.NewAccount(ctx, \"exampleAccount\", \u0026purview.AccountArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSkuName:           pulumi.String(\"Standard_4\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPurview Accounts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:purview/account:Account example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Purview/accounts/account1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The Azure Region where the Purview Account should exist. Changing this forces a new Purview Account to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Purview Account. Changing this forces a new Purview Account to be created.\n",
          "type": "string"
        },
        "publicNetworkEnabled": {
          "description": "Should the Purview Account be visible to the public network? Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Purview Account should exist. Changing this forces a new Purview Account to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The SKU's capacity for platform size and catalog capabilities. Accepted values are `Standard_4` and `Standard_16`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Purview Account.\n",
          "type": "object"
        }
      },
      "properties": {
        "atlasKafkaEndpointPrimaryConnectionString": {
          "description": "Atlas Kafka endpoint primary connection string.\n",
          "type": "string"
        },
        "atlasKafkaEndpointSecondaryConnectionString": {
          "description": "Atlas Kafka endpoint secondary connection string.\n",
          "type": "string"
        },
        "catalogEndpoint": {
          "description": "Catalog endpoint.\n",
          "type": "string"
        },
        "guardianEndpoint": {
          "description": "Guardian endpoint.\n",
          "type": "string"
        },
        "identities": {
          "description": "A `identity` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:purview/AccountIdentity:AccountIdentity"
          },
          "type": "array"
        },
        "location": {
          "description": "The Azure Region where the Purview Account should exist. Changing this forces a new Purview Account to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Purview Account. Changing this forces a new Purview Account to be created.\n",
          "type": "string"
        },
        "publicNetworkEnabled": {
          "description": "Should the Purview Account be visible to the public network? Defaults to `true`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Purview Account should exist. Changing this forces a new Purview Account to be created.\n",
          "type": "string"
        },
        "scanEndpoint": {
          "description": "Scan endpoint.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The SKU's capacity for platform size and catalog capabilities. Accepted values are `Standard_4` and `Standard_16`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Purview Account.\n",
          "type": "object"
        }
      },
      "required": [
        "atlasKafkaEndpointPrimaryConnectionString",
        "atlasKafkaEndpointSecondaryConnectionString",
        "catalogEndpoint",
        "guardianEndpoint",
        "identities",
        "location",
        "name",
        "resourceGroupName",
        "scanEndpoint",
        "skuName"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Account resources.\n",
        "properties": {
          "atlasKafkaEndpointPrimaryConnectionString": {
            "description": "Atlas Kafka endpoint primary connection string.\n",
            "type": "string"
          },
          "atlasKafkaEndpointSecondaryConnectionString": {
            "description": "Atlas Kafka endpoint secondary connection string.\n",
            "type": "string"
          },
          "catalogEndpoint": {
            "description": "Catalog endpoint.\n",
            "type": "string"
          },
          "guardianEndpoint": {
            "description": "Guardian endpoint.\n",
            "type": "string"
          },
          "identities": {
            "description": "A `identity` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:purview/AccountIdentity:AccountIdentity"
            },
            "type": "array"
          },
          "location": {
            "description": "The Azure Region where the Purview Account should exist. Changing this forces a new Purview Account to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Purview Account. Changing this forces a new Purview Account to be created.\n",
            "type": "string"
          },
          "publicNetworkEnabled": {
            "description": "Should the Purview Account be visible to the public network? Defaults to `true`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Purview Account should exist. Changing this forces a new Purview Account to be created.\n",
            "type": "string"
          },
          "scanEndpoint": {
            "description": "Scan endpoint.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The SKU's capacity for platform size and catalog capabilities. Accepted values are `Standard_4` and `Standard_16`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Purview Account.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:recoveryservices/vault:Vault": {
      "description": "Manages a Recovery Services Vault.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst vault = new azure.recoveryservices.Vault(\"vault\", {\n    location: rg.location,\n    resourceGroupName: rg.name,\n    sku: \"Standard\",\n    softDeleteEnabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nvault = azure.recoveryservices.Vault(\"vault\",\n    location=rg.location,\n    resource_group_name=rg.name,\n    sku=\"Standard\",\n    soft_delete_enabled=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var vault = new Azure.RecoveryServices.Vault(\"vault\", new Azure.RecoveryServices.VaultArgs\n        {\n            Location = rg.Location,\n            ResourceGroupName = rg.Name,\n            Sku = \"Standard\",\n            SoftDeleteEnabled = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trg, err := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = recoveryservices.NewVault(ctx, \"vault\", \u0026recoveryservices.VaultArgs{\n\t\t\tLocation:          rg.Location,\n\t\t\tResourceGroupName: rg.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tSoftDeleteEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRecovery Services Vaults can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:recoveryservices/vault:Vault vault1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.RecoveryServices/vaults/vault1\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:recoveryservices/VaultIdentity:VaultIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Recovery Services Vault. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Recovery Services Vault. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "Sets the vault's SKU. Possible values include: `Standard`, `RS0`.\n",
          "type": "string"
        },
        "softDeleteEnabled": {
          "description": "Is soft delete enable for this Vault? Defaults to `true`.\n",
          "type": "boolean"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "identity": {
          "$ref": "#/types/azure:recoveryservices/VaultIdentity:VaultIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Recovery Services Vault. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Recovery Services Vault. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "Sets the vault's SKU. Possible values include: `Standard`, `RS0`.\n",
          "type": "string"
        },
        "softDeleteEnabled": {
          "description": "Is soft delete enable for this Vault? Defaults to `true`.\n",
          "type": "boolean"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "sku"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Vault resources.\n",
        "properties": {
          "identity": {
            "$ref": "#/types/azure:recoveryservices/VaultIdentity:VaultIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Recovery Services Vault. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Recovery Services Vault. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sku": {
            "description": "Sets the vault's SKU. Possible values include: `Standard`, `RS0`.\n",
            "type": "string"
          },
          "softDeleteEnabled": {
            "description": "Is soft delete enable for this Vault? Defaults to `true`.\n",
            "type": "boolean"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:redis/cache:Cache": {
      "description": "Manages a Redis Cache.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThis example provisions a Standard Redis Cache.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\n// NOTE: the Name used for Redis needs to be globally unique\nconst exampleCache = new azure.redis.Cache(\"exampleCache\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    capacity: 2,\n    family: \"C\",\n    skuName: \"Standard\",\n    enableNonSslPort: false,\n    minimumTlsVersion: \"1.2\",\n    redisConfiguration: {},\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\n# NOTE: the Name used for Redis needs to be globally unique\nexample_cache = azure.redis.Cache(\"exampleCache\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    capacity=2,\n    family=\"C\",\n    sku_name=\"Standard\",\n    enable_non_ssl_port=False,\n    minimum_tls_version=\"1.2\",\n    redis_configuration=azure.redis.CacheRedisConfigurationArgs())\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        // NOTE: the Name used for Redis needs to be globally unique\n        var exampleCache = new Azure.Redis.Cache(\"exampleCache\", new Azure.Redis.CacheArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Capacity = 2,\n            Family = \"C\",\n            SkuName = \"Standard\",\n            EnableNonSslPort = false,\n            MinimumTlsVersion = \"1.2\",\n            RedisConfiguration = ,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/redis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redis.NewCache(ctx, \"exampleCache\", \u0026redis.CacheArgs{\n\t\t\tLocation:           exampleResourceGroup.Location,\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tCapacity:           pulumi.Int(2),\n\t\t\tFamily:             pulumi.String(\"C\"),\n\t\t\tSkuName:            pulumi.String(\"Standard\"),\n\t\t\tEnableNonSslPort:   pulumi.Bool(false),\n\t\t\tMinimumTlsVersion:  pulumi.String(\"1.2\"),\n\t\t\tRedisConfiguration: nil,\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{{% /example %}}\n{{% /examples %}}\n## Default Redis Configuration Values\n\n| Redis Value                     | Basic        | Standard     | Premium      |\n| ------------------------------- | ------------ | ------------ | ------------ |\n| enable_authentication           | true         | true         | true         |\n| maxmemory_reserved              | 2            | 50           | 200          |\n| maxfragmentationmemory_reserved | 2            | 50           | 200          |\n| maxmemory_delta                 | 2            | 50           | 200          |\n| maxmemory_policy                | volatile-lru | volatile-lru | volatile-lru |\n\n\u003e **NOTE:** The `maxmemory_reserved`, `maxmemory_delta` and `maxfragmentationmemory_reserved` settings are only available for Standard and Premium caches. More details are available in the Relevant Links section below.\n\n---\n\nA `patch_schedule` block supports the following:\n\n* `day_of_week` (Required) the Weekday name - possible values include `Monday`, `Tuesday`, `Wednesday` etc.\n\n* `start_hour_utc` - (Optional) the Start Hour for maintenance in UTC - possible values range from `0 - 23`.\n\n\u003e **Note:** The Patch Window lasts for `5` hours from the `start_hour_utc`.\n\n* `maintenance_window` - (Optional) The ISO 8601 timespan which specifies the amount of time the Redis Cache can be updated. Defaults to `PT5H`.\n\n## Relevant Links\n\n - [Azure Redis Cache: SKU specific configuration limitations](https://azure.microsoft.com/en-us/documentation/articles/cache-configure/#advanced-settings)\n - [Redis: Available Configuration Settings](http://redis.io/topics/config)\n\n\n## Import\n\nRedis Cache's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:redis/cache:Cache cache1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/Redis/cache1\n```\n\n ",
      "inputProperties": {
        "capacity": {
          "description": "The size of the Redis cache to deploy. Valid values for a SKU `family` of C (Basic/Standard) are `0, 1, 2, 3, 4, 5, 6`, and for P (Premium) `family` are `1, 2, 3, 4`.\n",
          "type": "integer"
        },
        "enableNonSslPort": {
          "description": "Enable the non-SSL port (6379) - disabled by default.\n",
          "type": "boolean"
        },
        "family": {
          "description": "The SKU family/pricing group to use. Valid values are `C` (for Basic/Standard SKU family) and `P` (for `Premium`)\n",
          "type": "string"
        },
        "location": {
          "description": "The location of the resource group.\n",
          "type": "string"
        },
        "minimumTlsVersion": {
          "description": "The minimum TLS version.  Defaults to `1.0`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Redis instance. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "patchSchedules": {
          "description": "A list of `patch_schedule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:redis/CachePatchSchedule:CachePatchSchedule"
          },
          "type": "array"
        },
        "privateStaticIpAddress": {
          "description": "The Static IP Address to assign to the Redis Cache when hosted inside the Virtual Network. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this Redis Cache. `true` means this resource could be accessed by both public and private endpoint. `false` means only private endpoint access is allowed. Defaults to `true`.\n",
          "type": "boolean"
        },
        "redisConfiguration": {
          "$ref": "#/types/azure:redis/CacheRedisConfiguration:CacheRedisConfiguration",
          "description": "A `redis_configuration` as defined below - with some limitations by SKU - defaults/details are shown below.\n"
        },
        "redisVersion": {
          "description": "Redis version. Only major version needed. Valid values: `4`, `6`.\n",
          "type": "string"
        },
        "replicasPerMaster": {
          "description": "Amount of replicas to create per master for this Redis Cache.\n",
          "type": "integer"
        },
        "replicasPerPrimary": {
          "description": "Amount of replicas to create per primary for this Redis Cache. If both `replicas_per_primary` and `replicas_per_master` are set, they need to be equal.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the Redis instance.\n",
          "type": "string"
        },
        "shardCount": {
          "description": "*Only available when using the Premium SKU* The number of Shards to create on the Redis Cluster.\n",
          "type": "integer"
        },
        "skuName": {
          "description": "The SKU of Redis to use. Possible values are `Basic`, `Standard` and `Premium`.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "*Only available when using the Premium SKU* The ID of the Subnet within which the Redis Cache should be deployed. This Subnet must only contain Azure Cache for Redis instances without any other type of resources. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "tenantSettings": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tenant settings to assign to the resource.\n",
          "type": "object"
        },
        "zones": {
          "description": "A list of a one or more Availability Zones, where the Redis Cache should be allocated.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "capacity": {
          "description": "The size of the Redis cache to deploy. Valid values for a SKU `family` of C (Basic/Standard) are `0, 1, 2, 3, 4, 5, 6`, and for P (Premium) `family` are `1, 2, 3, 4`.\n",
          "type": "integer"
        },
        "enableNonSslPort": {
          "description": "Enable the non-SSL port (6379) - disabled by default.\n",
          "type": "boolean"
        },
        "family": {
          "description": "The SKU family/pricing group to use. Valid values are `C` (for Basic/Standard SKU family) and `P` (for `Premium`)\n",
          "type": "string"
        },
        "hostname": {
          "description": "The Hostname of the Redis Instance\n",
          "type": "string"
        },
        "location": {
          "description": "The location of the resource group.\n",
          "type": "string"
        },
        "minimumTlsVersion": {
          "description": "The minimum TLS version.  Defaults to `1.0`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Redis instance. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "patchSchedules": {
          "description": "A list of `patch_schedule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:redis/CachePatchSchedule:CachePatchSchedule"
          },
          "type": "array"
        },
        "port": {
          "description": "The non-SSL Port of the Redis Instance\n",
          "type": "integer"
        },
        "primaryAccessKey": {
          "description": "The Primary Access Key for the Redis Instance\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The primary connection string of the Redis Instance.\n",
          "type": "string"
        },
        "privateStaticIpAddress": {
          "description": "The Static IP Address to assign to the Redis Cache when hosted inside the Virtual Network. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this Redis Cache. `true` means this resource could be accessed by both public and private endpoint. `false` means only private endpoint access is allowed. Defaults to `true`.\n",
          "type": "boolean"
        },
        "redisConfiguration": {
          "$ref": "#/types/azure:redis/CacheRedisConfiguration:CacheRedisConfiguration",
          "description": "A `redis_configuration` as defined below - with some limitations by SKU - defaults/details are shown below.\n"
        },
        "redisVersion": {
          "description": "Redis version. Only major version needed. Valid values: `4`, `6`.\n",
          "type": "string"
        },
        "replicasPerMaster": {
          "description": "Amount of replicas to create per master for this Redis Cache.\n",
          "type": "integer"
        },
        "replicasPerPrimary": {
          "description": "Amount of replicas to create per primary for this Redis Cache. If both `replicas_per_primary` and `replicas_per_master` are set, they need to be equal.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the Redis instance.\n",
          "type": "string"
        },
        "secondaryAccessKey": {
          "description": "The Secondary Access Key for the Redis Instance\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The secondary connection string of the Redis Instance.\n",
          "type": "string"
        },
        "shardCount": {
          "description": "*Only available when using the Premium SKU* The number of Shards to create on the Redis Cluster.\n",
          "type": "integer"
        },
        "skuName": {
          "description": "The SKU of Redis to use. Possible values are `Basic`, `Standard` and `Premium`.\n",
          "type": "string"
        },
        "sslPort": {
          "description": "The SSL Port of the Redis Instance\n",
          "type": "integer"
        },
        "subnetId": {
          "description": "*Only available when using the Premium SKU* The ID of the Subnet within which the Redis Cache should be deployed. This Subnet must only contain Azure Cache for Redis instances without any other type of resources. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "tenantSettings": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tenant settings to assign to the resource.\n",
          "type": "object"
        },
        "zones": {
          "description": "A list of a one or more Availability Zones, where the Redis Cache should be allocated.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "capacity",
        "family",
        "hostname",
        "location",
        "name",
        "port",
        "primaryAccessKey",
        "primaryConnectionString",
        "privateStaticIpAddress",
        "redisConfiguration",
        "redisVersion",
        "replicasPerMaster",
        "replicasPerPrimary",
        "resourceGroupName",
        "secondaryAccessKey",
        "secondaryConnectionString",
        "skuName",
        "sslPort"
      ],
      "requiredInputs": [
        "capacity",
        "family",
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Cache resources.\n",
        "properties": {
          "capacity": {
            "description": "The size of the Redis cache to deploy. Valid values for a SKU `family` of C (Basic/Standard) are `0, 1, 2, 3, 4, 5, 6`, and for P (Premium) `family` are `1, 2, 3, 4`.\n",
            "type": "integer"
          },
          "enableNonSslPort": {
            "description": "Enable the non-SSL port (6379) - disabled by default.\n",
            "type": "boolean"
          },
          "family": {
            "description": "The SKU family/pricing group to use. Valid values are `C` (for Basic/Standard SKU family) and `P` (for `Premium`)\n",
            "type": "string"
          },
          "hostname": {
            "description": "The Hostname of the Redis Instance\n",
            "type": "string"
          },
          "location": {
            "description": "The location of the resource group.\n",
            "type": "string"
          },
          "minimumTlsVersion": {
            "description": "The minimum TLS version.  Defaults to `1.0`.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Redis instance. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "patchSchedules": {
            "description": "A list of `patch_schedule` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:redis/CachePatchSchedule:CachePatchSchedule"
            },
            "type": "array"
          },
          "port": {
            "description": "The non-SSL Port of the Redis Instance\n",
            "type": "integer"
          },
          "primaryAccessKey": {
            "description": "The Primary Access Key for the Redis Instance\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The primary connection string of the Redis Instance.\n",
            "type": "string"
          },
          "privateStaticIpAddress": {
            "description": "The Static IP Address to assign to the Redis Cache when hosted inside the Virtual Network. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether or not public network access is allowed for this Redis Cache. `true` means this resource could be accessed by both public and private endpoint. `false` means only private endpoint access is allowed. Defaults to `true`.\n",
            "type": "boolean"
          },
          "redisConfiguration": {
            "$ref": "#/types/azure:redis/CacheRedisConfiguration:CacheRedisConfiguration",
            "description": "A `redis_configuration` as defined below - with some limitations by SKU - defaults/details are shown below.\n"
          },
          "redisVersion": {
            "description": "Redis version. Only major version needed. Valid values: `4`, `6`.\n",
            "type": "string"
          },
          "replicasPerMaster": {
            "description": "Amount of replicas to create per master for this Redis Cache.\n",
            "type": "integer"
          },
          "replicasPerPrimary": {
            "description": "Amount of replicas to create per primary for this Redis Cache. If both `replicas_per_primary` and `replicas_per_master` are set, they need to be equal.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the Redis instance.\n",
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The Secondary Access Key for the Redis Instance\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The secondary connection string of the Redis Instance.\n",
            "type": "string"
          },
          "shardCount": {
            "description": "*Only available when using the Premium SKU* The number of Shards to create on the Redis Cluster.\n",
            "type": "integer"
          },
          "skuName": {
            "description": "The SKU of Redis to use. Possible values are `Basic`, `Standard` and `Premium`.\n",
            "type": "string"
          },
          "sslPort": {
            "description": "The SSL Port of the Redis Instance\n",
            "type": "integer"
          },
          "subnetId": {
            "description": "*Only available when using the Premium SKU* The ID of the Subnet within which the Redis Cache should be deployed. This Subnet must only contain Azure Cache for Redis instances without any other type of resources. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "tenantSettings": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tenant settings to assign to the resource.\n",
            "type": "object"
          },
          "zones": {
            "description": "A list of a one or more Availability Zones, where the Redis Cache should be allocated.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:redis/enterpriseCluster:EnterpriseCluster": {
      "description": "Manages a Redis Enterprise Cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleEnterpriseCluster = new azure.redis.EnterpriseCluster(\"exampleEnterpriseCluster\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    skuName: \"EnterpriseFlash_F300-3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_enterprise_cluster = azure.redis.EnterpriseCluster(\"exampleEnterpriseCluster\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku_name=\"EnterpriseFlash_F300-3\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleEnterpriseCluster = new Azure.Redis.EnterpriseCluster(\"exampleEnterpriseCluster\", new Azure.Redis.EnterpriseClusterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            SkuName = \"EnterpriseFlash_F300-3\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/redis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redis.NewEnterpriseCluster(ctx, \"exampleEnterpriseCluster\", \u0026redis.EnterpriseClusterArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSkuName:           pulumi.String(\"EnterpriseFlash_F300-3\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRedis Enterprise Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:redis/enterpriseCluster:EnterpriseCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redisEnterprise/cluster1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "The Azure Region where the Redis Enterprise Cluster should exist. Changing this forces a new Redis Enterprise Cluster to be created.\n",
          "type": "string"
        },
        "minimumTlsVersion": {
          "description": "The minimum TLS version.  Defaults to `1.2`. Changing this forces a new Redis Enterprise Cluster to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Redis Enterprise Cluster. Changing this forces a new Redis Enterprise Cluster to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Redis Enterprise Cluster should exist. Changing this forces a new Redis Enterprise Cluster to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The `sku_name` is comprised of two segments separated by a hyphen (e.g. `Enterprise_E10-2`). The first segment of the `sku_name` defines the `name` of the sku, possible values are `Enterprise_E10`, `Enterprise_E20\"`, `Enterprise_E50`, `Enterprise_E100`, `EnterpriseFlash_F300`, `EnterpriseFlash_F700` or `EnterpriseFlash_F1500`. The second segment defines the `capacity` of the `sku_name`, possible values for `Enteprise` skus are (`2`, `4`, `6`, ...). Possible values for `EnterpriseFlash` skus are (`3`, `9`, `15`, ...). Changing this forces a new Redis Enterprise Cluster to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Redis Enterprise Cluster.\n",
          "type": "object"
        },
        "zones": {
          "description": "A list of a one or more Availability Zones, where the Redis Cache should be allocated. Possible values are: `1`, `2` and `3`. Changing this forces a new Redis Enterprise Cluster to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "hostname": {
          "description": "DNS name of the cluster endpoint.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Redis Enterprise Cluster should exist. Changing this forces a new Redis Enterprise Cluster to be created.\n",
          "type": "string"
        },
        "minimumTlsVersion": {
          "description": "The minimum TLS version.  Defaults to `1.2`. Changing this forces a new Redis Enterprise Cluster to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Redis Enterprise Cluster. Changing this forces a new Redis Enterprise Cluster to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Redis Enterprise Cluster should exist. Changing this forces a new Redis Enterprise Cluster to be created.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The `sku_name` is comprised of two segments separated by a hyphen (e.g. `Enterprise_E10-2`). The first segment of the `sku_name` defines the `name` of the sku, possible values are `Enterprise_E10`, `Enterprise_E20\"`, `Enterprise_E50`, `Enterprise_E100`, `EnterpriseFlash_F300`, `EnterpriseFlash_F700` or `EnterpriseFlash_F1500`. The second segment defines the `capacity` of the `sku_name`, possible values for `Enteprise` skus are (`2`, `4`, `6`, ...). Possible values for `EnterpriseFlash` skus are (`3`, `9`, `15`, ...). Changing this forces a new Redis Enterprise Cluster to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Redis Enterprise Cluster.\n",
          "type": "object"
        },
        "version": {
          "deprecationMessage": "This field currently is not yet being returned from the service API, please see https://github.com/Azure/azure-sdk-for-go/issues/14420 for more information",
          "description": "Version of redis the cluster supports, e.g. '6'.\n",
          "type": "string"
        },
        "zones": {
          "description": "A list of a one or more Availability Zones, where the Redis Cache should be allocated. Possible values are: `1`, `2` and `3`. Changing this forces a new Redis Enterprise Cluster to be created.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "hostname",
        "location",
        "name",
        "resourceGroupName",
        "skuName",
        "version"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EnterpriseCluster resources.\n",
        "properties": {
          "hostname": {
            "description": "DNS name of the cluster endpoint.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Redis Enterprise Cluster should exist. Changing this forces a new Redis Enterprise Cluster to be created.\n",
            "type": "string"
          },
          "minimumTlsVersion": {
            "description": "The minimum TLS version.  Defaults to `1.2`. Changing this forces a new Redis Enterprise Cluster to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Redis Enterprise Cluster. Changing this forces a new Redis Enterprise Cluster to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Redis Enterprise Cluster should exist. Changing this forces a new Redis Enterprise Cluster to be created.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The `sku_name` is comprised of two segments separated by a hyphen (e.g. `Enterprise_E10-2`). The first segment of the `sku_name` defines the `name` of the sku, possible values are `Enterprise_E10`, `Enterprise_E20\"`, `Enterprise_E50`, `Enterprise_E100`, `EnterpriseFlash_F300`, `EnterpriseFlash_F700` or `EnterpriseFlash_F1500`. The second segment defines the `capacity` of the `sku_name`, possible values for `Enteprise` skus are (`2`, `4`, `6`, ...). Possible values for `EnterpriseFlash` skus are (`3`, `9`, `15`, ...). Changing this forces a new Redis Enterprise Cluster to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Redis Enterprise Cluster.\n",
            "type": "object"
          },
          "version": {
            "deprecationMessage": "This field currently is not yet being returned from the service API, please see https://github.com/Azure/azure-sdk-for-go/issues/14420 for more information",
            "description": "Version of redis the cluster supports, e.g. '6'.\n",
            "type": "string"
          },
          "zones": {
            "description": "A list of a one or more Availability Zones, where the Redis Cache should be allocated. Possible values are: `1`, `2` and `3`. Changing this forces a new Redis Enterprise Cluster to be created.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:redis/enterpriseDatabase:EnterpriseDatabase": {
      "description": "Manages a Redis Enterprise Database.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleEnterpriseCluster = new azure.redis.EnterpriseCluster(\"exampleEnterpriseCluster\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    skuName: \"Enterprise_E20-4\",\n});\nconst exampleEnterpriseDatabase = new azure.redis.EnterpriseDatabase(\"exampleEnterpriseDatabase\", {\n    resourceGroupName: exampleResourceGroup.name,\n    clusterId: exampleEnterpriseCluster.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_enterprise_cluster = azure.redis.EnterpriseCluster(\"exampleEnterpriseCluster\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku_name=\"Enterprise_E20-4\")\nexample_enterprise_database = azure.redis.EnterpriseDatabase(\"exampleEnterpriseDatabase\",\n    resource_group_name=example_resource_group.name,\n    cluster_id=example_enterprise_cluster.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleEnterpriseCluster = new Azure.Redis.EnterpriseCluster(\"exampleEnterpriseCluster\", new Azure.Redis.EnterpriseClusterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            SkuName = \"Enterprise_E20-4\",\n        });\n        var exampleEnterpriseDatabase = new Azure.Redis.EnterpriseDatabase(\"exampleEnterpriseDatabase\", new Azure.Redis.EnterpriseDatabaseArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ClusterId = exampleEnterpriseCluster.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/redis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEnterpriseCluster, err := redis.NewEnterpriseCluster(ctx, \"exampleEnterpriseCluster\", \u0026redis.EnterpriseClusterArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSkuName:           pulumi.String(\"Enterprise_E20-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redis.NewEnterpriseDatabase(ctx, \"exampleEnterpriseDatabase\", \u0026redis.EnterpriseDatabaseArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tClusterId:         exampleEnterpriseCluster.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRedis Enterprise Databases can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:redis/enterpriseDatabase:EnterpriseDatabase example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redisEnterprise/cluster1/databases/database1\n```\n\n ",
      "inputProperties": {
        "clientProtocol": {
          "description": "Specifies whether redis clients can connect using TLS-encrypted or plaintext redis protocols. Default is TLS-encrypted. Possible values are `Encrypted` and `Plaintext`. Defaults to `Encrypted`. Changing this forces a new Redis Enterprise Database to be created.\n",
          "type": "string"
        },
        "clusterId": {
          "description": "The resource id of the Redis Enterprise Cluster to deploy this Redis Enterprise Database. Changing this forces a new Redis Enterprise Database to be created.\n",
          "type": "string"
        },
        "clusteringPolicy": {
          "description": "Clustering policy - default is OSSCluster. Specified at create time. Possible values are `EnterpriseCluster` and `OSSCluster`. Defaults to `OSSCluster`. Changing this forces a new Redis Enterprise Database to be created.\n",
          "type": "string"
        },
        "evictionPolicy": {
          "description": "Redis eviction policy - default is VolatileLRU. Possible values are `AllKeysLFU`, `AllKeysLRU`, `AllKeysRandom`, `VolatileLRU`, `VolatileLFU`, `VolatileTTL`, `VolatileRandom` and `NoEviction`. Defaults to `VolatileLRU`. Changing this forces a new Redis Enterprise Database to be created.\n",
          "type": "string"
        },
        "modules": {
          "description": "A `module` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:redis/EnterpriseDatabaseModule:EnterpriseDatabaseModule"
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this Redis Enterprise Database. Currently the acceptable value for this argument is `default`. Defaults to `default`. Changing this forces a new Redis Enterprise Database to be created.\n",
          "type": "string"
        },
        "port": {
          "description": "TCP port of the database endpoint. Specified at create time. Defaults to an available port. Changing this forces a new Redis Enterprise Database to be created.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Redis Enterprise Database should exist. Changing this forces a new Redis Enterprise Database to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "clientProtocol": {
          "description": "Specifies whether redis clients can connect using TLS-encrypted or plaintext redis protocols. Default is TLS-encrypted. Possible values are `Encrypted` and `Plaintext`. Defaults to `Encrypted`. Changing this forces a new Redis Enterprise Database to be created.\n",
          "type": "string"
        },
        "clusterId": {
          "description": "The resource id of the Redis Enterprise Cluster to deploy this Redis Enterprise Database. Changing this forces a new Redis Enterprise Database to be created.\n",
          "type": "string"
        },
        "clusteringPolicy": {
          "description": "Clustering policy - default is OSSCluster. Specified at create time. Possible values are `EnterpriseCluster` and `OSSCluster`. Defaults to `OSSCluster`. Changing this forces a new Redis Enterprise Database to be created.\n",
          "type": "string"
        },
        "evictionPolicy": {
          "description": "Redis eviction policy - default is VolatileLRU. Possible values are `AllKeysLFU`, `AllKeysLRU`, `AllKeysRandom`, `VolatileLRU`, `VolatileLFU`, `VolatileTTL`, `VolatileRandom` and `NoEviction`. Defaults to `VolatileLRU`. Changing this forces a new Redis Enterprise Database to be created.\n",
          "type": "string"
        },
        "modules": {
          "description": "A `module` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:redis/EnterpriseDatabaseModule:EnterpriseDatabaseModule"
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this Redis Enterprise Database. Currently the acceptable value for this argument is `default`. Defaults to `default`. Changing this forces a new Redis Enterprise Database to be created.\n",
          "type": "string"
        },
        "port": {
          "description": "TCP port of the database endpoint. Specified at create time. Defaults to an available port. Changing this forces a new Redis Enterprise Database to be created.\n",
          "type": "integer"
        },
        "primaryAccessKey": {
          "description": "The Primary Access Key for the Redis Enterprise Database Instance.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Redis Enterprise Database should exist. Changing this forces a new Redis Enterprise Database to be created.\n",
          "type": "string"
        },
        "secondaryAccessKey": {
          "description": "The Secondary Access Key for the Redis Enterprise Database Instance.\n",
          "type": "string"
        }
      },
      "required": [
        "clusterId",
        "name",
        "primaryAccessKey",
        "resourceGroupName",
        "secondaryAccessKey"
      ],
      "requiredInputs": [
        "clusterId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EnterpriseDatabase resources.\n",
        "properties": {
          "clientProtocol": {
            "description": "Specifies whether redis clients can connect using TLS-encrypted or plaintext redis protocols. Default is TLS-encrypted. Possible values are `Encrypted` and `Plaintext`. Defaults to `Encrypted`. Changing this forces a new Redis Enterprise Database to be created.\n",
            "type": "string"
          },
          "clusterId": {
            "description": "The resource id of the Redis Enterprise Cluster to deploy this Redis Enterprise Database. Changing this forces a new Redis Enterprise Database to be created.\n",
            "type": "string"
          },
          "clusteringPolicy": {
            "description": "Clustering policy - default is OSSCluster. Specified at create time. Possible values are `EnterpriseCluster` and `OSSCluster`. Defaults to `OSSCluster`. Changing this forces a new Redis Enterprise Database to be created.\n",
            "type": "string"
          },
          "evictionPolicy": {
            "description": "Redis eviction policy - default is VolatileLRU. Possible values are `AllKeysLFU`, `AllKeysLRU`, `AllKeysRandom`, `VolatileLRU`, `VolatileLFU`, `VolatileTTL`, `VolatileRandom` and `NoEviction`. Defaults to `VolatileLRU`. Changing this forces a new Redis Enterprise Database to be created.\n",
            "type": "string"
          },
          "modules": {
            "description": "A `module` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:redis/EnterpriseDatabaseModule:EnterpriseDatabaseModule"
            },
            "type": "array"
          },
          "name": {
            "description": "The name which should be used for this Redis Enterprise Database. Currently the acceptable value for this argument is `default`. Defaults to `default`. Changing this forces a new Redis Enterprise Database to be created.\n",
            "type": "string"
          },
          "port": {
            "description": "TCP port of the database endpoint. Specified at create time. Defaults to an available port. Changing this forces a new Redis Enterprise Database to be created.\n",
            "type": "integer"
          },
          "primaryAccessKey": {
            "description": "The Primary Access Key for the Redis Enterprise Database Instance.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Redis Enterprise Database should exist. Changing this forces a new Redis Enterprise Database to be created.\n",
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The Secondary Access Key for the Redis Enterprise Database Instance.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:redis/firewallRule:FirewallRule": {
      "description": "Manages a Firewall Rule associated with a Redis Cache.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as random from \"@pulumi/random\";\n\nconst server = new random.RandomId(\"server\", {\n    keepers: {\n        azi_id: 1,\n    },\n    byteLength: 8,\n});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleCache = new azure.redis.Cache(\"exampleCache\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    capacity: 1,\n    family: \"P\",\n    skuName: \"Premium\",\n    enableNonSslPort: false,\n    redisConfiguration: {\n        maxclients: 256,\n        maxmemoryReserved: 2,\n        maxmemoryDelta: 2,\n        maxmemoryPolicy: \"allkeys-lru\",\n    },\n});\nconst exampleFirewallRule = new azure.redis.FirewallRule(\"exampleFirewallRule\", {\n    redisCacheName: exampleCache.name,\n    resourceGroupName: exampleResourceGroup.name,\n    startIp: \"1.2.3.4\",\n    endIp: \"2.3.4.5\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_random as random\n\nserver = random.RandomId(\"server\",\n    keepers={\n        \"azi_id\": 1,\n    },\n    byte_length=8)\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_cache = azure.redis.Cache(\"exampleCache\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    capacity=1,\n    family=\"P\",\n    sku_name=\"Premium\",\n    enable_non_ssl_port=False,\n    redis_configuration=azure.redis.CacheRedisConfigurationArgs(\n        maxclients=256,\n        maxmemory_reserved=2,\n        maxmemory_delta=2,\n        maxmemory_policy=\"allkeys-lru\",\n    ))\nexample_firewall_rule = azure.redis.FirewallRule(\"exampleFirewallRule\",\n    redis_cache_name=example_cache.name,\n    resource_group_name=example_resource_group.name,\n    start_ip=\"1.2.3.4\",\n    end_ip=\"2.3.4.5\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing Random = Pulumi.Random;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var server = new Random.RandomId(\"server\", new Random.RandomIdArgs\n        {\n            Keepers = \n            {\n                { \"azi_id\", 1 },\n            },\n            ByteLength = 8,\n        });\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleCache = new Azure.Redis.Cache(\"exampleCache\", new Azure.Redis.CacheArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Capacity = 1,\n            Family = \"P\",\n            SkuName = \"Premium\",\n            EnableNonSslPort = false,\n            RedisConfiguration = new Azure.Redis.Inputs.CacheRedisConfigurationArgs\n            {\n                Maxclients = 256,\n                MaxmemoryReserved = 2,\n                MaxmemoryDelta = 2,\n                MaxmemoryPolicy = \"allkeys-lru\",\n            },\n        });\n        var exampleFirewallRule = new Azure.Redis.FirewallRule(\"exampleFirewallRule\", new Azure.Redis.FirewallRuleArgs\n        {\n            RedisCacheName = exampleCache.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StartIp = \"1.2.3.4\",\n            EndIp = \"2.3.4.5\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/redis\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\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 := random.NewRandomId(ctx, \"server\", \u0026random.RandomIdArgs{\n\t\t\tKeepers: pulumi.AnyMap{\n\t\t\t\t\"azi_id\": pulumi.Any(1),\n\t\t\t},\n\t\t\tByteLength: pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCache, err := redis.NewCache(ctx, \"exampleCache\", \u0026redis.CacheArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tCapacity:          pulumi.Int(1),\n\t\t\tFamily:            pulumi.String(\"P\"),\n\t\t\tSkuName:           pulumi.String(\"Premium\"),\n\t\t\tEnableNonSslPort:  pulumi.Bool(false),\n\t\t\tRedisConfiguration: \u0026redis.CacheRedisConfigurationArgs{\n\t\t\t\tMaxclients:        pulumi.Int(256),\n\t\t\t\tMaxmemoryReserved: pulumi.Int(2),\n\t\t\t\tMaxmemoryDelta:    pulumi.Int(2),\n\t\t\t\tMaxmemoryPolicy:   pulumi.String(\"allkeys-lru\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redis.NewFirewallRule(ctx, \"exampleFirewallRule\", \u0026redis.FirewallRuleArgs{\n\t\t\tRedisCacheName:    exampleCache.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStartIp:           pulumi.String(\"1.2.3.4\"),\n\t\t\tEndIp:             pulumi.String(\"2.3.4.5\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRedis Firewall Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:redis/firewallRule:FirewallRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/Redis/cache1/firewallRules/rule1\n```\n\n ",
      "inputProperties": {
        "endIp": {
          "description": "The highest IP address included in the range.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "redisCacheName": {
          "description": "The name of the Redis Cache. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which this Redis Cache exists.\n",
          "type": "string"
        },
        "startIp": {
          "description": "The lowest IP address included in the range\n",
          "type": "string"
        }
      },
      "properties": {
        "endIp": {
          "description": "The highest IP address included in the range.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "redisCacheName": {
          "description": "The name of the Redis Cache. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which this Redis Cache exists.\n",
          "type": "string"
        },
        "startIp": {
          "description": "The lowest IP address included in the range\n",
          "type": "string"
        }
      },
      "required": [
        "endIp",
        "name",
        "redisCacheName",
        "resourceGroupName",
        "startIp"
      ],
      "requiredInputs": [
        "endIp",
        "redisCacheName",
        "resourceGroupName",
        "startIp"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FirewallRule resources.\n",
        "properties": {
          "endIp": {
            "description": "The highest IP address included in the range.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Firewall Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "redisCacheName": {
            "description": "The name of the Redis Cache. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which this Redis Cache exists.\n",
            "type": "string"
          },
          "startIp": {
            "description": "The lowest IP address included in the range\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:redis/linkedServer:LinkedServer": {
      "description": "Manages a Redis Linked Server (ie Geo Location)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example_primaryResourceGroup = new azure.core.ResourceGroup(\"example-primaryResourceGroup\", {location: \"East US\"});\nconst example_primaryCache = new azure.redis.Cache(\"example-primaryCache\", {\n    location: example_primaryResourceGroup.location,\n    resourceGroupName: example_primaryResourceGroup.name,\n    capacity: 1,\n    family: \"P\",\n    skuName: \"Premium\",\n    enableNonSslPort: false,\n    redisConfiguration: {\n        maxmemoryReserved: 2,\n        maxmemoryDelta: 2,\n        maxmemoryPolicy: \"allkeys-lru\",\n    },\n});\nconst example_secondaryResourceGroup = new azure.core.ResourceGroup(\"example-secondaryResourceGroup\", {location: \"West US\"});\nconst example_secondaryCache = new azure.redis.Cache(\"example-secondaryCache\", {\n    location: example_secondaryResourceGroup.location,\n    resourceGroupName: example_secondaryResourceGroup.name,\n    capacity: 1,\n    family: \"P\",\n    skuName: \"Premium\",\n    enableNonSslPort: false,\n    redisConfiguration: {\n        maxmemoryReserved: 2,\n        maxmemoryDelta: 2,\n        maxmemoryPolicy: \"allkeys-lru\",\n    },\n});\nconst example_link = new azure.redis.LinkedServer(\"example-link\", {\n    targetRedisCacheName: example_primaryCache.name,\n    resourceGroupName: example_primaryCache.resourceGroupName,\n    linkedRedisCacheId: example_secondaryCache.id,\n    linkedRedisCacheLocation: example_secondaryCache.location,\n    serverRole: \"Secondary\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_primary_resource_group = azure.core.ResourceGroup(\"example-primaryResourceGroup\", location=\"East US\")\nexample_primary_cache = azure.redis.Cache(\"example-primaryCache\",\n    location=example_primary_resource_group.location,\n    resource_group_name=example_primary_resource_group.name,\n    capacity=1,\n    family=\"P\",\n    sku_name=\"Premium\",\n    enable_non_ssl_port=False,\n    redis_configuration=azure.redis.CacheRedisConfigurationArgs(\n        maxmemory_reserved=2,\n        maxmemory_delta=2,\n        maxmemory_policy=\"allkeys-lru\",\n    ))\nexample_secondary_resource_group = azure.core.ResourceGroup(\"example-secondaryResourceGroup\", location=\"West US\")\nexample_secondary_cache = azure.redis.Cache(\"example-secondaryCache\",\n    location=example_secondary_resource_group.location,\n    resource_group_name=example_secondary_resource_group.name,\n    capacity=1,\n    family=\"P\",\n    sku_name=\"Premium\",\n    enable_non_ssl_port=False,\n    redis_configuration=azure.redis.CacheRedisConfigurationArgs(\n        maxmemory_reserved=2,\n        maxmemory_delta=2,\n        maxmemory_policy=\"allkeys-lru\",\n    ))\nexample_link = azure.redis.LinkedServer(\"example-link\",\n    target_redis_cache_name=example_primary_cache.name,\n    resource_group_name=example_primary_cache.resource_group_name,\n    linked_redis_cache_id=example_secondary_cache.id,\n    linked_redis_cache_location=example_secondary_cache.location,\n    server_role=\"Secondary\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example_primaryResourceGroup = new Azure.Core.ResourceGroup(\"example-primaryResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"East US\",\n        });\n        var example_primaryCache = new Azure.Redis.Cache(\"example-primaryCache\", new Azure.Redis.CacheArgs\n        {\n            Location = example_primaryResourceGroup.Location,\n            ResourceGroupName = example_primaryResourceGroup.Name,\n            Capacity = 1,\n            Family = \"P\",\n            SkuName = \"Premium\",\n            EnableNonSslPort = false,\n            RedisConfiguration = new Azure.Redis.Inputs.CacheRedisConfigurationArgs\n            {\n                MaxmemoryReserved = 2,\n                MaxmemoryDelta = 2,\n                MaxmemoryPolicy = \"allkeys-lru\",\n            },\n        });\n        var example_secondaryResourceGroup = new Azure.Core.ResourceGroup(\"example-secondaryResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West US\",\n        });\n        var example_secondaryCache = new Azure.Redis.Cache(\"example-secondaryCache\", new Azure.Redis.CacheArgs\n        {\n            Location = example_secondaryResourceGroup.Location,\n            ResourceGroupName = example_secondaryResourceGroup.Name,\n            Capacity = 1,\n            Family = \"P\",\n            SkuName = \"Premium\",\n            EnableNonSslPort = false,\n            RedisConfiguration = new Azure.Redis.Inputs.CacheRedisConfigurationArgs\n            {\n                MaxmemoryReserved = 2,\n                MaxmemoryDelta = 2,\n                MaxmemoryPolicy = \"allkeys-lru\",\n            },\n        });\n        var example_link = new Azure.Redis.LinkedServer(\"example-link\", new Azure.Redis.LinkedServerArgs\n        {\n            TargetRedisCacheName = example_primaryCache.Name,\n            ResourceGroupName = example_primaryCache.ResourceGroupName,\n            LinkedRedisCacheId = example_secondaryCache.Id,\n            LinkedRedisCacheLocation = example_secondaryCache.Location,\n            ServerRole = \"Secondary\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/redis\"\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 := core.NewResourceGroup(ctx, \"example_primaryResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"East US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redis.NewCache(ctx, \"example_primaryCache\", \u0026redis.CacheArgs{\n\t\t\tLocation:          example_primaryResourceGroup.Location,\n\t\t\tResourceGroupName: example_primaryResourceGroup.Name,\n\t\t\tCapacity:          pulumi.Int(1),\n\t\t\tFamily:            pulumi.String(\"P\"),\n\t\t\tSkuName:           pulumi.String(\"Premium\"),\n\t\t\tEnableNonSslPort:  pulumi.Bool(false),\n\t\t\tRedisConfiguration: \u0026redis.CacheRedisConfigurationArgs{\n\t\t\t\tMaxmemoryReserved: pulumi.Int(2),\n\t\t\t\tMaxmemoryDelta:    pulumi.Int(2),\n\t\t\t\tMaxmemoryPolicy:   pulumi.String(\"allkeys-lru\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = core.NewResourceGroup(ctx, \"example_secondaryResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redis.NewCache(ctx, \"example_secondaryCache\", \u0026redis.CacheArgs{\n\t\t\tLocation:          example_secondaryResourceGroup.Location,\n\t\t\tResourceGroupName: example_secondaryResourceGroup.Name,\n\t\t\tCapacity:          pulumi.Int(1),\n\t\t\tFamily:            pulumi.String(\"P\"),\n\t\t\tSkuName:           pulumi.String(\"Premium\"),\n\t\t\tEnableNonSslPort:  pulumi.Bool(false),\n\t\t\tRedisConfiguration: \u0026redis.CacheRedisConfigurationArgs{\n\t\t\t\tMaxmemoryReserved: pulumi.Int(2),\n\t\t\t\tMaxmemoryDelta:    pulumi.Int(2),\n\t\t\t\tMaxmemoryPolicy:   pulumi.String(\"allkeys-lru\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redis.NewLinkedServer(ctx, \"example_link\", \u0026redis.LinkedServerArgs{\n\t\t\tTargetRedisCacheName:     example_primaryCache.Name,\n\t\t\tResourceGroupName:        example_primaryCache.ResourceGroupName,\n\t\t\tLinkedRedisCacheId:       example_secondaryCache.ID(),\n\t\t\tLinkedRedisCacheLocation: example_secondaryCache.Location,\n\t\t\tServerRole:               pulumi.String(\"Secondary\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRedis can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:redis/linkedServer:LinkedServer example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/Redis/cache1/linkedServers/cache2\n```\n\n ",
      "inputProperties": {
        "linkedRedisCacheId": {
          "description": "The ID of the linked Redis cache. Changing this forces a new Redis to be created.\n",
          "type": "string"
        },
        "linkedRedisCacheLocation": {
          "description": "The location of the linked Redis cache. Changing this forces a new Redis to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Redis caches exists. Changing this forces a new Redis to be created.\n",
          "type": "string"
        },
        "serverRole": {
          "description": "The role of the linked Redis cache (eg \"Secondary\"). Changing this forces a new Redis to be created.\n",
          "type": "string"
        },
        "targetRedisCacheName": {
          "description": "The name of Redis cache to link with. Changing this forces a new Redis to be created. (eg The primary role)\n",
          "type": "string"
        }
      },
      "properties": {
        "linkedRedisCacheId": {
          "description": "The ID of the linked Redis cache. Changing this forces a new Redis to be created.\n",
          "type": "string"
        },
        "linkedRedisCacheLocation": {
          "description": "The location of the linked Redis cache. Changing this forces a new Redis to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the linked server.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Redis caches exists. Changing this forces a new Redis to be created.\n",
          "type": "string"
        },
        "serverRole": {
          "description": "The role of the linked Redis cache (eg \"Secondary\"). Changing this forces a new Redis to be created.\n",
          "type": "string"
        },
        "targetRedisCacheName": {
          "description": "The name of Redis cache to link with. Changing this forces a new Redis to be created. (eg The primary role)\n",
          "type": "string"
        }
      },
      "required": [
        "linkedRedisCacheId",
        "linkedRedisCacheLocation",
        "name",
        "resourceGroupName",
        "serverRole",
        "targetRedisCacheName"
      ],
      "requiredInputs": [
        "linkedRedisCacheId",
        "linkedRedisCacheLocation",
        "resourceGroupName",
        "serverRole",
        "targetRedisCacheName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering LinkedServer resources.\n",
        "properties": {
          "linkedRedisCacheId": {
            "description": "The ID of the linked Redis cache. Changing this forces a new Redis to be created.\n",
            "type": "string"
          },
          "linkedRedisCacheLocation": {
            "description": "The location of the linked Redis cache. Changing this forces a new Redis to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the linked server.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Redis caches exists. Changing this forces a new Redis to be created.\n",
            "type": "string"
          },
          "serverRole": {
            "description": "The role of the linked Redis cache (eg \"Secondary\"). Changing this forces a new Redis to be created.\n",
            "type": "string"
          },
          "targetRedisCacheName": {
            "description": "The name of Redis cache to link with. Changing this forces a new Redis to be created. (eg The primary role)\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:relay/hybridConnection:HybridConnection": {
      "description": "Manages an Azure Relay Hybrid Connection.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.relay.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Standard\",\n    tags: {\n        source: \"managed\",\n    },\n});\nconst exampleHybridConnection = new azure.relay.HybridConnection(\"exampleHybridConnection\", {\n    resourceGroupName: exampleResourceGroup.name,\n    relayNamespaceName: exampleNamespace.name,\n    requiresClientAuthorization: false,\n    userMetadata: \"testmetadata\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.relay.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Standard\",\n    tags={\n        \"source\": \"managed\",\n    })\nexample_hybrid_connection = azure.relay.HybridConnection(\"exampleHybridConnection\",\n    resource_group_name=example_resource_group.name,\n    relay_namespace_name=example_namespace.name,\n    requires_client_authorization=False,\n    user_metadata=\"testmetadata\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.Relay.Namespace(\"exampleNamespace\", new Azure.Relay.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"managed\" },\n            },\n        });\n        var exampleHybridConnection = new Azure.Relay.HybridConnection(\"exampleHybridConnection\", new Azure.Relay.HybridConnectionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            RelayNamespaceName = exampleNamespace.Name,\n            RequiresClientAuthorization = false,\n            UserMetadata = \"testmetadata\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/relay\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := relay.NewNamespace(ctx, \"exampleNamespace\", \u0026relay.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"managed\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = relay.NewHybridConnection(ctx, \"exampleHybridConnection\", \u0026relay.HybridConnectionArgs{\n\t\t\tResourceGroupName:           exampleResourceGroup.Name,\n\t\t\tRelayNamespaceName:          exampleNamespace.Name,\n\t\t\tRequiresClientAuthorization: pulumi.Bool(false),\n\t\t\tUserMetadata:                pulumi.String(\"testmetadata\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRelay Hybrid Connection's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:relay/hybridConnection:HybridConnection relay1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Relay/namespaces/relay1/hybridConnections/hconn1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "Specifies the name of the Azure Relay Hybrid Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "relayNamespaceName": {
          "description": "The name of the Azure Relay in which to create the Azure Relay Hybrid Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "requiresClientAuthorization": {
          "description": "Specify if client authorization is needed for this hybrid connection. True by default. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Azure Relay Hybrid Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "userMetadata": {
          "description": "The usermetadata is a placeholder to store user-defined string data for the hybrid connection endpoint. For example, it can be used to store descriptive data, such as a list of teams and their contact information. Also, user-defined configuration settings can be stored.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the Azure Relay Hybrid Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "relayNamespaceName": {
          "description": "The name of the Azure Relay in which to create the Azure Relay Hybrid Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "requiresClientAuthorization": {
          "description": "Specify if client authorization is needed for this hybrid connection. True by default. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Azure Relay Hybrid Connection. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "userMetadata": {
          "description": "The usermetadata is a placeholder to store user-defined string data for the hybrid connection endpoint. For example, it can be used to store descriptive data, such as a list of teams and their contact information. Also, user-defined configuration settings can be stored.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "relayNamespaceName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "relayNamespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering HybridConnection resources.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Azure Relay Hybrid Connection. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "relayNamespaceName": {
            "description": "The name of the Azure Relay in which to create the Azure Relay Hybrid Connection. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "requiresClientAuthorization": {
            "description": "Specify if client authorization is needed for this hybrid connection. True by default. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Azure Relay Hybrid Connection. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "userMetadata": {
            "description": "The usermetadata is a placeholder to store user-defined string data for the hybrid connection endpoint. For example, it can be used to store descriptive data, such as a list of teams and their contact information. Also, user-defined configuration settings can be stored.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:relay/hybridConnectionAuthorizationRule:HybridConnectionAuthorizationRule": {
      "description": "Manages an Azure Relay Hybrid Connection Authorization Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.relay.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Standard\",\n    tags: {\n        source: \"terraform\",\n    },\n});\nconst exampleHybridConnection = new azure.relay.HybridConnection(\"exampleHybridConnection\", {\n    resourceGroupName: exampleResourceGroup.name,\n    relayNamespaceName: exampleNamespace.name,\n    requiresClientAuthorization: false,\n    userMetadata: \"testmetadata\",\n});\nconst exampleHybridConnectionAuthorizationRule = new azure.relay.HybridConnectionAuthorizationRule(\"exampleHybridConnectionAuthorizationRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    hybridConnectionName: exampleHybridConnection.name,\n    namespaceName: exampleNamespace.name,\n    listen: true,\n    send: true,\n    manage: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.relay.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Standard\",\n    tags={\n        \"source\": \"terraform\",\n    })\nexample_hybrid_connection = azure.relay.HybridConnection(\"exampleHybridConnection\",\n    resource_group_name=example_resource_group.name,\n    relay_namespace_name=example_namespace.name,\n    requires_client_authorization=False,\n    user_metadata=\"testmetadata\")\nexample_hybrid_connection_authorization_rule = azure.relay.HybridConnectionAuthorizationRule(\"exampleHybridConnectionAuthorizationRule\",\n    resource_group_name=example_resource_group.name,\n    hybrid_connection_name=example_hybrid_connection.name,\n    namespace_name=example_namespace.name,\n    listen=True,\n    send=True,\n    manage=False)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.Relay.Namespace(\"exampleNamespace\", new Azure.Relay.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"terraform\" },\n            },\n        });\n        var exampleHybridConnection = new Azure.Relay.HybridConnection(\"exampleHybridConnection\", new Azure.Relay.HybridConnectionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            RelayNamespaceName = exampleNamespace.Name,\n            RequiresClientAuthorization = false,\n            UserMetadata = \"testmetadata\",\n        });\n        var exampleHybridConnectionAuthorizationRule = new Azure.Relay.HybridConnectionAuthorizationRule(\"exampleHybridConnectionAuthorizationRule\", new Azure.Relay.HybridConnectionAuthorizationRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            HybridConnectionName = exampleHybridConnection.Name,\n            NamespaceName = exampleNamespace.Name,\n            Listen = true,\n            Send = true,\n            Manage = false,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/relay\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := relay.NewNamespace(ctx, \"exampleNamespace\", \u0026relay.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"terraform\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleHybridConnection, err := relay.NewHybridConnection(ctx, \"exampleHybridConnection\", \u0026relay.HybridConnectionArgs{\n\t\t\tResourceGroupName:           exampleResourceGroup.Name,\n\t\t\tRelayNamespaceName:          exampleNamespace.Name,\n\t\t\tRequiresClientAuthorization: pulumi.Bool(false),\n\t\t\tUserMetadata:                pulumi.String(\"testmetadata\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = relay.NewHybridConnectionAuthorizationRule(ctx, \"exampleHybridConnectionAuthorizationRule\", \u0026relay.HybridConnectionAuthorizationRuleArgs{\n\t\t\tResourceGroupName:    exampleResourceGroup.Name,\n\t\t\tHybridConnectionName: exampleHybridConnection.Name,\n\t\t\tNamespaceName:        exampleNamespace.Name,\n\t\t\tListen:               pulumi.Bool(true),\n\t\t\tSend:                 pulumi.Bool(true),\n\t\t\tManage:               pulumi.Bool(false),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure Relay Hybrid Connection Authorization Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:relay/hybridConnectionAuthorizationRule:HybridConnectionAuthorizationRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Relay/namespaces/namespace1/hybridConnections/connection1/authorizationRules/rule1\n```\n\n ",
      "inputProperties": {
        "hybridConnectionName": {
          "description": "Name of the Azure Relay Hybrid Connection for which this Azure Relay Hybrid Connection Authorization Rule will be created. Changing this forces a new Azure Relay Hybrid Connection Authorization Rule to be created.\n",
          "type": "string"
        },
        "listen": {
          "description": "Grants listen access to this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Grants manage access to this Authorization Rule. When this property is `true` - both `listen` and `send` must be set to `true` too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name which should be used for this Azure Relay Hybrid Connection Authorization Rule. Changing this forces a new Azure Relay Hybrid Connection Authorization Rule to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Name of the Azure Relay Namespace for which this Azure Relay Hybrid Connection Authorization Rule will be created. Changing this forces a new Azure Relay Hybrid Connection Authorization Rule to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Azure Relay Hybrid Connection Authorization Rule should exist. Changing this forces a new Azure Relay Hybrid Connection Authorization Rule to be created.\n",
          "type": "string"
        },
        "send": {
          "description": "Grants send access to this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "hybridConnectionName": {
          "description": "Name of the Azure Relay Hybrid Connection for which this Azure Relay Hybrid Connection Authorization Rule will be created. Changing this forces a new Azure Relay Hybrid Connection Authorization Rule to be created.\n",
          "type": "string"
        },
        "listen": {
          "description": "Grants listen access to this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Grants manage access to this Authorization Rule. When this property is `true` - both `listen` and `send` must be set to `true` too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name which should be used for this Azure Relay Hybrid Connection Authorization Rule. Changing this forces a new Azure Relay Hybrid Connection Authorization Rule to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Name of the Azure Relay Namespace for which this Azure Relay Hybrid Connection Authorization Rule will be created. Changing this forces a new Azure Relay Hybrid Connection Authorization Rule to be created.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The Primary Connection String for the Azure Relay Hybrid Connection Authorization Rule.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The Primary Key for the Azure Relay Hybrid Connection Authorization Rule.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Azure Relay Hybrid Connection Authorization Rule should exist. Changing this forces a new Azure Relay Hybrid Connection Authorization Rule to be created.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The Secondary Connection String for the Azure Relay Hybrid Connection Authorization Rule.\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The Secondary Key for the Azure Relay Hybrid Connection Authorization Rule.\n",
          "type": "string"
        },
        "send": {
          "description": "Grants send access to this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "hybridConnectionName",
        "name",
        "namespaceName",
        "primaryConnectionString",
        "primaryKey",
        "resourceGroupName",
        "secondaryConnectionString",
        "secondaryKey"
      ],
      "requiredInputs": [
        "hybridConnectionName",
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering HybridConnectionAuthorizationRule resources.\n",
        "properties": {
          "hybridConnectionName": {
            "description": "Name of the Azure Relay Hybrid Connection for which this Azure Relay Hybrid Connection Authorization Rule will be created. Changing this forces a new Azure Relay Hybrid Connection Authorization Rule to be created.\n",
            "type": "string"
          },
          "listen": {
            "description": "Grants listen access to this Authorization Rule. Defaults to `false`.\n",
            "type": "boolean"
          },
          "manage": {
            "description": "Grants manage access to this Authorization Rule. When this property is `true` - both `listen` and `send` must be set to `true` too. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name which should be used for this Azure Relay Hybrid Connection Authorization Rule. Changing this forces a new Azure Relay Hybrid Connection Authorization Rule to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Name of the Azure Relay Namespace for which this Azure Relay Hybrid Connection Authorization Rule will be created. Changing this forces a new Azure Relay Hybrid Connection Authorization Rule to be created.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the Azure Relay Hybrid Connection Authorization Rule.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the Azure Relay Hybrid Connection Authorization Rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Azure Relay Hybrid Connection Authorization Rule should exist. Changing this forces a new Azure Relay Hybrid Connection Authorization Rule to be created.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the Azure Relay Hybrid Connection Authorization Rule.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the Azure Relay Hybrid Connection Authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "description": "Grants send access to this Authorization Rule. Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:relay/namespace:Namespace": {
      "description": "Manages an Azure Relay Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.relay.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.relay.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.Relay.Namespace(\"exampleNamespace\", new Azure.Relay.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/relay\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = relay.NewNamespace(ctx, \"exampleNamespace\", \u0026relay.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure Relay Namespace's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:relay/namespace:Namespace relay1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Relay/namespaces/relay1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the Azure Relay Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Azure Relay Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Azure Relay Namespace.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The name of the SKU to use. At this time the only supported value is `Standard`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the Azure Relay Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "metricId": {
          "description": "The Identifier for Azure Insights metrics.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Azure Relay Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The primary connection string for the authorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The primary access key for the authorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Azure Relay Namespace.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The secondary connection string for the authorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The secondary access key for the authorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "skuName": {
          "description": "The name of the SKU to use. At this time the only supported value is `Standard`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "metricId",
        "name",
        "primaryConnectionString",
        "primaryKey",
        "resourceGroupName",
        "secondaryConnectionString",
        "secondaryKey",
        "skuName"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "skuName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Namespace resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the Azure Relay Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "metricId": {
            "description": "The Identifier for Azure Insights metrics.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Azure Relay Namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The primary connection string for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The primary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Azure Relay Namespace.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The secondary connection string for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The secondary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "skuName": {
            "description": "The name of the SKU to use. At this time the only supported value is `Standard`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:relay/namespaceAuthorizationRule:NamespaceAuthorizationRule": {
      "description": "Manages an Azure Relay Namespace Authorization Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.relay.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    skuName: \"Standard\",\n    tags: {\n        source: \"terraform\",\n    },\n});\nconst exampleNamespaceAuthorizationRule = new azure.relay.NamespaceAuthorizationRule(\"exampleNamespaceAuthorizationRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    listen: true,\n    send: true,\n    manage: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.relay.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku_name=\"Standard\",\n    tags={\n        \"source\": \"terraform\",\n    })\nexample_namespace_authorization_rule = azure.relay.NamespaceAuthorizationRule(\"exampleNamespaceAuthorizationRule\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    listen=True,\n    send=True,\n    manage=False)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.Relay.Namespace(\"exampleNamespace\", new Azure.Relay.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            SkuName = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"terraform\" },\n            },\n        });\n        var exampleNamespaceAuthorizationRule = new Azure.Relay.NamespaceAuthorizationRule(\"exampleNamespaceAuthorizationRule\", new Azure.Relay.NamespaceAuthorizationRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            Listen = true,\n            Send = true,\n            Manage = false,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/relay\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := relay.NewNamespace(ctx, \"exampleNamespace\", \u0026relay.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSkuName:           pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"terraform\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = relay.NewNamespaceAuthorizationRule(ctx, \"exampleNamespaceAuthorizationRule\", \u0026relay.NamespaceAuthorizationRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tListen:            pulumi.Bool(true),\n\t\t\tSend:              pulumi.Bool(true),\n\t\t\tManage:            pulumi.Bool(false),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure Relay Namespace Authorization Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:relay/namespaceAuthorizationRule:NamespaceAuthorizationRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Relay/namespaces/namespace1/authorizationRules/rule1\n```\n\n ",
      "inputProperties": {
        "listen": {
          "description": "Grants listen access to this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Grants manage access to this Authorization Rule. When this property is `true` - both `listen` and `send` must be set to `true` too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name which should be used for this Azure Relay Namespace Authorization Rule. Changing this forces a new Azure Relay Namespace Authorization Rule to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Name of the Azure Relay Namespace for which this Azure Relay Namespace Authorization Rule will be created. Changing this forces a new Azure Relay Namespace Authorization Rule to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Azure Relay Namespace Authorization Rule should exist. Changing this forces a new Azure Relay Namespace Authorization Rule to be created.\n",
          "type": "string"
        },
        "send": {
          "description": "Grants send access to this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "listen": {
          "description": "Grants listen access to this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Grants manage access to this Authorization Rule. When this property is `true` - both `listen` and `send` must be set to `true` too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name which should be used for this Azure Relay Namespace Authorization Rule. Changing this forces a new Azure Relay Namespace Authorization Rule to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Name of the Azure Relay Namespace for which this Azure Relay Namespace Authorization Rule will be created. Changing this forces a new Azure Relay Namespace Authorization Rule to be created.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The Primary Connection String for the Azure Relay Namespace Authorization Rule.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The Primary Key for the Azure Relay Namespace Authorization Rule.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Azure Relay Namespace Authorization Rule should exist. Changing this forces a new Azure Relay Namespace Authorization Rule to be created.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The Secondary Connection String for the Azure Relay Namespace Authorization Rule.\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The Secondary Key for the Azure Relay Namespace Authorization Rule.\n",
          "type": "string"
        },
        "send": {
          "description": "Grants send access to this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "namespaceName",
        "primaryConnectionString",
        "primaryKey",
        "resourceGroupName",
        "secondaryConnectionString",
        "secondaryKey"
      ],
      "requiredInputs": [
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NamespaceAuthorizationRule resources.\n",
        "properties": {
          "listen": {
            "description": "Grants listen access to this Authorization Rule. Defaults to `false`.\n",
            "type": "boolean"
          },
          "manage": {
            "description": "Grants manage access to this Authorization Rule. When this property is `true` - both `listen` and `send` must be set to `true` too. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name which should be used for this Azure Relay Namespace Authorization Rule. Changing this forces a new Azure Relay Namespace Authorization Rule to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Name of the Azure Relay Namespace for which this Azure Relay Namespace Authorization Rule will be created. Changing this forces a new Azure Relay Namespace Authorization Rule to be created.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the Azure Relay Namespace Authorization Rule.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the Azure Relay Namespace Authorization Rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Azure Relay Namespace Authorization Rule should exist. Changing this forces a new Azure Relay Namespace Authorization Rule to be created.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the Azure Relay Namespace Authorization Rule.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the Azure Relay Namespace Authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "description": "Grants send access to this Authorization Rule. Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:role/assignment:Assignment": {
      "deprecationMessage": "azure.role.Assignment has been deprecated in favor of azure.authorization.Assignment",
      "description": "Assigns a given Principal (User or Group) to a given Role.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Using A Built-In Role)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primary = azure.core.getSubscription({});\nconst exampleClientConfig = azure.core.getClientConfig({});\nconst exampleAssignment = new azure.authorization.Assignment(\"exampleAssignment\", {\n    scope: primary.then(primary =\u003e primary.id),\n    roleDefinitionName: \"Reader\",\n    principalId: exampleClientConfig.then(exampleClientConfig =\u003e exampleClientConfig.objectId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary = azure.core.get_subscription()\nexample_client_config = azure.core.get_client_config()\nexample_assignment = azure.authorization.Assignment(\"exampleAssignment\",\n    scope=primary.id,\n    role_definition_name=\"Reader\",\n    principal_id=example_client_config.object_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var primary = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var exampleClientConfig = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleAssignment = new Azure.Authorization.Assignment(\"exampleAssignment\", new Azure.Authorization.AssignmentArgs\n        {\n            Scope = primary.Apply(primary =\u003e primary.Id),\n            RoleDefinitionName = \"Reader\",\n            PrincipalId = exampleClientConfig.Apply(exampleClientConfig =\u003e exampleClientConfig.ObjectId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleClientConfig, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewAssignment(ctx, \"exampleAssignment\", \u0026authorization.AssignmentArgs{\n\t\t\tScope:              pulumi.String(primary.Id),\n\t\t\tRoleDefinitionName: pulumi.String(\"Reader\"),\n\t\t\tPrincipalId:        pulumi.String(exampleClientConfig.ObjectId),\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\n{{% /example %}}\n{{% example %}}\n### Custom Role \u0026 Service Principal)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primary = azure.core.getSubscription({});\nconst exampleClientConfig = azure.core.getClientConfig({});\nconst exampleRoleDefinition = new azure.authorization.RoleDefinition(\"exampleRoleDefinition\", {\n    roleDefinitionId: \"00000000-0000-0000-0000-000000000000\",\n    scope: primary.then(primary =\u003e primary.id),\n    permissions: [{\n        actions: [\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\n        notActions: [],\n    }],\n    assignableScopes: [primary.then(primary =\u003e primary.id)],\n});\nconst exampleAssignment = new azure.authorization.Assignment(\"exampleAssignment\", {\n    name: \"00000000-0000-0000-0000-000000000000\",\n    scope: primary.then(primary =\u003e primary.id),\n    roleDefinitionId: exampleRoleDefinition.roleDefinitionResourceId,\n    principalId: exampleClientConfig.then(exampleClientConfig =\u003e exampleClientConfig.objectId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary = azure.core.get_subscription()\nexample_client_config = azure.core.get_client_config()\nexample_role_definition = azure.authorization.RoleDefinition(\"exampleRoleDefinition\",\n    role_definition_id=\"00000000-0000-0000-0000-000000000000\",\n    scope=primary.id,\n    permissions=[azure.authorization.RoleDefinitionPermissionArgs(\n        actions=[\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\n        not_actions=[],\n    )],\n    assignable_scopes=[primary.id])\nexample_assignment = azure.authorization.Assignment(\"exampleAssignment\",\n    name=\"00000000-0000-0000-0000-000000000000\",\n    scope=primary.id,\n    role_definition_id=example_role_definition.role_definition_resource_id,\n    principal_id=example_client_config.object_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var primary = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var exampleClientConfig = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleRoleDefinition = new Azure.Authorization.RoleDefinition(\"exampleRoleDefinition\", new Azure.Authorization.RoleDefinitionArgs\n        {\n            RoleDefinitionId = \"00000000-0000-0000-0000-000000000000\",\n            Scope = primary.Apply(primary =\u003e primary.Id),\n            Permissions = \n            {\n                new Azure.Authorization.Inputs.RoleDefinitionPermissionArgs\n                {\n                    Actions = \n                    {\n                        \"Microsoft.Resources/subscriptions/resourceGroups/read\",\n                    },\n                    NotActions = {},\n                },\n            },\n            AssignableScopes = \n            {\n                primary.Apply(primary =\u003e primary.Id),\n            },\n        });\n        var exampleAssignment = new Azure.Authorization.Assignment(\"exampleAssignment\", new Azure.Authorization.AssignmentArgs\n        {\n            Name = \"00000000-0000-0000-0000-000000000000\",\n            Scope = primary.Apply(primary =\u003e primary.Id),\n            RoleDefinitionId = exampleRoleDefinition.RoleDefinitionResourceId,\n            PrincipalId = exampleClientConfig.Apply(exampleClientConfig =\u003e exampleClientConfig.ObjectId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleClientConfig, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRoleDefinition, err := authorization.NewRoleDefinition(ctx, \"exampleRoleDefinition\", \u0026authorization.RoleDefinitionArgs{\n\t\t\tRoleDefinitionId: pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tScope:            pulumi.String(primary.Id),\n\t\t\tPermissions: authorization.RoleDefinitionPermissionArray{\n\t\t\t\t\u0026authorization.RoleDefinitionPermissionArgs{\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Microsoft.Resources/subscriptions/resourceGroups/read\"),\n\t\t\t\t\t},\n\t\t\t\t\tNotActions: pulumi.StringArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAssignableScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(primary.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewAssignment(ctx, \"exampleAssignment\", \u0026authorization.AssignmentArgs{\n\t\t\tName:             pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tScope:            pulumi.String(primary.Id),\n\t\t\tRoleDefinitionId: exampleRoleDefinition.RoleDefinitionResourceId,\n\t\t\tPrincipalId:      pulumi.String(exampleClientConfig.ObjectId),\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\n{{% /example %}}\n{{% example %}}\n### Custom Role \u0026 User)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primary = azure.core.getSubscription({});\nconst exampleClientConfig = azure.core.getClientConfig({});\nconst exampleRoleDefinition = new azure.authorization.RoleDefinition(\"exampleRoleDefinition\", {\n    roleDefinitionId: \"00000000-0000-0000-0000-000000000000\",\n    scope: primary.then(primary =\u003e primary.id),\n    permissions: [{\n        actions: [\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\n        notActions: [],\n    }],\n    assignableScopes: [primary.then(primary =\u003e primary.id)],\n});\nconst exampleAssignment = new azure.authorization.Assignment(\"exampleAssignment\", {\n    name: \"00000000-0000-0000-0000-000000000000\",\n    scope: primary.then(primary =\u003e primary.id),\n    roleDefinitionId: exampleRoleDefinition.roleDefinitionResourceId,\n    principalId: exampleClientConfig.then(exampleClientConfig =\u003e exampleClientConfig.objectId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary = azure.core.get_subscription()\nexample_client_config = azure.core.get_client_config()\nexample_role_definition = azure.authorization.RoleDefinition(\"exampleRoleDefinition\",\n    role_definition_id=\"00000000-0000-0000-0000-000000000000\",\n    scope=primary.id,\n    permissions=[azure.authorization.RoleDefinitionPermissionArgs(\n        actions=[\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\n        not_actions=[],\n    )],\n    assignable_scopes=[primary.id])\nexample_assignment = azure.authorization.Assignment(\"exampleAssignment\",\n    name=\"00000000-0000-0000-0000-000000000000\",\n    scope=primary.id,\n    role_definition_id=example_role_definition.role_definition_resource_id,\n    principal_id=example_client_config.object_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var primary = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var exampleClientConfig = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleRoleDefinition = new Azure.Authorization.RoleDefinition(\"exampleRoleDefinition\", new Azure.Authorization.RoleDefinitionArgs\n        {\n            RoleDefinitionId = \"00000000-0000-0000-0000-000000000000\",\n            Scope = primary.Apply(primary =\u003e primary.Id),\n            Permissions = \n            {\n                new Azure.Authorization.Inputs.RoleDefinitionPermissionArgs\n                {\n                    Actions = \n                    {\n                        \"Microsoft.Resources/subscriptions/resourceGroups/read\",\n                    },\n                    NotActions = {},\n                },\n            },\n            AssignableScopes = \n            {\n                primary.Apply(primary =\u003e primary.Id),\n            },\n        });\n        var exampleAssignment = new Azure.Authorization.Assignment(\"exampleAssignment\", new Azure.Authorization.AssignmentArgs\n        {\n            Name = \"00000000-0000-0000-0000-000000000000\",\n            Scope = primary.Apply(primary =\u003e primary.Id),\n            RoleDefinitionId = exampleRoleDefinition.RoleDefinitionResourceId,\n            PrincipalId = exampleClientConfig.Apply(exampleClientConfig =\u003e exampleClientConfig.ObjectId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleClientConfig, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRoleDefinition, err := authorization.NewRoleDefinition(ctx, \"exampleRoleDefinition\", \u0026authorization.RoleDefinitionArgs{\n\t\t\tRoleDefinitionId: pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tScope:            pulumi.String(primary.Id),\n\t\t\tPermissions: authorization.RoleDefinitionPermissionArray{\n\t\t\t\t\u0026authorization.RoleDefinitionPermissionArgs{\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Microsoft.Resources/subscriptions/resourceGroups/read\"),\n\t\t\t\t\t},\n\t\t\t\t\tNotActions: pulumi.StringArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAssignableScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(primary.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewAssignment(ctx, \"exampleAssignment\", \u0026authorization.AssignmentArgs{\n\t\t\tName:             pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tScope:            pulumi.String(primary.Id),\n\t\t\tRoleDefinitionId: exampleRoleDefinition.RoleDefinitionResourceId,\n\t\t\tPrincipalId:      pulumi.String(exampleClientConfig.ObjectId),\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\n{{% /example %}}\n{{% example %}}\n### Custom Role \u0026 Management Group)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primary = azure.core.getSubscription({});\nconst exampleClientConfig = azure.core.getClientConfig({});\nconst exampleGroup = azure.management.getGroup({});\nconst exampleRoleDefinition = new azure.authorization.RoleDefinition(\"exampleRoleDefinition\", {\n    roleDefinitionId: \"00000000-0000-0000-0000-000000000000\",\n    scope: primary.then(primary =\u003e primary.id),\n    permissions: [{\n        actions: [\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\n        notActions: [],\n    }],\n    assignableScopes: [primary.then(primary =\u003e primary.id)],\n});\nconst exampleAssignment = new azure.authorization.Assignment(\"exampleAssignment\", {\n    name: \"00000000-0000-0000-0000-000000000000\",\n    scope: data.azurerm_management_group.primary.id,\n    roleDefinitionId: exampleRoleDefinition.roleDefinitionResourceId,\n    principalId: exampleClientConfig.then(exampleClientConfig =\u003e exampleClientConfig.objectId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary = azure.core.get_subscription()\nexample_client_config = azure.core.get_client_config()\nexample_group = azure.management.get_group()\nexample_role_definition = azure.authorization.RoleDefinition(\"exampleRoleDefinition\",\n    role_definition_id=\"00000000-0000-0000-0000-000000000000\",\n    scope=primary.id,\n    permissions=[azure.authorization.RoleDefinitionPermissionArgs(\n        actions=[\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\n        not_actions=[],\n    )],\n    assignable_scopes=[primary.id])\nexample_assignment = azure.authorization.Assignment(\"exampleAssignment\",\n    name=\"00000000-0000-0000-0000-000000000000\",\n    scope=data[\"azurerm_management_group\"][\"primary\"][\"id\"],\n    role_definition_id=example_role_definition.role_definition_resource_id,\n    principal_id=example_client_config.object_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var primary = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var exampleClientConfig = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleGroup = Output.Create(Azure.Management.GetGroup.InvokeAsync());\n        var exampleRoleDefinition = new Azure.Authorization.RoleDefinition(\"exampleRoleDefinition\", new Azure.Authorization.RoleDefinitionArgs\n        {\n            RoleDefinitionId = \"00000000-0000-0000-0000-000000000000\",\n            Scope = primary.Apply(primary =\u003e primary.Id),\n            Permissions = \n            {\n                new Azure.Authorization.Inputs.RoleDefinitionPermissionArgs\n                {\n                    Actions = \n                    {\n                        \"Microsoft.Resources/subscriptions/resourceGroups/read\",\n                    },\n                    NotActions = {},\n                },\n            },\n            AssignableScopes = \n            {\n                primary.Apply(primary =\u003e primary.Id),\n            },\n        });\n        var exampleAssignment = new Azure.Authorization.Assignment(\"exampleAssignment\", new Azure.Authorization.AssignmentArgs\n        {\n            Name = \"00000000-0000-0000-0000-000000000000\",\n            Scope = data.Azurerm_management_group.Primary.Id,\n            RoleDefinitionId = exampleRoleDefinition.RoleDefinitionResourceId,\n            PrincipalId = exampleClientConfig.Apply(exampleClientConfig =\u003e exampleClientConfig.ObjectId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/management\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleClientConfig, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = management.LookupGroup(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRoleDefinition, err := authorization.NewRoleDefinition(ctx, \"exampleRoleDefinition\", \u0026authorization.RoleDefinitionArgs{\n\t\t\tRoleDefinitionId: pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tScope:            pulumi.String(primary.Id),\n\t\t\tPermissions: authorization.RoleDefinitionPermissionArray{\n\t\t\t\t\u0026authorization.RoleDefinitionPermissionArgs{\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Microsoft.Resources/subscriptions/resourceGroups/read\"),\n\t\t\t\t\t},\n\t\t\t\t\tNotActions: pulumi.StringArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAssignableScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(primary.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewAssignment(ctx, \"exampleAssignment\", \u0026authorization.AssignmentArgs{\n\t\t\tName:             pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tScope:            pulumi.Any(data.Azurerm_management_group.Primary.Id),\n\t\t\tRoleDefinitionId: exampleRoleDefinition.RoleDefinitionResourceId,\n\t\t\tPrincipalId:      pulumi.String(exampleClientConfig.ObjectId),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRole Assignments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:role/assignment:Assignment example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000\n```\n\n - for scope `Subscription`, the id format is `/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000` - for scope `Resource Group`, the id format is `/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000` /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000|00000000-0000-0000-0000-000000000000 ",
      "inputProperties": {
        "condition": {
          "description": "The condition that limits the resources that the role can be assigned to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "conditionVersion": {
          "description": "The version of the condition. Possible values are `1.0` or `2.0`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "delegatedManagedIdentityResourceId": {
          "description": "The delegated Azure Resource Id which contains a Managed Identity. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for this Role Assignment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "A unique UUID/GUID for this Role Assignment - one will be generated if not specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "principalId": {
          "description": "The ID of the Principal (User, Group or Service Principal) to assign the Role Definition to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roleDefinitionId": {
          "description": "The Scoped-ID of the Role Definition. Changing this forces a new resource to be created. Conflicts with `role_definition_name`.\n",
          "type": "string"
        },
        "roleDefinitionName": {
          "description": "The name of a built-in Role. Changing this forces a new resource to be created. Conflicts with `role_definition_id`.\n",
          "type": "string"
        },
        "scope": {
          "description": "The scope at which the Role Assignment applies to, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`, or `/providers/Microsoft.Management/managementGroups/myMG`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skipServicePrincipalAadCheck": {
          "description": "If the `principal_id` is a newly provisioned `Service Principal` set this value to `true` to skip the `Azure Active Directory` check which may fail due to replication lag. This argument is only valid if the `principal_id` is a `Service Principal` identity. If it is not a `Service Principal` identity it will cause the role assignment to fail. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "condition": {
          "description": "The condition that limits the resources that the role can be assigned to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "conditionVersion": {
          "description": "The version of the condition. Possible values are `1.0` or `2.0`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "delegatedManagedIdentityResourceId": {
          "description": "The delegated Azure Resource Id which contains a Managed Identity. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description for this Role Assignment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "A unique UUID/GUID for this Role Assignment - one will be generated if not specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "principalId": {
          "description": "The ID of the Principal (User, Group or Service Principal) to assign the Role Definition to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "principalType": {
          "description": "The type of the `principal_id`, e.g. User, Group, Service Principal, Application, etc.\n",
          "type": "string"
        },
        "roleDefinitionId": {
          "description": "The Scoped-ID of the Role Definition. Changing this forces a new resource to be created. Conflicts with `role_definition_name`.\n",
          "type": "string"
        },
        "roleDefinitionName": {
          "description": "The name of a built-in Role. Changing this forces a new resource to be created. Conflicts with `role_definition_id`.\n",
          "type": "string"
        },
        "scope": {
          "description": "The scope at which the Role Assignment applies to, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`, or `/providers/Microsoft.Management/managementGroups/myMG`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "skipServicePrincipalAadCheck": {
          "description": "If the `principal_id` is a newly provisioned `Service Principal` set this value to `true` to skip the `Azure Active Directory` check which may fail due to replication lag. This argument is only valid if the `principal_id` is a `Service Principal` identity. If it is not a `Service Principal` identity it will cause the role assignment to fail. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "principalId",
        "principalType",
        "roleDefinitionId",
        "roleDefinitionName",
        "scope",
        "skipServicePrincipalAadCheck"
      ],
      "requiredInputs": [
        "principalId",
        "scope"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Assignment resources.\n",
        "properties": {
          "condition": {
            "description": "The condition that limits the resources that the role can be assigned to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "conditionVersion": {
            "description": "The version of the condition. Possible values are `1.0` or `2.0`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "delegatedManagedIdentityResourceId": {
            "description": "The delegated Azure Resource Id which contains a Managed Identity. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description for this Role Assignment. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "A unique UUID/GUID for this Role Assignment - one will be generated if not specified. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "principalId": {
            "description": "The ID of the Principal (User, Group or Service Principal) to assign the Role Definition to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "principalType": {
            "description": "The type of the `principal_id`, e.g. User, Group, Service Principal, Application, etc.\n",
            "type": "string"
          },
          "roleDefinitionId": {
            "description": "The Scoped-ID of the Role Definition. Changing this forces a new resource to be created. Conflicts with `role_definition_name`.\n",
            "type": "string"
          },
          "roleDefinitionName": {
            "description": "The name of a built-in Role. Changing this forces a new resource to be created. Conflicts with `role_definition_id`.\n",
            "type": "string"
          },
          "scope": {
            "description": "The scope at which the Role Assignment applies to, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`, or `/providers/Microsoft.Management/managementGroups/myMG`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "skipServicePrincipalAadCheck": {
            "description": "If the `principal_id` is a newly provisioned `Service Principal` set this value to `true` to skip the `Azure Active Directory` check which may fail due to replication lag. This argument is only valid if the `principal_id` is a `Service Principal` identity. If it is not a `Service Principal` identity it will cause the role assignment to fail. Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:role/definition:Definition": {
      "deprecationMessage": "azure.role.Definition has been deprecated in favor of azure.authorization.RoleDefinition",
      "description": "Manages a custom Role Definition, used to assign Roles to Users/Principals. See ['Understand role definitions'](https://docs.microsoft.com/en-us/azure/role-based-access-control/role-definitions) in the Azure documentation for more details.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primary = azure.core.getSubscription({});\nconst example = new azure.authorization.RoleDefinition(\"example\", {\n    scope: primary.then(primary =\u003e primary.id),\n    description: \"This is a custom role created\",\n    permissions: [{\n        actions: [\"*\"],\n        notActions: [],\n    }],\n    assignableScopes: [primary.then(primary =\u003e primary.id)],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary = azure.core.get_subscription()\nexample = azure.authorization.RoleDefinition(\"example\",\n    scope=primary.id,\n    description=\"This is a custom role created\",\n    permissions=[azure.authorization.RoleDefinitionPermissionArgs(\n        actions=[\"*\"],\n        not_actions=[],\n    )],\n    assignable_scopes=[primary.id])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var primary = Output.Create(Azure.Core.GetSubscription.InvokeAsync());\n        var example = new Azure.Authorization.RoleDefinition(\"example\", new Azure.Authorization.RoleDefinitionArgs\n        {\n            Scope = primary.Apply(primary =\u003e primary.Id),\n            Description = \"This is a custom role created\",\n            Permissions = \n            {\n                new Azure.Authorization.Inputs.RoleDefinitionPermissionArgs\n                {\n                    Actions = \n                    {\n                        \"*\",\n                    },\n                    NotActions = {},\n                },\n            },\n            AssignableScopes = \n            {\n                primary.Apply(primary =\u003e primary.Id),\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewRoleDefinition(ctx, \"example\", \u0026authorization.RoleDefinitionArgs{\n\t\t\tScope:       pulumi.String(primary.Id),\n\t\t\tDescription: pulumi.String(\"This is a custom role created\"),\n\t\t\tPermissions: authorization.RoleDefinitionPermissionArray{\n\t\t\t\t\u0026authorization.RoleDefinitionPermissionArgs{\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tNotActions: pulumi.StringArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAssignableScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(primary.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRole Definitions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:role/definition:Definition example \"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000|/subscriptions/00000000-0000-0000-0000-000000000000\"\n```\n\n ",
      "inputProperties": {
        "assignableScopes": {
          "description": "One or more assignable scopes for this Role Definition, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "A description of the Role Definition.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Role Definition. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "permissions": {
          "description": "A `permissions` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:role/DefinitionPermission:DefinitionPermission"
          },
          "type": "array"
        },
        "roleDefinitionId": {
          "description": "A unique UUID/GUID which identifies this role - one will be generated if not specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "scope": {
          "description": "The scope at which the Role Definition applies too, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`. It is recommended to use the first entry of the `assignable_scopes`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "assignableScopes": {
          "description": "One or more assignable scopes for this Role Definition, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "A description of the Role Definition.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Role Definition. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "permissions": {
          "description": "A `permissions` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:role/DefinitionPermission:DefinitionPermission"
          },
          "type": "array"
        },
        "roleDefinitionId": {
          "description": "A unique UUID/GUID which identifies this role - one will be generated if not specified. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roleDefinitionResourceId": {
          "description": "The Azure Resource Manager ID for the resource.\n",
          "type": "string"
        },
        "scope": {
          "description": "The scope at which the Role Definition applies too, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`. It is recommended to use the first entry of the `assignable_scopes`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "assignableScopes",
        "name",
        "roleDefinitionId",
        "roleDefinitionResourceId",
        "scope"
      ],
      "requiredInputs": [
        "scope"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Definition resources.\n",
        "properties": {
          "assignableScopes": {
            "description": "One or more assignable scopes for this Role Definition, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "A description of the Role Definition.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Role Definition. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "permissions": {
            "description": "A `permissions` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:role/DefinitionPermission:DefinitionPermission"
            },
            "type": "array"
          },
          "roleDefinitionId": {
            "description": "A unique UUID/GUID which identifies this role - one will be generated if not specified. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "roleDefinitionResourceId": {
            "description": "The Azure Resource Manager ID for the resource.\n",
            "type": "string"
          },
          "scope": {
            "description": "The scope at which the Role Definition applies too, such as `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333`, `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup`, or `/subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM`. It is recommended to use the first entry of the `assignable_scopes`. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:search/service:Service": {
      "description": "Manages a Search Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.search.Service(\"exampleService\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: \"standard\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.search.Service(\"exampleService\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=\"standard\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.Search.Service(\"exampleService\", new Azure.Search.ServiceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = \"standard\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/search\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = search.NewService(ctx, \"exampleService\", \u0026search.ServiceArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSku:               pulumi.String(\"standard\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSearch Services can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:search/service:Service example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Search/searchServices/service1\n```\n\n ",
      "inputProperties": {
        "allowedIps": {
          "description": "A list of IPv4 addresses or CIDRs that are allowed access to the search service endpoint.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "identity": {
          "$ref": "#/types/azure:search/ServiceIdentity:ServiceIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Search Service should exist. Changing this forces a new Search Service to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The Name which should be used for this Search Service. Changing this forces a new Search Service to be created.\n",
          "type": "string"
        },
        "partitionCount": {
          "description": "The number of partitions which should be created.\n",
          "type": "integer"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this resource. Defaults to `true`.\n",
          "type": "boolean"
        },
        "replicaCount": {
          "description": "The number of replica's which should be created.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Search Service should exist. Changing this forces a new Search Service to be created.\n",
          "type": "string"
        },
        "sku": {
          "description": "The SKU which should be used for this Search Service. Possible values are `basic`, `free`, `standard`, `standard2`, `standard3`, `storage_optimized_l1` and `storage_optimized_l2`. Changing this forces a new Search Service to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Search Service.\n",
          "type": "object"
        }
      },
      "properties": {
        "allowedIps": {
          "description": "A list of IPv4 addresses or CIDRs that are allowed access to the search service endpoint.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "identity": {
          "$ref": "#/types/azure:search/ServiceIdentity:ServiceIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region where the Search Service should exist. Changing this forces a new Search Service to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The Name which should be used for this Search Service. Changing this forces a new Search Service to be created.\n",
          "type": "string"
        },
        "partitionCount": {
          "description": "The number of partitions which should be created.\n",
          "type": "integer"
        },
        "primaryKey": {
          "description": "The Primary Key used for Search Service Administration.\n",
          "type": "string"
        },
        "publicNetworkAccessEnabled": {
          "description": "Whether or not public network access is allowed for this resource. Defaults to `true`.\n",
          "type": "boolean"
        },
        "queryKeys": {
          "description": "A `query_keys` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:search/ServiceQueryKey:ServiceQueryKey"
          },
          "type": "array"
        },
        "replicaCount": {
          "description": "The number of replica's which should be created.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Search Service should exist. Changing this forces a new Search Service to be created.\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The Secondary Key used for Search Service Administration.\n",
          "type": "string"
        },
        "sku": {
          "description": "The SKU which should be used for this Search Service. Possible values are `basic`, `free`, `standard`, `standard2`, `standard3`, `storage_optimized_l1` and `storage_optimized_l2`. Changing this forces a new Search Service to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Search Service.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "partitionCount",
        "primaryKey",
        "queryKeys",
        "replicaCount",
        "resourceGroupName",
        "secondaryKey",
        "sku"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Service resources.\n",
        "properties": {
          "allowedIps": {
            "description": "A list of IPv4 addresses or CIDRs that are allowed access to the search service endpoint.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "identity": {
            "$ref": "#/types/azure:search/ServiceIdentity:ServiceIdentity",
            "description": "A `identity` block as defined below.\n"
          },
          "location": {
            "description": "The Azure Region where the Search Service should exist. Changing this forces a new Search Service to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The Name which should be used for this Search Service. Changing this forces a new Search Service to be created.\n",
            "type": "string"
          },
          "partitionCount": {
            "description": "The number of partitions which should be created.\n",
            "type": "integer"
          },
          "primaryKey": {
            "description": "The Primary Key used for Search Service Administration.\n",
            "type": "string"
          },
          "publicNetworkAccessEnabled": {
            "description": "Whether or not public network access is allowed for this resource. Defaults to `true`.\n",
            "type": "boolean"
          },
          "queryKeys": {
            "description": "A `query_keys` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:search/ServiceQueryKey:ServiceQueryKey"
            },
            "type": "array"
          },
          "replicaCount": {
            "description": "The number of replica's which should be created.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Search Service should exist. Changing this forces a new Search Service to be created.\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key used for Search Service Administration.\n",
            "type": "string"
          },
          "sku": {
            "description": "The SKU which should be used for this Search Service. Possible values are `basic`, `free`, `standard`, `standard2`, `standard3`, `storage_optimized_l1` and `storage_optimized_l2`. Changing this forces a new Search Service to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Search Service.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:securitycenter/advancedThreatProtection:AdvancedThreatProtection": {
      "description": "Manages a resources Advanced Threat Protection setting.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst rg = new azure.core.ResourceGroup(\"rg\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: azurerm_resource_group.example.name,\n    location: azurerm_resource_group.example.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    tags: {\n        environment: \"example\",\n    },\n});\nconst exampleAdvancedThreatProtection = new azure.securitycenter.AdvancedThreatProtection(\"exampleAdvancedThreatProtection\", {\n    targetResourceId: exampleAccount.id,\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nrg = azure.core.ResourceGroup(\"rg\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"],\n    location=azurerm_resource_group[\"example\"][\"location\"],\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    tags={\n        \"environment\": \"example\",\n    })\nexample_advanced_threat_protection = azure.securitycenter.AdvancedThreatProtection(\"exampleAdvancedThreatProtection\",\n    target_resource_id=example_account.id,\n    enabled=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var rg = new Azure.Core.ResourceGroup(\"rg\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n            Location = azurerm_resource_group.Example.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            Tags = \n            {\n                { \"environment\", \"example\" },\n            },\n        });\n        var exampleAdvancedThreatProtection = new Azure.SecurityCenter.AdvancedThreatProtection(\"exampleAdvancedThreatProtection\", new Azure.SecurityCenter.AdvancedThreatProtectionArgs\n        {\n            TargetResourceId = exampleAccount.Id,\n            Enabled = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/securitycenter\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\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 := core.NewResourceGroup(ctx, \"rg\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      pulumi.Any(azurerm_resource_group.Example.Name),\n\t\t\tLocation:               pulumi.Any(azurerm_resource_group.Example.Location),\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = securitycenter.NewAdvancedThreatProtection(ctx, \"exampleAdvancedThreatProtection\", \u0026securitycenter.AdvancedThreatProtectionArgs{\n\t\t\tTargetResourceId: exampleAccount.ID(),\n\t\t\tEnabled:          pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAdvanced Threat Protection can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:securitycenter/advancedThreatProtection:AdvancedThreatProtection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleResourceGroup/providers/Microsoft.Storage/storageAccounts/exampleaccount/providers/Microsoft.Security/advancedThreatProtectionSettings/default\n```\n\n ",
      "inputProperties": {
        "enabled": {
          "description": "Should Advanced Threat Protection be enabled on this resource?\n",
          "type": "boolean"
        },
        "targetResourceId": {
          "description": "The ID of the Azure Resource which to enable Advanced Threat Protection on. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "enabled": {
          "description": "Should Advanced Threat Protection be enabled on this resource?\n",
          "type": "boolean"
        },
        "targetResourceId": {
          "description": "The ID of the Azure Resource which to enable Advanced Threat Protection on. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "targetResourceId"
      ],
      "requiredInputs": [
        "enabled",
        "targetResourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AdvancedThreatProtection resources.\n",
        "properties": {
          "enabled": {
            "description": "Should Advanced Threat Protection be enabled on this resource?\n",
            "type": "boolean"
          },
          "targetResourceId": {
            "description": "The ID of the Azure Resource which to enable Advanced Threat Protection on. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:securitycenter/assessment:Assessment": {
      "description": "Manages the Security Center Assessment for Azure Security Center.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * from \"fs\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    addressSpaces: [\"10.0.0.0/16\"],\n});\nconst internal = new azure.network.Subnet(\"internal\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleLinuxVirtualMachineScaleSet = new azure.compute.LinuxVirtualMachineScaleSet(\"exampleLinuxVirtualMachineScaleSet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    sku: \"Standard_F2\",\n    instances: 1,\n    adminUsername: \"adminuser\",\n    adminSshKeys: [{\n        username: \"adminuser\",\n        publicKey: fs.readFileSync(\"~/.ssh/id_rsa.pub\"),\n    }],\n    sourceImageReference: {\n        publisher: \"Canonical\",\n        offer: \"UbuntuServer\",\n        sku: \"16.04-LTS\",\n        version: \"latest\",\n    },\n    osDisk: {\n        storageAccountType: \"Standard_LRS\",\n        caching: \"ReadWrite\",\n    },\n    networkInterfaces: [{\n        name: \"example\",\n        primary: true,\n        ipConfigurations: [{\n            name: \"internal\",\n            primary: true,\n            subnetId: internal.id,\n        }],\n    }],\n});\nconst exampleAssessmentPolicy = new azure.securitycenter.AssessmentPolicy(\"exampleAssessmentPolicy\", {\n    displayName: \"Test Display Name\",\n    severity: \"Medium\",\n    description: \"Test Description\",\n});\nconst exampleAssessment = new azure.securitycenter.Assessment(\"exampleAssessment\", {\n    assessmentPolicyId: exampleAssessmentPolicy.id,\n    targetResourceId: exampleLinuxVirtualMachineScaleSet.id,\n    status: {\n        code: \"Healthy\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    address_spaces=[\"10.0.0.0/16\"])\ninternal = azure.network.Subnet(\"internal\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"])\nexample_linux_virtual_machine_scale_set = azure.compute.LinuxVirtualMachineScaleSet(\"exampleLinuxVirtualMachineScaleSet\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    sku=\"Standard_F2\",\n    instances=1,\n    admin_username=\"adminuser\",\n    admin_ssh_keys=[azure.compute.LinuxVirtualMachineScaleSetAdminSshKeyArgs(\n        username=\"adminuser\",\n        public_key=(lambda path: open(path).read())(\"~/.ssh/id_rsa.pub\"),\n    )],\n    source_image_reference=azure.compute.LinuxVirtualMachineScaleSetSourceImageReferenceArgs(\n        publisher=\"Canonical\",\n        offer=\"UbuntuServer\",\n        sku=\"16.04-LTS\",\n        version=\"latest\",\n    ),\n    os_disk=azure.compute.LinuxVirtualMachineScaleSetOsDiskArgs(\n        storage_account_type=\"Standard_LRS\",\n        caching=\"ReadWrite\",\n    ),\n    network_interfaces=[azure.compute.LinuxVirtualMachineScaleSetNetworkInterfaceArgs(\n        name=\"example\",\n        primary=True,\n        ip_configurations=[{\n            \"name\": \"internal\",\n            \"primary\": True,\n            \"subnet_id\": internal.id,\n        }],\n    )])\nexample_assessment_policy = azure.securitycenter.AssessmentPolicy(\"exampleAssessmentPolicy\",\n    display_name=\"Test Display Name\",\n    severity=\"Medium\",\n    description=\"Test Description\")\nexample_assessment = azure.securitycenter.Assessment(\"exampleAssessment\",\n    assessment_policy_id=example_assessment_policy.id,\n    target_resource_id=example_linux_virtual_machine_scale_set.id,\n    status=azure.securitycenter.AssessmentStatusArgs(\n        code=\"Healthy\",\n    ))\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n        });\n        var @internal = new Azure.Network.Subnet(\"internal\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n        });\n        var exampleLinuxVirtualMachineScaleSet = new Azure.Compute.LinuxVirtualMachineScaleSet(\"exampleLinuxVirtualMachineScaleSet\", new Azure.Compute.LinuxVirtualMachineScaleSetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Sku = \"Standard_F2\",\n            Instances = 1,\n            AdminUsername = \"adminuser\",\n            AdminSshKeys = \n            {\n                new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetAdminSshKeyArgs\n                {\n                    Username = \"adminuser\",\n                    PublicKey = File.ReadAllText(\"~/.ssh/id_rsa.pub\"),\n                },\n            },\n            SourceImageReference = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetSourceImageReferenceArgs\n            {\n                Publisher = \"Canonical\",\n                Offer = \"UbuntuServer\",\n                Sku = \"16.04-LTS\",\n                Version = \"latest\",\n            },\n            OsDisk = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetOsDiskArgs\n            {\n                StorageAccountType = \"Standard_LRS\",\n                Caching = \"ReadWrite\",\n            },\n            NetworkInterfaces = \n            {\n                new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceArgs\n                {\n                    Name = \"example\",\n                    Primary = true,\n                    IpConfigurations = \n                    {\n                        new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs\n                        {\n                            Name = \"internal\",\n                            Primary = true,\n                            SubnetId = @internal.Id,\n                        },\n                    },\n                },\n            },\n        });\n        var exampleAssessmentPolicy = new Azure.SecurityCenter.AssessmentPolicy(\"exampleAssessmentPolicy\", new Azure.SecurityCenter.AssessmentPolicyArgs\n        {\n            DisplayName = \"Test Display Name\",\n            Severity = \"Medium\",\n            Description = \"Test Description\",\n        });\n        var exampleAssessment = new Azure.SecurityCenter.Assessment(\"exampleAssessment\", new Azure.SecurityCenter.AssessmentArgs\n        {\n            AssessmentPolicyId = exampleAssessmentPolicy.Id,\n            TargetResourceId = exampleLinuxVirtualMachineScaleSet.Id,\n            Status = new Azure.SecurityCenter.Inputs.AssessmentStatusArgs\n            {\n                Code = \"Healthy\",\n            },\n        });\n    }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSecurity Assessment can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:securitycenter/assessment:Assessment example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resGroup1/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1/providers/Microsoft.Security/assessments/00000000-0000-0000-0000-000000000000\n```\n\n ",
      "inputProperties": {
        "additionalData": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional data to associate with the assessment.\n",
          "type": "object"
        },
        "assessmentPolicyId": {
          "description": "The ID of the security Assessment policy to apply to this resource. Changing this forces a new security Assessment to be created.\n",
          "type": "string"
        },
        "status": {
          "$ref": "#/types/azure:securitycenter/AssessmentStatus:AssessmentStatus",
          "description": "A `status` block as defined below.\n"
        },
        "targetResourceId": {
          "description": "The ID of the target resource. Changing this forces a new security Assessment to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "additionalData": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of additional data to associate with the assessment.\n",
          "type": "object"
        },
        "assessmentPolicyId": {
          "description": "The ID of the security Assessment policy to apply to this resource. Changing this forces a new security Assessment to be created.\n",
          "type": "string"
        },
        "status": {
          "$ref": "#/types/azure:securitycenter/AssessmentStatus:AssessmentStatus",
          "description": "A `status` block as defined below.\n"
        },
        "targetResourceId": {
          "description": "The ID of the target resource. Changing this forces a new security Assessment to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "assessmentPolicyId",
        "status",
        "targetResourceId"
      ],
      "requiredInputs": [
        "assessmentPolicyId",
        "status",
        "targetResourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Assessment resources.\n",
        "properties": {
          "additionalData": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of additional data to associate with the assessment.\n",
            "type": "object"
          },
          "assessmentPolicyId": {
            "description": "The ID of the security Assessment policy to apply to this resource. Changing this forces a new security Assessment to be created.\n",
            "type": "string"
          },
          "status": {
            "$ref": "#/types/azure:securitycenter/AssessmentStatus:AssessmentStatus",
            "description": "A `status` block as defined below.\n"
          },
          "targetResourceId": {
            "description": "The ID of the target resource. Changing this forces a new security Assessment to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:securitycenter/assessmentMetadata:AssessmentMetadata": {
      "description": "Manages the Security Center Assessment Metadata for Azure Security Center.\n\n\u003e **NOTE:** This resource has been deprecated in favour of the `azure.securitycenter.AssessmentPolicy` resource and will be removed in the next major version of the AzureRM Provider. The new resource shares the same fields as this one, and information on migrating across can be found in this guide.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.securitycenter.AssessmentMetadata(\"example\", {\n    description: \"Test Description\",\n    displayName: \"Test Display Name\",\n    severity: \"Medium\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.securitycenter.AssessmentMetadata(\"example\",\n    description=\"Test Description\",\n    display_name=\"Test Display Name\",\n    severity=\"Medium\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.SecurityCenter.AssessmentMetadata(\"example\", new Azure.SecurityCenter.AssessmentMetadataArgs\n        {\n            Description = \"Test Description\",\n            DisplayName = \"Test Display Name\",\n            Severity = \"Medium\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/securitycenter\"\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 := securitycenter.NewAssessmentMetadata(ctx, \"example\", \u0026securitycenter.AssessmentMetadataArgs{\n\t\t\tDescription: pulumi.String(\"Test Description\"),\n\t\t\tDisplayName: pulumi.String(\"Test Display Name\"),\n\t\t\tSeverity:    pulumi.String(\"Medium\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSecurity Assessments Metadata can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:securitycenter/assessmentMetadata:AssessmentMetadata example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Security/assessmentMetadata/metadata1\n```\n\n ",
      "inputProperties": {
        "categories": {
          "description": "A list of the categories of resource that is at risk when the Security Center Assessment is unhealthy. Possible values are `Unknown`, `Compute`, `Data`, `IdentityAndAccess`, `IoT` and `Networking`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "The description of the Security Center Assessment.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The user-friendly display name of the Security Center Assessment.\n",
          "type": "string"
        },
        "implementationEffort": {
          "description": "The implementation effort which is used to remediate the Security Center Assessment. Possible values are `Low`, `Moderate` and `High`.\n",
          "type": "string"
        },
        "remediationDescription": {
          "description": "The description which is used to mitigate the security issue.\n",
          "type": "string"
        },
        "severity": {
          "description": "The severity level of the Security Center Assessment. Possible values are `Low`, `Medium` and `High`. Defaults to `Medium`.\n",
          "type": "string"
        },
        "threats": {
          "description": "A list of the threat impacts for the Security Center Assessment. Possible values are `AccountBreach`, `DataExfiltration`, `DataSpillage`, `DenialOfService`, `ElevationOfPrivilege`, `MaliciousInsider`, `MissingCoverage` and `ThreatResistance`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "userImpact": {
          "description": "The user impact of the Security Center Assessment. Possible values are `Low`, `Moderate` and `High`.\n",
          "type": "string"
        }
      },
      "properties": {
        "categories": {
          "description": "A list of the categories of resource that is at risk when the Security Center Assessment is unhealthy. Possible values are `Unknown`, `Compute`, `Data`, `IdentityAndAccess`, `IoT` and `Networking`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "The description of the Security Center Assessment.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The user-friendly display name of the Security Center Assessment.\n",
          "type": "string"
        },
        "implementationEffort": {
          "description": "The implementation effort which is used to remediate the Security Center Assessment. Possible values are `Low`, `Moderate` and `High`.\n",
          "type": "string"
        },
        "name": {
          "description": "The GUID as the name of the Security Center Assessment Metadata.\n",
          "type": "string"
        },
        "remediationDescription": {
          "description": "The description which is used to mitigate the security issue.\n",
          "type": "string"
        },
        "severity": {
          "description": "The severity level of the Security Center Assessment. Possible values are `Low`, `Medium` and `High`. Defaults to `Medium`.\n",
          "type": "string"
        },
        "threats": {
          "description": "A list of the threat impacts for the Security Center Assessment. Possible values are `AccountBreach`, `DataExfiltration`, `DataSpillage`, `DenialOfService`, `ElevationOfPrivilege`, `MaliciousInsider`, `MissingCoverage` and `ThreatResistance`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "userImpact": {
          "description": "The user impact of the Security Center Assessment. Possible values are `Low`, `Moderate` and `High`.\n",
          "type": "string"
        }
      },
      "required": [
        "categories",
        "description",
        "displayName",
        "name"
      ],
      "requiredInputs": [
        "description",
        "displayName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AssessmentMetadata resources.\n",
        "properties": {
          "categories": {
            "description": "A list of the categories of resource that is at risk when the Security Center Assessment is unhealthy. Possible values are `Unknown`, `Compute`, `Data`, `IdentityAndAccess`, `IoT` and `Networking`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "The description of the Security Center Assessment.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The user-friendly display name of the Security Center Assessment.\n",
            "type": "string"
          },
          "implementationEffort": {
            "description": "The implementation effort which is used to remediate the Security Center Assessment. Possible values are `Low`, `Moderate` and `High`.\n",
            "type": "string"
          },
          "name": {
            "description": "The GUID as the name of the Security Center Assessment Metadata.\n",
            "type": "string"
          },
          "remediationDescription": {
            "description": "The description which is used to mitigate the security issue.\n",
            "type": "string"
          },
          "severity": {
            "description": "The severity level of the Security Center Assessment. Possible values are `Low`, `Medium` and `High`. Defaults to `Medium`.\n",
            "type": "string"
          },
          "threats": {
            "description": "A list of the threat impacts for the Security Center Assessment. Possible values are `AccountBreach`, `DataExfiltration`, `DataSpillage`, `DenialOfService`, `ElevationOfPrivilege`, `MaliciousInsider`, `MissingCoverage` and `ThreatResistance`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "userImpact": {
            "description": "The user impact of the Security Center Assessment. Possible values are `Low`, `Moderate` and `High`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:securitycenter/assessmentPolicy:AssessmentPolicy": {
      "description": "Manages the Security Center Assessment Metadata for Azure Security Center.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.securitycenter.AssessmentPolicy(\"example\", {\n    description: \"Test Description\",\n    displayName: \"Test Display Name\",\n    severity: \"Medium\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.securitycenter.AssessmentPolicy(\"example\",\n    description=\"Test Description\",\n    display_name=\"Test Display Name\",\n    severity=\"Medium\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.SecurityCenter.AssessmentPolicy(\"example\", new Azure.SecurityCenter.AssessmentPolicyArgs\n        {\n            Description = \"Test Description\",\n            DisplayName = \"Test Display Name\",\n            Severity = \"Medium\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/securitycenter\"\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 := securitycenter.NewAssessmentPolicy(ctx, \"example\", \u0026securitycenter.AssessmentPolicyArgs{\n\t\t\tDescription: pulumi.String(\"Test Description\"),\n\t\t\tDisplayName: pulumi.String(\"Test Display Name\"),\n\t\t\tSeverity:    pulumi.String(\"Medium\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSecurity Assessments Policy can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:securitycenter/assessmentPolicy:AssessmentPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Security/assessmentMetadata/metadata1\n```\n\n ",
      "inputProperties": {
        "categories": {
          "description": "A list of the categories of resource that is at risk when the Security Center Assessment is unhealthy. Possible values are `Unknown`, `Compute`, `Data`, `IdentityAndAccess`, `IoT` and `Networking`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "The description of the Security Center Assessment.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The user-friendly display name of the Security Center Assessment.\n",
          "type": "string"
        },
        "implementationEffort": {
          "description": "The implementation effort which is used to remediate the Security Center Assessment. Possible values are `Low`, `Moderate` and `High`.\n",
          "type": "string"
        },
        "remediationDescription": {
          "description": "The description which is used to mitigate the security issue.\n",
          "type": "string"
        },
        "severity": {
          "description": "The severity level of the Security Center Assessment. Possible values are `Low`, `Medium` and `High`. Defaults to `Medium`.\n",
          "type": "string"
        },
        "threats": {
          "description": "A list of the threat impacts for the Security Center Assessment. Possible values are `AccountBreach`, `DataExfiltration`, `DataSpillage`, `DenialOfService`, `ElevationOfPrivilege`, `MaliciousInsider`, `MissingCoverage` and `ThreatResistance`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "userImpact": {
          "description": "The user impact of the Security Center Assessment. Possible values are `Low`, `Moderate` and `High`.\n",
          "type": "string"
        }
      },
      "properties": {
        "categories": {
          "description": "A list of the categories of resource that is at risk when the Security Center Assessment is unhealthy. Possible values are `Unknown`, `Compute`, `Data`, `IdentityAndAccess`, `IoT` and `Networking`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "The description of the Security Center Assessment.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The user-friendly display name of the Security Center Assessment.\n",
          "type": "string"
        },
        "implementationEffort": {
          "description": "The implementation effort which is used to remediate the Security Center Assessment. Possible values are `Low`, `Moderate` and `High`.\n",
          "type": "string"
        },
        "name": {
          "description": "The GUID as the name of the Security Center Assessment Policy.\n",
          "type": "string"
        },
        "remediationDescription": {
          "description": "The description which is used to mitigate the security issue.\n",
          "type": "string"
        },
        "severity": {
          "description": "The severity level of the Security Center Assessment. Possible values are `Low`, `Medium` and `High`. Defaults to `Medium`.\n",
          "type": "string"
        },
        "threats": {
          "description": "A list of the threat impacts for the Security Center Assessment. Possible values are `AccountBreach`, `DataExfiltration`, `DataSpillage`, `DenialOfService`, `ElevationOfPrivilege`, `MaliciousInsider`, `MissingCoverage` and `ThreatResistance`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "userImpact": {
          "description": "The user impact of the Security Center Assessment. Possible values are `Low`, `Moderate` and `High`.\n",
          "type": "string"
        }
      },
      "required": [
        "categories",
        "description",
        "displayName",
        "name"
      ],
      "requiredInputs": [
        "description",
        "displayName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AssessmentPolicy resources.\n",
        "properties": {
          "categories": {
            "description": "A list of the categories of resource that is at risk when the Security Center Assessment is unhealthy. Possible values are `Unknown`, `Compute`, `Data`, `IdentityAndAccess`, `IoT` and `Networking`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "The description of the Security Center Assessment.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The user-friendly display name of the Security Center Assessment.\n",
            "type": "string"
          },
          "implementationEffort": {
            "description": "The implementation effort which is used to remediate the Security Center Assessment. Possible values are `Low`, `Moderate` and `High`.\n",
            "type": "string"
          },
          "name": {
            "description": "The GUID as the name of the Security Center Assessment Policy.\n",
            "type": "string"
          },
          "remediationDescription": {
            "description": "The description which is used to mitigate the security issue.\n",
            "type": "string"
          },
          "severity": {
            "description": "The severity level of the Security Center Assessment. Possible values are `Low`, `Medium` and `High`. Defaults to `Medium`.\n",
            "type": "string"
          },
          "threats": {
            "description": "A list of the threat impacts for the Security Center Assessment. Possible values are `AccountBreach`, `DataExfiltration`, `DataSpillage`, `DenialOfService`, `ElevationOfPrivilege`, `MaliciousInsider`, `MissingCoverage` and `ThreatResistance`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "userImpact": {
            "description": "The user impact of the Security Center Assessment. Possible values are `Low`, `Moderate` and `High`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:securitycenter/autoProvisioning:AutoProvisioning": {
      "description": "Enables or disables the Security Center Auto Provisioning feature for the subscription\n\n\u003e **NOTE:** There is no resource name required, it will always be \"default\"\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.securitycenter.AutoProvisioning(\"example\", {\n    autoProvision: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.securitycenter.AutoProvisioning(\"example\", auto_provision=\"On\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.SecurityCenter.AutoProvisioning(\"example\", new Azure.SecurityCenter.AutoProvisioningArgs\n        {\n            AutoProvision = \"On\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/securitycenter\"\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 := securitycenter.NewAutoProvisioning(ctx, \"example\", \u0026securitycenter.AutoProvisioningArgs{\n\t\t\tAutoProvision: pulumi.String(\"On\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSecurity Center Auto Provisioning can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:securitycenter/autoProvisioning:AutoProvisioning example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Security/autoProvisioningSettings/default\n```\n\n ",
      "inputProperties": {
        "autoProvision": {
          "description": "Should the security agent be automatically provisioned on Virtual Machines in this subscription? Possible values are `On` (to install the security agent automatically, if it's missing) or `Off` (to not install the security agent automatically).\n",
          "type": "string"
        }
      },
      "properties": {
        "autoProvision": {
          "description": "Should the security agent be automatically provisioned on Virtual Machines in this subscription? Possible values are `On` (to install the security agent automatically, if it's missing) or `Off` (to not install the security agent automatically).\n",
          "type": "string"
        }
      },
      "required": [
        "autoProvision"
      ],
      "requiredInputs": [
        "autoProvision"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AutoProvisioning resources.\n",
        "properties": {
          "autoProvision": {
            "description": "Should the security agent be automatically provisioned on Virtual Machines in this subscription? Possible values are `On` (to install the security agent automatically, if it's missing) or `Off` (to not install the security agent automatically).\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:securitycenter/automation:Automation": {
      "description": "Manages Security Center Automation and Continuous Export. This resource supports three types of destination in the `action`, Logic Apps, Log Analytics and Event Hubs\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleEventHubNamespace = new azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    capacity: 2,\n});\nconst exampleEventHub = new azure.eventhub.EventHub(\"exampleEventHub\", {\n    namespaceName: exampleEventHubNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    partitionCount: 2,\n    messageRetention: 2,\n});\nconst exampleAuthorizationRule = new azure.eventhub.AuthorizationRule(\"exampleAuthorizationRule\", {\n    namespaceName: exampleEventHubNamespace.name,\n    eventhubName: exampleEventHub.name,\n    resourceGroupName: exampleResourceGroup.name,\n    listen: true,\n    send: false,\n    manage: false,\n});\nconst exampleAutomation = new azure.securitycenter.Automation(\"exampleAutomation\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    actions: [{\n        type: \"EventHub\",\n        resourceId: exampleEventHub.id,\n        connectionString: exampleAuthorizationRule.primaryConnectionString,\n    }],\n    sources: [{\n        eventSource: \"Alerts\",\n        ruleSets: [{\n            rules: [{\n                propertyPath: \"properties.metadata.severity\",\n                operator: \"Equals\",\n                expectedValue: \"High\",\n                propertyType: \"String\",\n            }],\n        }],\n    }],\n    scopes: [current.then(current =\u003e `/subscriptions/${current.subscriptionId}`)],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_event_hub_namespace = azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    capacity=2)\nexample_event_hub = azure.eventhub.EventHub(\"exampleEventHub\",\n    namespace_name=example_event_hub_namespace.name,\n    resource_group_name=example_resource_group.name,\n    partition_count=2,\n    message_retention=2)\nexample_authorization_rule = azure.eventhub.AuthorizationRule(\"exampleAuthorizationRule\",\n    namespace_name=example_event_hub_namespace.name,\n    eventhub_name=example_event_hub.name,\n    resource_group_name=example_resource_group.name,\n    listen=True,\n    send=False,\n    manage=False)\nexample_automation = azure.securitycenter.Automation(\"exampleAutomation\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    actions=[azure.securitycenter.AutomationActionArgs(\n        type=\"EventHub\",\n        resource_id=example_event_hub.id,\n        connection_string=example_authorization_rule.primary_connection_string,\n    )],\n    sources=[azure.securitycenter.AutomationSourceArgs(\n        event_source=\"Alerts\",\n        rule_sets=[azure.securitycenter.AutomationSourceRuleSetArgs(\n            rules=[azure.securitycenter.AutomationSourceRuleSetRuleArgs(\n                property_path=\"properties.metadata.severity\",\n                operator=\"Equals\",\n                expected_value=\"High\",\n                property_type=\"String\",\n            )],\n        )],\n    )],\n    scopes=[f\"/subscriptions/{current.subscription_id}\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"exampleEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Capacity = 2,\n        });\n        var exampleEventHub = new Azure.EventHub.EventHub(\"exampleEventHub\", new Azure.EventHub.EventHubArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            PartitionCount = 2,\n            MessageRetention = 2,\n        });\n        var exampleAuthorizationRule = new Azure.EventHub.AuthorizationRule(\"exampleAuthorizationRule\", new Azure.EventHub.AuthorizationRuleArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            EventhubName = exampleEventHub.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Listen = true,\n            Send = false,\n            Manage = false,\n        });\n        var exampleAutomation = new Azure.SecurityCenter.Automation(\"exampleAutomation\", new Azure.SecurityCenter.AutomationArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Actions = \n            {\n                new Azure.SecurityCenter.Inputs.AutomationActionArgs\n                {\n                    Type = \"EventHub\",\n                    ResourceId = exampleEventHub.Id,\n                    ConnectionString = exampleAuthorizationRule.PrimaryConnectionString,\n                },\n            },\n            Sources = \n            {\n                new Azure.SecurityCenter.Inputs.AutomationSourceArgs\n                {\n                    EventSource = \"Alerts\",\n                    RuleSets = \n                    {\n                        new Azure.SecurityCenter.Inputs.AutomationSourceRuleSetArgs\n                        {\n                            Rules = \n                            {\n                                new Azure.SecurityCenter.Inputs.AutomationSourceRuleSetRuleArgs\n                                {\n                                    PropertyPath = \"properties.metadata.severity\",\n                                    Operator = \"Equals\",\n                                    ExpectedValue = \"High\",\n                                    PropertyType = \"String\",\n                                },\n                            },\n                        },\n                    },\n                },\n            },\n            Scopes = \n            {\n                current.Apply(current =\u003e $\"/subscriptions/{current.SubscriptionId}\"),\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/securitycenter\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHubNamespace, err := eventhub.NewEventHubNamespace(ctx, \"exampleEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tCapacity:          pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHub, err := eventhub.NewEventHub(ctx, \"exampleEventHub\", \u0026eventhub.EventHubArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tPartitionCount:    pulumi.Int(2),\n\t\t\tMessageRetention:  pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAuthorizationRule, err := eventhub.NewAuthorizationRule(ctx, \"exampleAuthorizationRule\", \u0026eventhub.AuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tEventhubName:      exampleEventHub.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tListen:            pulumi.Bool(true),\n\t\t\tSend:              pulumi.Bool(false),\n\t\t\tManage:            pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = securitycenter.NewAutomation(ctx, \"exampleAutomation\", \u0026securitycenter.AutomationArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tActions: securitycenter.AutomationActionArray{\n\t\t\t\t\u0026securitycenter.AutomationActionArgs{\n\t\t\t\t\tType:             pulumi.String(\"EventHub\"),\n\t\t\t\t\tResourceId:       exampleEventHub.ID(),\n\t\t\t\t\tConnectionString: exampleAuthorizationRule.PrimaryConnectionString,\n\t\t\t\t},\n\t\t\t},\n\t\t\tSources: securitycenter.AutomationSourceArray{\n\t\t\t\t\u0026securitycenter.AutomationSourceArgs{\n\t\t\t\t\tEventSource: pulumi.String(\"Alerts\"),\n\t\t\t\t\tRuleSets: securitycenter.AutomationSourceRuleSetArray{\n\t\t\t\t\t\t\u0026securitycenter.AutomationSourceRuleSetArgs{\n\t\t\t\t\t\t\tRules: securitycenter.AutomationSourceRuleSetRuleArray{\n\t\t\t\t\t\t\t\t\u0026securitycenter.AutomationSourceRuleSetRuleArgs{\n\t\t\t\t\t\t\t\t\tPropertyPath:  pulumi.String(\"properties.metadata.severity\"),\n\t\t\t\t\t\t\t\t\tOperator:      pulumi.String(\"Equals\"),\n\t\t\t\t\t\t\t\t\tExpectedValue: pulumi.String(\"High\"),\n\t\t\t\t\t\t\t\t\tPropertyType:  pulumi.String(\"String\"),\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\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"%v%v\", \"/subscriptions/\", current.SubscriptionId)),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSecurity Center Automations can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:securitycenter/automation:Automation example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Security/automations/automation1\n```\n\n ",
      "inputProperties": {
        "actions": {
          "description": "One or more `action` blocks as defined below. An `action` tells this automation where the data is to be sent to upon being evaluated by the rules in the `source`.\n",
          "items": {
            "$ref": "#/types/azure:securitycenter/AutomationAction:AutomationAction"
          },
          "type": "array"
        },
        "description": {
          "description": "Specifies the description for the Security Center Automation.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Boolean to enable or disable this Security Center Automation.\n",
          "type": "boolean"
        },
        "location": {
          "description": "The Azure Region where the Security Center Automation should exist. Changing this forces a new Security Center Automation to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Security Center Automation. Changing this forces a new Security Center Automation to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Security Center Automation should exist. Changing this forces a new Security Center Automation to be created.\n",
          "type": "string"
        },
        "scopes": {
          "description": "A list of scopes on which the automation logic is applied, at least one is required. Supported scopes are a subscription (in this format `/subscriptions/00000000-0000-0000-0000-000000000000`) or a resource group under that subscription (in the format `/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example`). The automation will only apply on defined scopes.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "sources": {
          "description": "One or more `source` blocks as defined below. A `source` defines what data types will be processed and a set of rules to filter that data.\n",
          "items": {
            "$ref": "#/types/azure:securitycenter/AutomationSource:AutomationSource"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "actions": {
          "description": "One or more `action` blocks as defined below. An `action` tells this automation where the data is to be sent to upon being evaluated by the rules in the `source`.\n",
          "items": {
            "$ref": "#/types/azure:securitycenter/AutomationAction:AutomationAction"
          },
          "type": "array"
        },
        "description": {
          "description": "Specifies the description for the Security Center Automation.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Boolean to enable or disable this Security Center Automation.\n",
          "type": "boolean"
        },
        "location": {
          "description": "The Azure Region where the Security Center Automation should exist. Changing this forces a new Security Center Automation to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Security Center Automation. Changing this forces a new Security Center Automation to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Security Center Automation should exist. Changing this forces a new Security Center Automation to be created.\n",
          "type": "string"
        },
        "scopes": {
          "description": "A list of scopes on which the automation logic is applied, at least one is required. Supported scopes are a subscription (in this format `/subscriptions/00000000-0000-0000-0000-000000000000`) or a resource group under that subscription (in the format `/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example`). The automation will only apply on defined scopes.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "sources": {
          "description": "One or more `source` blocks as defined below. A `source` defines what data types will be processed and a set of rules to filter that data.\n",
          "items": {
            "$ref": "#/types/azure:securitycenter/AutomationSource:AutomationSource"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "actions",
        "location",
        "name",
        "resourceGroupName",
        "scopes",
        "sources"
      ],
      "requiredInputs": [
        "actions",
        "resourceGroupName",
        "scopes",
        "sources"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Automation resources.\n",
        "properties": {
          "actions": {
            "description": "One or more `action` blocks as defined below. An `action` tells this automation where the data is to be sent to upon being evaluated by the rules in the `source`.\n",
            "items": {
              "$ref": "#/types/azure:securitycenter/AutomationAction:AutomationAction"
            },
            "type": "array"
          },
          "description": {
            "description": "Specifies the description for the Security Center Automation.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Boolean to enable or disable this Security Center Automation.\n",
            "type": "boolean"
          },
          "location": {
            "description": "The Azure Region where the Security Center Automation should exist. Changing this forces a new Security Center Automation to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Security Center Automation. Changing this forces a new Security Center Automation to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Security Center Automation should exist. Changing this forces a new Security Center Automation to be created.\n",
            "type": "string"
          },
          "scopes": {
            "description": "A list of scopes on which the automation logic is applied, at least one is required. Supported scopes are a subscription (in this format `/subscriptions/00000000-0000-0000-0000-000000000000`) or a resource group under that subscription (in the format `/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example`). The automation will only apply on defined scopes.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "sources": {
            "description": "One or more `source` blocks as defined below. A `source` defines what data types will be processed and a set of rules to filter that data.\n",
            "items": {
              "$ref": "#/types/azure:securitycenter/AutomationSource:AutomationSource"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:securitycenter/contact:Contact": {
      "description": "Manages the subscription's Security Center Contact.\n\n\u003e **NOTE:** Owner access permission is required.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.securitycenter.Contact(\"example\", {\n    alertNotifications: true,\n    alertsToAdmins: true,\n    email: \"contact@example.com\",\n    phone: \"+1-555-555-5555\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.securitycenter.Contact(\"example\",\n    alert_notifications=True,\n    alerts_to_admins=True,\n    email=\"contact@example.com\",\n    phone=\"+1-555-555-5555\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.SecurityCenter.Contact(\"example\", new Azure.SecurityCenter.ContactArgs\n        {\n            AlertNotifications = true,\n            AlertsToAdmins = true,\n            Email = \"contact@example.com\",\n            Phone = \"+1-555-555-5555\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/securitycenter\"\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 := securitycenter.NewContact(ctx, \"example\", \u0026securitycenter.ContactArgs{\n\t\t\tAlertNotifications: pulumi.Bool(true),\n\t\t\tAlertsToAdmins:     pulumi.Bool(true),\n\t\t\tEmail:              pulumi.String(\"contact@example.com\"),\n\t\t\tPhone:              pulumi.String(\"+1-555-555-5555\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe contact can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:securitycenter/contact:Contact example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Security/securityContacts/default1\n```\n\n ",
      "inputProperties": {
        "alertNotifications": {
          "description": "Whether to send security alerts notifications to the security contact.\n",
          "type": "boolean"
        },
        "alertsToAdmins": {
          "description": "Whether to send security alerts notifications to subscription admins.\n",
          "type": "boolean"
        },
        "email": {
          "description": "The email of the Security Center Contact.\n",
          "type": "string"
        },
        "phone": {
          "description": "The phone number of the Security Center Contact.\n",
          "type": "string"
        }
      },
      "properties": {
        "alertNotifications": {
          "description": "Whether to send security alerts notifications to the security contact.\n",
          "type": "boolean"
        },
        "alertsToAdmins": {
          "description": "Whether to send security alerts notifications to subscription admins.\n",
          "type": "boolean"
        },
        "email": {
          "description": "The email of the Security Center Contact.\n",
          "type": "string"
        },
        "phone": {
          "description": "The phone number of the Security Center Contact.\n",
          "type": "string"
        }
      },
      "required": [
        "alertNotifications",
        "alertsToAdmins",
        "email"
      ],
      "requiredInputs": [
        "alertNotifications",
        "alertsToAdmins",
        "email"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Contact resources.\n",
        "properties": {
          "alertNotifications": {
            "description": "Whether to send security alerts notifications to the security contact.\n",
            "type": "boolean"
          },
          "alertsToAdmins": {
            "description": "Whether to send security alerts notifications to subscription admins.\n",
            "type": "boolean"
          },
          "email": {
            "description": "The email of the Security Center Contact.\n",
            "type": "string"
          },
          "phone": {
            "description": "The phone number of the Security Center Contact.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:securitycenter/serverVulnerabilityAssessment:ServerVulnerabilityAssessment": {
      "description": "Manages an Azure Server Vulnerability Assessment (Qualys) to a VM.\n\n\u003e **NOTE** Azure Defender has to be enabled on the subscription in order for this resource to work.\nSee this [documentation](https://docs.microsoft.com/en-us/azure/security-center/security-center-get-started) to get started.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"192.168.1.0/24\"],\n    location: exampleResourceGroup.location,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefix: \"192.168.1.0/24\",\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    ipConfigurations: [{\n        name: \"vm-example\",\n        subnetId: exampleSubnet.id,\n        privateIpAddressAllocation: \"Dynamic\",\n    }],\n});\nconst exampleLinuxVirtualMachine = new azure.compute.LinuxVirtualMachine(\"exampleLinuxVirtualMachine\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    size: \"Standard_B1s\",\n    adminUsername: \"testadmin\",\n    adminPassword: \"Password1234!\",\n    disablePasswordAuthentication: false,\n    sourceImageReference: {\n        publisher: \"OpenLogic\",\n        offer: \"CentOS\",\n        sku: \"7.5\",\n        version: \"latest\",\n    },\n    osDisk: {\n        caching: \"ReadWrite\",\n        storageAccountType: \"Standard_LRS\",\n    },\n    networkInterfaceIds: [exampleNetworkInterface.id],\n});\nconst exampleServerVulnerabilityAssessment = new azure.securitycenter.ServerVulnerabilityAssessment(\"exampleServerVulnerabilityAssessment\", {virtualMachineId: exampleLinuxVirtualMachine.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    resource_group_name=example_resource_group.name,\n    address_spaces=[\"192.168.1.0/24\"],\n    location=example_resource_group.location)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefix=\"192.168.1.0/24\")\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n        name=\"vm-example\",\n        subnet_id=example_subnet.id,\n        private_ip_address_allocation=\"Dynamic\",\n    )])\nexample_linux_virtual_machine = azure.compute.LinuxVirtualMachine(\"exampleLinuxVirtualMachine\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    size=\"Standard_B1s\",\n    admin_username=\"testadmin\",\n    admin_password=\"Password1234!\",\n    disable_password_authentication=False,\n    source_image_reference=azure.compute.LinuxVirtualMachineSourceImageReferenceArgs(\n        publisher=\"OpenLogic\",\n        offer=\"CentOS\",\n        sku=\"7.5\",\n        version=\"latest\",\n    ),\n    os_disk=azure.compute.LinuxVirtualMachineOsDiskArgs(\n        caching=\"ReadWrite\",\n        storage_account_type=\"Standard_LRS\",\n    ),\n    network_interface_ids=[example_network_interface.id])\nexample_server_vulnerability_assessment = azure.securitycenter.ServerVulnerabilityAssessment(\"exampleServerVulnerabilityAssessment\", virtual_machine_id=example_linux_virtual_machine.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"192.168.1.0/24\",\n            },\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefix = \"192.168.1.0/24\",\n        });\n        var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new Azure.Network.NetworkInterfaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            IpConfigurations = \n            {\n                new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n                {\n                    Name = \"vm-example\",\n                    SubnetId = exampleSubnet.Id,\n                    PrivateIpAddressAllocation = \"Dynamic\",\n                },\n            },\n        });\n        var exampleLinuxVirtualMachine = new Azure.Compute.LinuxVirtualMachine(\"exampleLinuxVirtualMachine\", new Azure.Compute.LinuxVirtualMachineArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Size = \"Standard_B1s\",\n            AdminUsername = \"testadmin\",\n            AdminPassword = \"Password1234!\",\n            DisablePasswordAuthentication = false,\n            SourceImageReference = new Azure.Compute.Inputs.LinuxVirtualMachineSourceImageReferenceArgs\n            {\n                Publisher = \"OpenLogic\",\n                Offer = \"CentOS\",\n                Sku = \"7.5\",\n                Version = \"latest\",\n            },\n            OsDisk = new Azure.Compute.Inputs.LinuxVirtualMachineOsDiskArgs\n            {\n                Caching = \"ReadWrite\",\n                StorageAccountType = \"Standard_LRS\",\n            },\n            NetworkInterfaceIds = \n            {\n                exampleNetworkInterface.Id,\n            },\n        });\n        var exampleServerVulnerabilityAssessment = new Azure.SecurityCenter.ServerVulnerabilityAssessment(\"exampleServerVulnerabilityAssessment\", new Azure.SecurityCenter.ServerVulnerabilityAssessmentArgs\n        {\n            VirtualMachineId = exampleLinuxVirtualMachine.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/securitycenter\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.1.0/24\"),\n\t\t\t},\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefix:      pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkInterface, err := network.NewNetworkInterface(ctx, \"exampleNetworkInterface\", \u0026network.NetworkInterfaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t\u0026network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName:                       pulumi.String(\"vm-example\"),\n\t\t\t\t\tSubnetId:                   exampleSubnet.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\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\texampleLinuxVirtualMachine, err := compute.NewLinuxVirtualMachine(ctx, \"exampleLinuxVirtualMachine\", \u0026compute.LinuxVirtualMachineArgs{\n\t\t\tLocation:                      exampleResourceGroup.Location,\n\t\t\tResourceGroupName:             exampleResourceGroup.Name,\n\t\t\tSize:                          pulumi.String(\"Standard_B1s\"),\n\t\t\tAdminUsername:                 pulumi.String(\"testadmin\"),\n\t\t\tAdminPassword:                 pulumi.String(\"Password1234!\"),\n\t\t\tDisablePasswordAuthentication: pulumi.Bool(false),\n\t\t\tSourceImageReference: \u0026compute.LinuxVirtualMachineSourceImageReferenceArgs{\n\t\t\t\tPublisher: pulumi.String(\"OpenLogic\"),\n\t\t\t\tOffer:     pulumi.String(\"CentOS\"),\n\t\t\t\tSku:       pulumi.String(\"7.5\"),\n\t\t\t\tVersion:   pulumi.String(\"latest\"),\n\t\t\t},\n\t\t\tOsDisk: \u0026compute.LinuxVirtualMachineOsDiskArgs{\n\t\t\t\tCaching:            pulumi.String(\"ReadWrite\"),\n\t\t\t\tStorageAccountType: pulumi.String(\"Standard_LRS\"),\n\t\t\t},\n\t\t\tNetworkInterfaceIds: pulumi.StringArray{\n\t\t\t\texampleNetworkInterface.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = securitycenter.NewServerVulnerabilityAssessment(ctx, \"exampleServerVulnerabilityAssessment\", \u0026securitycenter.ServerVulnerabilityAssessmentArgs{\n\t\t\tVirtualMachineId: exampleLinuxVirtualMachine.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nServer Vulnerability Assessments can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:securitycenter/serverVulnerabilityAssessment:ServerVulnerabilityAssessment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.Compute/virtualMachines/vm-name/providers/Microsoft.Security/serverVulnerabilityAssessments/Default\n```\n\n or\n\n```sh\n $ pulumi import azure:securitycenter/serverVulnerabilityAssessment:ServerVulnerabilityAssessment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.HybridCompute/machines/machine-name/providers/Microsoft.Security/serverVulnerabilityAssessments/Default\n```\n\n ",
      "inputProperties": {
        "hybridMachineId": {
          "description": "The ID of the Azure ARC server to be monitored by vulnerability assessment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "The ID of the virtual machine to be monitored by vulnerability assessment. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "hybridMachineId": {
          "description": "The ID of the Azure ARC server to be monitored by vulnerability assessment. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "virtualMachineId": {
          "description": "The ID of the virtual machine to be monitored by vulnerability assessment. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ServerVulnerabilityAssessment resources.\n",
        "properties": {
          "hybridMachineId": {
            "description": "The ID of the Azure ARC server to be monitored by vulnerability assessment. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "virtualMachineId": {
            "description": "The ID of the virtual machine to be monitored by vulnerability assessment. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:securitycenter/setting:Setting": {
      "description": "Manages the Data Access Settings for Azure Security Center.\n\n\u003e **NOTE:** This resource requires the `Owner` permission on the Subscription.\n\n\u003e **NOTE:** Deletion of this resource does not change or reset the data access settings\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.securitycenter.Setting(\"example\", {\n    enabled: true,\n    settingName: \"MCAS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.securitycenter.Setting(\"example\",\n    enabled=True,\n    setting_name=\"MCAS\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.SecurityCenter.Setting(\"example\", new Azure.SecurityCenter.SettingArgs\n        {\n            Enabled = true,\n            SettingName = \"MCAS\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/securitycenter\"\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 := securitycenter.NewSetting(ctx, \"example\", \u0026securitycenter.SettingArgs{\n\t\t\tEnabled:     pulumi.Bool(true),\n\t\t\tSettingName: pulumi.String(\"MCAS\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe setting can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:securitycenter/setting:Setting example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Security/settings/\u003csetting_name\u003e\n```\n\n ",
      "inputProperties": {
        "enabled": {
          "description": "Boolean flag to enable/disable data access.\n",
          "type": "boolean"
        },
        "settingName": {
          "description": "The setting to manage. Possible values are `MCAS` and `WDATP`.\n",
          "type": "string"
        }
      },
      "properties": {
        "enabled": {
          "description": "Boolean flag to enable/disable data access.\n",
          "type": "boolean"
        },
        "settingName": {
          "description": "The setting to manage. Possible values are `MCAS` and `WDATP`.\n",
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "settingName"
      ],
      "requiredInputs": [
        "enabled",
        "settingName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Setting resources.\n",
        "properties": {
          "enabled": {
            "description": "Boolean flag to enable/disable data access.\n",
            "type": "boolean"
          },
          "settingName": {
            "description": "The setting to manage. Possible values are `MCAS` and `WDATP`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:securitycenter/subscriptionPricing:SubscriptionPricing": {
      "description": "Manages the Pricing Tier for Azure Security Center in the current subscription.\n\n\u003e **NOTE:** Deletion of this resource does not change or reset the pricing tier to `Free`\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.securitycenter.SubscriptionPricing(\"example\", {\n    resourceType: \"VirtualMachines\",\n    tier: \"Standard\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.securitycenter.SubscriptionPricing(\"example\",\n    resource_type=\"VirtualMachines\",\n    tier=\"Standard\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.SecurityCenter.SubscriptionPricing(\"example\", new Azure.SecurityCenter.SubscriptionPricingArgs\n        {\n            ResourceType = \"VirtualMachines\",\n            Tier = \"Standard\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/securitycenter\"\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 := securitycenter.NewSubscriptionPricing(ctx, \"example\", \u0026securitycenter.SubscriptionPricingArgs{\n\t\t\tResourceType: pulumi.String(\"VirtualMachines\"),\n\t\t\tTier:         pulumi.String(\"Standard\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe pricing tier can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:securitycenter/subscriptionPricing:SubscriptionPricing example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Security/pricings/\u003cresource_type\u003e\n```\n\n ",
      "inputProperties": {
        "resourceType": {
          "description": "The resource type this setting affects. Possible values are `AppServices`, `ContainerRegistry`, `KeyVaults`, `KubernetesService`, `SqlServers`, `SqlServerVirtualMachines`, `StorageAccounts`, `VirtualMachines`, `Arm` and `Dns`.\n",
          "type": "string"
        },
        "tier": {
          "description": "The pricing tier to use. Possible values are `Free` and `Standard`.\n",
          "type": "string"
        }
      },
      "properties": {
        "resourceType": {
          "description": "The resource type this setting affects. Possible values are `AppServices`, `ContainerRegistry`, `KeyVaults`, `KubernetesService`, `SqlServers`, `SqlServerVirtualMachines`, `StorageAccounts`, `VirtualMachines`, `Arm` and `Dns`.\n",
          "type": "string"
        },
        "tier": {
          "description": "The pricing tier to use. Possible values are `Free` and `Standard`.\n",
          "type": "string"
        }
      },
      "required": [
        "tier"
      ],
      "requiredInputs": [
        "tier"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SubscriptionPricing resources.\n",
        "properties": {
          "resourceType": {
            "description": "The resource type this setting affects. Possible values are `AppServices`, `ContainerRegistry`, `KeyVaults`, `KubernetesService`, `SqlServers`, `SqlServerVirtualMachines`, `StorageAccounts`, `VirtualMachines`, `Arm` and `Dns`.\n",
            "type": "string"
          },
          "tier": {
            "description": "The pricing tier to use. Possible values are `Free` and `Standard`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:securitycenter/workspace:Workspace": {
      "description": "Manages the subscription's Security Center Workspace.\n\n\u003e **NOTE:** Owner access permission is required.\n\n\u003e **NOTE:** The subscription's pricing model can not be `Free` for this to have any affect.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n});\nconst exampleWorkspace = new azure.securitycenter.Workspace(\"exampleWorkspace\", {\n    scope: \"/subscriptions/00000000-0000-0000-0000-000000000000\",\n    workspaceId: exampleAnalyticsWorkspace.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\")\nexample_workspace = azure.securitycenter.Workspace(\"exampleWorkspace\",\n    scope=\"/subscriptions/00000000-0000-0000-0000-000000000000\",\n    workspace_id=example_analytics_workspace.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n        });\n        var exampleWorkspace = new Azure.SecurityCenter.Workspace(\"exampleWorkspace\", new Azure.SecurityCenter.WorkspaceArgs\n        {\n            Scope = \"/subscriptions/00000000-0000-0000-0000-000000000000\",\n            WorkspaceId = exampleAnalyticsWorkspace.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/securitycenter\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = securitycenter.NewWorkspace(ctx, \"exampleWorkspace\", \u0026securitycenter.WorkspaceArgs{\n\t\t\tScope:       pulumi.String(\"/subscriptions/00000000-0000-0000-0000-000000000000\"),\n\t\t\tWorkspaceId: exampleAnalyticsWorkspace.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThe contact can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:securitycenter/workspace:Workspace example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Security/workspaceSettings/default\n```\n\n ",
      "inputProperties": {
        "scope": {
          "description": "The scope of VMs to send their security data to the desired workspace, unless overridden by a setting with more specific scope.\n",
          "type": "string"
        },
        "workspaceId": {
          "description": "The ID of the Log Analytics Workspace to save the data in.\n",
          "type": "string"
        }
      },
      "properties": {
        "scope": {
          "description": "The scope of VMs to send their security data to the desired workspace, unless overridden by a setting with more specific scope.\n",
          "type": "string"
        },
        "workspaceId": {
          "description": "The ID of the Log Analytics Workspace to save the data in.\n",
          "type": "string"
        }
      },
      "required": [
        "scope",
        "workspaceId"
      ],
      "requiredInputs": [
        "scope",
        "workspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Workspace resources.\n",
        "properties": {
          "scope": {
            "description": "The scope of VMs to send their security data to the desired workspace, unless overridden by a setting with more specific scope.\n",
            "type": "string"
          },
          "workspaceId": {
            "description": "The ID of the Log Analytics Workspace to save the data in.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sentinel/alertRuleFusion:AlertRuleFusion": {
      "description": "Manages a Sentinel Fusion Alert Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"pergb2018\",\n});\nconst exampleAlertRuleFusion = new azure.sentinel.AlertRuleFusion(\"exampleAlertRuleFusion\", {\n    logAnalyticsWorkspaceId: exampleAnalyticsWorkspace.id,\n    alertRuleTemplateGuid: \"f71aba3d-28fb-450b-b192-4e76a83015c8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"pergb2018\")\nexample_alert_rule_fusion = azure.sentinel.AlertRuleFusion(\"exampleAlertRuleFusion\",\n    log_analytics_workspace_id=example_analytics_workspace.id,\n    alert_rule_template_guid=\"f71aba3d-28fb-450b-b192-4e76a83015c8\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"pergb2018\",\n        });\n        var exampleAlertRuleFusion = new Azure.Sentinel.AlertRuleFusion(\"exampleAlertRuleFusion\", new Azure.Sentinel.AlertRuleFusionArgs\n        {\n            LogAnalyticsWorkspaceId = exampleAnalyticsWorkspace.Id,\n            AlertRuleTemplateGuid = \"f71aba3d-28fb-450b-b192-4e76a83015c8\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sentinel\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"pergb2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentinel.NewAlertRuleFusion(ctx, \"exampleAlertRuleFusion\", \u0026sentinel.AlertRuleFusionArgs{\n\t\t\tLogAnalyticsWorkspaceId: exampleAnalyticsWorkspace.ID(),\n\t\t\tAlertRuleTemplateGuid:   pulumi.String(\"f71aba3d-28fb-450b-b192-4e76a83015c8\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSentinel Fusion Alert Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sentinel/alertRuleFusion:AlertRuleFusion example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/providers/Microsoft.SecurityInsights/alertRules/rule1\n```\n\n ",
      "inputProperties": {
        "alertRuleTemplateGuid": {
          "description": "The GUID of the alert rule template which is used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Should this Sentinel Fusion Alert Rule be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace this Sentinel Fusion Alert Rule belongs to. Changing this forces a new Sentinel Fusion Alert Rule to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "alertRuleTemplateGuid": {
          "description": "The GUID of the alert rule template which is used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Should this Sentinel Fusion Alert Rule be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace this Sentinel Fusion Alert Rule belongs to. Changing this forces a new Sentinel Fusion Alert Rule to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "alertRuleTemplateGuid",
        "logAnalyticsWorkspaceId",
        "name"
      ],
      "requiredInputs": [
        "alertRuleTemplateGuid",
        "logAnalyticsWorkspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AlertRuleFusion resources.\n",
        "properties": {
          "alertRuleTemplateGuid": {
            "description": "The GUID of the alert rule template which is used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Should this Sentinel Fusion Alert Rule be enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "logAnalyticsWorkspaceId": {
            "description": "The ID of the Log Analytics Workspace this Sentinel Fusion Alert Rule belongs to. Changing this forces a new Sentinel Fusion Alert Rule to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sentinel/alertRuleMachineLearningBehaviorAnalytics:AlertRuleMachineLearningBehaviorAnalytics": {
      "description": "Manages a Sentinel Machine Learning Behavior Analytics Alert Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"pergb2018\",\n});\nconst exampleAlertRuleMachineLearningBehaviorAnalytics = new azure.sentinel.AlertRuleMachineLearningBehaviorAnalytics(\"exampleAlertRuleMachineLearningBehaviorAnalytics\", {\n    logAnalyticsWorkspaceId: exampleAnalyticsWorkspace.id,\n    alertRuleTemplateGuid: \"737a2ce1-70a3-4968-9e90-3e6aca836abf\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"pergb2018\")\nexample_alert_rule_machine_learning_behavior_analytics = azure.sentinel.AlertRuleMachineLearningBehaviorAnalytics(\"exampleAlertRuleMachineLearningBehaviorAnalytics\",\n    log_analytics_workspace_id=example_analytics_workspace.id,\n    alert_rule_template_guid=\"737a2ce1-70a3-4968-9e90-3e6aca836abf\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"pergb2018\",\n        });\n        var exampleAlertRuleMachineLearningBehaviorAnalytics = new Azure.Sentinel.AlertRuleMachineLearningBehaviorAnalytics(\"exampleAlertRuleMachineLearningBehaviorAnalytics\", new Azure.Sentinel.AlertRuleMachineLearningBehaviorAnalyticsArgs\n        {\n            LogAnalyticsWorkspaceId = exampleAnalyticsWorkspace.Id,\n            AlertRuleTemplateGuid = \"737a2ce1-70a3-4968-9e90-3e6aca836abf\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sentinel\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"pergb2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentinel.NewAlertRuleMachineLearningBehaviorAnalytics(ctx, \"exampleAlertRuleMachineLearningBehaviorAnalytics\", \u0026sentinel.AlertRuleMachineLearningBehaviorAnalyticsArgs{\n\t\t\tLogAnalyticsWorkspaceId: exampleAnalyticsWorkspace.ID(),\n\t\t\tAlertRuleTemplateGuid:   pulumi.String(\"737a2ce1-70a3-4968-9e90-3e6aca836abf\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSentinel Machine Learning Behavior Analytics Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sentinel/alertRuleMachineLearningBehaviorAnalytics:AlertRuleMachineLearningBehaviorAnalytics example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/providers/Microsoft.SecurityInsights/alertRules/rule1\n```\n\n ",
      "inputProperties": {
        "alertRuleTemplateGuid": {
          "description": "The GUID of the alert rule template which is used for this Sentinel Machine Learning Behavior Analytics Alert Rule. Changing this forces a new Sentinel Machine Learning Behavior Analytics Alert Rule to be created.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Should this Sentinel Machine Learning Behavior Analytics Alert Rule be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace this SentinelMachine Learning Behavior Analytics Alert Rule belongs to. Changing this forces a new Sentinel Machine Learning Behavior Analytics Alert Rule to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this SentinelMachine Learning Behavior Analytics Alert Rule. Changing this forces a new Sentinel Machine Learning Behavior Analytics Alert Rule to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "alertRuleTemplateGuid": {
          "description": "The GUID of the alert rule template which is used for this Sentinel Machine Learning Behavior Analytics Alert Rule. Changing this forces a new Sentinel Machine Learning Behavior Analytics Alert Rule to be created.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Should this Sentinel Machine Learning Behavior Analytics Alert Rule be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace this SentinelMachine Learning Behavior Analytics Alert Rule belongs to. Changing this forces a new Sentinel Machine Learning Behavior Analytics Alert Rule to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this SentinelMachine Learning Behavior Analytics Alert Rule. Changing this forces a new Sentinel Machine Learning Behavior Analytics Alert Rule to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "alertRuleTemplateGuid",
        "logAnalyticsWorkspaceId",
        "name"
      ],
      "requiredInputs": [
        "alertRuleTemplateGuid",
        "logAnalyticsWorkspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AlertRuleMachineLearningBehaviorAnalytics resources.\n",
        "properties": {
          "alertRuleTemplateGuid": {
            "description": "The GUID of the alert rule template which is used for this Sentinel Machine Learning Behavior Analytics Alert Rule. Changing this forces a new Sentinel Machine Learning Behavior Analytics Alert Rule to be created.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Should this Sentinel Machine Learning Behavior Analytics Alert Rule be enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "logAnalyticsWorkspaceId": {
            "description": "The ID of the Log Analytics Workspace this SentinelMachine Learning Behavior Analytics Alert Rule belongs to. Changing this forces a new Sentinel Machine Learning Behavior Analytics Alert Rule to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this SentinelMachine Learning Behavior Analytics Alert Rule. Changing this forces a new Sentinel Machine Learning Behavior Analytics Alert Rule to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sentinel/alertRuleMsSecurityIncident:AlertRuleMsSecurityIncident": {
      "description": "Manages a Sentinel MS Security Incident Alert Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"pergb2018\",\n});\nconst exampleAlertRuleMsSecurityIncident = new azure.sentinel.AlertRuleMsSecurityIncident(\"exampleAlertRuleMsSecurityIncident\", {\n    logAnalyticsWorkspaceId: exampleAnalyticsWorkspace.id,\n    productFilter: \"Microsoft Cloud App Security\",\n    displayName: \"example rule\",\n    severityFilters: [\"High\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"pergb2018\")\nexample_alert_rule_ms_security_incident = azure.sentinel.AlertRuleMsSecurityIncident(\"exampleAlertRuleMsSecurityIncident\",\n    log_analytics_workspace_id=example_analytics_workspace.id,\n    product_filter=\"Microsoft Cloud App Security\",\n    display_name=\"example rule\",\n    severity_filters=[\"High\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"pergb2018\",\n        });\n        var exampleAlertRuleMsSecurityIncident = new Azure.Sentinel.AlertRuleMsSecurityIncident(\"exampleAlertRuleMsSecurityIncident\", new Azure.Sentinel.AlertRuleMsSecurityIncidentArgs\n        {\n            LogAnalyticsWorkspaceId = exampleAnalyticsWorkspace.Id,\n            ProductFilter = \"Microsoft Cloud App Security\",\n            DisplayName = \"example rule\",\n            SeverityFilters = \n            {\n                \"High\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sentinel\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"pergb2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentinel.NewAlertRuleMsSecurityIncident(ctx, \"exampleAlertRuleMsSecurityIncident\", \u0026sentinel.AlertRuleMsSecurityIncidentArgs{\n\t\t\tLogAnalyticsWorkspaceId: exampleAnalyticsWorkspace.ID(),\n\t\t\tProductFilter:           pulumi.String(\"Microsoft Cloud App Security\"),\n\t\t\tDisplayName:             pulumi.String(\"example rule\"),\n\t\t\tSeverityFilters: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"High\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSentinel MS Security Incident Alert Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sentinel/alertRuleMsSecurityIncident:AlertRuleMsSecurityIncident example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/providers/Microsoft.SecurityInsights/alertRules/rule1\n```\n\n ",
      "inputProperties": {
        "alertRuleTemplateGuid": {
          "description": "The GUID of the alert rule template which is used to create this Sentinel Scheduled Alert Rule. Changing this forces a new Sentinel MS Security Incident Alert Rule to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of this Sentinel MS Security Incident Alert Rule.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The friendly name of this Sentinel MS Security Incident Alert Rule.\n",
          "type": "string"
        },
        "displayNameExcludeFilters": {
          "description": "Only create incidents when the alert display name doesn't contain text from this list.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "displayNameFilters": {
          "description": "Only create incidents when the alert display name contain text from this list, leave empty to apply no filter.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "enabled": {
          "description": "Should this Sentinel MS Security Incident Alert Rule be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace this Sentinel MS Security Incident Alert Rule belongs to. Changing this forces a new Sentinel MS Security Incident Alert Rule to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Sentinel MS Security Incident Alert Rule. Changing this forces a new Sentinel MS Security Incident Alert Rule to be created.\n",
          "type": "string"
        },
        "productFilter": {
          "description": "The Microsoft Security Service from where the alert will be generated. Possible values are `Azure Active Directory Identity Protection`, `Azure Advanced Threat Protection`, `Azure Security Center`, `Azure Security Center for IoT`, `Microsoft Cloud App Security`, `Microsoft Defender Advanced Threat Protection` and `Office 365 Advanced Threat Protection`.\n",
          "type": "string"
        },
        "severityFilters": {
          "description": "Only create incidents from alerts when alert severity level is contained in this list. Possible values are `High`, `Medium`, `Low` and `Informational`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "textWhitelists": {
          "deprecationMessage": "this property has been renamed to display_name_filter to better match the SDK \u0026 API",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "alertRuleTemplateGuid": {
          "description": "The GUID of the alert rule template which is used to create this Sentinel Scheduled Alert Rule. Changing this forces a new Sentinel MS Security Incident Alert Rule to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of this Sentinel MS Security Incident Alert Rule.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The friendly name of this Sentinel MS Security Incident Alert Rule.\n",
          "type": "string"
        },
        "displayNameExcludeFilters": {
          "description": "Only create incidents when the alert display name doesn't contain text from this list.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "displayNameFilters": {
          "description": "Only create incidents when the alert display name contain text from this list, leave empty to apply no filter.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "enabled": {
          "description": "Should this Sentinel MS Security Incident Alert Rule be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace this Sentinel MS Security Incident Alert Rule belongs to. Changing this forces a new Sentinel MS Security Incident Alert Rule to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Sentinel MS Security Incident Alert Rule. Changing this forces a new Sentinel MS Security Incident Alert Rule to be created.\n",
          "type": "string"
        },
        "productFilter": {
          "description": "The Microsoft Security Service from where the alert will be generated. Possible values are `Azure Active Directory Identity Protection`, `Azure Advanced Threat Protection`, `Azure Security Center`, `Azure Security Center for IoT`, `Microsoft Cloud App Security`, `Microsoft Defender Advanced Threat Protection` and `Office 365 Advanced Threat Protection`.\n",
          "type": "string"
        },
        "severityFilters": {
          "description": "Only create incidents from alerts when alert severity level is contained in this list. Possible values are `High`, `Medium`, `Low` and `Informational`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "textWhitelists": {
          "deprecationMessage": "this property has been renamed to display_name_filter to better match the SDK \u0026 API",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "displayName",
        "displayNameFilters",
        "logAnalyticsWorkspaceId",
        "name",
        "productFilter",
        "severityFilters",
        "textWhitelists"
      ],
      "requiredInputs": [
        "displayName",
        "logAnalyticsWorkspaceId",
        "productFilter",
        "severityFilters"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AlertRuleMsSecurityIncident resources.\n",
        "properties": {
          "alertRuleTemplateGuid": {
            "description": "The GUID of the alert rule template which is used to create this Sentinel Scheduled Alert Rule. Changing this forces a new Sentinel MS Security Incident Alert Rule to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of this Sentinel MS Security Incident Alert Rule.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The friendly name of this Sentinel MS Security Incident Alert Rule.\n",
            "type": "string"
          },
          "displayNameExcludeFilters": {
            "description": "Only create incidents when the alert display name doesn't contain text from this list.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "displayNameFilters": {
            "description": "Only create incidents when the alert display name contain text from this list, leave empty to apply no filter.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "enabled": {
            "description": "Should this Sentinel MS Security Incident Alert Rule be enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "logAnalyticsWorkspaceId": {
            "description": "The ID of the Log Analytics Workspace this Sentinel MS Security Incident Alert Rule belongs to. Changing this forces a new Sentinel MS Security Incident Alert Rule to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Sentinel MS Security Incident Alert Rule. Changing this forces a new Sentinel MS Security Incident Alert Rule to be created.\n",
            "type": "string"
          },
          "productFilter": {
            "description": "The Microsoft Security Service from where the alert will be generated. Possible values are `Azure Active Directory Identity Protection`, `Azure Advanced Threat Protection`, `Azure Security Center`, `Azure Security Center for IoT`, `Microsoft Cloud App Security`, `Microsoft Defender Advanced Threat Protection` and `Office 365 Advanced Threat Protection`.\n",
            "type": "string"
          },
          "severityFilters": {
            "description": "Only create incidents from alerts when alert severity level is contained in this list. Possible values are `High`, `Medium`, `Low` and `Informational`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "textWhitelists": {
            "deprecationMessage": "this property has been renamed to display_name_filter to better match the SDK \u0026 API",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:sentinel/alertRuleScheduled:AlertRuleScheduled": {
      "description": "Manages a Sentinel Scheduled Alert Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"pergb2018\",\n});\nconst exampleAlertRuleScheduled = new azure.sentinel.AlertRuleScheduled(\"exampleAlertRuleScheduled\", {\n    logAnalyticsWorkspaceId: exampleAnalyticsWorkspace.id,\n    displayName: \"example\",\n    severity: \"High\",\n    query: `AzureActivity |\n  where OperationName == \"Create or Update Virtual Machine\" or OperationName ==\"Create Deployment\" |\n  where ActivityStatus == \"Succeeded\" |\n  make-series dcount(ResourceId) default=0 on EventSubmissionTimestamp in range(ago(7d), now(), 1d) by Caller\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"pergb2018\")\nexample_alert_rule_scheduled = azure.sentinel.AlertRuleScheduled(\"exampleAlertRuleScheduled\",\n    log_analytics_workspace_id=example_analytics_workspace.id,\n    display_name=\"example\",\n    severity=\"High\",\n    query=\"\"\"AzureActivity |\n  where OperationName == \"Create or Update Virtual Machine\" or OperationName ==\"Create Deployment\" |\n  where ActivityStatus == \"Succeeded\" |\n  make-series dcount(ResourceId) default=0 on EventSubmissionTimestamp in range(ago(7d), now(), 1d) by Caller\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"pergb2018\",\n        });\n        var exampleAlertRuleScheduled = new Azure.Sentinel.AlertRuleScheduled(\"exampleAlertRuleScheduled\", new Azure.Sentinel.AlertRuleScheduledArgs\n        {\n            LogAnalyticsWorkspaceId = exampleAnalyticsWorkspace.Id,\n            DisplayName = \"example\",\n            Severity = \"High\",\n            Query = @\"AzureActivity |\n  where OperationName == \"\"Create or Update Virtual Machine\"\" or OperationName ==\"\"Create Deployment\"\" |\n  where ActivityStatus == \"\"Succeeded\"\" |\n  make-series dcount(ResourceId) default=0 on EventSubmissionTimestamp in range(ago(7d), now(), 1d) by Caller\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sentinel\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"pergb2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentinel.NewAlertRuleScheduled(ctx, \"exampleAlertRuleScheduled\", \u0026sentinel.AlertRuleScheduledArgs{\n\t\t\tLogAnalyticsWorkspaceId: exampleAnalyticsWorkspace.ID(),\n\t\t\tDisplayName:             pulumi.String(\"example\"),\n\t\t\tSeverity:                pulumi.String(\"High\"),\n\t\t\tQuery:                   pulumi.String(fmt.Sprintf(\"%v%v%v%v\", \"AzureActivity |\\n\", \"  where OperationName == \\\"Create or Update Virtual Machine\\\" or OperationName ==\\\"Create Deployment\\\" |\\n\", \"  where ActivityStatus == \\\"Succeeded\\\" |\\n\", \"  make-series dcount(ResourceId) default=0 on EventSubmissionTimestamp in range(ago(7d), now(), 1d) by Caller\\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSentinel Scheduled Alert Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sentinel/alertRuleScheduled:AlertRuleScheduled example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/providers/Microsoft.SecurityInsights/alertRules/rule1\n```\n\n ",
      "inputProperties": {
        "alertRuleTemplateGuid": {
          "description": "The GUID of the alert rule template which is used for this Sentinel Scheduled Alert Rule. Changing this forces a new Sentinel Scheduled Alert Rule to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of this Sentinel Scheduled Alert Rule.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The friendly name of this Sentinel Scheduled Alert Rule.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Should the Sentinel Scheduled Alert Rule be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "eventGrouping": {
          "$ref": "#/types/azure:sentinel/AlertRuleScheduledEventGrouping:AlertRuleScheduledEventGrouping",
          "description": "A `event_grouping` block as defined below.\n"
        },
        "incidentConfiguration": {
          "$ref": "#/types/azure:sentinel/AlertRuleScheduledIncidentConfiguration:AlertRuleScheduledIncidentConfiguration",
          "description": "A `incident_configuration` block as defined below.\n"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace this Sentinel Scheduled Alert Rule belongs to. Changing this forces a new Sentinel Scheduled Alert Rule to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Sentinel Scheduled Alert Rule. Changing this forces a new Sentinel Scheduled Alert Rule to be created.\n",
          "type": "string"
        },
        "query": {
          "description": "The query of this Sentinel Scheduled Alert Rule.\n",
          "type": "string"
        },
        "queryFrequency": {
          "description": "The ISO 8601 timespan duration between two consecutive queries. Defaults to `PT5H`.\n",
          "type": "string"
        },
        "queryPeriod": {
          "description": "The ISO 8601 timespan duration, which determine the time period of the data covered by the query. For example, it can query the past 10 minutes of data, or the past 6 hours of data. Defaults to `PT5H`.\n",
          "type": "string"
        },
        "severity": {
          "description": "The alert severity of this Sentinel Scheduled Alert Rule. Possible values are `High`, `Medium`, `Low` and `Informational`.\n",
          "type": "string"
        },
        "suppressionDuration": {
          "description": "If `suppression_enabled` is `true`, this is ISO 8601 timespan duration, which specifies the amount of time the query should stop running after alert is generated. Defaults to `PT5H`.\n",
          "type": "string"
        },
        "suppressionEnabled": {
          "description": "Should the Sentinel Scheduled Alert Rulea stop running query after alert is generated? Defaults to `false`.\n",
          "type": "boolean"
        },
        "tactics": {
          "description": "A list of categories of attacks by which to classify the rule. Possible values are `Collection`, `CommandAndControl`, `CredentialAccess`, `DefenseEvasion`, `Discovery`, `Execution`, `Exfiltration`, `Impact`, `InitialAccess`, `LateralMovement`, `Persistence` and `PrivilegeEscalation`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "triggerOperator": {
          "description": "The alert trigger operator, combined with `trigger_threshold`, setting alert threshold of this Sentinel Scheduled Alert Rule. Possible values are `Equal`, `GreaterThan`, `LessThan`, `NotEqual`.\n",
          "type": "string"
        },
        "triggerThreshold": {
          "description": "The baseline number of query results generated, combined with `trigger_operator`, setting alert threshold of this Sentinel Scheduled Alert Rule.\n",
          "type": "integer"
        }
      },
      "properties": {
        "alertRuleTemplateGuid": {
          "description": "The GUID of the alert rule template which is used for this Sentinel Scheduled Alert Rule. Changing this forces a new Sentinel Scheduled Alert Rule to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "The description of this Sentinel Scheduled Alert Rule.\n",
          "type": "string"
        },
        "displayName": {
          "description": "The friendly name of this Sentinel Scheduled Alert Rule.\n",
          "type": "string"
        },
        "enabled": {
          "description": "Should the Sentinel Scheduled Alert Rule be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "eventGrouping": {
          "$ref": "#/types/azure:sentinel/AlertRuleScheduledEventGrouping:AlertRuleScheduledEventGrouping",
          "description": "A `event_grouping` block as defined below.\n"
        },
        "incidentConfiguration": {
          "$ref": "#/types/azure:sentinel/AlertRuleScheduledIncidentConfiguration:AlertRuleScheduledIncidentConfiguration",
          "description": "A `incident_configuration` block as defined below.\n"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace this Sentinel Scheduled Alert Rule belongs to. Changing this forces a new Sentinel Scheduled Alert Rule to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Sentinel Scheduled Alert Rule. Changing this forces a new Sentinel Scheduled Alert Rule to be created.\n",
          "type": "string"
        },
        "query": {
          "description": "The query of this Sentinel Scheduled Alert Rule.\n",
          "type": "string"
        },
        "queryFrequency": {
          "description": "The ISO 8601 timespan duration between two consecutive queries. Defaults to `PT5H`.\n",
          "type": "string"
        },
        "queryPeriod": {
          "description": "The ISO 8601 timespan duration, which determine the time period of the data covered by the query. For example, it can query the past 10 minutes of data, or the past 6 hours of data. Defaults to `PT5H`.\n",
          "type": "string"
        },
        "severity": {
          "description": "The alert severity of this Sentinel Scheduled Alert Rule. Possible values are `High`, `Medium`, `Low` and `Informational`.\n",
          "type": "string"
        },
        "suppressionDuration": {
          "description": "If `suppression_enabled` is `true`, this is ISO 8601 timespan duration, which specifies the amount of time the query should stop running after alert is generated. Defaults to `PT5H`.\n",
          "type": "string"
        },
        "suppressionEnabled": {
          "description": "Should the Sentinel Scheduled Alert Rulea stop running query after alert is generated? Defaults to `false`.\n",
          "type": "boolean"
        },
        "tactics": {
          "description": "A list of categories of attacks by which to classify the rule. Possible values are `Collection`, `CommandAndControl`, `CredentialAccess`, `DefenseEvasion`, `Discovery`, `Execution`, `Exfiltration`, `Impact`, `InitialAccess`, `LateralMovement`, `Persistence` and `PrivilegeEscalation`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "triggerOperator": {
          "description": "The alert trigger operator, combined with `trigger_threshold`, setting alert threshold of this Sentinel Scheduled Alert Rule. Possible values are `Equal`, `GreaterThan`, `LessThan`, `NotEqual`.\n",
          "type": "string"
        },
        "triggerThreshold": {
          "description": "The baseline number of query results generated, combined with `trigger_operator`, setting alert threshold of this Sentinel Scheduled Alert Rule.\n",
          "type": "integer"
        }
      },
      "required": [
        "displayName",
        "incidentConfiguration",
        "logAnalyticsWorkspaceId",
        "name",
        "query",
        "severity"
      ],
      "requiredInputs": [
        "displayName",
        "logAnalyticsWorkspaceId",
        "query",
        "severity"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AlertRuleScheduled resources.\n",
        "properties": {
          "alertRuleTemplateGuid": {
            "description": "The GUID of the alert rule template which is used for this Sentinel Scheduled Alert Rule. Changing this forces a new Sentinel Scheduled Alert Rule to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "The description of this Sentinel Scheduled Alert Rule.\n",
            "type": "string"
          },
          "displayName": {
            "description": "The friendly name of this Sentinel Scheduled Alert Rule.\n",
            "type": "string"
          },
          "enabled": {
            "description": "Should the Sentinel Scheduled Alert Rule be enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "eventGrouping": {
            "$ref": "#/types/azure:sentinel/AlertRuleScheduledEventGrouping:AlertRuleScheduledEventGrouping",
            "description": "A `event_grouping` block as defined below.\n"
          },
          "incidentConfiguration": {
            "$ref": "#/types/azure:sentinel/AlertRuleScheduledIncidentConfiguration:AlertRuleScheduledIncidentConfiguration",
            "description": "A `incident_configuration` block as defined below.\n"
          },
          "logAnalyticsWorkspaceId": {
            "description": "The ID of the Log Analytics Workspace this Sentinel Scheduled Alert Rule belongs to. Changing this forces a new Sentinel Scheduled Alert Rule to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Sentinel Scheduled Alert Rule. Changing this forces a new Sentinel Scheduled Alert Rule to be created.\n",
            "type": "string"
          },
          "query": {
            "description": "The query of this Sentinel Scheduled Alert Rule.\n",
            "type": "string"
          },
          "queryFrequency": {
            "description": "The ISO 8601 timespan duration between two consecutive queries. Defaults to `PT5H`.\n",
            "type": "string"
          },
          "queryPeriod": {
            "description": "The ISO 8601 timespan duration, which determine the time period of the data covered by the query. For example, it can query the past 10 minutes of data, or the past 6 hours of data. Defaults to `PT5H`.\n",
            "type": "string"
          },
          "severity": {
            "description": "The alert severity of this Sentinel Scheduled Alert Rule. Possible values are `High`, `Medium`, `Low` and `Informational`.\n",
            "type": "string"
          },
          "suppressionDuration": {
            "description": "If `suppression_enabled` is `true`, this is ISO 8601 timespan duration, which specifies the amount of time the query should stop running after alert is generated. Defaults to `PT5H`.\n",
            "type": "string"
          },
          "suppressionEnabled": {
            "description": "Should the Sentinel Scheduled Alert Rulea stop running query after alert is generated? Defaults to `false`.\n",
            "type": "boolean"
          },
          "tactics": {
            "description": "A list of categories of attacks by which to classify the rule. Possible values are `Collection`, `CommandAndControl`, `CredentialAccess`, `DefenseEvasion`, `Discovery`, `Execution`, `Exfiltration`, `Impact`, `InitialAccess`, `LateralMovement`, `Persistence` and `PrivilegeEscalation`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "triggerOperator": {
            "description": "The alert trigger operator, combined with `trigger_threshold`, setting alert threshold of this Sentinel Scheduled Alert Rule. Possible values are `Equal`, `GreaterThan`, `LessThan`, `NotEqual`.\n",
            "type": "string"
          },
          "triggerThreshold": {
            "description": "The baseline number of query results generated, combined with `trigger_operator`, setting alert threshold of this Sentinel Scheduled Alert Rule.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:sentinel/dataConnectorAwsCloudTrail:DataConnectorAwsCloudTrail": {
      "description": "Manages a AWS CloudTrail Data Connector.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n});\nconst exampleDataConnectorAwsCloudTrail = new azure.sentinel.DataConnectorAwsCloudTrail(\"exampleDataConnectorAwsCloudTrail\", {\n    logAnalyticsWorkspaceId: exampleAnalyticsWorkspace.id,\n    awsRoleArn: \"arn:aws:iam::000000000000:role/role1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\")\nexample_data_connector_aws_cloud_trail = azure.sentinel.DataConnectorAwsCloudTrail(\"exampleDataConnectorAwsCloudTrail\",\n    log_analytics_workspace_id=example_analytics_workspace.id,\n    aws_role_arn=\"arn:aws:iam::000000000000:role/role1\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n        });\n        var exampleDataConnectorAwsCloudTrail = new Azure.Sentinel.DataConnectorAwsCloudTrail(\"exampleDataConnectorAwsCloudTrail\", new Azure.Sentinel.DataConnectorAwsCloudTrailArgs\n        {\n            LogAnalyticsWorkspaceId = exampleAnalyticsWorkspace.Id,\n            AwsRoleArn = \"arn:aws:iam::000000000000:role/role1\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sentinel\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentinel.NewDataConnectorAwsCloudTrail(ctx, \"exampleDataConnectorAwsCloudTrail\", \u0026sentinel.DataConnectorAwsCloudTrailArgs{\n\t\t\tLogAnalyticsWorkspaceId: exampleAnalyticsWorkspace.ID(),\n\t\t\tAwsRoleArn:              pulumi.String(\"arn:aws:iam::000000000000:role/role1\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAWS CloudTrail Data Connectors can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sentinel/dataConnectorAwsCloudTrail:DataConnectorAwsCloudTrail example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/providers/Microsoft.SecurityInsights/dataConnectors/dc1\n```\n\n ",
      "inputProperties": {
        "awsRoleArn": {
          "description": "The ARN of the AWS CloudTrail role, which is connected to this AWS CloudTrail Data Connector.\n",
          "type": "string"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this AWS CloudTrail Data Connector resides in. Changing this forces a new AWS CloudTrail Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this AWS CloudTrail Data Connector. Changing this forces a new AWS CloudTrail Data Connector to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "awsRoleArn": {
          "description": "The ARN of the AWS CloudTrail role, which is connected to this AWS CloudTrail Data Connector.\n",
          "type": "string"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this AWS CloudTrail Data Connector resides in. Changing this forces a new AWS CloudTrail Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this AWS CloudTrail Data Connector. Changing this forces a new AWS CloudTrail Data Connector to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "awsRoleArn",
        "logAnalyticsWorkspaceId",
        "name"
      ],
      "requiredInputs": [
        "awsRoleArn",
        "logAnalyticsWorkspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataConnectorAwsCloudTrail resources.\n",
        "properties": {
          "awsRoleArn": {
            "description": "The ARN of the AWS CloudTrail role, which is connected to this AWS CloudTrail Data Connector.\n",
            "type": "string"
          },
          "logAnalyticsWorkspaceId": {
            "description": "The ID of the Log Analytics Workspace that this AWS CloudTrail Data Connector resides in. Changing this forces a new AWS CloudTrail Data Connector to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this AWS CloudTrail Data Connector. Changing this forces a new AWS CloudTrail Data Connector to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sentinel/dataConnectorAzureActiveDirectory:DataConnectorAzureActiveDirectory": {
      "description": "Manages a Azure Active Directory Data Connector.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n});\nconst exampleDataConnectorAzureActiveDirectory = new azure.sentinel.DataConnectorAzureActiveDirectory(\"exampleDataConnectorAzureActiveDirectory\", {logAnalyticsWorkspaceId: exampleAnalyticsWorkspace.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\")\nexample_data_connector_azure_active_directory = azure.sentinel.DataConnectorAzureActiveDirectory(\"exampleDataConnectorAzureActiveDirectory\", log_analytics_workspace_id=example_analytics_workspace.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n        });\n        var exampleDataConnectorAzureActiveDirectory = new Azure.Sentinel.DataConnectorAzureActiveDirectory(\"exampleDataConnectorAzureActiveDirectory\", new Azure.Sentinel.DataConnectorAzureActiveDirectoryArgs\n        {\n            LogAnalyticsWorkspaceId = exampleAnalyticsWorkspace.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sentinel\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentinel.NewDataConnectorAzureActiveDirectory(ctx, \"exampleDataConnectorAzureActiveDirectory\", \u0026sentinel.DataConnectorAzureActiveDirectoryArgs{\n\t\t\tLogAnalyticsWorkspaceId: exampleAnalyticsWorkspace.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure Active Directory Data Connectors can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sentinel/dataConnectorAzureActiveDirectory:DataConnectorAzureActiveDirectory example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/providers/Microsoft.SecurityInsights/dataConnectors/dc1\n```\n\n ",
      "inputProperties": {
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this Azure Active Directory Data Connector resides in. Changing this forces a new Azure Active Directory Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Azure Active Directory Data Connector. Changing this forces a new Azure Active Directory Data Connector to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the tenant that this Azure Active Directory Data Connector connects to. Changing this forces a new Azure Active Directory Data Connector to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this Azure Active Directory Data Connector resides in. Changing this forces a new Azure Active Directory Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Azure Active Directory Data Connector. Changing this forces a new Azure Active Directory Data Connector to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the tenant that this Azure Active Directory Data Connector connects to. Changing this forces a new Azure Active Directory Data Connector to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "logAnalyticsWorkspaceId",
        "name",
        "tenantId"
      ],
      "requiredInputs": [
        "logAnalyticsWorkspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataConnectorAzureActiveDirectory resources.\n",
        "properties": {
          "logAnalyticsWorkspaceId": {
            "description": "The ID of the Log Analytics Workspace that this Azure Active Directory Data Connector resides in. Changing this forces a new Azure Active Directory Data Connector to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Azure Active Directory Data Connector. Changing this forces a new Azure Active Directory Data Connector to be created.\n",
            "type": "string"
          },
          "tenantId": {
            "description": "The ID of the tenant that this Azure Active Directory Data Connector connects to. Changing this forces a new Azure Active Directory Data Connector to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sentinel/dataConnectorAzureAdvancedThreadProtection:DataConnectorAzureAdvancedThreadProtection": {
      "description": "Manages a Azure Advanced Threat Protection Data Connector.\n\n!\u003e **NOTE:** This resource requires that [Enterprise Mobility + Security E5](https://www.microsoft.com/en-us/microsoft-365/enterprise-mobility-security) is enabled on the tenant being connected to.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"west europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n});\nconst exampleDataConnectorAzureAdvancedThreadProtection = new azure.sentinel.DataConnectorAzureAdvancedThreadProtection(\"exampleDataConnectorAzureAdvancedThreadProtection\", {logAnalyticsWorkspaceId: exampleAnalyticsWorkspace.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"west europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\")\nexample_data_connector_azure_advanced_thread_protection = azure.sentinel.DataConnectorAzureAdvancedThreadProtection(\"exampleDataConnectorAzureAdvancedThreadProtection\", log_analytics_workspace_id=example_analytics_workspace.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"west europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n        });\n        var exampleDataConnectorAzureAdvancedThreadProtection = new Azure.Sentinel.DataConnectorAzureAdvancedThreadProtection(\"exampleDataConnectorAzureAdvancedThreadProtection\", new Azure.Sentinel.DataConnectorAzureAdvancedThreadProtectionArgs\n        {\n            LogAnalyticsWorkspaceId = exampleAnalyticsWorkspace.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sentinel\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"west europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentinel.NewDataConnectorAzureAdvancedThreadProtection(ctx, \"exampleDataConnectorAzureAdvancedThreadProtection\", \u0026sentinel.DataConnectorAzureAdvancedThreadProtectionArgs{\n\t\t\tLogAnalyticsWorkspaceId: exampleAnalyticsWorkspace.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure Advanced Threat Protection Data Connectors can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sentinel/dataConnectorAzureAdvancedThreadProtection:DataConnectorAzureAdvancedThreadProtection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/providers/Microsoft.SecurityInsights/dataConnectors/dc1\n```\n\n ",
      "inputProperties": {
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this Azure Advanced Threat Protection Data Connector resides in. Changing this forces a new Azure Advanced Threat Protection Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Azure Advanced Threat Protection Data Connector. Changing this forces a new Azure Advanced Threat Protection Data Connector to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the tenant that this Azure Advanced Threat Protection Data Connector connects to. Changing this forces a new Azure Advanced Threat Protection Data Connector to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this Azure Advanced Threat Protection Data Connector resides in. Changing this forces a new Azure Advanced Threat Protection Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Azure Advanced Threat Protection Data Connector. Changing this forces a new Azure Advanced Threat Protection Data Connector to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the tenant that this Azure Advanced Threat Protection Data Connector connects to. Changing this forces a new Azure Advanced Threat Protection Data Connector to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "logAnalyticsWorkspaceId",
        "name",
        "tenantId"
      ],
      "requiredInputs": [
        "logAnalyticsWorkspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataConnectorAzureAdvancedThreadProtection resources.\n",
        "properties": {
          "logAnalyticsWorkspaceId": {
            "description": "The ID of the Log Analytics Workspace that this Azure Advanced Threat Protection Data Connector resides in. Changing this forces a new Azure Advanced Threat Protection Data Connector to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Azure Advanced Threat Protection Data Connector. Changing this forces a new Azure Advanced Threat Protection Data Connector to be created.\n",
            "type": "string"
          },
          "tenantId": {
            "description": "The ID of the tenant that this Azure Advanced Threat Protection Data Connector connects to. Changing this forces a new Azure Advanced Threat Protection Data Connector to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sentinel/dataConnectorAzureSecurityCenter:DataConnectorAzureSecurityCenter": {
      "description": "Manages a Azure Security Center Data Connector.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"west europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n});\nconst exampleDataConnectorAzureSecurityCenter = new azure.sentinel.DataConnectorAzureSecurityCenter(\"exampleDataConnectorAzureSecurityCenter\", {logAnalyticsWorkspaceId: exampleAnalyticsWorkspace.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"west europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\")\nexample_data_connector_azure_security_center = azure.sentinel.DataConnectorAzureSecurityCenter(\"exampleDataConnectorAzureSecurityCenter\", log_analytics_workspace_id=example_analytics_workspace.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"west europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n        });\n        var exampleDataConnectorAzureSecurityCenter = new Azure.Sentinel.DataConnectorAzureSecurityCenter(\"exampleDataConnectorAzureSecurityCenter\", new Azure.Sentinel.DataConnectorAzureSecurityCenterArgs\n        {\n            LogAnalyticsWorkspaceId = exampleAnalyticsWorkspace.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sentinel\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"west europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentinel.NewDataConnectorAzureSecurityCenter(ctx, \"exampleDataConnectorAzureSecurityCenter\", \u0026sentinel.DataConnectorAzureSecurityCenterArgs{\n\t\t\tLogAnalyticsWorkspaceId: exampleAnalyticsWorkspace.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure Security Center Data Connectors can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sentinel/dataConnectorAzureSecurityCenter:DataConnectorAzureSecurityCenter example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/providers/Microsoft.SecurityInsights/dataConnectors/dc1\n```\n\n ",
      "inputProperties": {
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this Azure Security Center Data Connector resides in. Changing this forces a new Azure Security Center Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Azure Security Center Data Connector. Changing this forces a new Azure Security Center Data Connector to be created.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "The ID of the subscription that this Azure Security Center Data Connector connects to. Changing this forces a new Azure Security Center Data Connector to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this Azure Security Center Data Connector resides in. Changing this forces a new Azure Security Center Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Azure Security Center Data Connector. Changing this forces a new Azure Security Center Data Connector to be created.\n",
          "type": "string"
        },
        "subscriptionId": {
          "description": "The ID of the subscription that this Azure Security Center Data Connector connects to. Changing this forces a new Azure Security Center Data Connector to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "logAnalyticsWorkspaceId",
        "name",
        "subscriptionId"
      ],
      "requiredInputs": [
        "logAnalyticsWorkspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataConnectorAzureSecurityCenter resources.\n",
        "properties": {
          "logAnalyticsWorkspaceId": {
            "description": "The ID of the Log Analytics Workspace that this Azure Security Center Data Connector resides in. Changing this forces a new Azure Security Center Data Connector to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Azure Security Center Data Connector. Changing this forces a new Azure Security Center Data Connector to be created.\n",
            "type": "string"
          },
          "subscriptionId": {
            "description": "The ID of the subscription that this Azure Security Center Data Connector connects to. Changing this forces a new Azure Security Center Data Connector to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sentinel/dataConnectorMicrosoftCloudAppSecurity:DataConnectorMicrosoftCloudAppSecurity": {
      "description": "Manages a Microsoft Cloud App Security Data Connector.\n\n !\u003e **NOTE:** This resource requires that [Enterprise Mobility + Security E5](https://www.microsoft.com/en-us/microsoft-365/enterprise-mobility-security) is enabled on the tenant being connected to.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"west europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n});\nconst exampleDataConnectorMicrosoftCloudAppSecurity = new azure.sentinel.DataConnectorMicrosoftCloudAppSecurity(\"exampleDataConnectorMicrosoftCloudAppSecurity\", {logAnalyticsWorkspaceId: exampleAnalyticsWorkspace.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"west europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\")\nexample_data_connector_microsoft_cloud_app_security = azure.sentinel.DataConnectorMicrosoftCloudAppSecurity(\"exampleDataConnectorMicrosoftCloudAppSecurity\", log_analytics_workspace_id=example_analytics_workspace.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"west europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n        });\n        var exampleDataConnectorMicrosoftCloudAppSecurity = new Azure.Sentinel.DataConnectorMicrosoftCloudAppSecurity(\"exampleDataConnectorMicrosoftCloudAppSecurity\", new Azure.Sentinel.DataConnectorMicrosoftCloudAppSecurityArgs\n        {\n            LogAnalyticsWorkspaceId = exampleAnalyticsWorkspace.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sentinel\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"west europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentinel.NewDataConnectorMicrosoftCloudAppSecurity(ctx, \"exampleDataConnectorMicrosoftCloudAppSecurity\", \u0026sentinel.DataConnectorMicrosoftCloudAppSecurityArgs{\n\t\t\tLogAnalyticsWorkspaceId: exampleAnalyticsWorkspace.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMicrosoft Cloud App Security Data Connectors can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sentinel/dataConnectorMicrosoftCloudAppSecurity:DataConnectorMicrosoftCloudAppSecurity example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/providers/Microsoft.SecurityInsights/dataConnectors/dc1\n```\n\n ",
      "inputProperties": {
        "alertsEnabled": {
          "description": "Should the alerts be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "discoveryLogsEnabled": {
          "description": "Should the Discovery Logs be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this Microsoft Cloud App Security Data Connector resides in. Changing this forces a new Microsoft Cloud App Security Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Microsoft Cloud App Security Data Connector. Changing this forces a new Microsoft Cloud App Security Data Connector to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant that this Microsoft Cloud App Security Data Connector connects to. Changing this forces a new Microsoft Cloud App Security Data Connector to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "alertsEnabled": {
          "description": "Should the alerts be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "discoveryLogsEnabled": {
          "description": "Should the Discovery Logs be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this Microsoft Cloud App Security Data Connector resides in. Changing this forces a new Microsoft Cloud App Security Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Microsoft Cloud App Security Data Connector. Changing this forces a new Microsoft Cloud App Security Data Connector to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant that this Microsoft Cloud App Security Data Connector connects to. Changing this forces a new Microsoft Cloud App Security Data Connector to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "logAnalyticsWorkspaceId",
        "name",
        "tenantId"
      ],
      "requiredInputs": [
        "logAnalyticsWorkspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataConnectorMicrosoftCloudAppSecurity resources.\n",
        "properties": {
          "alertsEnabled": {
            "description": "Should the alerts be enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "discoveryLogsEnabled": {
            "description": "Should the Discovery Logs be enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "logAnalyticsWorkspaceId": {
            "description": "The ID of the Log Analytics Workspace that this Microsoft Cloud App Security Data Connector resides in. Changing this forces a new Microsoft Cloud App Security Data Connector to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Microsoft Cloud App Security Data Connector. Changing this forces a new Microsoft Cloud App Security Data Connector to be created.\n",
            "type": "string"
          },
          "tenantId": {
            "description": "The ID of the Tenant that this Microsoft Cloud App Security Data Connector connects to. Changing this forces a new Microsoft Cloud App Security Data Connector to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sentinel/dataConnectorMicrosoftDefenderAdvancedThreatProtection:DataConnectorMicrosoftDefenderAdvancedThreatProtection": {
      "description": "Manages a Microsoft Defender Advanced Threat Protection Data Connector.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"west europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n});\nconst exampleDataConnectorMicrosoftDefenderAdvancedThreatProtection = new azure.sentinel.DataConnectorMicrosoftDefenderAdvancedThreatProtection(\"exampleDataConnectorMicrosoftDefenderAdvancedThreatProtection\", {logAnalyticsWorkspaceId: exampleAnalyticsWorkspace.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"west europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\")\nexample_data_connector_microsoft_defender_advanced_threat_protection = azure.sentinel.DataConnectorMicrosoftDefenderAdvancedThreatProtection(\"exampleDataConnectorMicrosoftDefenderAdvancedThreatProtection\", log_analytics_workspace_id=example_analytics_workspace.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"west europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n        });\n        var exampleDataConnectorMicrosoftDefenderAdvancedThreatProtection = new Azure.Sentinel.DataConnectorMicrosoftDefenderAdvancedThreatProtection(\"exampleDataConnectorMicrosoftDefenderAdvancedThreatProtection\", new Azure.Sentinel.DataConnectorMicrosoftDefenderAdvancedThreatProtectionArgs\n        {\n            LogAnalyticsWorkspaceId = exampleAnalyticsWorkspace.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sentinel\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"west europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentinel.NewDataConnectorMicrosoftDefenderAdvancedThreatProtection(ctx, \"exampleDataConnectorMicrosoftDefenderAdvancedThreatProtection\", \u0026sentinel.DataConnectorMicrosoftDefenderAdvancedThreatProtectionArgs{\n\t\t\tLogAnalyticsWorkspaceId: exampleAnalyticsWorkspace.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMicrosoft Defender Advanced Threat Protection Data Connectors can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sentinel/dataConnectorMicrosoftDefenderAdvancedThreatProtection:DataConnectorMicrosoftDefenderAdvancedThreatProtection example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/providers/Microsoft.SecurityInsights/dataConnectors/dc1\n```\n\n ",
      "inputProperties": {
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this Microsoft Defender Advanced Threat Protection Data Connector resides in. Changing this forces a new Microsoft Defender Advanced Threat Protection Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Microsoft Defender Advanced Threat Protection Data Connector. Changing this forces a new Microsoft Defender Advanced Threat Protection Data Connector to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the tenant that this Microsoft Defender Advanced Threat Protection Data Connector connects to. Changing this forces a new Microsoft Defender Advanced Threat Protection Data Connector to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this Microsoft Defender Advanced Threat Protection Data Connector resides in. Changing this forces a new Microsoft Defender Advanced Threat Protection Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Microsoft Defender Advanced Threat Protection Data Connector. Changing this forces a new Microsoft Defender Advanced Threat Protection Data Connector to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the tenant that this Microsoft Defender Advanced Threat Protection Data Connector connects to. Changing this forces a new Microsoft Defender Advanced Threat Protection Data Connector to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "logAnalyticsWorkspaceId",
        "name",
        "tenantId"
      ],
      "requiredInputs": [
        "logAnalyticsWorkspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataConnectorMicrosoftDefenderAdvancedThreatProtection resources.\n",
        "properties": {
          "logAnalyticsWorkspaceId": {
            "description": "The ID of the Log Analytics Workspace that this Microsoft Defender Advanced Threat Protection Data Connector resides in. Changing this forces a new Microsoft Defender Advanced Threat Protection Data Connector to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Microsoft Defender Advanced Threat Protection Data Connector. Changing this forces a new Microsoft Defender Advanced Threat Protection Data Connector to be created.\n",
            "type": "string"
          },
          "tenantId": {
            "description": "The ID of the tenant that this Microsoft Defender Advanced Threat Protection Data Connector connects to. Changing this forces a new Microsoft Defender Advanced Threat Protection Data Connector to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sentinel/dataConnectorOffice365:DataConnectorOffice365": {
      "description": "Manages a Office 365 Data Connector.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n});\nconst exampleDataConnectorOffice365 = new azure.sentinel.DataConnectorOffice365(\"exampleDataConnectorOffice365\", {logAnalyticsWorkspaceId: exampleAnalyticsWorkspace.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\")\nexample_data_connector_office365 = azure.sentinel.DataConnectorOffice365(\"exampleDataConnectorOffice365\", log_analytics_workspace_id=example_analytics_workspace.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n        });\n        var exampleDataConnectorOffice365 = new Azure.Sentinel.DataConnectorOffice365(\"exampleDataConnectorOffice365\", new Azure.Sentinel.DataConnectorOffice365Args\n        {\n            LogAnalyticsWorkspaceId = exampleAnalyticsWorkspace.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sentinel\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentinel.NewDataConnectorOffice365(ctx, \"exampleDataConnectorOffice365\", \u0026sentinel.DataConnectorOffice365Args{\n\t\t\tLogAnalyticsWorkspaceId: exampleAnalyticsWorkspace.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nOffice 365 Data Connectors can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sentinel/dataConnectorOffice365:DataConnectorOffice365 example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/providers/Microsoft.SecurityInsights/dataConnectors/dc1\n```\n\n ",
      "inputProperties": {
        "exchangeEnabled": {
          "description": "Should the Exchange data connector be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this Office 365 Data Connector resides in. Changing this forces a new Office 365 Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Office 365 Data Connector. Changing this forces a new Office 365 Data Connector to be created.\n",
          "type": "string"
        },
        "sharepointEnabled": {
          "description": "Should the SharePoint data connector be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "teamsEnabled": {
          "description": "Should the Microsoft Teams data connector be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "tenantId": {
          "description": "The ID of the Tenant that this Office 365 Data Connector connects to. Changing this forces a new Office 365 Data Connector to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "exchangeEnabled": {
          "description": "Should the Exchange data connector be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this Office 365 Data Connector resides in. Changing this forces a new Office 365 Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Office 365 Data Connector. Changing this forces a new Office 365 Data Connector to be created.\n",
          "type": "string"
        },
        "sharepointEnabled": {
          "description": "Should the SharePoint data connector be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "teamsEnabled": {
          "description": "Should the Microsoft Teams data connector be enabled? Defaults to `true`.\n",
          "type": "boolean"
        },
        "tenantId": {
          "description": "The ID of the Tenant that this Office 365 Data Connector connects to. Changing this forces a new Office 365 Data Connector to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "logAnalyticsWorkspaceId",
        "name",
        "tenantId"
      ],
      "requiredInputs": [
        "logAnalyticsWorkspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataConnectorOffice365 resources.\n",
        "properties": {
          "exchangeEnabled": {
            "description": "Should the Exchange data connector be enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "logAnalyticsWorkspaceId": {
            "description": "The ID of the Log Analytics Workspace that this Office 365 Data Connector resides in. Changing this forces a new Office 365 Data Connector to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Office 365 Data Connector. Changing this forces a new Office 365 Data Connector to be created.\n",
            "type": "string"
          },
          "sharepointEnabled": {
            "description": "Should the SharePoint data connector be enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "teamsEnabled": {
            "description": "Should the Microsoft Teams data connector be enabled? Defaults to `true`.\n",
            "type": "boolean"
          },
          "tenantId": {
            "description": "The ID of the Tenant that this Office 365 Data Connector connects to. Changing this forces a new Office 365 Data Connector to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sentinel/dataConnectorThreatIntelligence:DataConnectorThreatIntelligence": {
      "description": "Manages a Threat Intelligence Data Connector.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"PerGB2018\",\n});\nconst exampleDataConnectorThreatIntelligence = new azure.sentinel.DataConnectorThreatIntelligence(\"exampleDataConnectorThreatIntelligence\", {logAnalyticsWorkspaceId: exampleAnalyticsWorkspace.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"PerGB2018\")\nexample_data_connector_threat_intelligence = azure.sentinel.DataConnectorThreatIntelligence(\"exampleDataConnectorThreatIntelligence\", log_analytics_workspace_id=example_analytics_workspace.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", new Azure.OperationalInsights.AnalyticsWorkspaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"PerGB2018\",\n        });\n        var exampleDataConnectorThreatIntelligence = new Azure.Sentinel.DataConnectorThreatIntelligence(\"exampleDataConnectorThreatIntelligence\", new Azure.Sentinel.DataConnectorThreatIntelligenceArgs\n        {\n            LogAnalyticsWorkspaceId = exampleAnalyticsWorkspace.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sentinel\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyticsWorkspace, err := operationalinsights.NewAnalyticsWorkspace(ctx, \"exampleAnalyticsWorkspace\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"PerGB2018\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentinel.NewDataConnectorThreatIntelligence(ctx, \"exampleDataConnectorThreatIntelligence\", \u0026sentinel.DataConnectorThreatIntelligenceArgs{\n\t\t\tLogAnalyticsWorkspaceId: exampleAnalyticsWorkspace.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThreat Intelligence Data Connectors can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sentinel/dataConnectorThreatIntelligence:DataConnectorThreatIntelligence example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.OperationalInsights/workspaces/workspace1/providers/Microsoft.SecurityInsights/dataConnectors/dc1\n```\n\n ",
      "inputProperties": {
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this Threat Intelligence Data Connector resides in. Changing this forces a new Threat Intelligence Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Threat Intelligence Data Connector. Changing this forces a new Threat Intelligence Data Connector to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the tenant that this Threat Intelligence Data Connector connects to. Changing this forces a new Threat Intelligence Data Connector to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace that this Threat Intelligence Data Connector resides in. Changing this forces a new Threat Intelligence Data Connector to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Threat Intelligence Data Connector. Changing this forces a new Threat Intelligence Data Connector to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the tenant that this Threat Intelligence Data Connector connects to. Changing this forces a new Threat Intelligence Data Connector to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "logAnalyticsWorkspaceId",
        "name",
        "tenantId"
      ],
      "requiredInputs": [
        "logAnalyticsWorkspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataConnectorThreatIntelligence resources.\n",
        "properties": {
          "logAnalyticsWorkspaceId": {
            "description": "The ID of the Log Analytics Workspace that this Threat Intelligence Data Connector resides in. Changing this forces a new Threat Intelligence Data Connector to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Threat Intelligence Data Connector. Changing this forces a new Threat Intelligence Data Connector to be created.\n",
            "type": "string"
          },
          "tenantId": {
            "description": "The ID of the tenant that this Threat Intelligence Data Connector connects to. Changing this forces a new Threat Intelligence Data Connector to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:servicebus/namespace:Namespace": {
      "aliases": [
        {
          "type": "azure:eventhub/namespace:Namespace"
        }
      ],
      "description": "Manages a ServiceBus Namespace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nService Bus Namespace can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicebus/namespace:Namespace example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.servicebus/namespaces/sbns1\n```\n\n ",
      "inputProperties": {
        "capacity": {
          "description": "Specifies the capacity. When `sku` is `Premium`, capacity can be `1`, `2`, `4`, `8` or `16`. When `sku` is `Basic` or `Standard`, capacity can be `0` only.\n",
          "type": "integer"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Namespace resource . Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the namespace.\n",
          "type": "string"
        },
        "sku": {
          "description": "Defines which tier to use. Options are basic, standard or premium. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zoneRedundant": {
          "description": "Whether or not this resource is zone redundant. `sku` needs to be `Premium`. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "capacity": {
          "description": "Specifies the capacity. When `sku` is `Premium`, capacity can be `1`, `2`, `4`, `8` or `16`. When `sku` is `Basic` or `Standard`, capacity can be `0` only.\n",
          "type": "integer"
        },
        "defaultPrimaryConnectionString": {
          "description": "The primary connection string for the authorization\nrule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "defaultPrimaryKey": {
          "description": "The primary access key for the authorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "defaultSecondaryConnectionString": {
          "description": "The secondary connection string for the\nauthorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "defaultSecondaryKey": {
          "description": "The secondary access key for the authorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Namespace resource . Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the namespace.\n",
          "type": "string"
        },
        "sku": {
          "description": "Defines which tier to use. Options are basic, standard or premium. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "zoneRedundant": {
          "description": "Whether or not this resource is zone redundant. `sku` needs to be `Premium`. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "defaultPrimaryConnectionString",
        "defaultPrimaryKey",
        "defaultSecondaryConnectionString",
        "defaultSecondaryKey",
        "location",
        "name",
        "resourceGroupName",
        "sku"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Namespace resources.\n",
        "properties": {
          "capacity": {
            "description": "Specifies the capacity. When `sku` is `Premium`, capacity can be `1`, `2`, `4`, `8` or `16`. When `sku` is `Basic` or `Standard`, capacity can be `0` only.\n",
            "type": "integer"
          },
          "defaultPrimaryConnectionString": {
            "description": "The primary connection string for the authorization\nrule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultPrimaryKey": {
            "description": "The primary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryConnectionString": {
            "description": "The secondary connection string for the\nauthorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryKey": {
            "description": "The secondary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the ServiceBus Namespace resource . Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the namespace.\n",
            "type": "string"
          },
          "sku": {
            "description": "Defines which tier to use. Options are basic, standard or premium. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "zoneRedundant": {
            "description": "Whether or not this resource is zone redundant. `sku` needs to be `Premium`. Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:servicebus/namespaceAuthorizationRule:NamespaceAuthorizationRule": {
      "aliases": [
        {
          "type": "azure:eventhub/namespaceAuthorizationRule:NamespaceAuthorizationRule"
        }
      ],
      "description": "Manages a ServiceBus Namespace authorization Rule within a ServiceBus.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West US\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleNamespaceAuthorizationRule = new azure.servicebus.NamespaceAuthorizationRule(\"exampleNamespaceAuthorizationRule\", {\n    namespaceName: exampleNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    listen: true,\n    send: true,\n    manage: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West US\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_namespace_authorization_rule = azure.servicebus.NamespaceAuthorizationRule(\"exampleNamespaceAuthorizationRule\",\n    namespace_name=example_namespace.name,\n    resource_group_name=example_resource_group.name,\n    listen=True,\n    send=True,\n    manage=False)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West US\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleNamespaceAuthorizationRule = new Azure.ServiceBus.NamespaceAuthorizationRule(\"exampleNamespaceAuthorizationRule\", new Azure.ServiceBus.NamespaceAuthorizationRuleArgs\n        {\n            NamespaceName = exampleNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Listen = true,\n            Send = true,\n            Manage = false,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewNamespaceAuthorizationRule(ctx, \"exampleNamespaceAuthorizationRule\", \u0026servicebus.NamespaceAuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tListen:            pulumi.Bool(true),\n\t\t\tSend:              pulumi.Bool(true),\n\t\t\tManage:            pulumi.Bool(false),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nServiceBus Namespace authorization rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicebus/namespaceAuthorizationRule:NamespaceAuthorizationRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ServiceBus/namespaces/namespace1/AuthorizationRules/rule1\n```\n\n ",
      "inputProperties": {
        "listen": {
          "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Namespace Authorization Rule resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the ServiceBus Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "send": {
          "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "listen": {
          "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Namespace Authorization Rule resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the ServiceBus Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The Primary Connection String for the ServiceBus Namespace authorization Rule.\n",
          "type": "string"
        },
        "primaryConnectionStringAlias": {
          "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The Primary Key for the ServiceBus Namespace authorization Rule.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The Secondary Connection String for the ServiceBus Namespace authorization Rule.\n",
          "type": "string"
        },
        "secondaryConnectionStringAlias": {
          "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The Secondary Key for the ServiceBus Namespace authorization Rule.\n",
          "type": "string"
        },
        "send": {
          "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "namespaceName",
        "primaryConnectionString",
        "primaryConnectionStringAlias",
        "primaryKey",
        "resourceGroupName",
        "secondaryConnectionString",
        "secondaryConnectionStringAlias",
        "secondaryKey"
      ],
      "requiredInputs": [
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NamespaceAuthorizationRule resources.\n",
        "properties": {
          "listen": {
            "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
            "type": "boolean"
          },
          "manage": {
            "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the ServiceBus Namespace Authorization Rule resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the ServiceBus Namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the ServiceBus Namespace authorization Rule.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the ServiceBus Namespace authorization Rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the ServiceBus Namespace authorization Rule.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the ServiceBus Namespace authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:servicebus/namespaceDisasterRecoveryConfig:NamespaceDisasterRecoveryConfig": {
      "description": "Manages a Disaster Recovery Config for a Service Bus Namespace.\n\n\u003e **NOTE:** Disaster Recovery Config is a Premium Sku only capability. \n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst primary = new azure.servicebus.Namespace(\"primary\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Premium\",\n    capacity: \"1\",\n});\nconst secondary = new azure.servicebus.Namespace(\"secondary\", {\n    location: \"West US\",\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Premium\",\n    capacity: \"1\",\n});\nconst exampleNamespaceDisasterRecoveryConfig = new azure.servicebus.NamespaceDisasterRecoveryConfig(\"exampleNamespaceDisasterRecoveryConfig\", {\n    primaryNamespaceId: primary.id,\n    partnerNamespaceId: secondary.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nprimary = azure.servicebus.Namespace(\"primary\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Premium\",\n    capacity=1)\nsecondary = azure.servicebus.Namespace(\"secondary\",\n    location=\"West US\",\n    resource_group_name=example_resource_group.name,\n    sku=\"Premium\",\n    capacity=1)\nexample_namespace_disaster_recovery_config = azure.servicebus.NamespaceDisasterRecoveryConfig(\"exampleNamespaceDisasterRecoveryConfig\",\n    primary_namespace_id=primary.id,\n    partner_namespace_id=secondary.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var primary = new Azure.ServiceBus.Namespace(\"primary\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Premium\",\n            Capacity = 1,\n        });\n        var secondary = new Azure.ServiceBus.Namespace(\"secondary\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = \"West US\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Premium\",\n            Capacity = 1,\n        });\n        var exampleNamespaceDisasterRecoveryConfig = new Azure.ServiceBus.NamespaceDisasterRecoveryConfig(\"exampleNamespaceDisasterRecoveryConfig\", new Azure.ServiceBus.NamespaceDisasterRecoveryConfigArgs\n        {\n            PrimaryNamespaceId = primary.Id,\n            PartnerNamespaceId = secondary.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprimary, err := servicebus.NewNamespace(ctx, \"primary\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Premium\"),\n\t\t\tCapacity:          pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecondary, err := servicebus.NewNamespace(ctx, \"secondary\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Premium\"),\n\t\t\tCapacity:          pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewNamespaceDisasterRecoveryConfig(ctx, \"exampleNamespaceDisasterRecoveryConfig\", \u0026servicebus.NamespaceDisasterRecoveryConfigArgs{\n\t\t\tPrimaryNamespaceId: primary.ID(),\n\t\t\tPartnerNamespaceId: secondary.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nService Bus DR configs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicebus/namespaceDisasterRecoveryConfig:NamespaceDisasterRecoveryConfig config1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ServiceBus/namespaces/namespace1/disasterRecoveryConfigs/config1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "Specifies the name of the Disaster Recovery Config. This is the alias DNS name that will be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partnerNamespaceId": {
          "description": "The ID of the Service Bus Namespace to replicate to.\n",
          "type": "string"
        },
        "primaryNamespaceId": {
          "description": "The ID of the primary Service Bus Namespace to replicate. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "defaultPrimaryKey": {
          "description": "The primary access key for the authorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "defaultSecondaryKey": {
          "description": "The secondary access key for the authorization rule `RootManageSharedAccessKey`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Disaster Recovery Config. This is the alias DNS name that will be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partnerNamespaceId": {
          "description": "The ID of the Service Bus Namespace to replicate to.\n",
          "type": "string"
        },
        "primaryConnectionStringAlias": {
          "description": "The alias Primary Connection String for the ServiceBus Namespace.\n",
          "type": "string"
        },
        "primaryNamespaceId": {
          "description": "The ID of the primary Service Bus Namespace to replicate. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryConnectionStringAlias": {
          "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
          "type": "string"
        }
      },
      "required": [
        "defaultPrimaryKey",
        "defaultSecondaryKey",
        "name",
        "partnerNamespaceId",
        "primaryConnectionStringAlias",
        "primaryNamespaceId",
        "secondaryConnectionStringAlias"
      ],
      "requiredInputs": [
        "partnerNamespaceId",
        "primaryNamespaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NamespaceDisasterRecoveryConfig resources.\n",
        "properties": {
          "defaultPrimaryKey": {
            "description": "The primary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "defaultSecondaryKey": {
            "description": "The secondary access key for the authorization rule `RootManageSharedAccessKey`.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Disaster Recovery Config. This is the alias DNS name that will be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "partnerNamespaceId": {
            "description": "The ID of the Service Bus Namespace to replicate to.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias Primary Connection String for the ServiceBus Namespace.\n",
            "type": "string"
          },
          "primaryNamespaceId": {
            "description": "The ID of the primary Service Bus Namespace to replicate. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:servicebus/namespaceNetworkRuleSet:NamespaceNetworkRuleSet": {
      "description": "Manages a ServiceBus Namespace Network Rule Set Set.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Premium\",\n    capacity: 1,\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"172.17.0.0/16\"],\n    dnsServers: [\n        \"10.0.0.4\",\n        \"10.0.0.5\",\n    ],\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"172.17.0.0/24\"],\n    serviceEndpoints: [\"Microsoft.ServiceBus\"],\n});\nconst exampleNamespaceNetworkRuleSet = new azure.servicebus.NamespaceNetworkRuleSet(\"exampleNamespaceNetworkRuleSet\", {\n    namespaceName: exampleNamespace.name,\n    resourceGroupName: exampleResourceGroup.name,\n    defaultAction: \"Deny\",\n    networkRules: [{\n        subnetId: exampleSubnet.id,\n        ignoreMissingVnetServiceEndpoint: false,\n    }],\n    ipRules: [\"1.1.1.1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Premium\",\n    capacity=1)\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    address_spaces=[\"172.17.0.0/16\"],\n    dns_servers=[\n        \"10.0.0.4\",\n        \"10.0.0.5\",\n    ])\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"172.17.0.0/24\"],\n    service_endpoints=[\"Microsoft.ServiceBus\"])\nexample_namespace_network_rule_set = azure.servicebus.NamespaceNetworkRuleSet(\"exampleNamespaceNetworkRuleSet\",\n    namespace_name=example_namespace.name,\n    resource_group_name=example_resource_group.name,\n    default_action=\"Deny\",\n    network_rules=[azure.servicebus.NamespaceNetworkRuleSetNetworkRuleArgs(\n        subnet_id=example_subnet.id,\n        ignore_missing_vnet_service_endpoint=False,\n    )],\n    ip_rules=[\"1.1.1.1\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Premium\",\n            Capacity = 1,\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"172.17.0.0/16\",\n            },\n            DnsServers = \n            {\n                \"10.0.0.4\",\n                \"10.0.0.5\",\n            },\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"172.17.0.0/24\",\n            },\n            ServiceEndpoints = \n            {\n                \"Microsoft.ServiceBus\",\n            },\n        });\n        var exampleNamespaceNetworkRuleSet = new Azure.ServiceBus.NamespaceNetworkRuleSet(\"exampleNamespaceNetworkRuleSet\", new Azure.ServiceBus.NamespaceNetworkRuleSetArgs\n        {\n            NamespaceName = exampleNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            DefaultAction = \"Deny\",\n            NetworkRules = \n            {\n                new Azure.ServiceBus.Inputs.NamespaceNetworkRuleSetNetworkRuleArgs\n                {\n                    SubnetId = exampleSubnet.Id,\n                    IgnoreMissingVnetServiceEndpoint = false,\n                },\n            },\n            IpRules = \n            {\n                \"1.1.1.1\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Premium\"),\n\t\t\tCapacity:          pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"172.17.0.0/16\"),\n\t\t\t},\n\t\t\tDnsServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.4\"),\n\t\t\t\tpulumi.String(\"10.0.0.5\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"172.17.0.0/24\"),\n\t\t\t},\n\t\t\tServiceEndpoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Microsoft.ServiceBus\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewNamespaceNetworkRuleSet(ctx, \"exampleNamespaceNetworkRuleSet\", \u0026servicebus.NamespaceNetworkRuleSetArgs{\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDefaultAction:     pulumi.String(\"Deny\"),\n\t\t\tNetworkRules: servicebus.NamespaceNetworkRuleSetNetworkRuleArray{\n\t\t\t\t\u0026servicebus.NamespaceNetworkRuleSetNetworkRuleArgs{\n\t\t\t\t\tSubnetId:                         exampleSubnet.ID(),\n\t\t\t\t\tIgnoreMissingVnetServiceEndpoint: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIpRules: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1.1.1.1\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nService Bus Namespace can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicebus/namespaceNetworkRuleSet:NamespaceNetworkRuleSet example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Servicebus/namespaces/sbns1/networkrulesets/default\n```\n\n ",
      "inputProperties": {
        "defaultAction": {
          "description": "Specifies the default action for the ServiceBus Namespace Network Rule Set. Possible values are `Allow` and `Deny`. Defaults to `Deny`.\n",
          "type": "string"
        },
        "ipRules": {
          "description": "One or more IP Addresses, or CIDR Blocks which should be able to access the ServiceBus Namespace.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "namespaceName": {
          "description": "Specifies the ServiceBus Namespace name to which to attach the ServiceBus Namespace Network Rule Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkRules": {
          "description": "One or more `network_rules` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:servicebus/NamespaceNetworkRuleSetNetworkRule:NamespaceNetworkRuleSetNetworkRule"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group where the ServiceBus Namespace Network Rule Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "defaultAction": {
          "description": "Specifies the default action for the ServiceBus Namespace Network Rule Set. Possible values are `Allow` and `Deny`. Defaults to `Deny`.\n",
          "type": "string"
        },
        "ipRules": {
          "description": "One or more IP Addresses, or CIDR Blocks which should be able to access the ServiceBus Namespace.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "namespaceName": {
          "description": "Specifies the ServiceBus Namespace name to which to attach the ServiceBus Namespace Network Rule Set. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkRules": {
          "description": "One or more `network_rules` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:servicebus/NamespaceNetworkRuleSetNetworkRule:NamespaceNetworkRuleSetNetworkRule"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group where the ServiceBus Namespace Network Rule Set should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "namespaceName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NamespaceNetworkRuleSet resources.\n",
        "properties": {
          "defaultAction": {
            "description": "Specifies the default action for the ServiceBus Namespace Network Rule Set. Possible values are `Allow` and `Deny`. Defaults to `Deny`.\n",
            "type": "string"
          },
          "ipRules": {
            "description": "One or more IP Addresses, or CIDR Blocks which should be able to access the ServiceBus Namespace.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "namespaceName": {
            "description": "Specifies the ServiceBus Namespace name to which to attach the ServiceBus Namespace Network Rule Set. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkRules": {
            "description": "One or more `network_rules` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:servicebus/NamespaceNetworkRuleSetNetworkRule:NamespaceNetworkRuleSetNetworkRule"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where the ServiceBus Namespace Network Rule Set should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:servicebus/queue:Queue": {
      "aliases": [
        {
          "type": "azure:eventhub/queue:Queue"
        }
      ],
      "description": "Manages a ServiceBus Queue.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleQueue = new azure.servicebus.Queue(\"exampleQueue\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_queue = azure.servicebus.Queue(\"exampleQueue\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleQueue = new Azure.ServiceBus.Queue(\"exampleQueue\", new Azure.ServiceBus.QueueArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewQueue(ctx, \"exampleQueue\", \u0026servicebus.QueueArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nService Bus Queue can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicebus/queue:Queue example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.servicebus/namespaces/sbns1/queues/snqueue1\n```\n\n ",
      "inputProperties": {
        "autoDeleteOnIdle": {
          "description": "The ISO 8601 timespan duration of the idle interval after which the Queue is automatically deleted, minimum of 5 minutes.\n",
          "type": "string"
        },
        "deadLetteringOnMessageExpiration": {
          "description": "Boolean flag which controls whether the Queue has dead letter support when a message expires. Defaults to `false`.\n",
          "type": "boolean"
        },
        "defaultMessageTtl": {
          "description": "The ISO 8601 timespan duration of the TTL of messages sent to this queue. This is the default value used when TTL is not set on message itself.\n",
          "type": "string"
        },
        "duplicateDetectionHistoryTimeWindow": {
          "description": "The ISO 8601 timespan duration during which duplicates can be detected. Defaults to 10 minutes (`PT10M`).\n",
          "type": "string"
        },
        "enableBatchedOperations": {
          "description": "Boolean flag which controls whether server-side batched operations are enabled. Defaults to `true`.\n",
          "type": "boolean"
        },
        "enableExpress": {
          "description": "Boolean flag which controls whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `false`.\n",
          "type": "boolean"
        },
        "enablePartitioning": {
          "description": "Boolean flag which controls whether to enable the queue to be partitioned across multiple message brokers. Changing this forces a new resource to be created. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `true`.\n",
          "type": "boolean"
        },
        "forwardDeadLetteredMessagesTo": {
          "description": "The name of a Queue or Topic to automatically forward dead lettered messages to.\n",
          "type": "string"
        },
        "forwardTo": {
          "description": "The name of a Queue or Topic to automatically forward messages to. Please [see the documentation](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-auto-forwarding) for more information.\n",
          "type": "string"
        },
        "lockDuration": {
          "description": "The ISO 8601 timespan duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. Maximum value is 5 minutes. Defaults to 1 minute (`PT1M`).\n",
          "type": "string"
        },
        "maxDeliveryCount": {
          "description": "Integer value which controls when a message is automatically dead lettered. Defaults to `10`.\n",
          "type": "integer"
        },
        "maxSizeInMegabytes": {
          "description": "Integer value which controls the size of memory allocated for the queue. For supported values see the \"Queue or topic size\" section of [Service Bus Quotas](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas). Defaults to `1024`.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Queue resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace to create this queue in. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "requiresDuplicateDetection": {
          "description": "Boolean flag which controls whether the Queue requires duplicate detection. Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        },
        "requiresSession": {
          "description": "Boolean flag which controls whether the Queue requires sessions. This will allow ordered handling of unbounded sequences of related messages. With sessions enabled a queue can guarantee first-in-first-out delivery of messages. Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "The status of the Queue. Possible values are `Active`, `Creating`, `Deleting`, `Disabled`, `ReceiveDisabled`, `Renaming`, `SendDisabled`, `Unknown`. Note that `Restoring` is not accepted. Defaults to `Active`.\n",
          "type": "string"
        }
      },
      "properties": {
        "autoDeleteOnIdle": {
          "description": "The ISO 8601 timespan duration of the idle interval after which the Queue is automatically deleted, minimum of 5 minutes.\n",
          "type": "string"
        },
        "deadLetteringOnMessageExpiration": {
          "description": "Boolean flag which controls whether the Queue has dead letter support when a message expires. Defaults to `false`.\n",
          "type": "boolean"
        },
        "defaultMessageTtl": {
          "description": "The ISO 8601 timespan duration of the TTL of messages sent to this queue. This is the default value used when TTL is not set on message itself.\n",
          "type": "string"
        },
        "duplicateDetectionHistoryTimeWindow": {
          "description": "The ISO 8601 timespan duration during which duplicates can be detected. Defaults to 10 minutes (`PT10M`).\n",
          "type": "string"
        },
        "enableBatchedOperations": {
          "description": "Boolean flag which controls whether server-side batched operations are enabled. Defaults to `true`.\n",
          "type": "boolean"
        },
        "enableExpress": {
          "description": "Boolean flag which controls whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `false`.\n",
          "type": "boolean"
        },
        "enablePartitioning": {
          "description": "Boolean flag which controls whether to enable the queue to be partitioned across multiple message brokers. Changing this forces a new resource to be created. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `true`.\n",
          "type": "boolean"
        },
        "forwardDeadLetteredMessagesTo": {
          "description": "The name of a Queue or Topic to automatically forward dead lettered messages to.\n",
          "type": "string"
        },
        "forwardTo": {
          "description": "The name of a Queue or Topic to automatically forward messages to. Please [see the documentation](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-auto-forwarding) for more information.\n",
          "type": "string"
        },
        "lockDuration": {
          "description": "The ISO 8601 timespan duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. Maximum value is 5 minutes. Defaults to 1 minute (`PT1M`).\n",
          "type": "string"
        },
        "maxDeliveryCount": {
          "description": "Integer value which controls when a message is automatically dead lettered. Defaults to `10`.\n",
          "type": "integer"
        },
        "maxSizeInMegabytes": {
          "description": "Integer value which controls the size of memory allocated for the queue. For supported values see the \"Queue or topic size\" section of [Service Bus Quotas](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas). Defaults to `1024`.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Queue resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace to create this queue in. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "requiresDuplicateDetection": {
          "description": "Boolean flag which controls whether the Queue requires duplicate detection. Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        },
        "requiresSession": {
          "description": "Boolean flag which controls whether the Queue requires sessions. This will allow ordered handling of unbounded sequences of related messages. With sessions enabled a queue can guarantee first-in-first-out delivery of messages. Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "The status of the Queue. Possible values are `Active`, `Creating`, `Deleting`, `Disabled`, `ReceiveDisabled`, `Renaming`, `SendDisabled`, `Unknown`. Note that `Restoring` is not accepted. Defaults to `Active`.\n",
          "type": "string"
        }
      },
      "required": [
        "autoDeleteOnIdle",
        "defaultMessageTtl",
        "duplicateDetectionHistoryTimeWindow",
        "lockDuration",
        "maxSizeInMegabytes",
        "name",
        "namespaceName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Queue resources.\n",
        "properties": {
          "autoDeleteOnIdle": {
            "description": "The ISO 8601 timespan duration of the idle interval after which the Queue is automatically deleted, minimum of 5 minutes.\n",
            "type": "string"
          },
          "deadLetteringOnMessageExpiration": {
            "description": "Boolean flag which controls whether the Queue has dead letter support when a message expires. Defaults to `false`.\n",
            "type": "boolean"
          },
          "defaultMessageTtl": {
            "description": "The ISO 8601 timespan duration of the TTL of messages sent to this queue. This is the default value used when TTL is not set on message itself.\n",
            "type": "string"
          },
          "duplicateDetectionHistoryTimeWindow": {
            "description": "The ISO 8601 timespan duration during which duplicates can be detected. Defaults to 10 minutes (`PT10M`).\n",
            "type": "string"
          },
          "enableBatchedOperations": {
            "description": "Boolean flag which controls whether server-side batched operations are enabled. Defaults to `true`.\n",
            "type": "boolean"
          },
          "enableExpress": {
            "description": "Boolean flag which controls whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `false`.\n",
            "type": "boolean"
          },
          "enablePartitioning": {
            "description": "Boolean flag which controls whether to enable the queue to be partitioned across multiple message brokers. Changing this forces a new resource to be created. Defaults to `false` for Basic and Standard. For Premium, it MUST be set to `true`.\n",
            "type": "boolean"
          },
          "forwardDeadLetteredMessagesTo": {
            "description": "The name of a Queue or Topic to automatically forward dead lettered messages to.\n",
            "type": "string"
          },
          "forwardTo": {
            "description": "The name of a Queue or Topic to automatically forward messages to. Please [see the documentation](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-auto-forwarding) for more information.\n",
            "type": "string"
          },
          "lockDuration": {
            "description": "The ISO 8601 timespan duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. Maximum value is 5 minutes. Defaults to 1 minute (`PT1M`).\n",
            "type": "string"
          },
          "maxDeliveryCount": {
            "description": "Integer value which controls when a message is automatically dead lettered. Defaults to `10`.\n",
            "type": "integer"
          },
          "maxSizeInMegabytes": {
            "description": "Integer value which controls the size of memory allocated for the queue. For supported values see the \"Queue or topic size\" section of [Service Bus Quotas](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas). Defaults to `1024`.\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the ServiceBus Queue resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the ServiceBus Namespace to create this queue in. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "requiresDuplicateDetection": {
            "description": "Boolean flag which controls whether the Queue requires duplicate detection. Changing this forces a new resource to be created. Defaults to `false`.\n",
            "type": "boolean"
          },
          "requiresSession": {
            "description": "Boolean flag which controls whether the Queue requires sessions. This will allow ordered handling of unbounded sequences of related messages. With sessions enabled a queue can guarantee first-in-first-out delivery of messages. Changing this forces a new resource to be created. Defaults to `false`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "status": {
            "description": "The status of the Queue. Possible values are `Active`, `Creating`, `Deleting`, `Disabled`, `ReceiveDisabled`, `Renaming`, `SendDisabled`, `Unknown`. Note that `Restoring` is not accepted. Defaults to `Active`.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:servicebus/queueAuthorizationRule:QueueAuthorizationRule": {
      "aliases": [
        {
          "type": "azure:eventhub/queueAuthorizationRule:QueueAuthorizationRule"
        }
      ],
      "description": "Manages an Authorization Rule for a ServiceBus Queue.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West US\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleQueue = new azure.servicebus.Queue(\"exampleQueue\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\nconst exampleQueueAuthorizationRule = new azure.servicebus.QueueAuthorizationRule(\"exampleQueueAuthorizationRule\", {\n    namespaceName: exampleNamespace.name,\n    queueName: exampleQueue.name,\n    resourceGroupName: exampleResourceGroup.name,\n    listen: true,\n    send: true,\n    manage: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West US\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_queue = azure.servicebus.Queue(\"exampleQueue\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\nexample_queue_authorization_rule = azure.servicebus.QueueAuthorizationRule(\"exampleQueueAuthorizationRule\",\n    namespace_name=example_namespace.name,\n    queue_name=example_queue.name,\n    resource_group_name=example_resource_group.name,\n    listen=True,\n    send=True,\n    manage=False)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West US\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleQueue = new Azure.ServiceBus.Queue(\"exampleQueue\", new Azure.ServiceBus.QueueArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n        var exampleQueueAuthorizationRule = new Azure.ServiceBus.QueueAuthorizationRule(\"exampleQueueAuthorizationRule\", new Azure.ServiceBus.QueueAuthorizationRuleArgs\n        {\n            NamespaceName = exampleNamespace.Name,\n            QueueName = exampleQueue.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Listen = true,\n            Send = true,\n            Manage = false,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleQueue, err := servicebus.NewQueue(ctx, \"exampleQueue\", \u0026servicebus.QueueArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewQueueAuthorizationRule(ctx, \"exampleQueueAuthorizationRule\", \u0026servicebus.QueueAuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tQueueName:         exampleQueue.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tListen:            pulumi.Bool(true),\n\t\t\tSend:              pulumi.Bool(true),\n\t\t\tManage:            pulumi.Bool(false),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nServiceBus Queue Authorization Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicebus/queueAuthorizationRule:QueueAuthorizationRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ServiceBus/namespaces/namespace1/queues/queue1/authorizationRules/rule1\n```\n\n ",
      "inputProperties": {
        "listen": {
          "description": "Does this Authorization Rule have Listen permissions to the ServiceBus Queue? Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Does this Authorization Rule have Manage permissions to the ServiceBus Queue? When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Authorization Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the ServiceBus Namespace in which the Queue exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "queueName": {
          "description": "Specifies the name of the ServiceBus Queue. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "send": {
          "description": "Does this Authorization Rule have Send permissions to the ServiceBus Queue? Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "listen": {
          "description": "Does this Authorization Rule have Listen permissions to the ServiceBus Queue? Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Does this Authorization Rule have Manage permissions to the ServiceBus Queue? When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Authorization Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the ServiceBus Namespace in which the Queue exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The Primary Connection String for the Authorization Rule.\n",
          "type": "string"
        },
        "primaryConnectionStringAlias": {
          "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The Primary Key for the Authorization Rule.\n",
          "type": "string"
        },
        "queueName": {
          "description": "Specifies the name of the ServiceBus Queue. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The Secondary Connection String for the Authorization Rule.\n",
          "type": "string"
        },
        "secondaryConnectionStringAlias": {
          "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The Secondary Key for the Authorization Rule.\n",
          "type": "string"
        },
        "send": {
          "description": "Does this Authorization Rule have Send permissions to the ServiceBus Queue? Defaults to `false`.\n",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "namespaceName",
        "primaryConnectionString",
        "primaryConnectionStringAlias",
        "primaryKey",
        "queueName",
        "resourceGroupName",
        "secondaryConnectionString",
        "secondaryConnectionStringAlias",
        "secondaryKey"
      ],
      "requiredInputs": [
        "namespaceName",
        "queueName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering QueueAuthorizationRule resources.\n",
        "properties": {
          "listen": {
            "description": "Does this Authorization Rule have Listen permissions to the ServiceBus Queue? Defaults to `false`.\n",
            "type": "boolean"
          },
          "manage": {
            "description": "Does this Authorization Rule have Manage permissions to the ServiceBus Queue? When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the Authorization Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the ServiceBus Namespace in which the Queue exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the Authorization Rule.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the Authorization Rule.\n",
            "type": "string"
          },
          "queueName": {
            "description": "Specifies the name of the ServiceBus Queue. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the Authorization Rule.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the Authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "description": "Does this Authorization Rule have Send permissions to the ServiceBus Queue? Defaults to `false`.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:servicebus/subscription:Subscription": {
      "aliases": [
        {
          "type": "azure:eventhub/subscription:Subscription"
        }
      ],
      "description": "Manages a ServiceBus Subscription.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleTopic = new azure.servicebus.Topic(\"exampleTopic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\nconst exampleSubscription = new azure.servicebus.Subscription(\"exampleSubscription\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    topicName: exampleTopic.name,\n    maxDeliveryCount: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_topic = azure.servicebus.Topic(\"exampleTopic\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\nexample_subscription = azure.servicebus.Subscription(\"exampleSubscription\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    topic_name=example_topic.name,\n    max_delivery_count=1)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleTopic = new Azure.ServiceBus.Topic(\"exampleTopic\", new Azure.ServiceBus.TopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n        var exampleSubscription = new Azure.ServiceBus.Subscription(\"exampleSubscription\", new Azure.ServiceBus.SubscriptionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            TopicName = exampleTopic.Name,\n            MaxDeliveryCount = 1,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := servicebus.NewTopic(ctx, \"exampleTopic\", \u0026servicebus.TopicArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewSubscription(ctx, \"exampleSubscription\", \u0026servicebus.SubscriptionArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tTopicName:         exampleTopic.Name,\n\t\t\tMaxDeliveryCount:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nService Bus Subscriptions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicebus/subscription:Subscription example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.servicebus/namespaces/sbns1/topics/sntopic1/subscriptions/sbsub1\n```\n\n ",
      "inputProperties": {
        "autoDeleteOnIdle": {
          "description": "The idle interval after which the topic is automatically deleted as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). The minimum duration is `5` minutes or `P5M`.\n",
          "type": "string"
        },
        "deadLetteringOnFilterEvaluationError": {
          "description": "Boolean flag which controls whether the Subscription has dead letter support on filter evaluation exceptions. Defaults to `true`.\n",
          "type": "boolean"
        },
        "deadLetteringOnMessageExpiration": {
          "description": "Boolean flag which controls whether the Subscription has dead letter support when a message expires. Defaults to `false`.\n",
          "type": "boolean"
        },
        "defaultMessageTtl": {
          "description": "The Default message timespan to live as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.\n",
          "type": "string"
        },
        "enableBatchedOperations": {
          "description": "Boolean flag which controls whether the Subscription supports batched operations. Defaults to `false`.\n",
          "type": "boolean"
        },
        "forwardDeadLetteredMessagesTo": {
          "description": "The name of a Queue or Topic to automatically forward Dead Letter messages to.\n",
          "type": "string"
        },
        "forwardTo": {
          "description": "The name of a Queue or Topic to automatically forward messages to.\n",
          "type": "string"
        },
        "lockDuration": {
          "description": "The lock duration for the subscription as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). The default value is `1` minute or `P1M`.\n",
          "type": "string"
        },
        "maxDeliveryCount": {
          "description": "The maximum number of deliveries.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Subscription resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace to create this Subscription in. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "requiresSession": {
          "description": "Boolean flag which controls whether this Subscription supports the concept of a session. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "The status of the Subscription. Possible values are `Active`,`ReceiveDisabled`, or `Disabled`. Defaults to `Active`.\n",
          "type": "string"
        },
        "topicName": {
          "description": "The name of the ServiceBus Topic to create this Subscription in. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "autoDeleteOnIdle": {
          "description": "The idle interval after which the topic is automatically deleted as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). The minimum duration is `5` minutes or `P5M`.\n",
          "type": "string"
        },
        "deadLetteringOnFilterEvaluationError": {
          "description": "Boolean flag which controls whether the Subscription has dead letter support on filter evaluation exceptions. Defaults to `true`.\n",
          "type": "boolean"
        },
        "deadLetteringOnMessageExpiration": {
          "description": "Boolean flag which controls whether the Subscription has dead letter support when a message expires. Defaults to `false`.\n",
          "type": "boolean"
        },
        "defaultMessageTtl": {
          "description": "The Default message timespan to live as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.\n",
          "type": "string"
        },
        "enableBatchedOperations": {
          "description": "Boolean flag which controls whether the Subscription supports batched operations. Defaults to `false`.\n",
          "type": "boolean"
        },
        "forwardDeadLetteredMessagesTo": {
          "description": "The name of a Queue or Topic to automatically forward Dead Letter messages to.\n",
          "type": "string"
        },
        "forwardTo": {
          "description": "The name of a Queue or Topic to automatically forward messages to.\n",
          "type": "string"
        },
        "lockDuration": {
          "description": "The lock duration for the subscription as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). The default value is `1` minute or `P1M`.\n",
          "type": "string"
        },
        "maxDeliveryCount": {
          "description": "The maximum number of deliveries.\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Subscription resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace to create this Subscription in. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "requiresSession": {
          "description": "Boolean flag which controls whether this Subscription supports the concept of a session. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "The status of the Subscription. Possible values are `Active`,`ReceiveDisabled`, or `Disabled`. Defaults to `Active`.\n",
          "type": "string"
        },
        "topicName": {
          "description": "The name of the ServiceBus Topic to create this Subscription in. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "autoDeleteOnIdle",
        "defaultMessageTtl",
        "lockDuration",
        "maxDeliveryCount",
        "name",
        "namespaceName",
        "resourceGroupName",
        "topicName"
      ],
      "requiredInputs": [
        "maxDeliveryCount",
        "namespaceName",
        "resourceGroupName",
        "topicName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Subscription resources.\n",
        "properties": {
          "autoDeleteOnIdle": {
            "description": "The idle interval after which the topic is automatically deleted as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). The minimum duration is `5` minutes or `P5M`.\n",
            "type": "string"
          },
          "deadLetteringOnFilterEvaluationError": {
            "description": "Boolean flag which controls whether the Subscription has dead letter support on filter evaluation exceptions. Defaults to `true`.\n",
            "type": "boolean"
          },
          "deadLetteringOnMessageExpiration": {
            "description": "Boolean flag which controls whether the Subscription has dead letter support when a message expires. Defaults to `false`.\n",
            "type": "boolean"
          },
          "defaultMessageTtl": {
            "description": "The Default message timespan to live as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.\n",
            "type": "string"
          },
          "enableBatchedOperations": {
            "description": "Boolean flag which controls whether the Subscription supports batched operations. Defaults to `false`.\n",
            "type": "boolean"
          },
          "forwardDeadLetteredMessagesTo": {
            "description": "The name of a Queue or Topic to automatically forward Dead Letter messages to.\n",
            "type": "string"
          },
          "forwardTo": {
            "description": "The name of a Queue or Topic to automatically forward messages to.\n",
            "type": "string"
          },
          "lockDuration": {
            "description": "The lock duration for the subscription as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). The default value is `1` minute or `P1M`.\n",
            "type": "string"
          },
          "maxDeliveryCount": {
            "description": "The maximum number of deliveries.\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the ServiceBus Subscription resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the ServiceBus Namespace to create this Subscription in. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "requiresSession": {
            "description": "Boolean flag which controls whether this Subscription supports the concept of a session. Defaults to `false`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "status": {
            "description": "The status of the Subscription. Possible values are `Active`,`ReceiveDisabled`, or `Disabled`. Defaults to `Active`.\n",
            "type": "string"
          },
          "topicName": {
            "description": "The name of the ServiceBus Topic to create this Subscription in. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:servicebus/subscriptionRule:SubscriptionRule": {
      "aliases": [
        {
          "type": "azure:eventhub/subscriptionRule:SubscriptionRule"
        }
      ],
      "description": "Manages a ServiceBus Subscription Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### SQL Filter)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleTopic = new azure.servicebus.Topic(\"exampleTopic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\nconst exampleSubscription = new azure.servicebus.Subscription(\"exampleSubscription\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    topicName: exampleTopic.name,\n    maxDeliveryCount: 1,\n});\nconst exampleSubscriptionRule = new azure.servicebus.SubscriptionRule(\"exampleSubscriptionRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    topicName: exampleTopic.name,\n    subscriptionName: exampleSubscription.name,\n    filterType: \"SqlFilter\",\n    sqlFilter: \"colour = 'red'\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_topic = azure.servicebus.Topic(\"exampleTopic\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\nexample_subscription = azure.servicebus.Subscription(\"exampleSubscription\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    topic_name=example_topic.name,\n    max_delivery_count=1)\nexample_subscription_rule = azure.servicebus.SubscriptionRule(\"exampleSubscriptionRule\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    topic_name=example_topic.name,\n    subscription_name=example_subscription.name,\n    filter_type=\"SqlFilter\",\n    sql_filter=\"colour = 'red'\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleTopic = new Azure.ServiceBus.Topic(\"exampleTopic\", new Azure.ServiceBus.TopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n        var exampleSubscription = new Azure.ServiceBus.Subscription(\"exampleSubscription\", new Azure.ServiceBus.SubscriptionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            TopicName = exampleTopic.Name,\n            MaxDeliveryCount = 1,\n        });\n        var exampleSubscriptionRule = new Azure.ServiceBus.SubscriptionRule(\"exampleSubscriptionRule\", new Azure.ServiceBus.SubscriptionRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            TopicName = exampleTopic.Name,\n            SubscriptionName = exampleSubscription.Name,\n            FilterType = \"SqlFilter\",\n            SqlFilter = \"colour = 'red'\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := servicebus.NewTopic(ctx, \"exampleTopic\", \u0026servicebus.TopicArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubscription, err := servicebus.NewSubscription(ctx, \"exampleSubscription\", \u0026servicebus.SubscriptionArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tTopicName:         exampleTopic.Name,\n\t\t\tMaxDeliveryCount:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewSubscriptionRule(ctx, \"exampleSubscriptionRule\", \u0026servicebus.SubscriptionRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tTopicName:         exampleTopic.Name,\n\t\t\tSubscriptionName:  exampleSubscription.Name,\n\t\t\tFilterType:        pulumi.String(\"SqlFilter\"),\n\t\t\tSqlFilter:         pulumi.String(\"colour = 'red'\"),\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\n{{% /example %}}\n{{% example %}}\n### Correlation Filter)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleTopic = new azure.servicebus.Topic(\"exampleTopic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\nconst exampleSubscription = new azure.servicebus.Subscription(\"exampleSubscription\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    topicName: exampleTopic.name,\n    maxDeliveryCount: 1,\n});\nconst exampleSubscriptionRule = new azure.servicebus.SubscriptionRule(\"exampleSubscriptionRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    topicName: exampleTopic.name,\n    subscriptionName: exampleSubscription.name,\n    filterType: \"CorrelationFilter\",\n    correlationFilter: {\n        correlationId: \"high\",\n        label: \"red\",\n        properties: {\n            customProperty: \"value\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_topic = azure.servicebus.Topic(\"exampleTopic\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\nexample_subscription = azure.servicebus.Subscription(\"exampleSubscription\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    topic_name=example_topic.name,\n    max_delivery_count=1)\nexample_subscription_rule = azure.servicebus.SubscriptionRule(\"exampleSubscriptionRule\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    topic_name=example_topic.name,\n    subscription_name=example_subscription.name,\n    filter_type=\"CorrelationFilter\",\n    correlation_filter=azure.servicebus.SubscriptionRuleCorrelationFilterArgs(\n        correlation_id=\"high\",\n        label=\"red\",\n        properties={\n            \"customProperty\": \"value\",\n        },\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleTopic = new Azure.ServiceBus.Topic(\"exampleTopic\", new Azure.ServiceBus.TopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n        var exampleSubscription = new Azure.ServiceBus.Subscription(\"exampleSubscription\", new Azure.ServiceBus.SubscriptionArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            TopicName = exampleTopic.Name,\n            MaxDeliveryCount = 1,\n        });\n        var exampleSubscriptionRule = new Azure.ServiceBus.SubscriptionRule(\"exampleSubscriptionRule\", new Azure.ServiceBus.SubscriptionRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            TopicName = exampleTopic.Name,\n            SubscriptionName = exampleSubscription.Name,\n            FilterType = \"CorrelationFilter\",\n            CorrelationFilter = new Azure.ServiceBus.Inputs.SubscriptionRuleCorrelationFilterArgs\n            {\n                CorrelationId = \"high\",\n                Label = \"red\",\n                Properties = \n                {\n                    { \"customProperty\", \"value\" },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := servicebus.NewTopic(ctx, \"exampleTopic\", \u0026servicebus.TopicArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubscription, err := servicebus.NewSubscription(ctx, \"exampleSubscription\", \u0026servicebus.SubscriptionArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tTopicName:         exampleTopic.Name,\n\t\t\tMaxDeliveryCount:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewSubscriptionRule(ctx, \"exampleSubscriptionRule\", \u0026servicebus.SubscriptionRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tTopicName:         exampleTopic.Name,\n\t\t\tSubscriptionName:  exampleSubscription.Name,\n\t\t\tFilterType:        pulumi.String(\"CorrelationFilter\"),\n\t\t\tCorrelationFilter: \u0026servicebus.SubscriptionRuleCorrelationFilterArgs{\n\t\t\t\tCorrelationId: pulumi.String(\"high\"),\n\t\t\t\tLabel:         pulumi.String(\"red\"),\n\t\t\t\tProperties: pulumi.StringMap{\n\t\t\t\t\t\"customProperty\": pulumi.String(\"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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nService Bus Subscription Rule can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicebus/subscriptionRule:SubscriptionRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.servicebus/namespaces/sbns1/topics/sntopic1/subscriptions/sbsub1/rules/sbrule1\n```\n\n ",
      "inputProperties": {
        "action": {
          "description": "Represents set of actions written in SQL language-based syntax that is performed against a BrokeredMessage.\n",
          "type": "string"
        },
        "correlationFilter": {
          "$ref": "#/types/azure:servicebus/SubscriptionRuleCorrelationFilter:SubscriptionRuleCorrelationFilter",
          "description": "A `correlation_filter` block as documented below to be evaluated against a BrokeredMessage. Required when `filter_type` is set to `CorrelationFilter`.\n"
        },
        "filterType": {
          "description": "Type of filter to be applied to a BrokeredMessage. Possible values are `SqlFilter` and `CorrelationFilter`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Subscription Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace in which the ServiceBus Topic exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sqlFilter": {
          "description": "Represents a filter written in SQL language-based syntax that to be evaluated against a BrokeredMessage. Required when `filter_type` is set to `SqlFilter`.\n",
          "type": "string"
        },
        "subscriptionName": {
          "description": "The name of the ServiceBus Subscription in which this Rule should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "topicName": {
          "description": "The name of the ServiceBus Topic in which the ServiceBus Subscription exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "action": {
          "description": "Represents set of actions written in SQL language-based syntax that is performed against a BrokeredMessage.\n",
          "type": "string"
        },
        "correlationFilter": {
          "$ref": "#/types/azure:servicebus/SubscriptionRuleCorrelationFilter:SubscriptionRuleCorrelationFilter",
          "description": "A `correlation_filter` block as documented below to be evaluated against a BrokeredMessage. Required when `filter_type` is set to `CorrelationFilter`.\n"
        },
        "filterType": {
          "description": "Type of filter to be applied to a BrokeredMessage. Possible values are `SqlFilter` and `CorrelationFilter`.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Subscription Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace in which the ServiceBus Topic exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sqlFilter": {
          "description": "Represents a filter written in SQL language-based syntax that to be evaluated against a BrokeredMessage. Required when `filter_type` is set to `SqlFilter`.\n",
          "type": "string"
        },
        "subscriptionName": {
          "description": "The name of the ServiceBus Subscription in which this Rule should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "topicName": {
          "description": "The name of the ServiceBus Topic in which the ServiceBus Subscription exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "filterType",
        "name",
        "namespaceName",
        "resourceGroupName",
        "subscriptionName",
        "topicName"
      ],
      "requiredInputs": [
        "filterType",
        "namespaceName",
        "resourceGroupName",
        "subscriptionName",
        "topicName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SubscriptionRule resources.\n",
        "properties": {
          "action": {
            "description": "Represents set of actions written in SQL language-based syntax that is performed against a BrokeredMessage.\n",
            "type": "string"
          },
          "correlationFilter": {
            "$ref": "#/types/azure:servicebus/SubscriptionRuleCorrelationFilter:SubscriptionRuleCorrelationFilter",
            "description": "A `correlation_filter` block as documented below to be evaluated against a BrokeredMessage. Required when `filter_type` is set to `CorrelationFilter`.\n"
          },
          "filterType": {
            "description": "Type of filter to be applied to a BrokeredMessage. Possible values are `SqlFilter` and `CorrelationFilter`.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the ServiceBus Subscription Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the ServiceBus Namespace in which the ServiceBus Topic exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sqlFilter": {
            "description": "Represents a filter written in SQL language-based syntax that to be evaluated against a BrokeredMessage. Required when `filter_type` is set to `SqlFilter`.\n",
            "type": "string"
          },
          "subscriptionName": {
            "description": "The name of the ServiceBus Subscription in which this Rule should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "topicName": {
            "description": "The name of the ServiceBus Topic in which the ServiceBus Subscription exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:servicebus/topic:Topic": {
      "aliases": [
        {
          "type": "azure:eventhub/topic:Topic"
        }
      ],
      "description": "Manages a ServiceBus Topic.\n\n**Note** Topics can only be created in Namespaces with an SKU of `standard` or higher.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleTopic = new azure.servicebus.Topic(\"exampleTopic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_topic = azure.servicebus.Topic(\"exampleTopic\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleTopic = new Azure.ServiceBus.Topic(\"exampleTopic\", new Azure.ServiceBus.TopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewTopic(ctx, \"exampleTopic\", \u0026servicebus.TopicArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nService Bus Topics can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicebus/topic:Topic example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/microsoft.servicebus/namespaces/sbns1/topics/sntopic1\n```\n\n ",
      "inputProperties": {
        "autoDeleteOnIdle": {
          "description": "The ISO 8601 timespan duration of the idle interval after which the\nTopic is automatically deleted, minimum of 5 minutes.\n",
          "type": "string"
        },
        "defaultMessageTtl": {
          "description": "The ISO 8601 timespan duration of TTL of messages sent to this topic if no\nTTL value is set on the message itself.\n",
          "type": "string"
        },
        "duplicateDetectionHistoryTimeWindow": {
          "description": "The ISO 8601 timespan duration during which\nduplicates can be detected. Defaults to 10 minutes. (`PT10M`)\n",
          "type": "string"
        },
        "enableBatchedOperations": {
          "description": "Boolean flag which controls if server-side\nbatched operations are enabled. Defaults to false.\n",
          "type": "boolean"
        },
        "enableExpress": {
          "description": "Boolean flag which controls whether Express Entities\nare enabled. An express topic holds a message in memory temporarily before writing\nit to persistent storage. Defaults to false.\n",
          "type": "boolean"
        },
        "enablePartitioning": {
          "description": "Boolean flag which controls whether to enable\nthe topic to be partitioned across multiple message brokers. Defaults to false.\nChanging this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "maxSizeInMegabytes": {
          "description": "Integer value which controls the size of\nmemory allocated for the topic. For supported values see the \"Queue/topic size\"\nsection of [this document](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas).\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Topic resource. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace to create\nthis topic in. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "requiresDuplicateDetection": {
          "description": "Boolean flag which controls whether\nthe Topic requires duplicate detection. Defaults to false. Changing this forces\na new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "The Status of the Service Bus Topic. Acceptable values are `Active` or `Disabled`. Defaults to `Active`.\n",
          "type": "string"
        },
        "supportOrdering": {
          "description": "Boolean flag which controls whether the Topic\nsupports ordering. Defaults to false.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "autoDeleteOnIdle": {
          "description": "The ISO 8601 timespan duration of the idle interval after which the\nTopic is automatically deleted, minimum of 5 minutes.\n",
          "type": "string"
        },
        "defaultMessageTtl": {
          "description": "The ISO 8601 timespan duration of TTL of messages sent to this topic if no\nTTL value is set on the message itself.\n",
          "type": "string"
        },
        "duplicateDetectionHistoryTimeWindow": {
          "description": "The ISO 8601 timespan duration during which\nduplicates can be detected. Defaults to 10 minutes. (`PT10M`)\n",
          "type": "string"
        },
        "enableBatchedOperations": {
          "description": "Boolean flag which controls if server-side\nbatched operations are enabled. Defaults to false.\n",
          "type": "boolean"
        },
        "enableExpress": {
          "description": "Boolean flag which controls whether Express Entities\nare enabled. An express topic holds a message in memory temporarily before writing\nit to persistent storage. Defaults to false.\n",
          "type": "boolean"
        },
        "enablePartitioning": {
          "description": "Boolean flag which controls whether to enable\nthe topic to be partitioned across multiple message brokers. Defaults to false.\nChanging this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "maxSizeInMegabytes": {
          "description": "Integer value which controls the size of\nmemory allocated for the topic. For supported values see the \"Queue/topic size\"\nsection of [this document](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas).\n",
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Topic resource. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "The name of the ServiceBus Namespace to create\nthis topic in. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "requiresDuplicateDetection": {
          "description": "Boolean flag which controls whether\nthe Topic requires duplicate detection. Defaults to false. Changing this forces\na new resource to be created.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "status": {
          "description": "The Status of the Service Bus Topic. Acceptable values are `Active` or `Disabled`. Defaults to `Active`.\n",
          "type": "string"
        },
        "supportOrdering": {
          "description": "Boolean flag which controls whether the Topic\nsupports ordering. Defaults to false.\n",
          "type": "boolean"
        }
      },
      "required": [
        "autoDeleteOnIdle",
        "defaultMessageTtl",
        "duplicateDetectionHistoryTimeWindow",
        "maxSizeInMegabytes",
        "name",
        "namespaceName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "namespaceName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Topic resources.\n",
        "properties": {
          "autoDeleteOnIdle": {
            "description": "The ISO 8601 timespan duration of the idle interval after which the\nTopic is automatically deleted, minimum of 5 minutes.\n",
            "type": "string"
          },
          "defaultMessageTtl": {
            "description": "The ISO 8601 timespan duration of TTL of messages sent to this topic if no\nTTL value is set on the message itself.\n",
            "type": "string"
          },
          "duplicateDetectionHistoryTimeWindow": {
            "description": "The ISO 8601 timespan duration during which\nduplicates can be detected. Defaults to 10 minutes. (`PT10M`)\n",
            "type": "string"
          },
          "enableBatchedOperations": {
            "description": "Boolean flag which controls if server-side\nbatched operations are enabled. Defaults to false.\n",
            "type": "boolean"
          },
          "enableExpress": {
            "description": "Boolean flag which controls whether Express Entities\nare enabled. An express topic holds a message in memory temporarily before writing\nit to persistent storage. Defaults to false.\n",
            "type": "boolean"
          },
          "enablePartitioning": {
            "description": "Boolean flag which controls whether to enable\nthe topic to be partitioned across multiple message brokers. Defaults to false.\nChanging this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "maxSizeInMegabytes": {
            "description": "Integer value which controls the size of\nmemory allocated for the topic. For supported values see the \"Queue/topic size\"\nsection of [this document](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas).\n",
            "type": "integer"
          },
          "name": {
            "description": "Specifies the name of the ServiceBus Topic resource. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "The name of the ServiceBus Namespace to create\nthis topic in. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "requiresDuplicateDetection": {
            "description": "Boolean flag which controls whether\nthe Topic requires duplicate detection. Defaults to false. Changing this forces\na new resource to be created.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "status": {
            "description": "The Status of the Service Bus Topic. Acceptable values are `Active` or `Disabled`. Defaults to `Active`.\n",
            "type": "string"
          },
          "supportOrdering": {
            "description": "Boolean flag which controls whether the Topic\nsupports ordering. Defaults to false.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:servicebus/topicAuthorizationRule:TopicAuthorizationRule": {
      "aliases": [
        {
          "type": "azure:eventhub/topicAuthorizationRule:TopicAuthorizationRule"
        }
      ],
      "description": "Manages a ServiceBus Topic authorization Rule within a ServiceBus Topic.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: \"Standard\",\n    tags: {\n        source: \"example\",\n    },\n});\nconst exampleTopic = new azure.servicebus.Topic(\"exampleTopic\", {\n    resourceGroupName: exampleResourceGroup.name,\n    namespaceName: exampleNamespace.name,\n});\nconst exampleTopicAuthorizationRule = new azure.servicebus.TopicAuthorizationRule(\"exampleTopicAuthorizationRule\", {\n    namespaceName: exampleNamespace.name,\n    topicName: exampleTopic.name,\n    resourceGroupName: exampleResourceGroup.name,\n    listen: true,\n    send: false,\n    manage: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    tags={\n        \"source\": \"example\",\n    })\nexample_topic = azure.servicebus.Topic(\"exampleTopic\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name)\nexample_topic_authorization_rule = azure.servicebus.TopicAuthorizationRule(\"exampleTopicAuthorizationRule\",\n    namespace_name=example_namespace.name,\n    topic_name=example_topic.name,\n    resource_group_name=example_resource_group.name,\n    listen=True,\n    send=False,\n    manage=False)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = \"Standard\",\n            Tags = \n            {\n                { \"source\", \"example\" },\n            },\n        });\n        var exampleTopic = new Azure.ServiceBus.Topic(\"exampleTopic\", new Azure.ServiceBus.TopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            NamespaceName = exampleNamespace.Name,\n        });\n        var exampleTopicAuthorizationRule = new Azure.ServiceBus.TopicAuthorizationRule(\"exampleTopicAuthorizationRule\", new Azure.ServiceBus.TopicAuthorizationRuleArgs\n        {\n            NamespaceName = exampleNamespace.Name,\n            TopicName = exampleTopic.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Listen = true,\n            Send = false,\n            Manage = false,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"source\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := servicebus.NewTopic(ctx, \"exampleTopic\", \u0026servicebus.TopicArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicebus.NewTopicAuthorizationRule(ctx, \"exampleTopicAuthorizationRule\", \u0026servicebus.TopicAuthorizationRuleArgs{\n\t\t\tNamespaceName:     exampleNamespace.Name,\n\t\t\tTopicName:         exampleTopic.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tListen:            pulumi.Bool(true),\n\t\t\tSend:              pulumi.Bool(false),\n\t\t\tManage:            pulumi.Bool(false),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nServiceBus Topic authorization rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicebus/topicAuthorizationRule:TopicAuthorizationRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ServiceBus/namespaces/namespace1/topics/topic1/authorizationRules/rule1\n```\n\n ",
      "inputProperties": {
        "listen": {
          "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Topic Authorization Rule resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the ServiceBus Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "send": {
          "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "topicName": {
          "description": "Specifies the name of the ServiceBus Topic. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "listen": {
          "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "manage": {
          "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the ServiceBus Topic Authorization Rule resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "namespaceName": {
          "description": "Specifies the name of the ServiceBus Namespace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The Primary Connection String for the ServiceBus Topic authorization Rule.\n",
          "type": "string"
        },
        "primaryConnectionStringAlias": {
          "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
          "type": "string"
        },
        "primaryKey": {
          "description": "The Primary Key for the ServiceBus Topic authorization Rule.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The Secondary Connection String for the ServiceBus Topic authorization Rule.\n",
          "type": "string"
        },
        "secondaryConnectionStringAlias": {
          "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The Secondary Key for the ServiceBus Topic authorization Rule.\n",
          "type": "string"
        },
        "send": {
          "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
          "type": "boolean"
        },
        "topicName": {
          "description": "Specifies the name of the ServiceBus Topic. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "namespaceName",
        "primaryConnectionString",
        "primaryConnectionStringAlias",
        "primaryKey",
        "resourceGroupName",
        "secondaryConnectionString",
        "secondaryConnectionStringAlias",
        "secondaryKey",
        "topicName"
      ],
      "requiredInputs": [
        "namespaceName",
        "resourceGroupName",
        "topicName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TopicAuthorizationRule resources.\n",
        "properties": {
          "listen": {
            "description": "Grants listen access to this this Authorization Rule. Defaults to `false`.\n",
            "type": "boolean"
          },
          "manage": {
            "description": "Grants manage access to this this Authorization Rule. When this property is `true` - both `listen` and `send` must be too. Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name of the ServiceBus Topic Authorization Rule resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "namespaceName": {
            "description": "Specifies the name of the ServiceBus Namespace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The Primary Connection String for the ServiceBus Topic authorization Rule.\n",
            "type": "string"
          },
          "primaryConnectionStringAlias": {
            "description": "The alias Primary Connection String for the ServiceBus Namespace, if the namespace is Geo DR paired.\n",
            "type": "string"
          },
          "primaryKey": {
            "description": "The Primary Key for the ServiceBus Topic authorization Rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which the ServiceBus Namespace exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The Secondary Connection String for the ServiceBus Topic authorization Rule.\n",
            "type": "string"
          },
          "secondaryConnectionStringAlias": {
            "description": "The alias Secondary Connection String for the ServiceBus Namespace\n",
            "type": "string"
          },
          "secondaryKey": {
            "description": "The Secondary Key for the ServiceBus Topic authorization Rule.\n",
            "type": "string"
          },
          "send": {
            "description": "Grants send access to this this Authorization Rule. Defaults to `false`.\n",
            "type": "boolean"
          },
          "topicName": {
            "description": "Specifies the name of the ServiceBus Topic. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:servicefabric/cluster:Cluster": {
      "description": "Manages a Service Fabric Cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleCluster = new azure.servicefabric.Cluster(\"exampleCluster\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    reliabilityLevel: \"Bronze\",\n    upgradeMode: \"Manual\",\n    clusterCodeVersion: \"7.1.456.959\",\n    vmImage: \"Windows\",\n    managementEndpoint: \"https://example:80\",\n    nodeTypes: [{\n        name: \"first\",\n        instanceCount: 3,\n        isPrimary: true,\n        clientEndpointPort: 2020,\n        httpEndpointPort: 80,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_cluster = azure.servicefabric.Cluster(\"exampleCluster\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    reliability_level=\"Bronze\",\n    upgrade_mode=\"Manual\",\n    cluster_code_version=\"7.1.456.959\",\n    vm_image=\"Windows\",\n    management_endpoint=\"https://example:80\",\n    node_types=[azure.servicefabric.ClusterNodeTypeArgs(\n        name=\"first\",\n        instance_count=3,\n        is_primary=True,\n        client_endpoint_port=2020,\n        http_endpoint_port=80,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleCluster = new Azure.ServiceFabric.Cluster(\"exampleCluster\", new Azure.ServiceFabric.ClusterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ReliabilityLevel = \"Bronze\",\n            UpgradeMode = \"Manual\",\n            ClusterCodeVersion = \"7.1.456.959\",\n            VmImage = \"Windows\",\n            ManagementEndpoint = \"https://example:80\",\n            NodeTypes = \n            {\n                new Azure.ServiceFabric.Inputs.ClusterNodeTypeArgs\n                {\n                    Name = \"first\",\n                    InstanceCount = 3,\n                    IsPrimary = true,\n                    ClientEndpointPort = 2020,\n                    HttpEndpointPort = 80,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicefabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicefabric.NewCluster(ctx, \"exampleCluster\", \u0026servicefabric.ClusterArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tLocation:           exampleResourceGroup.Location,\n\t\t\tReliabilityLevel:   pulumi.String(\"Bronze\"),\n\t\t\tUpgradeMode:        pulumi.String(\"Manual\"),\n\t\t\tClusterCodeVersion: pulumi.String(\"7.1.456.959\"),\n\t\t\tVmImage:            pulumi.String(\"Windows\"),\n\t\t\tManagementEndpoint: pulumi.String(\"https://example:80\"),\n\t\t\tNodeTypes: servicefabric.ClusterNodeTypeArray{\n\t\t\t\t\u0026servicefabric.ClusterNodeTypeArgs{\n\t\t\t\t\tName:               pulumi.String(\"first\"),\n\t\t\t\t\tInstanceCount:      pulumi.Int(3),\n\t\t\t\t\tIsPrimary:          pulumi.Bool(true),\n\t\t\t\t\tClientEndpointPort: pulumi.Int(2020),\n\t\t\t\t\tHttpEndpointPort:   pulumi.Int(80),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nService Fabric Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicefabric/cluster:Cluster cluster1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ServiceFabric/clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "addOnFeatures": {
          "description": "A List of one or more features which should be enabled, such as `DnsService`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "azureActiveDirectory": {
          "$ref": "#/types/azure:servicefabric/ClusterAzureActiveDirectory:ClusterAzureActiveDirectory",
          "description": "An `azure_active_directory` block as defined below.\n"
        },
        "certificate": {
          "$ref": "#/types/azure:servicefabric/ClusterCertificate:ClusterCertificate",
          "description": "A `certificate` block as defined below. Conflicts with `certificate_common_names`.\n"
        },
        "certificateCommonNames": {
          "$ref": "#/types/azure:servicefabric/ClusterCertificateCommonNames:ClusterCertificateCommonNames",
          "description": "A `certificate_common_names` block as defined below. Conflicts with `certificate`.\n"
        },
        "clientCertificateCommonNames": {
          "description": "A `client_certificate_common_name` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:servicefabric/ClusterClientCertificateCommonName:ClusterClientCertificateCommonName"
          },
          "type": "array"
        },
        "clientCertificateThumbprints": {
          "description": "One or more `client_certificate_thumbprint` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:servicefabric/ClusterClientCertificateThumbprint:ClusterClientCertificateThumbprint"
          },
          "type": "array"
        },
        "clusterCodeVersion": {
          "description": "Required if Upgrade Mode set to `Manual`, Specifies the Version of the Cluster Code of the cluster.\n",
          "type": "string"
        },
        "diagnosticsConfig": {
          "$ref": "#/types/azure:servicefabric/ClusterDiagnosticsConfig:ClusterDiagnosticsConfig",
          "description": "A `diagnostics_config` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "fabricSettings": {
          "description": "One or more `fabric_settings` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:servicefabric/ClusterFabricSetting:ClusterFabricSetting"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the Azure Region where the Service Fabric Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managementEndpoint": {
          "description": "Specifies the Management Endpoint of the cluster such as `http://example.com`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Service Fabric Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "nodeTypes": {
          "description": "One or more `node_type` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:servicefabric/ClusterNodeType:ClusterNodeType"
          },
          "type": "array"
        },
        "reliabilityLevel": {
          "description": "Specifies the Reliability Level of the Cluster. Possible values include `None`, `Bronze`, `Silver`, `Gold` and `Platinum`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Service Fabric Cluster exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "reverseProxyCertificate": {
          "$ref": "#/types/azure:servicefabric/ClusterReverseProxyCertificate:ClusterReverseProxyCertificate",
          "description": "A `reverse_proxy_certificate` block as defined below. Conflicts with `reverse_proxy_certificate_common_names`.\n"
        },
        "reverseProxyCertificateCommonNames": {
          "$ref": "#/types/azure:servicefabric/ClusterReverseProxyCertificateCommonNames:ClusterReverseProxyCertificateCommonNames",
          "description": "A `reverse_proxy_certificate_common_names` block as defined below. Conflicts with `reverse_proxy_certificate`.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "upgradeMode": {
          "description": "Specifies the Upgrade Mode of the cluster. Possible values are `Automatic` or `Manual`.\n",
          "type": "string"
        },
        "upgradePolicy": {
          "$ref": "#/types/azure:servicefabric/ClusterUpgradePolicy:ClusterUpgradePolicy",
          "description": "A `upgrade_policy` block as defined below.\n"
        },
        "vmImage": {
          "description": "Specifies the Image expected for the Service Fabric Cluster, such as `Windows`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "addOnFeatures": {
          "description": "A List of one or more features which should be enabled, such as `DnsService`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "azureActiveDirectory": {
          "$ref": "#/types/azure:servicefabric/ClusterAzureActiveDirectory:ClusterAzureActiveDirectory",
          "description": "An `azure_active_directory` block as defined below.\n"
        },
        "certificate": {
          "$ref": "#/types/azure:servicefabric/ClusterCertificate:ClusterCertificate",
          "description": "A `certificate` block as defined below. Conflicts with `certificate_common_names`.\n"
        },
        "certificateCommonNames": {
          "$ref": "#/types/azure:servicefabric/ClusterCertificateCommonNames:ClusterCertificateCommonNames",
          "description": "A `certificate_common_names` block as defined below. Conflicts with `certificate`.\n"
        },
        "clientCertificateCommonNames": {
          "description": "A `client_certificate_common_name` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:servicefabric/ClusterClientCertificateCommonName:ClusterClientCertificateCommonName"
          },
          "type": "array"
        },
        "clientCertificateThumbprints": {
          "description": "One or more `client_certificate_thumbprint` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:servicefabric/ClusterClientCertificateThumbprint:ClusterClientCertificateThumbprint"
          },
          "type": "array"
        },
        "clusterCodeVersion": {
          "description": "Required if Upgrade Mode set to `Manual`, Specifies the Version of the Cluster Code of the cluster.\n",
          "type": "string"
        },
        "clusterEndpoint": {
          "description": "The Cluster Endpoint for this Service Fabric Cluster.\n",
          "type": "string"
        },
        "diagnosticsConfig": {
          "$ref": "#/types/azure:servicefabric/ClusterDiagnosticsConfig:ClusterDiagnosticsConfig",
          "description": "A `diagnostics_config` block as defined below. Changing this forces a new resource to be created.\n"
        },
        "fabricSettings": {
          "description": "One or more `fabric_settings` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:servicefabric/ClusterFabricSetting:ClusterFabricSetting"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the Azure Region where the Service Fabric Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managementEndpoint": {
          "description": "Specifies the Management Endpoint of the cluster such as `http://example.com`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Service Fabric Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "nodeTypes": {
          "description": "One or more `node_type` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:servicefabric/ClusterNodeType:ClusterNodeType"
          },
          "type": "array"
        },
        "reliabilityLevel": {
          "description": "Specifies the Reliability Level of the Cluster. Possible values include `None`, `Bronze`, `Silver`, `Gold` and `Platinum`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Service Fabric Cluster exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "reverseProxyCertificate": {
          "$ref": "#/types/azure:servicefabric/ClusterReverseProxyCertificate:ClusterReverseProxyCertificate",
          "description": "A `reverse_proxy_certificate` block as defined below. Conflicts with `reverse_proxy_certificate_common_names`.\n"
        },
        "reverseProxyCertificateCommonNames": {
          "$ref": "#/types/azure:servicefabric/ClusterReverseProxyCertificateCommonNames:ClusterReverseProxyCertificateCommonNames",
          "description": "A `reverse_proxy_certificate_common_names` block as defined below. Conflicts with `reverse_proxy_certificate`.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "upgradeMode": {
          "description": "Specifies the Upgrade Mode of the cluster. Possible values are `Automatic` or `Manual`.\n",
          "type": "string"
        },
        "upgradePolicy": {
          "$ref": "#/types/azure:servicefabric/ClusterUpgradePolicy:ClusterUpgradePolicy",
          "description": "A `upgrade_policy` block as defined below.\n"
        },
        "vmImage": {
          "description": "Specifies the Image expected for the Service Fabric Cluster, such as `Windows`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "clusterCodeVersion",
        "clusterEndpoint",
        "location",
        "managementEndpoint",
        "name",
        "nodeTypes",
        "reliabilityLevel",
        "resourceGroupName",
        "upgradeMode",
        "vmImage"
      ],
      "requiredInputs": [
        "managementEndpoint",
        "nodeTypes",
        "reliabilityLevel",
        "resourceGroupName",
        "upgradeMode",
        "vmImage"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Cluster resources.\n",
        "properties": {
          "addOnFeatures": {
            "description": "A List of one or more features which should be enabled, such as `DnsService`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "azureActiveDirectory": {
            "$ref": "#/types/azure:servicefabric/ClusterAzureActiveDirectory:ClusterAzureActiveDirectory",
            "description": "An `azure_active_directory` block as defined below.\n"
          },
          "certificate": {
            "$ref": "#/types/azure:servicefabric/ClusterCertificate:ClusterCertificate",
            "description": "A `certificate` block as defined below. Conflicts with `certificate_common_names`.\n"
          },
          "certificateCommonNames": {
            "$ref": "#/types/azure:servicefabric/ClusterCertificateCommonNames:ClusterCertificateCommonNames",
            "description": "A `certificate_common_names` block as defined below. Conflicts with `certificate`.\n"
          },
          "clientCertificateCommonNames": {
            "description": "A `client_certificate_common_name` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:servicefabric/ClusterClientCertificateCommonName:ClusterClientCertificateCommonName"
            },
            "type": "array"
          },
          "clientCertificateThumbprints": {
            "description": "One or more `client_certificate_thumbprint` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:servicefabric/ClusterClientCertificateThumbprint:ClusterClientCertificateThumbprint"
            },
            "type": "array"
          },
          "clusterCodeVersion": {
            "description": "Required if Upgrade Mode set to `Manual`, Specifies the Version of the Cluster Code of the cluster.\n",
            "type": "string"
          },
          "clusterEndpoint": {
            "description": "The Cluster Endpoint for this Service Fabric Cluster.\n",
            "type": "string"
          },
          "diagnosticsConfig": {
            "$ref": "#/types/azure:servicefabric/ClusterDiagnosticsConfig:ClusterDiagnosticsConfig",
            "description": "A `diagnostics_config` block as defined below. Changing this forces a new resource to be created.\n"
          },
          "fabricSettings": {
            "description": "One or more `fabric_settings` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:servicefabric/ClusterFabricSetting:ClusterFabricSetting"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the Azure Region where the Service Fabric Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "managementEndpoint": {
            "description": "Specifies the Management Endpoint of the cluster such as `http://example.com`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Service Fabric Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "nodeTypes": {
            "description": "One or more `node_type` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:servicefabric/ClusterNodeType:ClusterNodeType"
            },
            "type": "array"
          },
          "reliabilityLevel": {
            "description": "Specifies the Reliability Level of the Cluster. Possible values include `None`, `Bronze`, `Silver`, `Gold` and `Platinum`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Service Fabric Cluster exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "reverseProxyCertificate": {
            "$ref": "#/types/azure:servicefabric/ClusterReverseProxyCertificate:ClusterReverseProxyCertificate",
            "description": "A `reverse_proxy_certificate` block as defined below. Conflicts with `reverse_proxy_certificate_common_names`.\n"
          },
          "reverseProxyCertificateCommonNames": {
            "$ref": "#/types/azure:servicefabric/ClusterReverseProxyCertificateCommonNames:ClusterReverseProxyCertificateCommonNames",
            "description": "A `reverse_proxy_certificate_common_names` block as defined below. Conflicts with `reverse_proxy_certificate`.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "upgradeMode": {
            "description": "Specifies the Upgrade Mode of the cluster. Possible values are `Automatic` or `Manual`.\n",
            "type": "string"
          },
          "upgradePolicy": {
            "$ref": "#/types/azure:servicefabric/ClusterUpgradePolicy:ClusterUpgradePolicy",
            "description": "A `upgrade_policy` block as defined below.\n"
          },
          "vmImage": {
            "description": "Specifies the Image expected for the Service Fabric Cluster, such as `Windows`. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:servicefabric/meshApplication:MeshApplication": {
      "description": "\n\n\n## Import\n\nService Fabric Mesh Application can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicefabric/meshApplication:MeshApplication application1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ServiceFabricMesh/applications/application1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the Azure Region where the Service Fabric Mesh Application should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Service Fabric Mesh Application. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Service Fabric Mesh Application exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "services": {
          "description": "Any number of `service` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:servicefabric/MeshApplicationService:MeshApplicationService"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the Azure Region where the Service Fabric Mesh Application should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Service Fabric Mesh Application. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Service Fabric Mesh Application exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "services": {
          "description": "Any number of `service` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:servicefabric/MeshApplicationService:MeshApplicationService"
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName",
        "services"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "services"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MeshApplication resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the Azure Region where the Service Fabric Mesh Application should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Service Fabric Mesh Application. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Service Fabric Mesh Application exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "services": {
            "description": "Any number of `service` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:servicefabric/MeshApplicationService:MeshApplicationService"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:servicefabric/meshLocalNetwork:MeshLocalNetwork": {
      "description": "\n\n\n## Import\n\nService Fabric Mesh Local Network can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicefabric/meshLocalNetwork:MeshLocalNetwork network1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ServiceFabricMesh/networks/network1\n```\n\n ",
      "inputProperties": {
        "description": {
          "description": "A description of this Service Fabric Mesh Local Network.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region where the Service Fabric Mesh Local Network should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Service Fabric Mesh Local Network. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkAddressPrefix": {
          "description": "The address space for the local container network.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Service Fabric Mesh Local Network exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "description": {
          "description": "A description of this Service Fabric Mesh Local Network.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region where the Service Fabric Mesh Local Network should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Service Fabric Mesh Local Network. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "networkAddressPrefix": {
          "description": "The address space for the local container network.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Service Fabric Mesh Local Network exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "networkAddressPrefix",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "networkAddressPrefix",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MeshLocalNetwork resources.\n",
        "properties": {
          "description": {
            "description": "A description of this Service Fabric Mesh Local Network.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the Azure Region where the Service Fabric Mesh Local Network should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Service Fabric Mesh Local Network. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "networkAddressPrefix": {
            "description": "The address space for the local container network.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Service Fabric Mesh Local Network exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:servicefabric/meshSecret:MeshSecret": {
      "description": "\n\n\n## Import\n\nService Fabric Mesh Secret can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicefabric/meshSecret:MeshSecret secret1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ServiceFabricMesh/secrets/secret1\n```\n\n ",
      "inputProperties": {
        "contentType": {
          "description": "The type of the content stored in the secret value. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "A description of this Service Fabric Mesh Secret.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region where the Service Fabric Mesh Secret should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Service Fabric Mesh Secret. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Service Fabric Mesh Secret exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "contentType": {
          "description": "The type of the content stored in the secret value. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "description": {
          "description": "A description of this Service Fabric Mesh Secret.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the Azure Region where the Service Fabric Mesh Secret should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Service Fabric Mesh Secret. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group in which the Service Fabric Mesh Secret exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MeshSecret resources.\n",
        "properties": {
          "contentType": {
            "description": "The type of the content stored in the secret value. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "description": {
            "description": "A description of this Service Fabric Mesh Secret.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the Azure Region where the Service Fabric Mesh Secret should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Service Fabric Mesh Secret. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group in which the Service Fabric Mesh Secret exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:servicefabric/meshSecretValue:MeshSecretValue": {
      "description": "\n\n\n## Import\n\nService Fabric Mesh Secret Value can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:servicefabric/meshSecretValue:MeshSecretValue value1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ServiceFabricMesh/secrets/secret1/values/value1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the Azure Region where the Service Fabric Mesh Secret Value should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Service Fabric Mesh Secret Value. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceFabricMeshSecretId": {
          "description": "The id of the Service Fabric Mesh Secret in which the value will be applied to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "value": {
          "description": "Specifies the value that will be applied to the Service Fabric Mesh Secret. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the Azure Region where the Service Fabric Mesh Secret Value should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Service Fabric Mesh Secret Value. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serviceFabricMeshSecretId": {
          "description": "The id of the Service Fabric Mesh Secret in which the value will be applied to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "value": {
          "description": "Specifies the value that will be applied to the Service Fabric Mesh Secret. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "serviceFabricMeshSecretId",
        "value"
      ],
      "requiredInputs": [
        "serviceFabricMeshSecretId",
        "value"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MeshSecretValue resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the Azure Region where the Service Fabric Mesh Secret Value should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Service Fabric Mesh Secret Value. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serviceFabricMeshSecretId": {
            "description": "The id of the Service Fabric Mesh Secret in which the value will be applied to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "value": {
            "description": "Specifies the value that will be applied to the Service Fabric Mesh Secret. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:signalr/service:Service": {
      "description": "Manages an Azure SignalR service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West US\"});\nconst exampleService = new azure.signalr.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        name: \"Free_F1\",\n        capacity: 1,\n    },\n    cors: [{\n        allowedOrigins: [\"http://www.example.com\"],\n    }],\n    features: [{\n        flag: \"ServiceMode\",\n        value: \"Default\",\n    }],\n    upstreamEndpoints: [{\n        categoryPatterns: [\n            \"connections\",\n            \"messages\",\n        ],\n        eventPatterns: [\"*\"],\n        hubPatterns: [\"hub1\"],\n        urlTemplate: \"http://foo.com\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West US\")\nexample_service = azure.signalr.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.signalr.ServiceSkuArgs(\n        name=\"Free_F1\",\n        capacity=1,\n    ),\n    cors=[azure.signalr.ServiceCorArgs(\n        allowed_origins=[\"http://www.example.com\"],\n    )],\n    features=[azure.signalr.ServiceFeatureArgs(\n        flag=\"ServiceMode\",\n        value=\"Default\",\n    )],\n    upstream_endpoints=[azure.signalr.ServiceUpstreamEndpointArgs(\n        category_patterns=[\n            \"connections\",\n            \"messages\",\n        ],\n        event_patterns=[\"*\"],\n        hub_patterns=[\"hub1\"],\n        url_template=\"http://foo.com\",\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West US\",\n        });\n        var exampleService = new Azure.SignalR.Service(\"exampleService\", new Azure.SignalR.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.SignalR.Inputs.ServiceSkuArgs\n            {\n                Name = \"Free_F1\",\n                Capacity = 1,\n            },\n            Cors = \n            {\n                new Azure.SignalR.Inputs.ServiceCorArgs\n                {\n                    AllowedOrigins = \n                    {\n                        \"http://www.example.com\",\n                    },\n                },\n            },\n            Features = \n            {\n                new Azure.SignalR.Inputs.ServiceFeatureArgs\n                {\n                    Flag = \"ServiceMode\",\n                    Value = \"Default\",\n                },\n            },\n            UpstreamEndpoints = \n            {\n                new Azure.SignalR.Inputs.ServiceUpstreamEndpointArgs\n                {\n                    CategoryPatterns = \n                    {\n                        \"connections\",\n                        \"messages\",\n                    },\n                    EventPatterns = \n                    {\n                        \"*\",\n                    },\n                    HubPatterns = \n                    {\n                        \"hub1\",\n                    },\n                    UrlTemplate = \"http://foo.com\",\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/signalr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = signalr.NewService(ctx, \"exampleService\", \u0026signalr.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026signalr.ServiceSkuArgs{\n\t\t\t\tName:     pulumi.String(\"Free_F1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t\tCors: signalr.ServiceCorArray{\n\t\t\t\t\u0026signalr.ServiceCorArgs{\n\t\t\t\t\tAllowedOrigins: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"http://www.example.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tFeatures: signalr.ServiceFeatureArray{\n\t\t\t\t\u0026signalr.ServiceFeatureArgs{\n\t\t\t\t\tFlag:  pulumi.String(\"ServiceMode\"),\n\t\t\t\t\tValue: pulumi.String(\"Default\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUpstreamEndpoints: signalr.ServiceUpstreamEndpointArray{\n\t\t\t\t\u0026signalr.ServiceUpstreamEndpointArgs{\n\t\t\t\t\tCategoryPatterns: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"connections\"),\n\t\t\t\t\t\tpulumi.String(\"messages\"),\n\t\t\t\t\t},\n\t\t\t\t\tEventPatterns: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tHubPatterns: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"hub1\"),\n\t\t\t\t\t},\n\t\t\t\t\tUrlTemplate: pulumi.String(\"http://foo.com\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSignalR services can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:signalr/service:Service example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/terraform-signalr/providers/Microsoft.SignalRService/SignalR/tfex-signalr\n```\n\n ",
      "inputProperties": {
        "cors": {
          "description": "A `cors` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:signalr/ServiceCor:ServiceCor"
          },
          "type": "array"
        },
        "features": {
          "description": "A `features` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:signalr/ServiceFeature:ServiceFeature"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the supported Azure location where the SignalR service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the SignalR service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the SignalR service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sku": {
          "$ref": "#/types/azure:signalr/ServiceSku:ServiceSku",
          "description": "A `sku` block as documented below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "upstreamEndpoints": {
          "description": "An `upstream_endpoint` block as documented below. Using this block requires the SignalR service to be Serverless. When creating multiple blocks they will be processed in the order they are defined in.\n",
          "items": {
            "$ref": "#/types/azure:signalr/ServiceUpstreamEndpoint:ServiceUpstreamEndpoint"
          },
          "type": "array"
        }
      },
      "properties": {
        "cors": {
          "description": "A `cors` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:signalr/ServiceCor:ServiceCor"
          },
          "type": "array"
        },
        "features": {
          "description": "A `features` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:signalr/ServiceFeature:ServiceFeature"
          },
          "type": "array"
        },
        "hostname": {
          "description": "The FQDN of the SignalR service.\n",
          "type": "string"
        },
        "ipAddress": {
          "description": "The publicly accessible IP of the SignalR service.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the SignalR service exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the SignalR service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "primaryAccessKey": {
          "description": "The primary access key for the SignalR service.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The primary connection string for the SignalR service.\n",
          "type": "string"
        },
        "publicPort": {
          "description": "The publicly accessible port of the SignalR service which is designed for browser/client use.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the SignalR service. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "secondaryAccessKey": {
          "description": "The secondary access key for the SignalR service.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The secondary connection string for the SignalR service.\n",
          "type": "string"
        },
        "serverPort": {
          "description": "The publicly accessible port of the SignalR service which is designed for customer server side use.\n",
          "type": "integer"
        },
        "sku": {
          "$ref": "#/types/azure:signalr/ServiceSku:ServiceSku",
          "description": "A `sku` block as documented below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "upstreamEndpoints": {
          "description": "An `upstream_endpoint` block as documented below. Using this block requires the SignalR service to be Serverless. When creating multiple blocks they will be processed in the order they are defined in.\n",
          "items": {
            "$ref": "#/types/azure:signalr/ServiceUpstreamEndpoint:ServiceUpstreamEndpoint"
          },
          "type": "array"
        }
      },
      "required": [
        "cors",
        "features",
        "hostname",
        "ipAddress",
        "location",
        "name",
        "primaryAccessKey",
        "primaryConnectionString",
        "publicPort",
        "resourceGroupName",
        "secondaryAccessKey",
        "secondaryConnectionString",
        "serverPort",
        "sku"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sku"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Service resources.\n",
        "properties": {
          "cors": {
            "description": "A `cors` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:signalr/ServiceCor:ServiceCor"
            },
            "type": "array"
          },
          "features": {
            "description": "A `features` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:signalr/ServiceFeature:ServiceFeature"
            },
            "type": "array"
          },
          "hostname": {
            "description": "The FQDN of the SignalR service.\n",
            "type": "string"
          },
          "ipAddress": {
            "description": "The publicly accessible IP of the SignalR service.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the SignalR service exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the SignalR service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "primaryAccessKey": {
            "description": "The primary access key for the SignalR service.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The primary connection string for the SignalR service.\n",
            "type": "string"
          },
          "publicPort": {
            "description": "The publicly accessible port of the SignalR service which is designed for browser/client use.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the SignalR service. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "secondaryAccessKey": {
            "description": "The secondary access key for the SignalR service.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The secondary connection string for the SignalR service.\n",
            "type": "string"
          },
          "serverPort": {
            "description": "The publicly accessible port of the SignalR service which is designed for customer server side use.\n",
            "type": "integer"
          },
          "sku": {
            "$ref": "#/types/azure:signalr/ServiceSku:ServiceSku",
            "description": "A `sku` block as documented below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "upstreamEndpoints": {
            "description": "An `upstream_endpoint` block as documented below. Using this block requires the SignalR service to be Serverless. When creating multiple blocks they will be processed in the order they are defined in.\n",
            "items": {
              "$ref": "#/types/azure:signalr/ServiceUpstreamEndpoint:ServiceUpstreamEndpoint"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:signalr/serviceNetworkAcl:ServiceNetworkAcl": {
      "description": "Manages the Network ACL for a SignalR service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleService = new azure.signalr.Service(\"exampleService\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    sku: {\n        name: \"Standard_S1\",\n        capacity: 1,\n    },\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    addressSpaces: [\"10.5.0.0/16\"],\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.5.2.0/24\"],\n    enforcePrivateLinkEndpointNetworkPolicies: true,\n});\nconst exampleEndpoint = new azure.privatelink.Endpoint(\"exampleEndpoint\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    subnetId: exampleSubnet.id,\n    privateServiceConnection: {\n        name: \"psc-sig-test\",\n        isManualConnection: false,\n        privateConnectionResourceId: exampleService.id,\n        subresourceNames: [\"signalr\"],\n    },\n});\nconst exampleServiceNetworkAcl = new azure.signalr.ServiceNetworkAcl(\"exampleServiceNetworkAcl\", {\n    signalrServiceId: exampleService.id,\n    defaultAction: \"Deny\",\n    publicNetwork: {\n        allowedRequestTypes: [\"ClientConnection\"],\n    },\n    privateEndpoints: [{\n        id: exampleEndpoint.id,\n        allowedRequestTypes: [\"ServerConnection\"],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_service = azure.signalr.Service(\"exampleService\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=azure.signalr.ServiceSkuArgs(\n        name=\"Standard_S1\",\n        capacity=1,\n    ))\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    address_spaces=[\"10.5.0.0/16\"])\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.5.2.0/24\"],\n    enforce_private_link_endpoint_network_policies=True)\nexample_endpoint = azure.privatelink.Endpoint(\"exampleEndpoint\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    subnet_id=example_subnet.id,\n    private_service_connection=azure.privatelink.EndpointPrivateServiceConnectionArgs(\n        name=\"psc-sig-test\",\n        is_manual_connection=False,\n        private_connection_resource_id=example_service.id,\n        subresource_names=[\"signalr\"],\n    ))\nexample_service_network_acl = azure.signalr.ServiceNetworkAcl(\"exampleServiceNetworkAcl\",\n    signalr_service_id=example_service.id,\n    default_action=\"Deny\",\n    public_network=azure.signalr.ServiceNetworkAclPublicNetworkArgs(\n        allowed_request_types=[\"ClientConnection\"],\n    ),\n    private_endpoints=[azure.signalr.ServiceNetworkAclPrivateEndpointArgs(\n        id=example_endpoint.id,\n        allowed_request_types=[\"ServerConnection\"],\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleService = new Azure.SignalR.Service(\"exampleService\", new Azure.SignalR.ServiceArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Sku = new Azure.SignalR.Inputs.ServiceSkuArgs\n            {\n                Name = \"Standard_S1\",\n                Capacity = 1,\n            },\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AddressSpaces = \n            {\n                \"10.5.0.0/16\",\n            },\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.5.2.0/24\",\n            },\n            EnforcePrivateLinkEndpointNetworkPolicies = true,\n        });\n        var exampleEndpoint = new Azure.PrivateLink.Endpoint(\"exampleEndpoint\", new Azure.PrivateLink.EndpointArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            SubnetId = exampleSubnet.Id,\n            PrivateServiceConnection = new Azure.PrivateLink.Inputs.EndpointPrivateServiceConnectionArgs\n            {\n                Name = \"psc-sig-test\",\n                IsManualConnection = false,\n                PrivateConnectionResourceId = exampleService.Id,\n                SubresourceNames = \n                {\n                    \"signalr\",\n                },\n            },\n        });\n        var exampleServiceNetworkAcl = new Azure.SignalR.ServiceNetworkAcl(\"exampleServiceNetworkAcl\", new Azure.SignalR.ServiceNetworkAclArgs\n        {\n            SignalrServiceId = exampleService.Id,\n            DefaultAction = \"Deny\",\n            PublicNetwork = new Azure.SignalR.Inputs.ServiceNetworkAclPublicNetworkArgs\n            {\n                AllowedRequestTypes = \n                {\n                    \"ClientConnection\",\n                },\n            },\n            PrivateEndpoints = \n            {\n                new Azure.SignalR.Inputs.ServiceNetworkAclPrivateEndpointArgs\n                {\n                    Id = exampleEndpoint.Id,\n                    AllowedRequestTypes = \n                    {\n                        \"ServerConnection\",\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/privatelink\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/signalr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleService, err := signalr.NewService(ctx, \"exampleService\", \u0026signalr.ServiceArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tSku: \u0026signalr.ServiceSkuArgs{\n\t\t\t\tName:     pulumi.String(\"Standard_S1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.5.2.0/24\"),\n\t\t\t},\n\t\t\tEnforcePrivateLinkEndpointNetworkPolicies: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEndpoint, err := privatelink.NewEndpoint(ctx, \"exampleEndpoint\", \u0026privatelink.EndpointArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tSubnetId:          exampleSubnet.ID(),\n\t\t\tPrivateServiceConnection: \u0026privatelink.EndpointPrivateServiceConnectionArgs{\n\t\t\t\tName:                        pulumi.String(\"psc-sig-test\"),\n\t\t\t\tIsManualConnection:          pulumi.Bool(false),\n\t\t\t\tPrivateConnectionResourceId: exampleService.ID(),\n\t\t\t\tSubresourceNames: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"signalr\"),\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 = signalr.NewServiceNetworkAcl(ctx, \"exampleServiceNetworkAcl\", \u0026signalr.ServiceNetworkAclArgs{\n\t\t\tSignalrServiceId: exampleService.ID(),\n\t\t\tDefaultAction:    pulumi.String(\"Deny\"),\n\t\t\tPublicNetwork: \u0026signalr.ServiceNetworkAclPublicNetworkArgs{\n\t\t\t\tAllowedRequestTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ClientConnection\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPrivateEndpoints: signalr.ServiceNetworkAclPrivateEndpointArray{\n\t\t\t\t\u0026signalr.ServiceNetworkAclPrivateEndpointArgs{\n\t\t\t\t\tId: exampleEndpoint.ID(),\n\t\t\t\t\tAllowedRequestTypes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ServerConnection\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNetwork ACLs for a SignalR service can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:signalr/serviceNetworkAcl:ServiceNetworkAcl example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.SignalRService/SignalR/signalr1\n```\n\n ",
      "inputProperties": {
        "defaultAction": {
          "description": "The default action to control the network access when no other rule matches. Possible values are `Allow` and `Deny`.\n",
          "type": "string"
        },
        "privateEndpoints": {
          "description": "A `private_endpoint` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:signalr/ServiceNetworkAclPrivateEndpoint:ServiceNetworkAclPrivateEndpoint"
          },
          "type": "array"
        },
        "publicNetwork": {
          "$ref": "#/types/azure:signalr/ServiceNetworkAclPublicNetwork:ServiceNetworkAclPublicNetwork",
          "description": "A `public_network` block as defined below.\n"
        },
        "signalrServiceId": {
          "description": "The ID of the SignalR service. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "defaultAction": {
          "description": "The default action to control the network access when no other rule matches. Possible values are `Allow` and `Deny`.\n",
          "type": "string"
        },
        "privateEndpoints": {
          "description": "A `private_endpoint` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:signalr/ServiceNetworkAclPrivateEndpoint:ServiceNetworkAclPrivateEndpoint"
          },
          "type": "array"
        },
        "publicNetwork": {
          "$ref": "#/types/azure:signalr/ServiceNetworkAclPublicNetwork:ServiceNetworkAclPublicNetwork",
          "description": "A `public_network` block as defined below.\n"
        },
        "signalrServiceId": {
          "description": "The ID of the SignalR service. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "defaultAction",
        "publicNetwork",
        "signalrServiceId"
      ],
      "requiredInputs": [
        "defaultAction",
        "publicNetwork",
        "signalrServiceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ServiceNetworkAcl resources.\n",
        "properties": {
          "defaultAction": {
            "description": "The default action to control the network access when no other rule matches. Possible values are `Allow` and `Deny`.\n",
            "type": "string"
          },
          "privateEndpoints": {
            "description": "A `private_endpoint` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:signalr/ServiceNetworkAclPrivateEndpoint:ServiceNetworkAclPrivateEndpoint"
            },
            "type": "array"
          },
          "publicNetwork": {
            "$ref": "#/types/azure:signalr/ServiceNetworkAclPublicNetwork:ServiceNetworkAclPublicNetwork",
            "description": "A `public_network` block as defined below.\n"
          },
          "signalrServiceId": {
            "description": "The ID of the SignalR service. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:siterecovery/fabric:Fabric": {
      "description": "Manages a Azure Site Recovery Replication Fabric within a Recovery Services vault. Only Azure fabrics are supported at this time. Replication Fabrics serve as a container within an Azure region for other Site Recovery resources such as protection containers, protected items, network mappings.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primary = new azure.core.ResourceGroup(\"primary\", {location: \"West US\"});\nconst secondary = new azure.core.ResourceGroup(\"secondary\", {location: \"East US\"});\nconst vault = new azure.recoveryservices.Vault(\"vault\", {\n    location: secondary.location,\n    resourceGroupName: secondary.name,\n    sku: \"Standard\",\n});\nconst fabric = new azure.siterecovery.Fabric(\"fabric\", {\n    resourceGroupName: secondary.name,\n    recoveryVaultName: vault.name,\n    location: primary.location,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary = azure.core.ResourceGroup(\"primary\", location=\"West US\")\nsecondary = azure.core.ResourceGroup(\"secondary\", location=\"East US\")\nvault = azure.recoveryservices.Vault(\"vault\",\n    location=secondary.location,\n    resource_group_name=secondary.name,\n    sku=\"Standard\")\nfabric = azure.siterecovery.Fabric(\"fabric\",\n    resource_group_name=secondary.name,\n    recovery_vault_name=vault.name,\n    location=primary.location)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var primary = new Azure.Core.ResourceGroup(\"primary\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West US\",\n        });\n        var secondary = new Azure.Core.ResourceGroup(\"secondary\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"East US\",\n        });\n        var vault = new Azure.RecoveryServices.Vault(\"vault\", new Azure.RecoveryServices.VaultArgs\n        {\n            Location = secondary.Location,\n            ResourceGroupName = secondary.Name,\n            Sku = \"Standard\",\n        });\n        var fabric = new Azure.SiteRecovery.Fabric(\"fabric\", new Azure.SiteRecovery.FabricArgs\n        {\n            ResourceGroupName = secondary.Name,\n            RecoveryVaultName = vault.Name,\n            Location = primary.Location,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/siterecovery\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := core.NewResourceGroup(ctx, \"primary\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecondary, err := core.NewResourceGroup(ctx, \"secondary\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"East US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvault, err := recoveryservices.NewVault(ctx, \"vault\", \u0026recoveryservices.VaultArgs{\n\t\t\tLocation:          secondary.Location,\n\t\t\tResourceGroupName: secondary.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = siterecovery.NewFabric(ctx, \"fabric\", \u0026siterecovery.FabricArgs{\n\t\t\tResourceGroupName: secondary.Name,\n\t\t\tRecoveryVaultName: vault.Name,\n\t\t\tLocation:          primary.Location,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSite Recovery Fabric can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:siterecovery/fabric:Fabric myfabric /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.RecoveryServices/vaults/recovery-vault-name/replicationFabrics/fabric-name\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "In what region should the fabric be located.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the network mapping.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "The name of the vault that should be updated.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group where the vault that should be updated is located.\n",
          "type": "string"
        }
      },
      "properties": {
        "location": {
          "description": "In what region should the fabric be located.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the network mapping.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "The name of the vault that should be updated.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group where the vault that should be updated is located.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "recoveryVaultName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "recoveryVaultName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Fabric resources.\n",
        "properties": {
          "location": {
            "description": "In what region should the fabric be located.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the network mapping.\n",
            "type": "string"
          },
          "recoveryVaultName": {
            "description": "The name of the vault that should be updated.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Name of the resource group where the vault that should be updated is located.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:siterecovery/networkMapping:NetworkMapping": {
      "description": "Manages a site recovery network mapping on Azure. A network mapping decides how to translate connected netwroks when a VM is migrated from one region to another.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primaryResourceGroup = new azure.core.ResourceGroup(\"primaryResourceGroup\", {location: \"West US\"});\nconst secondaryResourceGroup = new azure.core.ResourceGroup(\"secondaryResourceGroup\", {location: \"East US\"});\nconst vault = new azure.recoveryservices.Vault(\"vault\", {\n    location: secondaryResourceGroup.location,\n    resourceGroupName: secondaryResourceGroup.name,\n    sku: \"Standard\",\n});\nconst primaryFabric = new azure.siterecovery.Fabric(\"primaryFabric\", {\n    resourceGroupName: secondaryResourceGroup.name,\n    recoveryVaultName: vault.name,\n    location: primaryResourceGroup.location,\n});\nconst secondaryFabric = new azure.siterecovery.Fabric(\"secondaryFabric\", {\n    resourceGroupName: secondaryResourceGroup.name,\n    recoveryVaultName: vault.name,\n    location: secondaryResourceGroup.location,\n}, {\n    dependsOn: [primaryFabric],\n});\n// Avoids issues with crearing fabrics simultainusly\nconst primaryVirtualNetwork = new azure.network.VirtualNetwork(\"primaryVirtualNetwork\", {\n    resourceGroupName: primaryResourceGroup.name,\n    addressSpaces: [\"192.168.1.0/24\"],\n    location: primaryResourceGroup.location,\n});\nconst secondaryVirtualNetwork = new azure.network.VirtualNetwork(\"secondaryVirtualNetwork\", {\n    resourceGroupName: secondaryResourceGroup.name,\n    addressSpaces: [\"192.168.2.0/24\"],\n    location: secondaryResourceGroup.location,\n});\nconst recovery_mapping = new azure.siterecovery.NetworkMapping(\"recovery-mapping\", {\n    resourceGroupName: secondaryResourceGroup.name,\n    recoveryVaultName: vault.name,\n    sourceRecoveryFabricName: \"primary-fabric\",\n    targetRecoveryFabricName: \"secondary-fabric\",\n    sourceNetworkId: primaryVirtualNetwork.id,\n    targetNetworkId: secondaryVirtualNetwork.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary_resource_group = azure.core.ResourceGroup(\"primaryResourceGroup\", location=\"West US\")\nsecondary_resource_group = azure.core.ResourceGroup(\"secondaryResourceGroup\", location=\"East US\")\nvault = azure.recoveryservices.Vault(\"vault\",\n    location=secondary_resource_group.location,\n    resource_group_name=secondary_resource_group.name,\n    sku=\"Standard\")\nprimary_fabric = azure.siterecovery.Fabric(\"primaryFabric\",\n    resource_group_name=secondary_resource_group.name,\n    recovery_vault_name=vault.name,\n    location=primary_resource_group.location)\nsecondary_fabric = azure.siterecovery.Fabric(\"secondaryFabric\",\n    resource_group_name=secondary_resource_group.name,\n    recovery_vault_name=vault.name,\n    location=secondary_resource_group.location,\n    opts=pulumi.ResourceOptions(depends_on=[primary_fabric]))\n# Avoids issues with crearing fabrics simultainusly\nprimary_virtual_network = azure.network.VirtualNetwork(\"primaryVirtualNetwork\",\n    resource_group_name=primary_resource_group.name,\n    address_spaces=[\"192.168.1.0/24\"],\n    location=primary_resource_group.location)\nsecondary_virtual_network = azure.network.VirtualNetwork(\"secondaryVirtualNetwork\",\n    resource_group_name=secondary_resource_group.name,\n    address_spaces=[\"192.168.2.0/24\"],\n    location=secondary_resource_group.location)\nrecovery_mapping = azure.siterecovery.NetworkMapping(\"recovery-mapping\",\n    resource_group_name=secondary_resource_group.name,\n    recovery_vault_name=vault.name,\n    source_recovery_fabric_name=\"primary-fabric\",\n    target_recovery_fabric_name=\"secondary-fabric\",\n    source_network_id=primary_virtual_network.id,\n    target_network_id=secondary_virtual_network.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var primaryResourceGroup = new Azure.Core.ResourceGroup(\"primaryResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West US\",\n        });\n        var secondaryResourceGroup = new Azure.Core.ResourceGroup(\"secondaryResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"East US\",\n        });\n        var vault = new Azure.RecoveryServices.Vault(\"vault\", new Azure.RecoveryServices.VaultArgs\n        {\n            Location = secondaryResourceGroup.Location,\n            ResourceGroupName = secondaryResourceGroup.Name,\n            Sku = \"Standard\",\n        });\n        var primaryFabric = new Azure.SiteRecovery.Fabric(\"primaryFabric\", new Azure.SiteRecovery.FabricArgs\n        {\n            ResourceGroupName = secondaryResourceGroup.Name,\n            RecoveryVaultName = vault.Name,\n            Location = primaryResourceGroup.Location,\n        });\n        var secondaryFabric = new Azure.SiteRecovery.Fabric(\"secondaryFabric\", new Azure.SiteRecovery.FabricArgs\n        {\n            ResourceGroupName = secondaryResourceGroup.Name,\n            RecoveryVaultName = vault.Name,\n            Location = secondaryResourceGroup.Location,\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                primaryFabric,\n            },\n        });\n        // Avoids issues with crearing fabrics simultainusly\n        var primaryVirtualNetwork = new Azure.Network.VirtualNetwork(\"primaryVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            ResourceGroupName = primaryResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"192.168.1.0/24\",\n            },\n            Location = primaryResourceGroup.Location,\n        });\n        var secondaryVirtualNetwork = new Azure.Network.VirtualNetwork(\"secondaryVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            ResourceGroupName = secondaryResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"192.168.2.0/24\",\n            },\n            Location = secondaryResourceGroup.Location,\n        });\n        var recovery_mapping = new Azure.SiteRecovery.NetworkMapping(\"recovery-mapping\", new Azure.SiteRecovery.NetworkMappingArgs\n        {\n            ResourceGroupName = secondaryResourceGroup.Name,\n            RecoveryVaultName = vault.Name,\n            SourceRecoveryFabricName = \"primary-fabric\",\n            TargetRecoveryFabricName = \"secondary-fabric\",\n            SourceNetworkId = primaryVirtualNetwork.Id,\n            TargetNetworkId = secondaryVirtualNetwork.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/siterecovery\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimaryResourceGroup, err := core.NewResourceGroup(ctx, \"primaryResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecondaryResourceGroup, err := core.NewResourceGroup(ctx, \"secondaryResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"East US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvault, err := recoveryservices.NewVault(ctx, \"vault\", \u0026recoveryservices.VaultArgs{\n\t\t\tLocation:          secondaryResourceGroup.Location,\n\t\t\tResourceGroupName: secondaryResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprimaryFabric, err := siterecovery.NewFabric(ctx, \"primaryFabric\", \u0026siterecovery.FabricArgs{\n\t\t\tResourceGroupName: secondaryResourceGroup.Name,\n\t\t\tRecoveryVaultName: vault.Name,\n\t\t\tLocation:          primaryResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = siterecovery.NewFabric(ctx, \"secondaryFabric\", \u0026siterecovery.FabricArgs{\n\t\t\tResourceGroupName: secondaryResourceGroup.Name,\n\t\t\tRecoveryVaultName: vault.Name,\n\t\t\tLocation:          secondaryResourceGroup.Location,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tprimaryFabric,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprimaryVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"primaryVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tResourceGroupName: primaryResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.1.0/24\"),\n\t\t\t},\n\t\t\tLocation: primaryResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecondaryVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"secondaryVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tResourceGroupName: secondaryResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.2.0/24\"),\n\t\t\t},\n\t\t\tLocation: secondaryResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = siterecovery.NewNetworkMapping(ctx, \"recovery_mapping\", \u0026siterecovery.NetworkMappingArgs{\n\t\t\tResourceGroupName:        secondaryResourceGroup.Name,\n\t\t\tRecoveryVaultName:        vault.Name,\n\t\t\tSourceRecoveryFabricName: pulumi.String(\"primary-fabric\"),\n\t\t\tTargetRecoveryFabricName: pulumi.String(\"secondary-fabric\"),\n\t\t\tSourceNetworkId:          primaryVirtualNetwork.ID(),\n\t\t\tTargetNetworkId:          secondaryVirtualNetwork.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSite Recovery Network Mapping can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:siterecovery/networkMapping:NetworkMapping mymapping /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.RecoveryServices/vaults/recovery-vault-name/replicationFabrics/primary-fabric-name/replicationNetworks/azureNetwork/replicationNetworkMappings/mapping-name\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the network mapping.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "The name of the vault that should be updated.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group where the vault that should be updated is located.\n",
          "type": "string"
        },
        "sourceNetworkId": {
          "description": "The id of the primary network.\n",
          "type": "string"
        },
        "sourceRecoveryFabricName": {
          "description": "Specifies the ASR fabric where mapping should be created.\n",
          "type": "string"
        },
        "targetNetworkId": {
          "description": "The id of the recovery network.\n",
          "type": "string"
        },
        "targetRecoveryFabricName": {
          "description": "The Azure Site Recovery fabric object corresponding to the recovery Azure region.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "The name of the network mapping.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "The name of the vault that should be updated.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group where the vault that should be updated is located.\n",
          "type": "string"
        },
        "sourceNetworkId": {
          "description": "The id of the primary network.\n",
          "type": "string"
        },
        "sourceRecoveryFabricName": {
          "description": "Specifies the ASR fabric where mapping should be created.\n",
          "type": "string"
        },
        "targetNetworkId": {
          "description": "The id of the recovery network.\n",
          "type": "string"
        },
        "targetRecoveryFabricName": {
          "description": "The Azure Site Recovery fabric object corresponding to the recovery Azure region.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "recoveryVaultName",
        "resourceGroupName",
        "sourceNetworkId",
        "sourceRecoveryFabricName",
        "targetNetworkId",
        "targetRecoveryFabricName"
      ],
      "requiredInputs": [
        "recoveryVaultName",
        "resourceGroupName",
        "sourceNetworkId",
        "sourceRecoveryFabricName",
        "targetNetworkId",
        "targetRecoveryFabricName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering NetworkMapping resources.\n",
        "properties": {
          "name": {
            "description": "The name of the network mapping.\n",
            "type": "string"
          },
          "recoveryVaultName": {
            "description": "The name of the vault that should be updated.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Name of the resource group where the vault that should be updated is located.\n",
            "type": "string"
          },
          "sourceNetworkId": {
            "description": "The id of the primary network.\n",
            "type": "string"
          },
          "sourceRecoveryFabricName": {
            "description": "Specifies the ASR fabric where mapping should be created.\n",
            "type": "string"
          },
          "targetNetworkId": {
            "description": "The id of the recovery network.\n",
            "type": "string"
          },
          "targetRecoveryFabricName": {
            "description": "The Azure Site Recovery fabric object corresponding to the recovery Azure region.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:siterecovery/protectionContainer:ProtectionContainer": {
      "description": "Manages a Azure Site Recovery protection container. Protection containers serve as containers for replicated VMs and belong to a single region / recovery fabric. Protection containers can contain more than one replicated VM. To replicate a VM, a container must exist in both the source and target Azure regions.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primary = new azure.core.ResourceGroup(\"primary\", {location: \"West US\"});\nconst secondary = new azure.core.ResourceGroup(\"secondary\", {location: \"East US\"});\nconst vault = new azure.recoveryservices.Vault(\"vault\", {\n    location: secondary.location,\n    resourceGroupName: secondary.name,\n    sku: \"Standard\",\n});\nconst fabric = new azure.siterecovery.Fabric(\"fabric\", {\n    resourceGroupName: secondary.name,\n    recoveryVaultName: vault.name,\n    location: primary.location,\n});\nconst protection_container = new azure.siterecovery.ProtectionContainer(\"protection-container\", {\n    resourceGroupName: secondary.name,\n    recoveryVaultName: vault.name,\n    recoveryFabricName: fabric.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary = azure.core.ResourceGroup(\"primary\", location=\"West US\")\nsecondary = azure.core.ResourceGroup(\"secondary\", location=\"East US\")\nvault = azure.recoveryservices.Vault(\"vault\",\n    location=secondary.location,\n    resource_group_name=secondary.name,\n    sku=\"Standard\")\nfabric = azure.siterecovery.Fabric(\"fabric\",\n    resource_group_name=secondary.name,\n    recovery_vault_name=vault.name,\n    location=primary.location)\nprotection_container = azure.siterecovery.ProtectionContainer(\"protection-container\",\n    resource_group_name=secondary.name,\n    recovery_vault_name=vault.name,\n    recovery_fabric_name=fabric.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var primary = new Azure.Core.ResourceGroup(\"primary\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West US\",\n        });\n        var secondary = new Azure.Core.ResourceGroup(\"secondary\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"East US\",\n        });\n        var vault = new Azure.RecoveryServices.Vault(\"vault\", new Azure.RecoveryServices.VaultArgs\n        {\n            Location = secondary.Location,\n            ResourceGroupName = secondary.Name,\n            Sku = \"Standard\",\n        });\n        var fabric = new Azure.SiteRecovery.Fabric(\"fabric\", new Azure.SiteRecovery.FabricArgs\n        {\n            ResourceGroupName = secondary.Name,\n            RecoveryVaultName = vault.Name,\n            Location = primary.Location,\n        });\n        var protection_container = new Azure.SiteRecovery.ProtectionContainer(\"protection-container\", new Azure.SiteRecovery.ProtectionContainerArgs\n        {\n            ResourceGroupName = secondary.Name,\n            RecoveryVaultName = vault.Name,\n            RecoveryFabricName = fabric.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/siterecovery\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := core.NewResourceGroup(ctx, \"primary\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecondary, err := core.NewResourceGroup(ctx, \"secondary\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"East US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvault, err := recoveryservices.NewVault(ctx, \"vault\", \u0026recoveryservices.VaultArgs{\n\t\t\tLocation:          secondary.Location,\n\t\t\tResourceGroupName: secondary.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfabric, err := siterecovery.NewFabric(ctx, \"fabric\", \u0026siterecovery.FabricArgs{\n\t\t\tResourceGroupName: secondary.Name,\n\t\t\tRecoveryVaultName: vault.Name,\n\t\t\tLocation:          primary.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = siterecovery.NewProtectionContainer(ctx, \"protection_container\", \u0026siterecovery.ProtectionContainerArgs{\n\t\t\tResourceGroupName:  secondary.Name,\n\t\t\tRecoveryVaultName:  vault.Name,\n\t\t\tRecoveryFabricName: fabric.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSite Recovery Protection Containers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:siterecovery/protectionContainer:ProtectionContainer mycontainer /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.RecoveryServices/vaults/recovery-vault-name/replicationFabrics/fabric-name/replicationProtectionContainers/protection-container-name\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the network mapping.\n",
          "type": "string"
        },
        "recoveryFabricName": {
          "description": "Name of fabric that should contain this protection container.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "The name of the vault that should be updated.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group where the vault that should be updated is located.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "The name of the network mapping.\n",
          "type": "string"
        },
        "recoveryFabricName": {
          "description": "Name of fabric that should contain this protection container.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "The name of the vault that should be updated.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group where the vault that should be updated is located.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "recoveryFabricName",
        "recoveryVaultName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "recoveryFabricName",
        "recoveryVaultName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ProtectionContainer resources.\n",
        "properties": {
          "name": {
            "description": "The name of the network mapping.\n",
            "type": "string"
          },
          "recoveryFabricName": {
            "description": "Name of fabric that should contain this protection container.\n",
            "type": "string"
          },
          "recoveryVaultName": {
            "description": "The name of the vault that should be updated.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Name of the resource group where the vault that should be updated is located.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:siterecovery/protectionContainerMapping:ProtectionContainerMapping": {
      "description": "Manages a Azure recovery vault protection container mapping. A protection container mapping decides how to translate the protection container when a VM is migrated from one region to another.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primaryResourceGroup = new azure.core.ResourceGroup(\"primaryResourceGroup\", {location: \"West US\"});\nconst secondaryResourceGroup = new azure.core.ResourceGroup(\"secondaryResourceGroup\", {location: \"East US\"});\nconst vault = new azure.recoveryservices.Vault(\"vault\", {\n    location: secondaryResourceGroup.location,\n    resourceGroupName: secondaryResourceGroup.name,\n    sku: \"Standard\",\n});\nconst primaryFabric = new azure.siterecovery.Fabric(\"primaryFabric\", {\n    resourceGroupName: secondaryResourceGroup.name,\n    recoveryVaultName: vault.name,\n    location: primaryResourceGroup.location,\n});\nconst secondaryFabric = new azure.siterecovery.Fabric(\"secondaryFabric\", {\n    resourceGroupName: secondaryResourceGroup.name,\n    recoveryVaultName: vault.name,\n    location: secondaryResourceGroup.location,\n});\nconst primaryProtectionContainer = new azure.siterecovery.ProtectionContainer(\"primaryProtectionContainer\", {\n    resourceGroupName: secondaryResourceGroup.name,\n    recoveryVaultName: vault.name,\n    recoveryFabricName: primaryFabric.name,\n});\nconst secondaryProtectionContainer = new azure.siterecovery.ProtectionContainer(\"secondaryProtectionContainer\", {\n    resourceGroupName: secondaryResourceGroup.name,\n    recoveryVaultName: vault.name,\n    recoveryFabricName: secondaryFabric.name,\n});\nconst policy = new azure.siterecovery.ReplicationPolicy(\"policy\", {\n    resourceGroupName: secondaryResourceGroup.name,\n    recoveryVaultName: vault.name,\n    recoveryPointRetentionInMinutes: 24 * 60,\n    applicationConsistentSnapshotFrequencyInMinutes: 4 * 60,\n});\nconst container_mapping = new azure.siterecovery.ProtectionContainerMapping(\"container-mapping\", {\n    resourceGroupName: secondaryResourceGroup.name,\n    recoveryVaultName: vault.name,\n    recoveryFabricName: primaryFabric.name,\n    recoverySourceProtectionContainerName: primaryProtectionContainer.name,\n    recoveryTargetProtectionContainerId: secondaryProtectionContainer.id,\n    recoveryReplicationPolicyId: policy.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary_resource_group = azure.core.ResourceGroup(\"primaryResourceGroup\", location=\"West US\")\nsecondary_resource_group = azure.core.ResourceGroup(\"secondaryResourceGroup\", location=\"East US\")\nvault = azure.recoveryservices.Vault(\"vault\",\n    location=secondary_resource_group.location,\n    resource_group_name=secondary_resource_group.name,\n    sku=\"Standard\")\nprimary_fabric = azure.siterecovery.Fabric(\"primaryFabric\",\n    resource_group_name=secondary_resource_group.name,\n    recovery_vault_name=vault.name,\n    location=primary_resource_group.location)\nsecondary_fabric = azure.siterecovery.Fabric(\"secondaryFabric\",\n    resource_group_name=secondary_resource_group.name,\n    recovery_vault_name=vault.name,\n    location=secondary_resource_group.location)\nprimary_protection_container = azure.siterecovery.ProtectionContainer(\"primaryProtectionContainer\",\n    resource_group_name=secondary_resource_group.name,\n    recovery_vault_name=vault.name,\n    recovery_fabric_name=primary_fabric.name)\nsecondary_protection_container = azure.siterecovery.ProtectionContainer(\"secondaryProtectionContainer\",\n    resource_group_name=secondary_resource_group.name,\n    recovery_vault_name=vault.name,\n    recovery_fabric_name=secondary_fabric.name)\npolicy = azure.siterecovery.ReplicationPolicy(\"policy\",\n    resource_group_name=secondary_resource_group.name,\n    recovery_vault_name=vault.name,\n    recovery_point_retention_in_minutes=24 * 60,\n    application_consistent_snapshot_frequency_in_minutes=4 * 60)\ncontainer_mapping = azure.siterecovery.ProtectionContainerMapping(\"container-mapping\",\n    resource_group_name=secondary_resource_group.name,\n    recovery_vault_name=vault.name,\n    recovery_fabric_name=primary_fabric.name,\n    recovery_source_protection_container_name=primary_protection_container.name,\n    recovery_target_protection_container_id=secondary_protection_container.id,\n    recovery_replication_policy_id=policy.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var primaryResourceGroup = new Azure.Core.ResourceGroup(\"primaryResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West US\",\n        });\n        var secondaryResourceGroup = new Azure.Core.ResourceGroup(\"secondaryResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"East US\",\n        });\n        var vault = new Azure.RecoveryServices.Vault(\"vault\", new Azure.RecoveryServices.VaultArgs\n        {\n            Location = secondaryResourceGroup.Location,\n            ResourceGroupName = secondaryResourceGroup.Name,\n            Sku = \"Standard\",\n        });\n        var primaryFabric = new Azure.SiteRecovery.Fabric(\"primaryFabric\", new Azure.SiteRecovery.FabricArgs\n        {\n            ResourceGroupName = secondaryResourceGroup.Name,\n            RecoveryVaultName = vault.Name,\n            Location = primaryResourceGroup.Location,\n        });\n        var secondaryFabric = new Azure.SiteRecovery.Fabric(\"secondaryFabric\", new Azure.SiteRecovery.FabricArgs\n        {\n            ResourceGroupName = secondaryResourceGroup.Name,\n            RecoveryVaultName = vault.Name,\n            Location = secondaryResourceGroup.Location,\n        });\n        var primaryProtectionContainer = new Azure.SiteRecovery.ProtectionContainer(\"primaryProtectionContainer\", new Azure.SiteRecovery.ProtectionContainerArgs\n        {\n            ResourceGroupName = secondaryResourceGroup.Name,\n            RecoveryVaultName = vault.Name,\n            RecoveryFabricName = primaryFabric.Name,\n        });\n        var secondaryProtectionContainer = new Azure.SiteRecovery.ProtectionContainer(\"secondaryProtectionContainer\", new Azure.SiteRecovery.ProtectionContainerArgs\n        {\n            ResourceGroupName = secondaryResourceGroup.Name,\n            RecoveryVaultName = vault.Name,\n            RecoveryFabricName = secondaryFabric.Name,\n        });\n        var policy = new Azure.SiteRecovery.ReplicationPolicy(\"policy\", new Azure.SiteRecovery.ReplicationPolicyArgs\n        {\n            ResourceGroupName = secondaryResourceGroup.Name,\n            RecoveryVaultName = vault.Name,\n            RecoveryPointRetentionInMinutes = 24 * 60,\n            ApplicationConsistentSnapshotFrequencyInMinutes = 4 * 60,\n        });\n        var container_mapping = new Azure.SiteRecovery.ProtectionContainerMapping(\"container-mapping\", new Azure.SiteRecovery.ProtectionContainerMappingArgs\n        {\n            ResourceGroupName = secondaryResourceGroup.Name,\n            RecoveryVaultName = vault.Name,\n            RecoveryFabricName = primaryFabric.Name,\n            RecoverySourceProtectionContainerName = primaryProtectionContainer.Name,\n            RecoveryTargetProtectionContainerId = secondaryProtectionContainer.Id,\n            RecoveryReplicationPolicyId = policy.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/siterecovery\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimaryResourceGroup, err := core.NewResourceGroup(ctx, \"primaryResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecondaryResourceGroup, err := core.NewResourceGroup(ctx, \"secondaryResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"East US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvault, err := recoveryservices.NewVault(ctx, \"vault\", \u0026recoveryservices.VaultArgs{\n\t\t\tLocation:          secondaryResourceGroup.Location,\n\t\t\tResourceGroupName: secondaryResourceGroup.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprimaryFabric, err := siterecovery.NewFabric(ctx, \"primaryFabric\", \u0026siterecovery.FabricArgs{\n\t\t\tResourceGroupName: secondaryResourceGroup.Name,\n\t\t\tRecoveryVaultName: vault.Name,\n\t\t\tLocation:          primaryResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecondaryFabric, err := siterecovery.NewFabric(ctx, \"secondaryFabric\", \u0026siterecovery.FabricArgs{\n\t\t\tResourceGroupName: secondaryResourceGroup.Name,\n\t\t\tRecoveryVaultName: vault.Name,\n\t\t\tLocation:          secondaryResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprimaryProtectionContainer, err := siterecovery.NewProtectionContainer(ctx, \"primaryProtectionContainer\", \u0026siterecovery.ProtectionContainerArgs{\n\t\t\tResourceGroupName:  secondaryResourceGroup.Name,\n\t\t\tRecoveryVaultName:  vault.Name,\n\t\t\tRecoveryFabricName: primaryFabric.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecondaryProtectionContainer, err := siterecovery.NewProtectionContainer(ctx, \"secondaryProtectionContainer\", \u0026siterecovery.ProtectionContainerArgs{\n\t\t\tResourceGroupName:  secondaryResourceGroup.Name,\n\t\t\tRecoveryVaultName:  vault.Name,\n\t\t\tRecoveryFabricName: secondaryFabric.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy, err := siterecovery.NewReplicationPolicy(ctx, \"policy\", \u0026siterecovery.ReplicationPolicyArgs{\n\t\t\tResourceGroupName:                               secondaryResourceGroup.Name,\n\t\t\tRecoveryVaultName:                               vault.Name,\n\t\t\tRecoveryPointRetentionInMinutes:                 24 * 60,\n\t\t\tApplicationConsistentSnapshotFrequencyInMinutes: 4 * 60,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = siterecovery.NewProtectionContainerMapping(ctx, \"container_mapping\", \u0026siterecovery.ProtectionContainerMappingArgs{\n\t\t\tResourceGroupName:                     secondaryResourceGroup.Name,\n\t\t\tRecoveryVaultName:                     vault.Name,\n\t\t\tRecoveryFabricName:                    primaryFabric.Name,\n\t\t\tRecoverySourceProtectionContainerName: primaryProtectionContainer.Name,\n\t\t\tRecoveryTargetProtectionContainerId:   secondaryProtectionContainer.ID(),\n\t\t\tRecoveryReplicationPolicyId:           policy.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSite Recovery Protection Container Mappings can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:siterecovery/protectionContainerMapping:ProtectionContainerMapping mymapping /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.RecoveryServices/vaults/recovery-vault-name\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the network mapping.\n",
          "type": "string"
        },
        "recoveryFabricName": {
          "description": "Name of fabric that should contains the protection container to map.\n",
          "type": "string"
        },
        "recoveryReplicationPolicyId": {
          "description": "Id of the policy to use for this mapping.\n",
          "type": "string"
        },
        "recoverySourceProtectionContainerName": {
          "description": "Name of the source protection container to map.\n",
          "type": "string"
        },
        "recoveryTargetProtectionContainerId": {
          "description": "Id of target protection container to map to.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "The name of the vault that should be updated.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group where the vault that should be updated is located.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "The name of the network mapping.\n",
          "type": "string"
        },
        "recoveryFabricName": {
          "description": "Name of fabric that should contains the protection container to map.\n",
          "type": "string"
        },
        "recoveryReplicationPolicyId": {
          "description": "Id of the policy to use for this mapping.\n",
          "type": "string"
        },
        "recoverySourceProtectionContainerName": {
          "description": "Name of the source protection container to map.\n",
          "type": "string"
        },
        "recoveryTargetProtectionContainerId": {
          "description": "Id of target protection container to map to.\n",
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "The name of the vault that should be updated.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group where the vault that should be updated is located.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "recoveryFabricName",
        "recoveryReplicationPolicyId",
        "recoverySourceProtectionContainerName",
        "recoveryTargetProtectionContainerId",
        "recoveryVaultName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "recoveryFabricName",
        "recoveryReplicationPolicyId",
        "recoverySourceProtectionContainerName",
        "recoveryTargetProtectionContainerId",
        "recoveryVaultName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ProtectionContainerMapping resources.\n",
        "properties": {
          "name": {
            "description": "The name of the network mapping.\n",
            "type": "string"
          },
          "recoveryFabricName": {
            "description": "Name of fabric that should contains the protection container to map.\n",
            "type": "string"
          },
          "recoveryReplicationPolicyId": {
            "description": "Id of the policy to use for this mapping.\n",
            "type": "string"
          },
          "recoverySourceProtectionContainerName": {
            "description": "Name of the source protection container to map.\n",
            "type": "string"
          },
          "recoveryTargetProtectionContainerId": {
            "description": "Id of target protection container to map to.\n",
            "type": "string"
          },
          "recoveryVaultName": {
            "description": "The name of the vault that should be updated.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Name of the resource group where the vault that should be updated is located.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:siterecovery/replicatedVM:ReplicatedVM": {
      "description": "Manages a VM replicated using Azure Site Recovery (Azure to Azure only). A replicated VM keeps a copiously updated image of the VM in another region in order to be able to start the VM in that region in case of a disaster.\n\n\n## Import\n\nSite Recovery Replicated VM's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:siterecovery/replicatedVM:ReplicatedVM vmreplication /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.RecoveryServices/vaults/recovery-vault-name/replicationFabrics/fabric-name/replicationProtectionContainers/protection-container-name/replicationProtectedItems/vm-replication-name\n```\n\n ",
      "inputProperties": {
        "managedDisks": {
          "description": "One or more `managed_disk` block.\n",
          "items": {
            "$ref": "#/types/azure:siterecovery/ReplicatedVMManagedDisk:ReplicatedVMManagedDisk"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the network mapping.\n",
          "type": "string"
        },
        "networkInterfaces": {
          "description": "One or more `network_interface` block.\n",
          "items": {
            "$ref": "#/types/azure:siterecovery/ReplicatedVMNetworkInterface:ReplicatedVMNetworkInterface"
          },
          "type": "array"
        },
        "recoveryReplicationPolicyId": {
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "The name of the vault that should be updated.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group where the vault that should be updated is located.\n",
          "type": "string"
        },
        "sourceRecoveryFabricName": {
          "description": "Name of fabric that should contains this replication.\n",
          "type": "string"
        },
        "sourceRecoveryProtectionContainerName": {
          "description": "Name of the protection container to use.\n",
          "type": "string"
        },
        "sourceVmId": {
          "description": "Id of the VM to replicate\n",
          "type": "string"
        },
        "targetAvailabilitySetId": {
          "description": "Id of availability set that the new VM should belong to when a failover is done.\n",
          "type": "string"
        },
        "targetNetworkId": {
          "description": "Network to use when a failover is done (recommended to set if any network_interface is configured for failover).\n",
          "type": "string"
        },
        "targetRecoveryFabricId": {
          "description": "Id of fabric where the VM replication should be handled when a failover is done.\n",
          "type": "string"
        },
        "targetRecoveryProtectionContainerId": {
          "description": "Id of protection container where the VM replication should be created when a failover is done.\n",
          "type": "string"
        },
        "targetResourceGroupId": {
          "description": "Id of resource group where the VM should be created when a failover is done.\n",
          "type": "string"
        }
      },
      "properties": {
        "managedDisks": {
          "description": "One or more `managed_disk` block.\n",
          "items": {
            "$ref": "#/types/azure:siterecovery/ReplicatedVMManagedDisk:ReplicatedVMManagedDisk"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the network mapping.\n",
          "type": "string"
        },
        "networkInterfaces": {
          "description": "One or more `network_interface` block.\n",
          "items": {
            "$ref": "#/types/azure:siterecovery/ReplicatedVMNetworkInterface:ReplicatedVMNetworkInterface"
          },
          "type": "array"
        },
        "recoveryReplicationPolicyId": {
          "type": "string"
        },
        "recoveryVaultName": {
          "description": "The name of the vault that should be updated.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group where the vault that should be updated is located.\n",
          "type": "string"
        },
        "sourceRecoveryFabricName": {
          "description": "Name of fabric that should contains this replication.\n",
          "type": "string"
        },
        "sourceRecoveryProtectionContainerName": {
          "description": "Name of the protection container to use.\n",
          "type": "string"
        },
        "sourceVmId": {
          "description": "Id of the VM to replicate\n",
          "type": "string"
        },
        "targetAvailabilitySetId": {
          "description": "Id of availability set that the new VM should belong to when a failover is done.\n",
          "type": "string"
        },
        "targetNetworkId": {
          "description": "Network to use when a failover is done (recommended to set if any network_interface is configured for failover).\n",
          "type": "string"
        },
        "targetRecoveryFabricId": {
          "description": "Id of fabric where the VM replication should be handled when a failover is done.\n",
          "type": "string"
        },
        "targetRecoveryProtectionContainerId": {
          "description": "Id of protection container where the VM replication should be created when a failover is done.\n",
          "type": "string"
        },
        "targetResourceGroupId": {
          "description": "Id of resource group where the VM should be created when a failover is done.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "networkInterfaces",
        "recoveryReplicationPolicyId",
        "recoveryVaultName",
        "resourceGroupName",
        "sourceRecoveryFabricName",
        "sourceRecoveryProtectionContainerName",
        "sourceVmId",
        "targetNetworkId",
        "targetRecoveryFabricId",
        "targetRecoveryProtectionContainerId",
        "targetResourceGroupId"
      ],
      "requiredInputs": [
        "recoveryReplicationPolicyId",
        "recoveryVaultName",
        "resourceGroupName",
        "sourceRecoveryFabricName",
        "sourceRecoveryProtectionContainerName",
        "sourceVmId",
        "targetRecoveryFabricId",
        "targetRecoveryProtectionContainerId",
        "targetResourceGroupId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ReplicatedVM resources.\n",
        "properties": {
          "managedDisks": {
            "description": "One or more `managed_disk` block.\n",
            "items": {
              "$ref": "#/types/azure:siterecovery/ReplicatedVMManagedDisk:ReplicatedVMManagedDisk"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the network mapping.\n",
            "type": "string"
          },
          "networkInterfaces": {
            "description": "One or more `network_interface` block.\n",
            "items": {
              "$ref": "#/types/azure:siterecovery/ReplicatedVMNetworkInterface:ReplicatedVMNetworkInterface"
            },
            "type": "array"
          },
          "recoveryReplicationPolicyId": {
            "type": "string"
          },
          "recoveryVaultName": {
            "description": "The name of the vault that should be updated.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Name of the resource group where the vault that should be updated is located.\n",
            "type": "string"
          },
          "sourceRecoveryFabricName": {
            "description": "Name of fabric that should contains this replication.\n",
            "type": "string"
          },
          "sourceRecoveryProtectionContainerName": {
            "description": "Name of the protection container to use.\n",
            "type": "string"
          },
          "sourceVmId": {
            "description": "Id of the VM to replicate\n",
            "type": "string"
          },
          "targetAvailabilitySetId": {
            "description": "Id of availability set that the new VM should belong to when a failover is done.\n",
            "type": "string"
          },
          "targetNetworkId": {
            "description": "Network to use when a failover is done (recommended to set if any network_interface is configured for failover).\n",
            "type": "string"
          },
          "targetRecoveryFabricId": {
            "description": "Id of fabric where the VM replication should be handled when a failover is done.\n",
            "type": "string"
          },
          "targetRecoveryProtectionContainerId": {
            "description": "Id of protection container where the VM replication should be created when a failover is done.\n",
            "type": "string"
          },
          "targetResourceGroupId": {
            "description": "Id of resource group where the VM should be created when a failover is done.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:siterecovery/replicationPolicy:ReplicationPolicy": {
      "description": "Manages a Azure Site Recovery replication policy within a recovery vault. Replication policies define the frequency at which recovery points are created and how long they are stored.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst secondary = new azure.core.ResourceGroup(\"secondary\", {location: \"East US\"});\nconst vault = new azure.recoveryservices.Vault(\"vault\", {\n    location: secondary.location,\n    resourceGroupName: secondary.name,\n    sku: \"Standard\",\n});\nconst policy = new azure.siterecovery.ReplicationPolicy(\"policy\", {\n    resourceGroupName: secondary.name,\n    recoveryVaultName: vault.name,\n    recoveryPointRetentionInMinutes: 24 * 60,\n    applicationConsistentSnapshotFrequencyInMinutes: 4 * 60,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nsecondary = azure.core.ResourceGroup(\"secondary\", location=\"East US\")\nvault = azure.recoveryservices.Vault(\"vault\",\n    location=secondary.location,\n    resource_group_name=secondary.name,\n    sku=\"Standard\")\npolicy = azure.siterecovery.ReplicationPolicy(\"policy\",\n    resource_group_name=secondary.name,\n    recovery_vault_name=vault.name,\n    recovery_point_retention_in_minutes=24 * 60,\n    application_consistent_snapshot_frequency_in_minutes=4 * 60)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var secondary = new Azure.Core.ResourceGroup(\"secondary\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"East US\",\n        });\n        var vault = new Azure.RecoveryServices.Vault(\"vault\", new Azure.RecoveryServices.VaultArgs\n        {\n            Location = secondary.Location,\n            ResourceGroupName = secondary.Name,\n            Sku = \"Standard\",\n        });\n        var policy = new Azure.SiteRecovery.ReplicationPolicy(\"policy\", new Azure.SiteRecovery.ReplicationPolicyArgs\n        {\n            ResourceGroupName = secondary.Name,\n            RecoveryVaultName = vault.Name,\n            RecoveryPointRetentionInMinutes = 24 * 60,\n            ApplicationConsistentSnapshotFrequencyInMinutes = 4 * 60,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/recoveryservices\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/siterecovery\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecondary, err := core.NewResourceGroup(ctx, \"secondary\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"East US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvault, err := recoveryservices.NewVault(ctx, \"vault\", \u0026recoveryservices.VaultArgs{\n\t\t\tLocation:          secondary.Location,\n\t\t\tResourceGroupName: secondary.Name,\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = siterecovery.NewReplicationPolicy(ctx, \"policy\", \u0026siterecovery.ReplicationPolicyArgs{\n\t\t\tResourceGroupName:                               secondary.Name,\n\t\t\tRecoveryVaultName:                               vault.Name,\n\t\t\tRecoveryPointRetentionInMinutes:                 24 * 60,\n\t\t\tApplicationConsistentSnapshotFrequencyInMinutes: 4 * 60,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSite Recovery Replication Policies can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:siterecovery/replicationPolicy:ReplicationPolicy mypolicy /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.RecoveryServices/vaults/recovery-vault-name/replicationPolicies/policy-name\n```\n\n ",
      "inputProperties": {
        "applicationConsistentSnapshotFrequencyInMinutes": {
          "description": "Specifies the frequency(in minutes) at which to create application consistent recovery points.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name of the network mapping.\n",
          "type": "string"
        },
        "recoveryPointRetentionInMinutes": {
          "description": "The duration in minutes for which the recovery points need to be stored.\n",
          "type": "integer"
        },
        "recoveryVaultName": {
          "description": "The name of the vault that should be updated.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group where the vault that should be updated is located.\n",
          "type": "string"
        }
      },
      "properties": {
        "applicationConsistentSnapshotFrequencyInMinutes": {
          "description": "Specifies the frequency(in minutes) at which to create application consistent recovery points.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name of the network mapping.\n",
          "type": "string"
        },
        "recoveryPointRetentionInMinutes": {
          "description": "The duration in minutes for which the recovery points need to be stored.\n",
          "type": "integer"
        },
        "recoveryVaultName": {
          "description": "The name of the vault that should be updated.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Name of the resource group where the vault that should be updated is located.\n",
          "type": "string"
        }
      },
      "required": [
        "applicationConsistentSnapshotFrequencyInMinutes",
        "name",
        "recoveryPointRetentionInMinutes",
        "recoveryVaultName",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "applicationConsistentSnapshotFrequencyInMinutes",
        "recoveryPointRetentionInMinutes",
        "recoveryVaultName",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ReplicationPolicy resources.\n",
        "properties": {
          "applicationConsistentSnapshotFrequencyInMinutes": {
            "description": "Specifies the frequency(in minutes) at which to create application consistent recovery points.\n",
            "type": "integer"
          },
          "name": {
            "description": "The name of the network mapping.\n",
            "type": "string"
          },
          "recoveryPointRetentionInMinutes": {
            "description": "The duration in minutes for which the recovery points need to be stored.\n",
            "type": "integer"
          },
          "recoveryVaultName": {
            "description": "The name of the vault that should be updated.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Name of the resource group where the vault that should be updated is located.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sql/activeDirectoryAdministrator:ActiveDirectoryAdministrator": {
      "description": "Allows you to set a user or group as the AD administrator for an Azure SQL server\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSqlServer = new azure.sql.SqlServer(\"exampleSqlServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"4dm1n157r470r\",\n    administratorLoginPassword: \"4-v3ry-53cr37-p455w0rd\",\n});\nconst exampleActiveDirectoryAdministrator = new azure.sql.ActiveDirectoryAdministrator(\"exampleActiveDirectoryAdministrator\", {\n    serverName: exampleSqlServer.name,\n    resourceGroupName: exampleResourceGroup.name,\n    login: \"sqladmin\",\n    tenantId: current.then(current =\u003e current.tenantId),\n    objectId: current.then(current =\u003e current.objectId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_sql_server = azure.sql.SqlServer(\"exampleSqlServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"4dm1n157r470r\",\n    administrator_login_password=\"4-v3ry-53cr37-p455w0rd\")\nexample_active_directory_administrator = azure.sql.ActiveDirectoryAdministrator(\"exampleActiveDirectoryAdministrator\",\n    server_name=example_sql_server.name,\n    resource_group_name=example_resource_group.name,\n    login=\"sqladmin\",\n    tenant_id=current.tenant_id,\n    object_id=current.object_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSqlServer = new Azure.Sql.SqlServer(\"exampleSqlServer\", new Azure.Sql.SqlServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"4dm1n157r470r\",\n            AdministratorLoginPassword = \"4-v3ry-53cr37-p455w0rd\",\n        });\n        var exampleActiveDirectoryAdministrator = new Azure.Sql.ActiveDirectoryAdministrator(\"exampleActiveDirectoryAdministrator\", new Azure.Sql.ActiveDirectoryAdministratorArgs\n        {\n            ServerName = exampleSqlServer.Name,\n            ResourceGroupName = exampleResourceGroup.Name,\n            Login = \"sqladmin\",\n            TenantId = current.Apply(current =\u003e current.TenantId),\n            ObjectId = current.Apply(current =\u003e current.ObjectId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlServer, err := sql.NewSqlServer(ctx, \"exampleSqlServer\", \u0026sql.SqlServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"4dm1n157r470r\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"4-v3ry-53cr37-p455w0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewActiveDirectoryAdministrator(ctx, \"exampleActiveDirectoryAdministrator\", \u0026sql.ActiveDirectoryAdministratorArgs{\n\t\t\tServerName:        exampleSqlServer.Name,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLogin:             pulumi.String(\"sqladmin\"),\n\t\t\tTenantId:          pulumi.String(current.TenantId),\n\t\t\tObjectId:          pulumi.String(current.ObjectId),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nA SQL Active Directory Administrator can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sql/activeDirectoryAdministrator:ActiveDirectoryAdministrator administrator /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver/administrators/activeDirectory\n```\n\n ",
      "inputProperties": {
        "login": {
          "description": "The login name of the principal to set as the server administrator\n",
          "type": "string"
        },
        "objectId": {
          "description": "The ID of the principal to set as the server administrator\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group for the SQL server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server on which to set the administrator. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The Azure Tenant ID\n",
          "type": "string"
        }
      },
      "properties": {
        "login": {
          "description": "The login name of the principal to set as the server administrator\n",
          "type": "string"
        },
        "objectId": {
          "description": "The ID of the principal to set as the server administrator\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group for the SQL server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server on which to set the administrator. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tenantId": {
          "description": "The Azure Tenant ID\n",
          "type": "string"
        }
      },
      "required": [
        "login",
        "objectId",
        "resourceGroupName",
        "serverName",
        "tenantId"
      ],
      "requiredInputs": [
        "login",
        "objectId",
        "resourceGroupName",
        "serverName",
        "tenantId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ActiveDirectoryAdministrator resources.\n",
        "properties": {
          "login": {
            "description": "The login name of the principal to set as the server administrator\n",
            "type": "string"
          },
          "objectId": {
            "description": "The ID of the principal to set as the server administrator\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group for the SQL server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the SQL Server on which to set the administrator. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tenantId": {
            "description": "The Azure Tenant ID\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sql/database:Database": {
      "description": "\n\n\n## Import\n\nSQL Databases can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sql/database:Database database1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver/databases/database1\n```\n\n ",
      "inputProperties": {
        "collation": {
          "description": "The name of the collation. Applies only if `create_mode` is `Default`.  Azure default is `SQL_LATIN1_GENERAL_CP1_CI_AS`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "createMode": {
          "description": "Specifies how to create the database. Valid values are: `Default`, `Copy`, `OnlineSecondary`, `NonReadableSecondary`,  `PointInTimeRestore`, `Recovery`, `Restore` or `RestoreLongTermRetentionBackup`. Must be `Default` to create a new database. Defaults to `Default`. Please see [Azure SQL Database REST API](https://docs.microsoft.com/en-us/rest/api/sql/databases/createorupdate#createmode)\n",
          "type": "string"
        },
        "edition": {
          "description": "The edition of the database to be created. Applies only if `create_mode` is `Default`. Valid values are: `Basic`, `Standard`, `Premium`, `DataWarehouse`, `Business`, `BusinessCritical`, `Free`, `GeneralPurpose`, `Hyperscale`, `Premium`, `PremiumRS`, `Standard`, `Stretch`, `System`, `System2`, or `Web`. Please see [Azure SQL Database Service Tiers](https://azure.microsoft.com/en-gb/documentation/articles/sql-database-service-tiers/).\n",
          "type": "string"
        },
        "elasticPoolName": {
          "description": "The name of the elastic database pool.\n",
          "type": "string"
        },
        "extendedAuditingPolicy": {
          "$ref": "#/types/azure:sql/DatabaseExtendedAuditingPolicy:DatabaseExtendedAuditingPolicy",
          "deprecationMessage": "the `extended_auditing_policy` block has been moved to `azurerm_mssql_server_extended_auditing_policy` and `azurerm_mssql_database_extended_auditing_policy`. This block will be removed in version 3.0 of the provider.",
          "description": "A `extended_auditing_policy` block as defined below.\n"
        },
        "import": {
          "$ref": "#/types/azure:sql/DatabaseImport:DatabaseImport",
          "description": "A Database Import block as documented below. `create_mode` must be set to `Default`.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxSizeBytes": {
          "description": "The maximum size that the database can grow to. Applies only if `create_mode` is `Default`.  Please see [Azure SQL Database Service Tiers](https://azure.microsoft.com/en-gb/documentation/articles/sql-database-service-tiers/).\n",
          "type": "string"
        },
        "maxSizeGb": {
          "type": "string"
        },
        "name": {
          "description": "The name of the database.\n",
          "type": "string"
        },
        "readScale": {
          "description": "Read-only connections will be redirected to a high-available replica. Please see [Use read-only replicas to load-balance read-only query workloads](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-read-scale-out).\n",
          "type": "boolean"
        },
        "requestedServiceObjectiveId": {
          "description": "A GUID/UUID corresponding to a configured Service Level Objective for the Azure SQL database which can be used to configure a performance level.\n.\n",
          "type": "string"
        },
        "requestedServiceObjectiveName": {
          "description": "The service objective name for the database. Valid values depend on edition and location and may include `S0`, `S1`, `S2`, `S3`, `P1`, `P2`, `P4`, `P6`, `P11` and `ElasticPool`. You can list the available names with the cli: `shell az sql db list-editions -l westus -o table`. For further information please see [Azure CLI - az sql db](https://docs.microsoft.com/en-us/cli/azure/sql/db?view=azure-cli-latest#az-sql-db-list-editions).\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the database.  This must be the same as Database Server resource group currently.\n",
          "type": "string"
        },
        "restorePointInTime": {
          "description": "The point in time for the restore. Only applies if `create_mode` is `PointInTimeRestore` e.g. 2013-11-08T22:00:40Z\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server on which to create the database.\n",
          "type": "string"
        },
        "sourceDatabaseDeletionDate": {
          "description": "The deletion date time of the source database. Only applies to deleted databases where `create_mode` is `PointInTimeRestore`.\n",
          "type": "string"
        },
        "sourceDatabaseId": {
          "description": "The URI of the source database if `create_mode` value is not `Default`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "threatDetectionPolicy": {
          "$ref": "#/types/azure:sql/DatabaseThreatDetectionPolicy:DatabaseThreatDetectionPolicy",
          "description": "Threat detection policy configuration. The `threat_detection_policy` block supports fields documented below.\n"
        },
        "zoneRedundant": {
          "description": "Whether or not this database is zone redundant, which means the replicas of this database will be spread across multiple availability zones.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "collation": {
          "description": "The name of the collation. Applies only if `create_mode` is `Default`.  Azure default is `SQL_LATIN1_GENERAL_CP1_CI_AS`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "createMode": {
          "description": "Specifies how to create the database. Valid values are: `Default`, `Copy`, `OnlineSecondary`, `NonReadableSecondary`,  `PointInTimeRestore`, `Recovery`, `Restore` or `RestoreLongTermRetentionBackup`. Must be `Default` to create a new database. Defaults to `Default`. Please see [Azure SQL Database REST API](https://docs.microsoft.com/en-us/rest/api/sql/databases/createorupdate#createmode)\n",
          "type": "string"
        },
        "creationDate": {
          "description": "The creation date of the SQL Database.\n",
          "type": "string"
        },
        "defaultSecondaryLocation": {
          "description": "The default secondary location of the SQL Database.\n",
          "type": "string"
        },
        "edition": {
          "description": "The edition of the database to be created. Applies only if `create_mode` is `Default`. Valid values are: `Basic`, `Standard`, `Premium`, `DataWarehouse`, `Business`, `BusinessCritical`, `Free`, `GeneralPurpose`, `Hyperscale`, `Premium`, `PremiumRS`, `Standard`, `Stretch`, `System`, `System2`, or `Web`. Please see [Azure SQL Database Service Tiers](https://azure.microsoft.com/en-gb/documentation/articles/sql-database-service-tiers/).\n",
          "type": "string"
        },
        "elasticPoolName": {
          "description": "The name of the elastic database pool.\n",
          "type": "string"
        },
        "encryption": {
          "type": "string"
        },
        "extendedAuditingPolicy": {
          "$ref": "#/types/azure:sql/DatabaseExtendedAuditingPolicy:DatabaseExtendedAuditingPolicy",
          "deprecationMessage": "the `extended_auditing_policy` block has been moved to `azurerm_mssql_server_extended_auditing_policy` and `azurerm_mssql_database_extended_auditing_policy`. This block will be removed in version 3.0 of the provider.",
          "description": "A `extended_auditing_policy` block as defined below.\n"
        },
        "import": {
          "$ref": "#/types/azure:sql/DatabaseImport:DatabaseImport",
          "description": "A Database Import block as documented below. `create_mode` must be set to `Default`.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "maxSizeBytes": {
          "description": "The maximum size that the database can grow to. Applies only if `create_mode` is `Default`.  Please see [Azure SQL Database Service Tiers](https://azure.microsoft.com/en-gb/documentation/articles/sql-database-service-tiers/).\n",
          "type": "string"
        },
        "maxSizeGb": {
          "type": "string"
        },
        "name": {
          "description": "The name of the database.\n",
          "type": "string"
        },
        "readScale": {
          "description": "Read-only connections will be redirected to a high-available replica. Please see [Use read-only replicas to load-balance read-only query workloads](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-read-scale-out).\n",
          "type": "boolean"
        },
        "requestedServiceObjectiveId": {
          "description": "A GUID/UUID corresponding to a configured Service Level Objective for the Azure SQL database which can be used to configure a performance level.\n.\n",
          "type": "string"
        },
        "requestedServiceObjectiveName": {
          "description": "The service objective name for the database. Valid values depend on edition and location and may include `S0`, `S1`, `S2`, `S3`, `P1`, `P2`, `P4`, `P6`, `P11` and `ElasticPool`. You can list the available names with the cli: `shell az sql db list-editions -l westus -o table`. For further information please see [Azure CLI - az sql db](https://docs.microsoft.com/en-us/cli/azure/sql/db?view=azure-cli-latest#az-sql-db-list-editions).\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the database.  This must be the same as Database Server resource group currently.\n",
          "type": "string"
        },
        "restorePointInTime": {
          "description": "The point in time for the restore. Only applies if `create_mode` is `PointInTimeRestore` e.g. 2013-11-08T22:00:40Z\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server on which to create the database.\n",
          "type": "string"
        },
        "sourceDatabaseDeletionDate": {
          "description": "The deletion date time of the source database. Only applies to deleted databases where `create_mode` is `PointInTimeRestore`.\n",
          "type": "string"
        },
        "sourceDatabaseId": {
          "description": "The URI of the source database if `create_mode` value is not `Default`.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "threatDetectionPolicy": {
          "$ref": "#/types/azure:sql/DatabaseThreatDetectionPolicy:DatabaseThreatDetectionPolicy",
          "description": "Threat detection policy configuration. The `threat_detection_policy` block supports fields documented below.\n"
        },
        "zoneRedundant": {
          "description": "Whether or not this database is zone redundant, which means the replicas of this database will be spread across multiple availability zones.\n",
          "type": "boolean"
        }
      },
      "required": [
        "collation",
        "creationDate",
        "defaultSecondaryLocation",
        "edition",
        "elasticPoolName",
        "encryption",
        "extendedAuditingPolicy",
        "location",
        "maxSizeBytes",
        "maxSizeGb",
        "name",
        "requestedServiceObjectiveId",
        "requestedServiceObjectiveName",
        "resourceGroupName",
        "restorePointInTime",
        "serverName",
        "sourceDatabaseDeletionDate",
        "sourceDatabaseId",
        "threatDetectionPolicy"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "serverName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Database resources.\n",
        "properties": {
          "collation": {
            "description": "The name of the collation. Applies only if `create_mode` is `Default`.  Azure default is `SQL_LATIN1_GENERAL_CP1_CI_AS`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "createMode": {
            "description": "Specifies how to create the database. Valid values are: `Default`, `Copy`, `OnlineSecondary`, `NonReadableSecondary`,  `PointInTimeRestore`, `Recovery`, `Restore` or `RestoreLongTermRetentionBackup`. Must be `Default` to create a new database. Defaults to `Default`. Please see [Azure SQL Database REST API](https://docs.microsoft.com/en-us/rest/api/sql/databases/createorupdate#createmode)\n",
            "type": "string"
          },
          "creationDate": {
            "description": "The creation date of the SQL Database.\n",
            "type": "string"
          },
          "defaultSecondaryLocation": {
            "description": "The default secondary location of the SQL Database.\n",
            "type": "string"
          },
          "edition": {
            "description": "The edition of the database to be created. Applies only if `create_mode` is `Default`. Valid values are: `Basic`, `Standard`, `Premium`, `DataWarehouse`, `Business`, `BusinessCritical`, `Free`, `GeneralPurpose`, `Hyperscale`, `Premium`, `PremiumRS`, `Standard`, `Stretch`, `System`, `System2`, or `Web`. Please see [Azure SQL Database Service Tiers](https://azure.microsoft.com/en-gb/documentation/articles/sql-database-service-tiers/).\n",
            "type": "string"
          },
          "elasticPoolName": {
            "description": "The name of the elastic database pool.\n",
            "type": "string"
          },
          "encryption": {
            "type": "string"
          },
          "extendedAuditingPolicy": {
            "$ref": "#/types/azure:sql/DatabaseExtendedAuditingPolicy:DatabaseExtendedAuditingPolicy",
            "deprecationMessage": "the `extended_auditing_policy` block has been moved to `azurerm_mssql_server_extended_auditing_policy` and `azurerm_mssql_database_extended_auditing_policy`. This block will be removed in version 3.0 of the provider.",
            "description": "A `extended_auditing_policy` block as defined below.\n"
          },
          "import": {
            "$ref": "#/types/azure:sql/DatabaseImport:DatabaseImport",
            "description": "A Database Import block as documented below. `create_mode` must be set to `Default`.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "maxSizeBytes": {
            "description": "The maximum size that the database can grow to. Applies only if `create_mode` is `Default`.  Please see [Azure SQL Database Service Tiers](https://azure.microsoft.com/en-gb/documentation/articles/sql-database-service-tiers/).\n",
            "type": "string"
          },
          "maxSizeGb": {
            "type": "string"
          },
          "name": {
            "description": "The name of the database.\n",
            "type": "string"
          },
          "readScale": {
            "description": "Read-only connections will be redirected to a high-available replica. Please see [Use read-only replicas to load-balance read-only query workloads](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-read-scale-out).\n",
            "type": "boolean"
          },
          "requestedServiceObjectiveId": {
            "description": "A GUID/UUID corresponding to a configured Service Level Objective for the Azure SQL database which can be used to configure a performance level.\n.\n",
            "type": "string"
          },
          "requestedServiceObjectiveName": {
            "description": "The service objective name for the database. Valid values depend on edition and location and may include `S0`, `S1`, `S2`, `S3`, `P1`, `P2`, `P4`, `P6`, `P11` and `ElasticPool`. You can list the available names with the cli: `shell az sql db list-editions -l westus -o table`. For further information please see [Azure CLI - az sql db](https://docs.microsoft.com/en-us/cli/azure/sql/db?view=azure-cli-latest#az-sql-db-list-editions).\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the database.  This must be the same as Database Server resource group currently.\n",
            "type": "string"
          },
          "restorePointInTime": {
            "description": "The point in time for the restore. Only applies if `create_mode` is `PointInTimeRestore` e.g. 2013-11-08T22:00:40Z\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the SQL Server on which to create the database.\n",
            "type": "string"
          },
          "sourceDatabaseDeletionDate": {
            "description": "The deletion date time of the source database. Only applies to deleted databases where `create_mode` is `PointInTimeRestore`.\n",
            "type": "string"
          },
          "sourceDatabaseId": {
            "description": "The URI of the source database if `create_mode` value is not `Default`.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "threatDetectionPolicy": {
            "$ref": "#/types/azure:sql/DatabaseThreatDetectionPolicy:DatabaseThreatDetectionPolicy",
            "description": "Threat detection policy configuration. The `threat_detection_policy` block supports fields documented below.\n"
          },
          "zoneRedundant": {
            "description": "Whether or not this database is zone redundant, which means the replicas of this database will be spread across multiple availability zones.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:sql/elasticPool:ElasticPool": {
      "description": "Allows you to manage an Azure SQL Elastic Pool.\n\n\u003e **NOTE:** -  This version of the `Elasticpool` resource is being **deprecated** and should no longer be used. Please use the azure.mssql.ElasticPool version instead.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSqlServer = new azure.sql.SqlServer(\"exampleSqlServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"4dm1n157r470r\",\n    administratorLoginPassword: \"4-v3ry-53cr37-p455w0rd\",\n});\nconst exampleElasticPool = new azure.sql.ElasticPool(\"exampleElasticPool\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    serverName: exampleSqlServer.name,\n    edition: \"Basic\",\n    dtu: 50,\n    dbDtuMin: 0,\n    dbDtuMax: 5,\n    poolSize: 5000,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_sql_server = azure.sql.SqlServer(\"exampleSqlServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"4dm1n157r470r\",\n    administrator_login_password=\"4-v3ry-53cr37-p455w0rd\")\nexample_elastic_pool = azure.sql.ElasticPool(\"exampleElasticPool\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    server_name=example_sql_server.name,\n    edition=\"Basic\",\n    dtu=50,\n    db_dtu_min=0,\n    db_dtu_max=5,\n    pool_size=5000)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSqlServer = new Azure.Sql.SqlServer(\"exampleSqlServer\", new Azure.Sql.SqlServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"4dm1n157r470r\",\n            AdministratorLoginPassword = \"4-v3ry-53cr37-p455w0rd\",\n        });\n        var exampleElasticPool = new Azure.Sql.ElasticPool(\"exampleElasticPool\", new Azure.Sql.ElasticPoolArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ServerName = exampleSqlServer.Name,\n            Edition = \"Basic\",\n            Dtu = 50,\n            DbDtuMin = 0,\n            DbDtuMax = 5,\n            PoolSize = 5000,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlServer, err := sql.NewSqlServer(ctx, \"exampleSqlServer\", \u0026sql.SqlServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"4dm1n157r470r\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"4-v3ry-53cr37-p455w0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewElasticPool(ctx, \"exampleElasticPool\", \u0026sql.ElasticPoolArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tServerName:        exampleSqlServer.Name,\n\t\t\tEdition:           pulumi.String(\"Basic\"),\n\t\t\tDtu:               pulumi.Int(50),\n\t\t\tDbDtuMin:          pulumi.Int(0),\n\t\t\tDbDtuMax:          pulumi.Int(5),\n\t\t\tPoolSize:          pulumi.Int(5000),\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\n\u003e **NOTE on `azure.sql.ElasticPool`:** -  The values of `edition`, `dtu`, and `pool_size` must be consistent with the [Azure SQL Database Service Tiers](https://docs.microsoft.com/en-gb/azure/sql-database/sql-database-service-tiers#elastic-pool-service-tiers-and-performance-in-edtus). Any inconsistent argument configuration will be rejected.\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL Elastic Pool's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sql/elasticPool:ElasticPool pool1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver/elasticPools/pool1\n```\n\n ",
      "inputProperties": {
        "dbDtuMax": {
          "description": "The maximum DTU which will be guaranteed to all databases in the elastic pool to be created.\n",
          "type": "integer"
        },
        "dbDtuMin": {
          "description": "The minimum DTU which will be guaranteed to all databases in the elastic pool to be created.\n",
          "type": "integer"
        },
        "dtu": {
          "description": "The total shared DTU for the elastic pool. Valid values depend on the `edition` which has been defined. Refer to [Azure SQL Database Service Tiers](https://docs.microsoft.com/en-gb/azure/sql-database/sql-database-service-tiers#elastic-pool-service-tiers-and-performance-in-edtus) for valid combinations.\n",
          "type": "integer"
        },
        "edition": {
          "description": "The edition of the elastic pool to be created. Valid values are `Basic`, `Standard`, and `Premium`. Refer to [Azure SQL Database Service Tiers](https://docs.microsoft.com/en-gb/azure/sql-database/sql-database-service-tiers#elastic-pool-service-tiers-and-performance-in-edtus) for details. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the elastic pool. This needs to be globally unique. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "poolSize": {
          "description": "The maximum size in MB that all databases in the elastic pool can grow to. The maximum size must be consistent with combination of `edition` and `dtu` and the limits documented in [Azure SQL Database Service Tiers](https://docs.microsoft.com/en-gb/azure/sql-database/sql-database-service-tiers#elastic-pool-service-tiers-and-performance-in-edtus). If not defined when creating an elastic pool, the value is set to the size implied by `edition` and `dtu`.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the elastic pool. This must be the same as the resource group of the underlying SQL server.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server on which to create the elastic pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "creationDate": {
          "description": "The creation date of the SQL Elastic Pool.\n",
          "type": "string"
        },
        "dbDtuMax": {
          "description": "The maximum DTU which will be guaranteed to all databases in the elastic pool to be created.\n",
          "type": "integer"
        },
        "dbDtuMin": {
          "description": "The minimum DTU which will be guaranteed to all databases in the elastic pool to be created.\n",
          "type": "integer"
        },
        "dtu": {
          "description": "The total shared DTU for the elastic pool. Valid values depend on the `edition` which has been defined. Refer to [Azure SQL Database Service Tiers](https://docs.microsoft.com/en-gb/azure/sql-database/sql-database-service-tiers#elastic-pool-service-tiers-and-performance-in-edtus) for valid combinations.\n",
          "type": "integer"
        },
        "edition": {
          "description": "The edition of the elastic pool to be created. Valid values are `Basic`, `Standard`, and `Premium`. Refer to [Azure SQL Database Service Tiers](https://docs.microsoft.com/en-gb/azure/sql-database/sql-database-service-tiers#elastic-pool-service-tiers-and-performance-in-edtus) for details. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the elastic pool. This needs to be globally unique. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "poolSize": {
          "description": "The maximum size in MB that all databases in the elastic pool can grow to. The maximum size must be consistent with combination of `edition` and `dtu` and the limits documented in [Azure SQL Database Service Tiers](https://docs.microsoft.com/en-gb/azure/sql-database/sql-database-service-tiers#elastic-pool-service-tiers-and-performance-in-edtus). If not defined when creating an elastic pool, the value is set to the size implied by `edition` and `dtu`.\n",
          "type": "integer"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the elastic pool. This must be the same as the resource group of the underlying SQL server.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server on which to create the elastic pool. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "creationDate",
        "dbDtuMax",
        "dbDtuMin",
        "dtu",
        "edition",
        "location",
        "name",
        "poolSize",
        "resourceGroupName",
        "serverName"
      ],
      "requiredInputs": [
        "dtu",
        "edition",
        "resourceGroupName",
        "serverName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ElasticPool resources.\n",
        "properties": {
          "creationDate": {
            "description": "The creation date of the SQL Elastic Pool.\n",
            "type": "string"
          },
          "dbDtuMax": {
            "description": "The maximum DTU which will be guaranteed to all databases in the elastic pool to be created.\n",
            "type": "integer"
          },
          "dbDtuMin": {
            "description": "The minimum DTU which will be guaranteed to all databases in the elastic pool to be created.\n",
            "type": "integer"
          },
          "dtu": {
            "description": "The total shared DTU for the elastic pool. Valid values depend on the `edition` which has been defined. Refer to [Azure SQL Database Service Tiers](https://docs.microsoft.com/en-gb/azure/sql-database/sql-database-service-tiers#elastic-pool-service-tiers-and-performance-in-edtus) for valid combinations.\n",
            "type": "integer"
          },
          "edition": {
            "description": "The edition of the elastic pool to be created. Valid values are `Basic`, `Standard`, and `Premium`. Refer to [Azure SQL Database Service Tiers](https://docs.microsoft.com/en-gb/azure/sql-database/sql-database-service-tiers#elastic-pool-service-tiers-and-performance-in-edtus) for details. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the elastic pool. This needs to be globally unique. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "poolSize": {
            "description": "The maximum size in MB that all databases in the elastic pool can grow to. The maximum size must be consistent with combination of `edition` and `dtu` and the limits documented in [Azure SQL Database Service Tiers](https://docs.microsoft.com/en-gb/azure/sql-database/sql-database-service-tiers#elastic-pool-service-tiers-and-performance-in-edtus). If not defined when creating an elastic pool, the value is set to the size implied by `edition` and `dtu`.\n",
            "type": "integer"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the elastic pool. This must be the same as the resource group of the underlying SQL server.\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the SQL Server on which to create the elastic pool. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:sql/failoverGroup:FailoverGroup": {
      "description": "Create a failover group of databases on a collection of Azure SQL servers.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst primary = new azure.sql.SqlServer(\"primary\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"sqladmin\",\n    administratorLoginPassword: `pa$$w0rd`,\n});\nconst secondary = new azure.sql.SqlServer(\"secondary\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: \"northeurope\",\n    version: \"12.0\",\n    administratorLogin: \"sqladmin\",\n    administratorLoginPassword: `pa$$w0rd`,\n});\nconst db1 = new azure.sql.Database(\"db1\", {\n    resourceGroupName: primary.resourceGroupName,\n    location: primary.location,\n    serverName: primary.name,\n});\nconst exampleFailoverGroup = new azure.sql.FailoverGroup(\"exampleFailoverGroup\", {\n    resourceGroupName: primary.resourceGroupName,\n    serverName: primary.name,\n    databases: [db1.id],\n    partnerServers: [{\n        id: secondary.id,\n    }],\n    readWriteEndpointFailoverPolicy: {\n        mode: \"Automatic\",\n        graceMinutes: 60,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nprimary = azure.sql.SqlServer(\"primary\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"sqladmin\",\n    administrator_login_password=\"pa$$w0rd\")\nsecondary = azure.sql.SqlServer(\"secondary\",\n    resource_group_name=example_resource_group.name,\n    location=\"northeurope\",\n    version=\"12.0\",\n    administrator_login=\"sqladmin\",\n    administrator_login_password=\"pa$$w0rd\")\ndb1 = azure.sql.Database(\"db1\",\n    resource_group_name=primary.resource_group_name,\n    location=primary.location,\n    server_name=primary.name)\nexample_failover_group = azure.sql.FailoverGroup(\"exampleFailoverGroup\",\n    resource_group_name=primary.resource_group_name,\n    server_name=primary.name,\n    databases=[db1.id],\n    partner_servers=[azure.sql.FailoverGroupPartnerServerArgs(\n        id=secondary.id,\n    )],\n    read_write_endpoint_failover_policy=azure.sql.FailoverGroupReadWriteEndpointFailoverPolicyArgs(\n        mode=\"Automatic\",\n        grace_minutes=60,\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var primary = new Azure.Sql.SqlServer(\"primary\", new Azure.Sql.SqlServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"sqladmin\",\n            AdministratorLoginPassword = \"pa$$w0rd\",\n        });\n        var secondary = new Azure.Sql.SqlServer(\"secondary\", new Azure.Sql.SqlServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = \"northeurope\",\n            Version = \"12.0\",\n            AdministratorLogin = \"sqladmin\",\n            AdministratorLoginPassword = \"pa$$w0rd\",\n        });\n        var db1 = new Azure.Sql.Database(\"db1\", new Azure.Sql.DatabaseArgs\n        {\n            ResourceGroupName = primary.ResourceGroupName,\n            Location = primary.Location,\n            ServerName = primary.Name,\n        });\n        var exampleFailoverGroup = new Azure.Sql.FailoverGroup(\"exampleFailoverGroup\", new Azure.Sql.FailoverGroupArgs\n        {\n            ResourceGroupName = primary.ResourceGroupName,\n            ServerName = primary.Name,\n            Databases = \n            {\n                db1.Id,\n            },\n            PartnerServers = \n            {\n                new Azure.Sql.Inputs.FailoverGroupPartnerServerArgs\n                {\n                    Id = secondary.Id,\n                },\n            },\n            ReadWriteEndpointFailoverPolicy = new Azure.Sql.Inputs.FailoverGroupReadWriteEndpointFailoverPolicyArgs\n            {\n                Mode = \"Automatic\",\n                GraceMinutes = 60,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprimary, err := sql.NewSqlServer(ctx, \"primary\", \u0026sql.SqlServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"sqladmin\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(fmt.Sprintf(\"%v%v%v%v\", \"pa\", \"$\", \"$\", \"w0rd\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecondary, err := sql.NewSqlServer(ctx, \"secondary\", \u0026sql.SqlServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   pulumi.String(\"northeurope\"),\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"sqladmin\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(fmt.Sprintf(\"%v%v%v%v\", \"pa\", \"$\", \"$\", \"w0rd\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdb1, err := sql.NewDatabase(ctx, \"db1\", \u0026sql.DatabaseArgs{\n\t\t\tResourceGroupName: primary.ResourceGroupName,\n\t\t\tLocation:          primary.Location,\n\t\t\tServerName:        primary.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewFailoverGroup(ctx, \"exampleFailoverGroup\", \u0026sql.FailoverGroupArgs{\n\t\t\tResourceGroupName: primary.ResourceGroupName,\n\t\t\tServerName:        primary.Name,\n\t\t\tDatabases: pulumi.StringArray{\n\t\t\t\tdb1.ID(),\n\t\t\t},\n\t\t\tPartnerServers: sql.FailoverGroupPartnerServerArray{\n\t\t\t\t\u0026sql.FailoverGroupPartnerServerArgs{\n\t\t\t\t\tId: secondary.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tReadWriteEndpointFailoverPolicy: \u0026sql.FailoverGroupReadWriteEndpointFailoverPolicyArgs{\n\t\t\t\tMode:         pulumi.String(\"Automatic\"),\n\t\t\t\tGraceMinutes: pulumi.Int(60),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL Failover Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sql/failoverGroup:FailoverGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver/failovergroups/group1\n```\n\n ",
      "inputProperties": {
        "databases": {
          "description": "A list of database ids to add to the failover group\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the failover group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partnerServers": {
          "description": "A list of secondary servers as documented below\n",
          "items": {
            "$ref": "#/types/azure:sql/FailoverGroupPartnerServer:FailoverGroupPartnerServer"
          },
          "type": "array"
        },
        "readWriteEndpointFailoverPolicy": {
          "$ref": "#/types/azure:sql/FailoverGroupReadWriteEndpointFailoverPolicy:FailoverGroupReadWriteEndpointFailoverPolicy",
          "description": "A read/write policy as documented below\n"
        },
        "readonlyEndpointFailoverPolicy": {
          "$ref": "#/types/azure:sql/FailoverGroupReadonlyEndpointFailoverPolicy:FailoverGroupReadonlyEndpointFailoverPolicy",
          "description": "a read-only policy as documented below\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group containing the SQL server\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the primary SQL server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "databases": {
          "description": "A list of database ids to add to the failover group\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "the location of the failover group.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the failover group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "partnerServers": {
          "description": "A list of secondary servers as documented below\n",
          "items": {
            "$ref": "#/types/azure:sql/FailoverGroupPartnerServer:FailoverGroupPartnerServer"
          },
          "type": "array"
        },
        "readWriteEndpointFailoverPolicy": {
          "$ref": "#/types/azure:sql/FailoverGroupReadWriteEndpointFailoverPolicy:FailoverGroupReadWriteEndpointFailoverPolicy",
          "description": "A read/write policy as documented below\n"
        },
        "readonlyEndpointFailoverPolicy": {
          "$ref": "#/types/azure:sql/FailoverGroupReadonlyEndpointFailoverPolicy:FailoverGroupReadonlyEndpointFailoverPolicy",
          "description": "a read-only policy as documented below\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group containing the SQL server\n",
          "type": "string"
        },
        "role": {
          "description": "local replication role of the failover group instance.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the primary SQL server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "partnerServers",
        "readWriteEndpointFailoverPolicy",
        "readonlyEndpointFailoverPolicy",
        "resourceGroupName",
        "role",
        "serverName"
      ],
      "requiredInputs": [
        "partnerServers",
        "readWriteEndpointFailoverPolicy",
        "resourceGroupName",
        "serverName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FailoverGroup resources.\n",
        "properties": {
          "databases": {
            "description": "A list of database ids to add to the failover group\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "the location of the failover group.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the failover group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "partnerServers": {
            "description": "A list of secondary servers as documented below\n",
            "items": {
              "$ref": "#/types/azure:sql/FailoverGroupPartnerServer:FailoverGroupPartnerServer"
            },
            "type": "array"
          },
          "readWriteEndpointFailoverPolicy": {
            "$ref": "#/types/azure:sql/FailoverGroupReadWriteEndpointFailoverPolicy:FailoverGroupReadWriteEndpointFailoverPolicy",
            "description": "A read/write policy as documented below\n"
          },
          "readonlyEndpointFailoverPolicy": {
            "$ref": "#/types/azure:sql/FailoverGroupReadonlyEndpointFailoverPolicy:FailoverGroupReadonlyEndpointFailoverPolicy",
            "description": "a read-only policy as documented below\n"
          },
          "resourceGroupName": {
            "description": "The name of the resource group containing the SQL server\n",
            "type": "string"
          },
          "role": {
            "description": "local replication role of the failover group instance.\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the primary SQL server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:sql/firewallRule:FirewallRule": {
      "description": "Allows you to manage an Azure SQL Firewall Rule\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSqlServer = new azure.sql.SqlServer(\"exampleSqlServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: \"West US\",\n    version: \"12.0\",\n    administratorLogin: \"4dm1n157r470r\",\n    administratorLoginPassword: \"4-v3ry-53cr37-p455w0rd\",\n});\nconst exampleFirewallRule = new azure.sql.FirewallRule(\"exampleFirewallRule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    serverName: exampleSqlServer.name,\n    startIpAddress: \"10.0.17.62\",\n    endIpAddress: \"10.0.17.62\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_sql_server = azure.sql.SqlServer(\"exampleSqlServer\",\n    resource_group_name=example_resource_group.name,\n    location=\"West US\",\n    version=\"12.0\",\n    administrator_login=\"4dm1n157r470r\",\n    administrator_login_password=\"4-v3ry-53cr37-p455w0rd\")\nexample_firewall_rule = azure.sql.FirewallRule(\"exampleFirewallRule\",\n    resource_group_name=example_resource_group.name,\n    server_name=example_sql_server.name,\n    start_ip_address=\"10.0.17.62\",\n    end_ip_address=\"10.0.17.62\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSqlServer = new Azure.Sql.SqlServer(\"exampleSqlServer\", new Azure.Sql.SqlServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = \"West US\",\n            Version = \"12.0\",\n            AdministratorLogin = \"4dm1n157r470r\",\n            AdministratorLoginPassword = \"4-v3ry-53cr37-p455w0rd\",\n        });\n        var exampleFirewallRule = new Azure.Sql.FirewallRule(\"exampleFirewallRule\", new Azure.Sql.FirewallRuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ServerName = exampleSqlServer.Name,\n            StartIpAddress = \"10.0.17.62\",\n            EndIpAddress = \"10.0.17.62\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlServer, err := sql.NewSqlServer(ctx, \"exampleSqlServer\", \u0026sql.SqlServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   pulumi.String(\"West US\"),\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"4dm1n157r470r\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"4-v3ry-53cr37-p455w0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewFirewallRule(ctx, \"exampleFirewallRule\", \u0026sql.FirewallRuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName:        exampleSqlServer.Name,\n\t\t\tStartIpAddress:    pulumi.String(\"10.0.17.62\"),\n\t\t\tEndIpAddress:      pulumi.String(\"10.0.17.62\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL Firewall Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sql/firewallRule:FirewallRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver/firewallRules/rule1\n```\n\n ",
      "inputProperties": {
        "endIpAddress": {
          "description": "The ending IP address to allow through the firewall for this rule.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the firewall rule.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the sql server.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server on which to create the Firewall Rule.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "The starting IP address to allow through the firewall for this rule.\n",
          "type": "string"
        }
      },
      "properties": {
        "endIpAddress": {
          "description": "The ending IP address to allow through the firewall for this rule.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the firewall rule.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to\ncreate the sql server.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server on which to create the Firewall Rule.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "The starting IP address to allow through the firewall for this rule.\n",
          "type": "string"
        }
      },
      "required": [
        "endIpAddress",
        "name",
        "resourceGroupName",
        "serverName",
        "startIpAddress"
      ],
      "requiredInputs": [
        "endIpAddress",
        "resourceGroupName",
        "serverName",
        "startIpAddress"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FirewallRule resources.\n",
        "properties": {
          "endIpAddress": {
            "description": "The ending IP address to allow through the firewall for this rule.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the firewall rule.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to\ncreate the sql server.\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the SQL Server on which to create the Firewall Rule.\n",
            "type": "string"
          },
          "startIpAddress": {
            "description": "The starting IP address to allow through the firewall for this rule.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sql/managedDatabase:ManagedDatabase": {
      "description": "Manages a SQL Azure Managed Database\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.sql.ManagedDatabase(\"example\", {\n    sqlManagedInstanceId: azurerm_sql_managed_instance.example.id,\n    location: azurerm_resource_group.example.location,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.sql.ManagedDatabase(\"example\",\n    sql_managed_instance_id=azurerm_sql_managed_instance[\"example\"][\"id\"],\n    location=azurerm_resource_group[\"example\"][\"location\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Sql.ManagedDatabase(\"example\", new Azure.Sql.ManagedDatabaseArgs\n        {\n            SqlManagedInstanceId = azurerm_sql_managed_instance.Example.Id,\n            Location = azurerm_resource_group.Example.Location,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\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 := sql.NewManagedDatabase(ctx, \"example\", \u0026sql.ManagedDatabaseArgs{\n\t\t\tSqlManagedInstanceId: pulumi.Any(azurerm_sql_managed_instance.Example.Id),\n\t\t\tLocation:             pulumi.Any(azurerm_resource_group.Example.Location),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL Managed Databases can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sql/managedDatabase:ManagedDatabase example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/managedInstances/myserver/databases/mydatabase\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the SQL Managed Instance. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sqlManagedInstanceId": {
          "description": "The SQL Managed Instance ID that this Managed Database will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the SQL Managed Instance. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sqlManagedInstanceId": {
          "description": "The SQL Managed Instance ID that this Managed Database will be associated with. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "location",
        "name",
        "sqlManagedInstanceId"
      ],
      "requiredInputs": [
        "sqlManagedInstanceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ManagedDatabase resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the SQL Managed Instance. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sqlManagedInstanceId": {
            "description": "The SQL Managed Instance ID that this Managed Database will be associated with. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sql/managedInstance:ManagedInstance": {
      "description": "Manages a SQL Azure Managed Instance.\n\n\u003e **Note:** All arguments including the administrator login and password will be stored in the raw state as plain-text.\n[Read more about sensitive data in state](https://www.terraform.io/docs/state/sensitive-data.html).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNetworkSecurityGroup = new azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst allowManagementInbound = new azure.network.NetworkSecurityRule(\"allowManagementInbound\", {\n    priority: 106,\n    direction: \"Inbound\",\n    access: \"Allow\",\n    protocol: \"Tcp\",\n    sourcePortRange: \"*\",\n    destinationPortRanges: [\n        \"9000\",\n        \"9003\",\n        \"1438\",\n        \"1440\",\n        \"1452\",\n    ],\n    sourceAddressPrefix: \"*\",\n    destinationAddressPrefix: \"*\",\n    resourceGroupName: exampleResourceGroup.name,\n    networkSecurityGroupName: exampleNetworkSecurityGroup.name,\n});\nconst allowMisubnetInbound = new azure.network.NetworkSecurityRule(\"allowMisubnetInbound\", {\n    priority: 200,\n    direction: \"Inbound\",\n    access: \"Allow\",\n    protocol: \"*\",\n    sourcePortRange: \"*\",\n    destinationPortRange: \"*\",\n    sourceAddressPrefix: \"10.0.0.0/24\",\n    destinationAddressPrefix: \"*\",\n    resourceGroupName: exampleResourceGroup.name,\n    networkSecurityGroupName: exampleNetworkSecurityGroup.name,\n});\nconst allowHealthProbeInbound = new azure.network.NetworkSecurityRule(\"allowHealthProbeInbound\", {\n    priority: 300,\n    direction: \"Inbound\",\n    access: \"Allow\",\n    protocol: \"*\",\n    sourcePortRange: \"*\",\n    destinationPortRange: \"*\",\n    sourceAddressPrefix: \"AzureLoadBalancer\",\n    destinationAddressPrefix: \"*\",\n    resourceGroupName: exampleResourceGroup.name,\n    networkSecurityGroupName: exampleNetworkSecurityGroup.name,\n});\nconst allowTdsInbound = new azure.network.NetworkSecurityRule(\"allowTdsInbound\", {\n    priority: 1000,\n    direction: \"Inbound\",\n    access: \"Allow\",\n    protocol: \"Tcp\",\n    sourcePortRange: \"*\",\n    destinationPortRange: \"1433\",\n    sourceAddressPrefix: \"VirtualNetwork\",\n    destinationAddressPrefix: \"*\",\n    resourceGroupName: exampleResourceGroup.name,\n    networkSecurityGroupName: exampleNetworkSecurityGroup.name,\n});\nconst denyAllInbound = new azure.network.NetworkSecurityRule(\"denyAllInbound\", {\n    priority: 4096,\n    direction: \"Inbound\",\n    access: \"Deny\",\n    protocol: \"*\",\n    sourcePortRange: \"*\",\n    destinationPortRange: \"*\",\n    sourceAddressPrefix: \"*\",\n    destinationAddressPrefix: \"*\",\n    resourceGroupName: exampleResourceGroup.name,\n    networkSecurityGroupName: exampleNetworkSecurityGroup.name,\n});\nconst allowManagementOutbound = new azure.network.NetworkSecurityRule(\"allowManagementOutbound\", {\n    priority: 102,\n    direction: \"Outbound\",\n    access: \"Allow\",\n    protocol: \"Tcp\",\n    sourcePortRange: \"*\",\n    destinationPortRanges: [\n        \"80\",\n        \"443\",\n        \"12000\",\n    ],\n    sourceAddressPrefix: \"*\",\n    destinationAddressPrefix: \"*\",\n    resourceGroupName: exampleResourceGroup.name,\n    networkSecurityGroupName: exampleNetworkSecurityGroup.name,\n});\nconst allowMisubnetOutbound = new azure.network.NetworkSecurityRule(\"allowMisubnetOutbound\", {\n    priority: 200,\n    direction: \"Outbound\",\n    access: \"Allow\",\n    protocol: \"*\",\n    sourcePortRange: \"*\",\n    destinationPortRange: \"*\",\n    sourceAddressPrefix: \"10.0.0.0/24\",\n    destinationAddressPrefix: \"*\",\n    resourceGroupName: exampleResourceGroup.name,\n    networkSecurityGroupName: exampleNetworkSecurityGroup.name,\n});\nconst denyAllOutbound = new azure.network.NetworkSecurityRule(\"denyAllOutbound\", {\n    priority: 4096,\n    direction: \"Outbound\",\n    access: \"Deny\",\n    protocol: \"*\",\n    sourcePortRange: \"*\",\n    destinationPortRange: \"*\",\n    sourceAddressPrefix: \"*\",\n    destinationAddressPrefix: \"*\",\n    resourceGroupName: exampleResourceGroup.name,\n    networkSecurityGroupName: exampleNetworkSecurityGroup.name,\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    resourceGroupName: exampleResourceGroup.name,\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefix: \"10.0.0.0/24\",\n    delegations: [{\n        name: \"managedinstancedelegation\",\n        serviceDelegation: {\n            name: \"Microsoft.Sql/managedInstances\",\n            actions: [\n                \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n                \"Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action\",\n                \"Microsoft.Network/virtualNetworks/subnets/unprepareNetworkPolicies/action\",\n            ],\n        },\n    }],\n});\nconst exampleSubnetNetworkSecurityGroupAssociation = new azure.network.SubnetNetworkSecurityGroupAssociation(\"exampleSubnetNetworkSecurityGroupAssociation\", {\n    subnetId: exampleSubnet.id,\n    networkSecurityGroupId: exampleNetworkSecurityGroup.id,\n});\nconst exampleRouteTable = new azure.network.RouteTable(\"exampleRouteTable\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    disableBgpRoutePropagation: false,\n}, {\n    dependsOn: [exampleSubnet],\n});\nconst exampleSubnetRouteTableAssociation = new azure.network.SubnetRouteTableAssociation(\"exampleSubnetRouteTableAssociation\", {\n    subnetId: exampleSubnet.id,\n    routeTableId: exampleRouteTable.id,\n});\nconst exampleManagedInstance = new azure.sql.ManagedInstance(\"exampleManagedInstance\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    administratorLogin: \"mradministrator\",\n    administratorLoginPassword: \"thisIsDog11\",\n    licenseType: \"BasePrice\",\n    subnetId: exampleSubnet.id,\n    skuName: \"GP_Gen5\",\n    vcores: 4,\n    storageSizeInGb: 32,\n}, {\n    dependsOn: [\n        exampleSubnetNetworkSecurityGroupAssociation,\n        exampleSubnetRouteTableAssociation,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_network_security_group = azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nallow_management_inbound = azure.network.NetworkSecurityRule(\"allowManagementInbound\",\n    priority=106,\n    direction=\"Inbound\",\n    access=\"Allow\",\n    protocol=\"Tcp\",\n    source_port_range=\"*\",\n    destination_port_ranges=[\n        \"9000\",\n        \"9003\",\n        \"1438\",\n        \"1440\",\n        \"1452\",\n    ],\n    source_address_prefix=\"*\",\n    destination_address_prefix=\"*\",\n    resource_group_name=example_resource_group.name,\n    network_security_group_name=example_network_security_group.name)\nallow_misubnet_inbound = azure.network.NetworkSecurityRule(\"allowMisubnetInbound\",\n    priority=200,\n    direction=\"Inbound\",\n    access=\"Allow\",\n    protocol=\"*\",\n    source_port_range=\"*\",\n    destination_port_range=\"*\",\n    source_address_prefix=\"10.0.0.0/24\",\n    destination_address_prefix=\"*\",\n    resource_group_name=example_resource_group.name,\n    network_security_group_name=example_network_security_group.name)\nallow_health_probe_inbound = azure.network.NetworkSecurityRule(\"allowHealthProbeInbound\",\n    priority=300,\n    direction=\"Inbound\",\n    access=\"Allow\",\n    protocol=\"*\",\n    source_port_range=\"*\",\n    destination_port_range=\"*\",\n    source_address_prefix=\"AzureLoadBalancer\",\n    destination_address_prefix=\"*\",\n    resource_group_name=example_resource_group.name,\n    network_security_group_name=example_network_security_group.name)\nallow_tds_inbound = azure.network.NetworkSecurityRule(\"allowTdsInbound\",\n    priority=1000,\n    direction=\"Inbound\",\n    access=\"Allow\",\n    protocol=\"Tcp\",\n    source_port_range=\"*\",\n    destination_port_range=\"1433\",\n    source_address_prefix=\"VirtualNetwork\",\n    destination_address_prefix=\"*\",\n    resource_group_name=example_resource_group.name,\n    network_security_group_name=example_network_security_group.name)\ndeny_all_inbound = azure.network.NetworkSecurityRule(\"denyAllInbound\",\n    priority=4096,\n    direction=\"Inbound\",\n    access=\"Deny\",\n    protocol=\"*\",\n    source_port_range=\"*\",\n    destination_port_range=\"*\",\n    source_address_prefix=\"*\",\n    destination_address_prefix=\"*\",\n    resource_group_name=example_resource_group.name,\n    network_security_group_name=example_network_security_group.name)\nallow_management_outbound = azure.network.NetworkSecurityRule(\"allowManagementOutbound\",\n    priority=102,\n    direction=\"Outbound\",\n    access=\"Allow\",\n    protocol=\"Tcp\",\n    source_port_range=\"*\",\n    destination_port_ranges=[\n        \"80\",\n        \"443\",\n        \"12000\",\n    ],\n    source_address_prefix=\"*\",\n    destination_address_prefix=\"*\",\n    resource_group_name=example_resource_group.name,\n    network_security_group_name=example_network_security_group.name)\nallow_misubnet_outbound = azure.network.NetworkSecurityRule(\"allowMisubnetOutbound\",\n    priority=200,\n    direction=\"Outbound\",\n    access=\"Allow\",\n    protocol=\"*\",\n    source_port_range=\"*\",\n    destination_port_range=\"*\",\n    source_address_prefix=\"10.0.0.0/24\",\n    destination_address_prefix=\"*\",\n    resource_group_name=example_resource_group.name,\n    network_security_group_name=example_network_security_group.name)\ndeny_all_outbound = azure.network.NetworkSecurityRule(\"denyAllOutbound\",\n    priority=4096,\n    direction=\"Outbound\",\n    access=\"Deny\",\n    protocol=\"*\",\n    source_port_range=\"*\",\n    destination_port_range=\"*\",\n    source_address_prefix=\"*\",\n    destination_address_prefix=\"*\",\n    resource_group_name=example_resource_group.name,\n    network_security_group_name=example_network_security_group.name)\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    resource_group_name=example_resource_group.name,\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefix=\"10.0.0.0/24\",\n    delegations=[azure.network.SubnetDelegationArgs(\n        name=\"managedinstancedelegation\",\n        service_delegation=azure.network.SubnetDelegationServiceDelegationArgs(\n            name=\"Microsoft.Sql/managedInstances\",\n            actions=[\n                \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n                \"Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action\",\n                \"Microsoft.Network/virtualNetworks/subnets/unprepareNetworkPolicies/action\",\n            ],\n        ),\n    )])\nexample_subnet_network_security_group_association = azure.network.SubnetNetworkSecurityGroupAssociation(\"exampleSubnetNetworkSecurityGroupAssociation\",\n    subnet_id=example_subnet.id,\n    network_security_group_id=example_network_security_group.id)\nexample_route_table = azure.network.RouteTable(\"exampleRouteTable\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    disable_bgp_route_propagation=False,\n    opts=pulumi.ResourceOptions(depends_on=[example_subnet]))\nexample_subnet_route_table_association = azure.network.SubnetRouteTableAssociation(\"exampleSubnetRouteTableAssociation\",\n    subnet_id=example_subnet.id,\n    route_table_id=example_route_table.id)\nexample_managed_instance = azure.sql.ManagedInstance(\"exampleManagedInstance\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    administrator_login=\"mradministrator\",\n    administrator_login_password=\"thisIsDog11\",\n    license_type=\"BasePrice\",\n    subnet_id=example_subnet.id,\n    sku_name=\"GP_Gen5\",\n    vcores=4,\n    storage_size_in_gb=32,\n    opts=pulumi.ResourceOptions(depends_on=[\n            example_subnet_network_security_group_association,\n            example_subnet_route_table_association,\n        ]))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleNetworkSecurityGroup = new Azure.Network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", new Azure.Network.NetworkSecurityGroupArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var allowManagementInbound = new Azure.Network.NetworkSecurityRule(\"allowManagementInbound\", new Azure.Network.NetworkSecurityRuleArgs\n        {\n            Priority = 106,\n            Direction = \"Inbound\",\n            Access = \"Allow\",\n            Protocol = \"Tcp\",\n            SourcePortRange = \"*\",\n            DestinationPortRanges = \n            {\n                \"9000\",\n                \"9003\",\n                \"1438\",\n                \"1440\",\n                \"1452\",\n            },\n            SourceAddressPrefix = \"*\",\n            DestinationAddressPrefix = \"*\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            NetworkSecurityGroupName = exampleNetworkSecurityGroup.Name,\n        });\n        var allowMisubnetInbound = new Azure.Network.NetworkSecurityRule(\"allowMisubnetInbound\", new Azure.Network.NetworkSecurityRuleArgs\n        {\n            Priority = 200,\n            Direction = \"Inbound\",\n            Access = \"Allow\",\n            Protocol = \"*\",\n            SourcePortRange = \"*\",\n            DestinationPortRange = \"*\",\n            SourceAddressPrefix = \"10.0.0.0/24\",\n            DestinationAddressPrefix = \"*\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            NetworkSecurityGroupName = exampleNetworkSecurityGroup.Name,\n        });\n        var allowHealthProbeInbound = new Azure.Network.NetworkSecurityRule(\"allowHealthProbeInbound\", new Azure.Network.NetworkSecurityRuleArgs\n        {\n            Priority = 300,\n            Direction = \"Inbound\",\n            Access = \"Allow\",\n            Protocol = \"*\",\n            SourcePortRange = \"*\",\n            DestinationPortRange = \"*\",\n            SourceAddressPrefix = \"AzureLoadBalancer\",\n            DestinationAddressPrefix = \"*\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            NetworkSecurityGroupName = exampleNetworkSecurityGroup.Name,\n        });\n        var allowTdsInbound = new Azure.Network.NetworkSecurityRule(\"allowTdsInbound\", new Azure.Network.NetworkSecurityRuleArgs\n        {\n            Priority = 1000,\n            Direction = \"Inbound\",\n            Access = \"Allow\",\n            Protocol = \"Tcp\",\n            SourcePortRange = \"*\",\n            DestinationPortRange = \"1433\",\n            SourceAddressPrefix = \"VirtualNetwork\",\n            DestinationAddressPrefix = \"*\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            NetworkSecurityGroupName = exampleNetworkSecurityGroup.Name,\n        });\n        var denyAllInbound = new Azure.Network.NetworkSecurityRule(\"denyAllInbound\", new Azure.Network.NetworkSecurityRuleArgs\n        {\n            Priority = 4096,\n            Direction = \"Inbound\",\n            Access = \"Deny\",\n            Protocol = \"*\",\n            SourcePortRange = \"*\",\n            DestinationPortRange = \"*\",\n            SourceAddressPrefix = \"*\",\n            DestinationAddressPrefix = \"*\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            NetworkSecurityGroupName = exampleNetworkSecurityGroup.Name,\n        });\n        var allowManagementOutbound = new Azure.Network.NetworkSecurityRule(\"allowManagementOutbound\", new Azure.Network.NetworkSecurityRuleArgs\n        {\n            Priority = 102,\n            Direction = \"Outbound\",\n            Access = \"Allow\",\n            Protocol = \"Tcp\",\n            SourcePortRange = \"*\",\n            DestinationPortRanges = \n            {\n                \"80\",\n                \"443\",\n                \"12000\",\n            },\n            SourceAddressPrefix = \"*\",\n            DestinationAddressPrefix = \"*\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            NetworkSecurityGroupName = exampleNetworkSecurityGroup.Name,\n        });\n        var allowMisubnetOutbound = new Azure.Network.NetworkSecurityRule(\"allowMisubnetOutbound\", new Azure.Network.NetworkSecurityRuleArgs\n        {\n            Priority = 200,\n            Direction = \"Outbound\",\n            Access = \"Allow\",\n            Protocol = \"*\",\n            SourcePortRange = \"*\",\n            DestinationPortRange = \"*\",\n            SourceAddressPrefix = \"10.0.0.0/24\",\n            DestinationAddressPrefix = \"*\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            NetworkSecurityGroupName = exampleNetworkSecurityGroup.Name,\n        });\n        var denyAllOutbound = new Azure.Network.NetworkSecurityRule(\"denyAllOutbound\", new Azure.Network.NetworkSecurityRuleArgs\n        {\n            Priority = 4096,\n            Direction = \"Outbound\",\n            Access = \"Deny\",\n            Protocol = \"*\",\n            SourcePortRange = \"*\",\n            DestinationPortRange = \"*\",\n            SourceAddressPrefix = \"*\",\n            DestinationAddressPrefix = \"*\",\n            ResourceGroupName = exampleResourceGroup.Name,\n            NetworkSecurityGroupName = exampleNetworkSecurityGroup.Name,\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefix = \"10.0.0.0/24\",\n            Delegations = \n            {\n                new Azure.Network.Inputs.SubnetDelegationArgs\n                {\n                    Name = \"managedinstancedelegation\",\n                    ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs\n                    {\n                        Name = \"Microsoft.Sql/managedInstances\",\n                        Actions = \n                        {\n                            \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n                            \"Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action\",\n                            \"Microsoft.Network/virtualNetworks/subnets/unprepareNetworkPolicies/action\",\n                        },\n                    },\n                },\n            },\n        });\n        var exampleSubnetNetworkSecurityGroupAssociation = new Azure.Network.SubnetNetworkSecurityGroupAssociation(\"exampleSubnetNetworkSecurityGroupAssociation\", new Azure.Network.SubnetNetworkSecurityGroupAssociationArgs\n        {\n            SubnetId = exampleSubnet.Id,\n            NetworkSecurityGroupId = exampleNetworkSecurityGroup.Id,\n        });\n        var exampleRouteTable = new Azure.Network.RouteTable(\"exampleRouteTable\", new Azure.Network.RouteTableArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            DisableBgpRoutePropagation = false,\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                exampleSubnet,\n            },\n        });\n        var exampleSubnetRouteTableAssociation = new Azure.Network.SubnetRouteTableAssociation(\"exampleSubnetRouteTableAssociation\", new Azure.Network.SubnetRouteTableAssociationArgs\n        {\n            SubnetId = exampleSubnet.Id,\n            RouteTableId = exampleRouteTable.Id,\n        });\n        var exampleManagedInstance = new Azure.Sql.ManagedInstance(\"exampleManagedInstance\", new Azure.Sql.ManagedInstanceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AdministratorLogin = \"mradministrator\",\n            AdministratorLoginPassword = \"thisIsDog11\",\n            LicenseType = \"BasePrice\",\n            SubnetId = exampleSubnet.Id,\n            SkuName = \"GP_Gen5\",\n            Vcores = 4,\n            StorageSizeInGb = 32,\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                exampleSubnetNetworkSecurityGroupAssociation,\n                exampleSubnetRouteTableAssociation,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkSecurityGroup, err := network.NewNetworkSecurityGroup(ctx, \"exampleNetworkSecurityGroup\", \u0026network.NetworkSecurityGroupArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNetworkSecurityRule(ctx, \"allowManagementInbound\", \u0026network.NetworkSecurityRuleArgs{\n\t\t\tPriority:        pulumi.Int(106),\n\t\t\tDirection:       pulumi.String(\"Inbound\"),\n\t\t\tAccess:          pulumi.String(\"Allow\"),\n\t\t\tProtocol:        pulumi.String(\"Tcp\"),\n\t\t\tSourcePortRange: pulumi.String(\"*\"),\n\t\t\tDestinationPortRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"9000\"),\n\t\t\t\tpulumi.String(\"9003\"),\n\t\t\t\tpulumi.String(\"1438\"),\n\t\t\t\tpulumi.String(\"1440\"),\n\t\t\t\tpulumi.String(\"1452\"),\n\t\t\t},\n\t\t\tSourceAddressPrefix:      pulumi.String(\"*\"),\n\t\t\tDestinationAddressPrefix: pulumi.String(\"*\"),\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tNetworkSecurityGroupName: exampleNetworkSecurityGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNetworkSecurityRule(ctx, \"allowMisubnetInbound\", \u0026network.NetworkSecurityRuleArgs{\n\t\t\tPriority:                 pulumi.Int(200),\n\t\t\tDirection:                pulumi.String(\"Inbound\"),\n\t\t\tAccess:                   pulumi.String(\"Allow\"),\n\t\t\tProtocol:                 pulumi.String(\"*\"),\n\t\t\tSourcePortRange:          pulumi.String(\"*\"),\n\t\t\tDestinationPortRange:     pulumi.String(\"*\"),\n\t\t\tSourceAddressPrefix:      pulumi.String(\"10.0.0.0/24\"),\n\t\t\tDestinationAddressPrefix: pulumi.String(\"*\"),\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tNetworkSecurityGroupName: exampleNetworkSecurityGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNetworkSecurityRule(ctx, \"allowHealthProbeInbound\", \u0026network.NetworkSecurityRuleArgs{\n\t\t\tPriority:                 pulumi.Int(300),\n\t\t\tDirection:                pulumi.String(\"Inbound\"),\n\t\t\tAccess:                   pulumi.String(\"Allow\"),\n\t\t\tProtocol:                 pulumi.String(\"*\"),\n\t\t\tSourcePortRange:          pulumi.String(\"*\"),\n\t\t\tDestinationPortRange:     pulumi.String(\"*\"),\n\t\t\tSourceAddressPrefix:      pulumi.String(\"AzureLoadBalancer\"),\n\t\t\tDestinationAddressPrefix: pulumi.String(\"*\"),\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tNetworkSecurityGroupName: exampleNetworkSecurityGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNetworkSecurityRule(ctx, \"allowTdsInbound\", \u0026network.NetworkSecurityRuleArgs{\n\t\t\tPriority:                 pulumi.Int(1000),\n\t\t\tDirection:                pulumi.String(\"Inbound\"),\n\t\t\tAccess:                   pulumi.String(\"Allow\"),\n\t\t\tProtocol:                 pulumi.String(\"Tcp\"),\n\t\t\tSourcePortRange:          pulumi.String(\"*\"),\n\t\t\tDestinationPortRange:     pulumi.String(\"1433\"),\n\t\t\tSourceAddressPrefix:      pulumi.String(\"VirtualNetwork\"),\n\t\t\tDestinationAddressPrefix: pulumi.String(\"*\"),\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tNetworkSecurityGroupName: exampleNetworkSecurityGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNetworkSecurityRule(ctx, \"denyAllInbound\", \u0026network.NetworkSecurityRuleArgs{\n\t\t\tPriority:                 pulumi.Int(4096),\n\t\t\tDirection:                pulumi.String(\"Inbound\"),\n\t\t\tAccess:                   pulumi.String(\"Deny\"),\n\t\t\tProtocol:                 pulumi.String(\"*\"),\n\t\t\tSourcePortRange:          pulumi.String(\"*\"),\n\t\t\tDestinationPortRange:     pulumi.String(\"*\"),\n\t\t\tSourceAddressPrefix:      pulumi.String(\"*\"),\n\t\t\tDestinationAddressPrefix: pulumi.String(\"*\"),\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tNetworkSecurityGroupName: exampleNetworkSecurityGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNetworkSecurityRule(ctx, \"allowManagementOutbound\", \u0026network.NetworkSecurityRuleArgs{\n\t\t\tPriority:        pulumi.Int(102),\n\t\t\tDirection:       pulumi.String(\"Outbound\"),\n\t\t\tAccess:          pulumi.String(\"Allow\"),\n\t\t\tProtocol:        pulumi.String(\"Tcp\"),\n\t\t\tSourcePortRange: pulumi.String(\"*\"),\n\t\t\tDestinationPortRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"80\"),\n\t\t\t\tpulumi.String(\"443\"),\n\t\t\t\tpulumi.String(\"12000\"),\n\t\t\t},\n\t\t\tSourceAddressPrefix:      pulumi.String(\"*\"),\n\t\t\tDestinationAddressPrefix: pulumi.String(\"*\"),\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tNetworkSecurityGroupName: exampleNetworkSecurityGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNetworkSecurityRule(ctx, \"allowMisubnetOutbound\", \u0026network.NetworkSecurityRuleArgs{\n\t\t\tPriority:                 pulumi.Int(200),\n\t\t\tDirection:                pulumi.String(\"Outbound\"),\n\t\t\tAccess:                   pulumi.String(\"Allow\"),\n\t\t\tProtocol:                 pulumi.String(\"*\"),\n\t\t\tSourcePortRange:          pulumi.String(\"*\"),\n\t\t\tDestinationPortRange:     pulumi.String(\"*\"),\n\t\t\tSourceAddressPrefix:      pulumi.String(\"10.0.0.0/24\"),\n\t\t\tDestinationAddressPrefix: pulumi.String(\"*\"),\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tNetworkSecurityGroupName: exampleNetworkSecurityGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNetworkSecurityRule(ctx, \"denyAllOutbound\", \u0026network.NetworkSecurityRuleArgs{\n\t\t\tPriority:                 pulumi.Int(4096),\n\t\t\tDirection:                pulumi.String(\"Outbound\"),\n\t\t\tAccess:                   pulumi.String(\"Deny\"),\n\t\t\tProtocol:                 pulumi.String(\"*\"),\n\t\t\tSourcePortRange:          pulumi.String(\"*\"),\n\t\t\tDestinationPortRange:     pulumi.String(\"*\"),\n\t\t\tSourceAddressPrefix:      pulumi.String(\"*\"),\n\t\t\tDestinationAddressPrefix: pulumi.String(\"*\"),\n\t\t\tResourceGroupName:        exampleResourceGroup.Name,\n\t\t\tNetworkSecurityGroupName: exampleNetworkSecurityGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefix:      pulumi.String(\"10.0.0.0/24\"),\n\t\t\tDelegations: network.SubnetDelegationArray{\n\t\t\t\t\u0026network.SubnetDelegationArgs{\n\t\t\t\t\tName: pulumi.String(\"managedinstancedelegation\"),\n\t\t\t\t\tServiceDelegation: \u0026network.SubnetDelegationServiceDelegationArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Microsoft.Sql/managedInstances\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/join/action\"),\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action\"),\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/unprepareNetworkPolicies/action\"),\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\texampleSubnetNetworkSecurityGroupAssociation, err := network.NewSubnetNetworkSecurityGroupAssociation(ctx, \"exampleSubnetNetworkSecurityGroupAssociation\", \u0026network.SubnetNetworkSecurityGroupAssociationArgs{\n\t\t\tSubnetId:               exampleSubnet.ID(),\n\t\t\tNetworkSecurityGroupId: exampleNetworkSecurityGroup.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRouteTable, err := network.NewRouteTable(ctx, \"exampleRouteTable\", \u0026network.RouteTableArgs{\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tDisableBgpRoutePropagation: pulumi.Bool(false),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleSubnet,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnetRouteTableAssociation, err := network.NewSubnetRouteTableAssociation(ctx, \"exampleSubnetRouteTableAssociation\", \u0026network.SubnetRouteTableAssociationArgs{\n\t\t\tSubnetId:     exampleSubnet.ID(),\n\t\t\tRouteTableId: exampleRouteTable.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewManagedInstance(ctx, \"exampleManagedInstance\", \u0026sql.ManagedInstanceArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tAdministratorLogin:         pulumi.String(\"mradministrator\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"thisIsDog11\"),\n\t\t\tLicenseType:                pulumi.String(\"BasePrice\"),\n\t\t\tSubnetId:                   exampleSubnet.ID(),\n\t\t\tSkuName:                    pulumi.String(\"GP_Gen5\"),\n\t\t\tVcores:                     pulumi.Int(4),\n\t\t\tStorageSizeInGb:            pulumi.Int(32),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleSubnetNetworkSecurityGroupAssociation,\n\t\t\texampleSubnetRouteTableAssociation,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL Servers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sql/managedInstance:ManagedInstance example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/managedInstances/myserver\n```\n\n ",
      "inputProperties": {
        "administratorLogin": {
          "description": "The administrator login name for the new server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "administratorLoginPassword": {
          "description": "The password associated with the `administrator_login` user. Needs to comply with Azure's [Password Policy](https://msdn.microsoft.com/library/ms161959.aspx)\n",
          "type": "string"
        },
        "collation": {
          "description": "Specifies how the SQL Managed Instance will be collated. Default value is `SQL_Latin1_General_CP1_CI_AS`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "licenseType": {
          "description": "What type of license the Managed Instance will use. Valid values include can be `PriceIncluded` or `BasePrice`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "minimumTlsVersion": {
          "description": "The Minimum TLS Version. Default value is `1.2` Valid values include `1.0`, `1.1`, `1.2`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the SQL Managed Instance. This needs to be globally unique within Azure.\n",
          "type": "string"
        },
        "proxyOverride": {
          "description": "Specifies how the SQL Managed Instance will be accessed. Default value is `Default`. Valid values include `Default`, `Proxy`, and `Redirect`.\n",
          "type": "string"
        },
        "publicDataEndpointEnabled": {
          "description": "Is the public data endpoint enabled? Default value is `false`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the SQL Server.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for the SQL Managed Instance. Valid values include `GP_Gen4`, `GP_Gen5`, `BC_Gen4`, `BC_Gen5`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageSizeInGb": {
          "description": "Maximum storage space for your instance. It should be a multiple of 32GB.\n",
          "type": "integer"
        },
        "subnetId": {
          "description": "The subnet resource id that the SQL Managed Instance will be associated with.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "timezoneId": {
          "description": "The TimeZone ID that the SQL Managed Instance will be operating in. Default value is `UTC`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "vcores": {
          "description": "Number of cores that should be assigned to your instance. Values can be `8`, `16`, or `24` if `sku_name` is `GP_Gen4`, or `8`, `16`, `24`, `32`, or `40` if `sku_name` is `GP_Gen5`.\n",
          "type": "integer"
        }
      },
      "properties": {
        "administratorLogin": {
          "description": "The administrator login name for the new server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "administratorLoginPassword": {
          "description": "The password associated with the `administrator_login` user. Needs to comply with Azure's [Password Policy](https://msdn.microsoft.com/library/ms161959.aspx)\n",
          "type": "string"
        },
        "collation": {
          "description": "Specifies how the SQL Managed Instance will be collated. Default value is `SQL_Latin1_General_CP1_CI_AS`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "fqdn": {
          "description": "The fully qualified domain name of the Azure Managed SQL Instance\n",
          "type": "string"
        },
        "licenseType": {
          "description": "What type of license the Managed Instance will use. Valid values include can be `PriceIncluded` or `BasePrice`.\n",
          "type": "string"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "minimumTlsVersion": {
          "description": "The Minimum TLS Version. Default value is `1.2` Valid values include `1.0`, `1.1`, `1.2`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the SQL Managed Instance. This needs to be globally unique within Azure.\n",
          "type": "string"
        },
        "proxyOverride": {
          "description": "Specifies how the SQL Managed Instance will be accessed. Default value is `Default`. Valid values include `Default`, `Proxy`, and `Redirect`.\n",
          "type": "string"
        },
        "publicDataEndpointEnabled": {
          "description": "Is the public data endpoint enabled? Default value is `false`.\n",
          "type": "boolean"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the SQL Server.\n",
          "type": "string"
        },
        "skuName": {
          "description": "Specifies the SKU Name for the SQL Managed Instance. Valid values include `GP_Gen4`, `GP_Gen5`, `BC_Gen4`, `BC_Gen5`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageSizeInGb": {
          "description": "Maximum storage space for your instance. It should be a multiple of 32GB.\n",
          "type": "integer"
        },
        "subnetId": {
          "description": "The subnet resource id that the SQL Managed Instance will be associated with.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "timezoneId": {
          "description": "The TimeZone ID that the SQL Managed Instance will be operating in. Default value is `UTC`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "vcores": {
          "description": "Number of cores that should be assigned to your instance. Values can be `8`, `16`, or `24` if `sku_name` is `GP_Gen4`, or `8`, `16`, `24`, `32`, or `40` if `sku_name` is `GP_Gen5`.\n",
          "type": "integer"
        }
      },
      "required": [
        "administratorLogin",
        "administratorLoginPassword",
        "fqdn",
        "licenseType",
        "location",
        "name",
        "resourceGroupName",
        "skuName",
        "storageSizeInGb",
        "subnetId",
        "vcores"
      ],
      "requiredInputs": [
        "administratorLogin",
        "administratorLoginPassword",
        "licenseType",
        "resourceGroupName",
        "skuName",
        "storageSizeInGb",
        "subnetId",
        "vcores"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ManagedInstance resources.\n",
        "properties": {
          "administratorLogin": {
            "description": "The administrator login name for the new server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "administratorLoginPassword": {
            "description": "The password associated with the `administrator_login` user. Needs to comply with Azure's [Password Policy](https://msdn.microsoft.com/library/ms161959.aspx)\n",
            "type": "string"
          },
          "collation": {
            "description": "Specifies how the SQL Managed Instance will be collated. Default value is `SQL_Latin1_General_CP1_CI_AS`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "fqdn": {
            "description": "The fully qualified domain name of the Azure Managed SQL Instance\n",
            "type": "string"
          },
          "licenseType": {
            "description": "What type of license the Managed Instance will use. Valid values include can be `PriceIncluded` or `BasePrice`.\n",
            "type": "string"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "minimumTlsVersion": {
            "description": "The Minimum TLS Version. Default value is `1.2` Valid values include `1.0`, `1.1`, `1.2`.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the SQL Managed Instance. This needs to be globally unique within Azure.\n",
            "type": "string"
          },
          "proxyOverride": {
            "description": "Specifies how the SQL Managed Instance will be accessed. Default value is `Default`. Valid values include `Default`, `Proxy`, and `Redirect`.\n",
            "type": "string"
          },
          "publicDataEndpointEnabled": {
            "description": "Is the public data endpoint enabled? Default value is `false`.\n",
            "type": "boolean"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the SQL Server.\n",
            "type": "string"
          },
          "skuName": {
            "description": "Specifies the SKU Name for the SQL Managed Instance. Valid values include `GP_Gen4`, `GP_Gen5`, `BC_Gen4`, `BC_Gen5`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageSizeInGb": {
            "description": "Maximum storage space for your instance. It should be a multiple of 32GB.\n",
            "type": "integer"
          },
          "subnetId": {
            "description": "The subnet resource id that the SQL Managed Instance will be associated with.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "timezoneId": {
            "description": "The TimeZone ID that the SQL Managed Instance will be operating in. Default value is `UTC`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "vcores": {
            "description": "Number of cores that should be assigned to your instance. Values can be `8`, `16`, or `24` if `sku_name` is `GP_Gen4`, or `8`, `16`, `24`, `32`, or `40` if `sku_name` is `GP_Gen5`.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:sql/sqlServer:SqlServer": {
      "description": "Manages a Microsoft SQL Azure Database Server.\n\n\u003e **Note:** This resource provides usage of Microsoft SQL Azure Database server using an older `sku` based model. It is recommended going forward to use `azure.mssql.Server` resource which provides support for `vcores`.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleSqlServer = new azure.sql.SqlServer(\"exampleSqlServer\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    version: \"12.0\",\n    administratorLogin: \"mradministrator\",\n    administratorLoginPassword: \"thisIsDog11\",\n    extendedAuditingPolicy: {\n        storageEndpoint: exampleAccount.primaryBlobEndpoint,\n        storageAccountAccessKey: exampleAccount.primaryAccessKey,\n        storageAccountAccessKeyIsSecondary: true,\n        retentionInDays: 6,\n    },\n    tags: {\n        environment: \"production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_sql_server = azure.sql.SqlServer(\"exampleSqlServer\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    version=\"12.0\",\n    administrator_login=\"mradministrator\",\n    administrator_login_password=\"thisIsDog11\",\n    extended_auditing_policy=azure.sql.SqlServerExtendedAuditingPolicyArgs(\n        storage_endpoint=example_account.primary_blob_endpoint,\n        storage_account_access_key=example_account.primary_access_key,\n        storage_account_access_key_is_secondary=True,\n        retention_in_days=6,\n    ),\n    tags={\n        \"environment\": \"production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleSqlServer = new Azure.Sql.SqlServer(\"exampleSqlServer\", new Azure.Sql.SqlServerArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"mradministrator\",\n            AdministratorLoginPassword = \"thisIsDog11\",\n            ExtendedAuditingPolicy = new Azure.Sql.Inputs.SqlServerExtendedAuditingPolicyArgs\n            {\n                StorageEndpoint = exampleAccount.PrimaryBlobEndpoint,\n                StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n                StorageAccountAccessKeyIsSecondary = true,\n                RetentionInDays = 6,\n            },\n            Tags = \n            {\n                { \"environment\", \"production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewSqlServer(ctx, \"exampleSqlServer\", \u0026sql.SqlServerArgs{\n\t\t\tResourceGroupName:          exampleResourceGroup.Name,\n\t\t\tLocation:                   exampleResourceGroup.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"mradministrator\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"thisIsDog11\"),\n\t\t\tExtendedAuditingPolicy: \u0026sql.SqlServerExtendedAuditingPolicyArgs{\n\t\t\t\tStorageEndpoint:                    exampleAccount.PrimaryBlobEndpoint,\n\t\t\t\tStorageAccountAccessKey:            exampleAccount.PrimaryAccessKey,\n\t\t\t\tStorageAccountAccessKeyIsSecondary: pulumi.Bool(true),\n\t\t\t\tRetentionInDays:                    pulumi.Int(6),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL Servers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sql/sqlServer:SqlServer example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver\n```\n\n ",
      "inputProperties": {
        "administratorLogin": {
          "description": "The administrator login name for the new server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "administratorLoginPassword": {
          "description": "The password associated with the `administrator_login` user. Needs to comply with Azure's [Password Policy](https://msdn.microsoft.com/library/ms161959.aspx)\n",
          "type": "string"
        },
        "connectionPolicy": {
          "description": "The connection policy the server will use. Possible values are `Default`, `Proxy`, and `Redirect`. Defaults to `Default`.\n",
          "type": "string"
        },
        "extendedAuditingPolicy": {
          "$ref": "#/types/azure:sql/SqlServerExtendedAuditingPolicy:SqlServerExtendedAuditingPolicy",
          "deprecationMessage": "the `extended_auditing_policy` block has been moved to `azurerm_mssql_server_extended_auditing_policy` and `azurerm_mssql_database_extended_auditing_policy`. This block will be removed in version 3.0 of the provider.",
          "description": "A `extended_auditing_policy` block as defined below.\n"
        },
        "identity": {
          "$ref": "#/types/azure:sql/SqlServerIdentity:SqlServerIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Microsoft SQL Server. This needs to be globally unique within Azure.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Microsoft SQL Server.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "threatDetectionPolicy": {
          "$ref": "#/types/azure:sql/SqlServerThreatDetectionPolicy:SqlServerThreatDetectionPolicy",
          "description": "Threat detection policy configuration. The `threat_detection_policy` block supports fields documented below.\n"
        },
        "version": {
          "description": "The version for the new server. Valid values are: 2.0 (for v11 server) and 12.0 (for v12 server).\n",
          "type": "string"
        }
      },
      "properties": {
        "administratorLogin": {
          "description": "The administrator login name for the new server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "administratorLoginPassword": {
          "description": "The password associated with the `administrator_login` user. Needs to comply with Azure's [Password Policy](https://msdn.microsoft.com/library/ms161959.aspx)\n",
          "type": "string"
        },
        "connectionPolicy": {
          "description": "The connection policy the server will use. Possible values are `Default`, `Proxy`, and `Redirect`. Defaults to `Default`.\n",
          "type": "string"
        },
        "extendedAuditingPolicy": {
          "$ref": "#/types/azure:sql/SqlServerExtendedAuditingPolicy:SqlServerExtendedAuditingPolicy",
          "deprecationMessage": "the `extended_auditing_policy` block has been moved to `azurerm_mssql_server_extended_auditing_policy` and `azurerm_mssql_database_extended_auditing_policy`. This block will be removed in version 3.0 of the provider.",
          "description": "A `extended_auditing_policy` block as defined below.\n"
        },
        "fullyQualifiedDomainName": {
          "description": "The fully qualified domain name of the Azure SQL Server (e.g. myServerName.database.windows.net)\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:sql/SqlServerIdentity:SqlServerIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Microsoft SQL Server. This needs to be globally unique within Azure.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Microsoft SQL Server.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "threatDetectionPolicy": {
          "$ref": "#/types/azure:sql/SqlServerThreatDetectionPolicy:SqlServerThreatDetectionPolicy",
          "description": "Threat detection policy configuration. The `threat_detection_policy` block supports fields documented below.\n"
        },
        "version": {
          "description": "The version for the new server. Valid values are: 2.0 (for v11 server) and 12.0 (for v12 server).\n",
          "type": "string"
        }
      },
      "required": [
        "administratorLogin",
        "administratorLoginPassword",
        "extendedAuditingPolicy",
        "fullyQualifiedDomainName",
        "location",
        "name",
        "resourceGroupName",
        "threatDetectionPolicy",
        "version"
      ],
      "requiredInputs": [
        "administratorLogin",
        "administratorLoginPassword",
        "resourceGroupName",
        "version"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SqlServer resources.\n",
        "properties": {
          "administratorLogin": {
            "description": "The administrator login name for the new server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "administratorLoginPassword": {
            "description": "The password associated with the `administrator_login` user. Needs to comply with Azure's [Password Policy](https://msdn.microsoft.com/library/ms161959.aspx)\n",
            "type": "string"
          },
          "connectionPolicy": {
            "description": "The connection policy the server will use. Possible values are `Default`, `Proxy`, and `Redirect`. Defaults to `Default`.\n",
            "type": "string"
          },
          "extendedAuditingPolicy": {
            "$ref": "#/types/azure:sql/SqlServerExtendedAuditingPolicy:SqlServerExtendedAuditingPolicy",
            "deprecationMessage": "the `extended_auditing_policy` block has been moved to `azurerm_mssql_server_extended_auditing_policy` and `azurerm_mssql_database_extended_auditing_policy`. This block will be removed in version 3.0 of the provider.",
            "description": "A `extended_auditing_policy` block as defined below.\n"
          },
          "fullyQualifiedDomainName": {
            "description": "The fully qualified domain name of the Azure SQL Server (e.g. myServerName.database.windows.net)\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:sql/SqlServerIdentity:SqlServerIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Microsoft SQL Server. This needs to be globally unique within Azure.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Microsoft SQL Server.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "threatDetectionPolicy": {
            "$ref": "#/types/azure:sql/SqlServerThreatDetectionPolicy:SqlServerThreatDetectionPolicy",
            "description": "Threat detection policy configuration. The `threat_detection_policy` block supports fields documented below.\n"
          },
          "version": {
            "description": "The version for the new server. Valid values are: 2.0 (for v11 server) and 12.0 (for v12 server).\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:sql/virtualNetworkRule:VirtualNetworkRule": {
      "description": "Allows you to add, update, or remove an Azure SQL server to a subnet of a virtual network.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst vnet = new azure.network.VirtualNetwork(\"vnet\", {\n    addressSpaces: [\"10.7.29.0/29\"],\n    location: example.location,\n    resourceGroupName: example.name,\n});\nconst subnet = new azure.network.Subnet(\"subnet\", {\n    resourceGroupName: example.name,\n    virtualNetworkName: vnet.name,\n    addressPrefixes: [\"10.7.29.0/29\"],\n    serviceEndpoints: [\"Microsoft.Sql\"],\n});\nconst sqlserver = new azure.sql.SqlServer(\"sqlserver\", {\n    resourceGroupName: example.name,\n    location: example.location,\n    version: \"12.0\",\n    administratorLogin: \"4dm1n157r470r\",\n    administratorLoginPassword: \"4-v3ry-53cr37-p455w0rd\",\n});\nconst sqlvnetrule = new azure.sql.VirtualNetworkRule(\"sqlvnetrule\", {\n    resourceGroupName: example.name,\n    serverName: sqlserver.name,\n    subnetId: subnet.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\nvnet = azure.network.VirtualNetwork(\"vnet\",\n    address_spaces=[\"10.7.29.0/29\"],\n    location=example.location,\n    resource_group_name=example.name)\nsubnet = azure.network.Subnet(\"subnet\",\n    resource_group_name=example.name,\n    virtual_network_name=vnet.name,\n    address_prefixes=[\"10.7.29.0/29\"],\n    service_endpoints=[\"Microsoft.Sql\"])\nsqlserver = azure.sql.SqlServer(\"sqlserver\",\n    resource_group_name=example.name,\n    location=example.location,\n    version=\"12.0\",\n    administrator_login=\"4dm1n157r470r\",\n    administrator_login_password=\"4-v3ry-53cr37-p455w0rd\")\nsqlvnetrule = azure.sql.VirtualNetworkRule(\"sqlvnetrule\",\n    resource_group_name=example.name,\n    server_name=sqlserver.name,\n    subnet_id=subnet.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var vnet = new Azure.Network.VirtualNetwork(\"vnet\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.7.29.0/29\",\n            },\n            Location = example.Location,\n            ResourceGroupName = example.Name,\n        });\n        var subnet = new Azure.Network.Subnet(\"subnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = example.Name,\n            VirtualNetworkName = vnet.Name,\n            AddressPrefixes = \n            {\n                \"10.7.29.0/29\",\n            },\n            ServiceEndpoints = \n            {\n                \"Microsoft.Sql\",\n            },\n        });\n        var sqlserver = new Azure.Sql.SqlServer(\"sqlserver\", new Azure.Sql.SqlServerArgs\n        {\n            ResourceGroupName = example.Name,\n            Location = example.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"4dm1n157r470r\",\n            AdministratorLoginPassword = \"4-v3ry-53cr37-p455w0rd\",\n        });\n        var sqlvnetrule = new Azure.Sql.VirtualNetworkRule(\"sqlvnetrule\", new Azure.Sql.VirtualNetworkRuleArgs\n        {\n            ResourceGroupName = example.Name,\n            ServerName = sqlserver.Name,\n            SubnetId = subnet.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvnet, err := network.NewVirtualNetwork(ctx, \"vnet\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.7.29.0/29\"),\n\t\t\t},\n\t\t\tLocation:          example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet, err := network.NewSubnet(ctx, \"subnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  example.Name,\n\t\t\tVirtualNetworkName: vnet.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.7.29.0/29\"),\n\t\t\t},\n\t\t\tServiceEndpoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Microsoft.Sql\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsqlserver, err := sql.NewSqlServer(ctx, \"sqlserver\", \u0026sql.SqlServerArgs{\n\t\t\tResourceGroupName:          example.Name,\n\t\t\tLocation:                   example.Location,\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"4dm1n157r470r\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"4-v3ry-53cr37-p455w0rd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewVirtualNetworkRule(ctx, \"sqlvnetrule\", \u0026sql.VirtualNetworkRuleArgs{\n\t\t\tResourceGroupName: example.Name,\n\t\t\tServerName:        sqlserver.Name,\n\t\t\tSubnetId:          subnet.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSQL Virtual Network Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:sql/virtualNetworkRule:VirtualNetworkRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver/virtualNetworkRules/vnetrulename\n```\n\n ",
      "inputProperties": {
        "ignoreMissingVnetServiceEndpoint": {
          "description": "Create the virtual network rule before the subnet has the virtual network service endpoint enabled. The default value is false.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the SQL virtual network rule. Changing this forces a new resource to be created. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the SQL server resides. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server to which this SQL virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet that the SQL server will be connected to.\n",
          "type": "string"
        }
      },
      "properties": {
        "ignoreMissingVnetServiceEndpoint": {
          "description": "Create the virtual network rule before the subnet has the virtual network service endpoint enabled. The default value is false.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the SQL virtual network rule. Changing this forces a new resource to be created. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the SQL server resides. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serverName": {
          "description": "The name of the SQL Server to which this SQL virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet that the SQL server will be connected to.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "serverName",
        "subnetId"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "serverName",
        "subnetId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualNetworkRule resources.\n",
        "properties": {
          "ignoreMissingVnetServiceEndpoint": {
            "description": "Create the virtual network rule before the subnet has the virtual network service endpoint enabled. The default value is false.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name of the SQL virtual network rule. Changing this forces a new resource to be created. Cannot be empty and must only contain alphanumeric characters and hyphens. Cannot start with a number, and cannot start or end with a hyphen.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the SQL server resides. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serverName": {
            "description": "The name of the SQL Server to which this SQL virtual network rule will be applied to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subnetId": {
            "description": "The ID of the subnet that the SQL server will be connected to.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:stack/hciCluster:HciCluster": {
      "description": "Manages an Azure Stack HCI Cluster.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as azuread from \"@pulumi/azuread\";\n\nconst exampleApplication = azuread.getApplication({\n    name: \"example-app\",\n});\nconst current = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleHciCluster = new azure.stack.HciCluster(\"exampleHciCluster\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    clientId: exampleApplication.then(exampleApplication =\u003e exampleApplication.applicationId),\n    tenantId: current.then(current =\u003e current.tenantId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_azuread as azuread\n\nexample_application = azuread.get_application(name=\"example-app\")\ncurrent = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_hci_cluster = azure.stack.HciCluster(\"exampleHciCluster\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    client_id=example_application.application_id,\n    tenant_id=current.tenant_id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing AzureAD = Pulumi.AzureAD;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleApplication = Output.Create(AzureAD.GetApplication.InvokeAsync(new AzureAD.GetApplicationArgs\n        {\n            Name = \"example-app\",\n        }));\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleHciCluster = new Azure.Stack.HciCluster(\"exampleHciCluster\", new Azure.Stack.HciClusterArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            ClientId = exampleApplication.Apply(exampleApplication =\u003e exampleApplication.ApplicationId),\n            TenantId = current.Apply(current =\u003e current.TenantId),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/stack\"\n\t\"github.com/pulumi/pulumi-azuread/sdk/v4/go/azuread\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"example-app\"\n\t\texampleApplication, err := azuread.LookupApplication(ctx, \u0026GetApplicationArgs{\n\t\t\tName: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = stack.NewHciCluster(ctx, \"exampleHciCluster\", \u0026stack.HciClusterArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tClientId:          pulumi.String(exampleApplication.ApplicationId),\n\t\t\tTenantId:          pulumi.String(current.TenantId),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAzure Stack HCI Clusters can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:stack/hciCluster:HciCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AzureStackHCI/clusters/cluster1\n```\n\n ",
      "inputProperties": {
        "clientId": {
          "description": "The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Azure Stack HCI Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Azure Stack HCI Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Azure Stack HCI Cluster.\n",
          "type": "object"
        },
        "tenantId": {
          "description": "The Tenant ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "clientId": {
          "description": "The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Azure Stack HCI Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Azure Stack HCI Cluster should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Azure Stack HCI Cluster.\n",
          "type": "object"
        },
        "tenantId": {
          "description": "The Tenant ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "clientId",
        "location",
        "name",
        "resourceGroupName",
        "tenantId"
      ],
      "requiredInputs": [
        "clientId",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering HciCluster resources.\n",
        "properties": {
          "clientId": {
            "description": "The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Azure Stack HCI Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Azure Stack HCI Cluster should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Azure Stack HCI Cluster.\n",
            "type": "object"
          },
          "tenantId": {
            "description": "The Tenant ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/account:Account": {
      "description": "Manages an Azure Storage Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n    tags: {\n        environment: \"staging\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\",\n    tags={\n        \"environment\": \"staging\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\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\n{{% /example %}}\n{{% example %}}\n### With Network Rules\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n    serviceEndpoints: [\n        \"Microsoft.Sql\",\n        \"Microsoft.Storage\",\n    ],\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    networkRules: {\n        defaultAction: \"Deny\",\n        ipRules: [\"100.0.0.1\"],\n        virtualNetworkSubnetIds: [exampleSubnet.id],\n    },\n    tags: {\n        environment: \"staging\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"],\n    service_endpoints=[\n        \"Microsoft.Sql\",\n        \"Microsoft.Storage\",\n    ])\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    network_rules=azure.storage.AccountNetworkRulesArgs(\n        default_action=\"Deny\",\n        ip_rules=[\"100.0.0.1\"],\n        virtual_network_subnet_ids=[example_subnet.id],\n    ),\n    tags={\n        \"environment\": \"staging\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n            ServiceEndpoints = \n            {\n                \"Microsoft.Sql\",\n                \"Microsoft.Storage\",\n            },\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            NetworkRules = new Azure.Storage.Inputs.AccountNetworkRulesArgs\n            {\n                DefaultAction = \"Deny\",\n                IpRules = \n                {\n                    \"100.0.0.1\",\n                },\n                VirtualNetworkSubnetIds = \n                {\n                    exampleSubnet.Id,\n                },\n            },\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t\tServiceEndpoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Microsoft.Sql\"),\n\t\t\t\tpulumi.String(\"Microsoft.Storage\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tNetworkRules: \u0026storage.AccountNetworkRulesArgs{\n\t\t\t\tDefaultAction: pulumi.String(\"Deny\"),\n\t\t\t\tIpRules: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"100.0.0.1\"),\n\t\t\t\t},\n\t\t\t\tVirtualNetworkSubnetIds: pulumi.StringArray{\n\t\t\t\t\texampleSubnet.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStorage Accounts can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/account:Account storageAcc1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount\n```\n\n ",
      "inputProperties": {
        "accessTier": {
          "description": "Defines the access tier for `BlobStorage`, `FileStorage` and `StorageV2` accounts. Valid options are `Hot` and `Cool`, defaults to `Hot`.\n",
          "type": "string"
        },
        "accountKind": {
          "description": "Defines the Kind of account. Valid options are `BlobStorage`, `BlockBlobStorage`, `FileStorage`, `Storage` and `StorageV2`. Changing this forces a new resource to be created. Defaults to `StorageV2`.\n",
          "type": "string"
        },
        "accountReplicationType": {
          "description": "Defines the type of replication to use for this storage account. Valid options are `LRS`, `GRS`, `RAGRS`, `ZRS`, `GZRS` and `RAGZRS`. Changing this forces a new resource to be created when types `LRS`, `GRS` and `RAGRS` are changed to `ZRS`, `GZRS` or `RAGZRS` and vice versa.\n",
          "type": "string"
        },
        "accountTier": {
          "description": "Defines the Tier to use for this storage account. Valid options are `Standard` and `Premium`. For `BlockBlobStorage` and `FileStorage` accounts only `Premium` is valid. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "allowBlobPublicAccess": {
          "description": "Allow or disallow public access to all blobs or containers in the storage account. Defaults to `false`.\n",
          "type": "boolean"
        },
        "azureFilesAuthentication": {
          "$ref": "#/types/azure:storage/AccountAzureFilesAuthentication:AccountAzureFilesAuthentication",
          "description": "A `azure_files_authentication` block as defined below.\n"
        },
        "blobProperties": {
          "$ref": "#/types/azure:storage/AccountBlobProperties:AccountBlobProperties",
          "description": "A `blob_properties` block as defined below.\n"
        },
        "customDomain": {
          "$ref": "#/types/azure:storage/AccountCustomDomain:AccountCustomDomain",
          "description": "A `custom_domain` block as documented below.\n"
        },
        "enableHttpsTrafficOnly": {
          "description": "Boolean flag which forces HTTPS if enabled, see [here](https://docs.microsoft.com/en-us/azure/storage/storage-require-secure-transfer/)\nfor more information. Defaults to `true`.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:storage/AccountIdentity:AccountIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "isHnsEnabled": {
          "description": "Is Hierarchical Namespace enabled? This can be used with Azure Data Lake Storage Gen 2 ([see here for more information](https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-quickstart-create-account/)). Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "largeFileShareEnabled": {
          "description": "Is Large File Share Enabled?\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "minTlsVersion": {
          "description": "The minimum supported TLS version for the storage account. Possible values are `TLS1_0`, `TLS1_1`, and `TLS1_2`. Defaults to `TLS1_0` for new storage accounts.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the storage account. Changing this forces a new resource to be created. This must be unique across the entire Azure service, not just within the resource group.\n",
          "type": "string"
        },
        "networkRules": {
          "$ref": "#/types/azure:storage/AccountNetworkRules:AccountNetworkRules",
          "description": "A `network_rules` block as documented below.\n"
        },
        "nfsv3Enabled": {
          "description": "Is NFSv3 protocol enabled? Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        },
        "queueProperties": {
          "$ref": "#/types/azure:storage/AccountQueueProperties:AccountQueueProperties",
          "description": "A `queue_properties` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the storage account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routing": {
          "$ref": "#/types/azure:storage/AccountRouting:AccountRouting",
          "description": "A `routing` block as defined below.\n"
        },
        "shareProperties": {
          "$ref": "#/types/azure:storage/AccountShareProperties:AccountShareProperties"
        },
        "sharedAccessKeyEnabled": {
          "description": "Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is `true`.\n",
          "type": "boolean"
        },
        "staticWebsite": {
          "$ref": "#/types/azure:storage/AccountStaticWebsite:AccountStaticWebsite",
          "description": "A `static_website` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "accessTier": {
          "description": "Defines the access tier for `BlobStorage`, `FileStorage` and `StorageV2` accounts. Valid options are `Hot` and `Cool`, defaults to `Hot`.\n",
          "type": "string"
        },
        "accountKind": {
          "description": "Defines the Kind of account. Valid options are `BlobStorage`, `BlockBlobStorage`, `FileStorage`, `Storage` and `StorageV2`. Changing this forces a new resource to be created. Defaults to `StorageV2`.\n",
          "type": "string"
        },
        "accountReplicationType": {
          "description": "Defines the type of replication to use for this storage account. Valid options are `LRS`, `GRS`, `RAGRS`, `ZRS`, `GZRS` and `RAGZRS`. Changing this forces a new resource to be created when types `LRS`, `GRS` and `RAGRS` are changed to `ZRS`, `GZRS` or `RAGZRS` and vice versa.\n",
          "type": "string"
        },
        "accountTier": {
          "description": "Defines the Tier to use for this storage account. Valid options are `Standard` and `Premium`. For `BlockBlobStorage` and `FileStorage` accounts only `Premium` is valid. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "allowBlobPublicAccess": {
          "description": "Allow or disallow public access to all blobs or containers in the storage account. Defaults to `false`.\n",
          "type": "boolean"
        },
        "azureFilesAuthentication": {
          "$ref": "#/types/azure:storage/AccountAzureFilesAuthentication:AccountAzureFilesAuthentication",
          "description": "A `azure_files_authentication` block as defined below.\n"
        },
        "blobProperties": {
          "$ref": "#/types/azure:storage/AccountBlobProperties:AccountBlobProperties",
          "description": "A `blob_properties` block as defined below.\n"
        },
        "customDomain": {
          "$ref": "#/types/azure:storage/AccountCustomDomain:AccountCustomDomain",
          "description": "A `custom_domain` block as documented below.\n"
        },
        "enableHttpsTrafficOnly": {
          "description": "Boolean flag which forces HTTPS if enabled, see [here](https://docs.microsoft.com/en-us/azure/storage/storage-require-secure-transfer/)\nfor more information. Defaults to `true`.\n",
          "type": "boolean"
        },
        "identity": {
          "$ref": "#/types/azure:storage/AccountIdentity:AccountIdentity",
          "description": "A `identity` block as defined below.\n"
        },
        "isHnsEnabled": {
          "description": "Is Hierarchical Namespace enabled? This can be used with Azure Data Lake Storage Gen 2 ([see here for more information](https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-quickstart-create-account/)). Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "largeFileShareEnabled": {
          "description": "Is Large File Share Enabled?\n",
          "type": "boolean"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "minTlsVersion": {
          "description": "The minimum supported TLS version for the storage account. Possible values are `TLS1_0`, `TLS1_1`, and `TLS1_2`. Defaults to `TLS1_0` for new storage accounts.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the storage account. Changing this forces a new resource to be created. This must be unique across the entire Azure service, not just within the resource group.\n",
          "type": "string"
        },
        "networkRules": {
          "$ref": "#/types/azure:storage/AccountNetworkRules:AccountNetworkRules",
          "description": "A `network_rules` block as documented below.\n"
        },
        "nfsv3Enabled": {
          "description": "Is NFSv3 protocol enabled? Changing this forces a new resource to be created. Defaults to `false`.\n",
          "type": "boolean"
        },
        "primaryAccessKey": {
          "description": "The primary access key for the storage account.\n",
          "type": "string"
        },
        "primaryBlobConnectionString": {
          "description": "The connection string associated with the primary blob location.\n",
          "type": "string"
        },
        "primaryBlobEndpoint": {
          "description": "The endpoint URL for blob storage in the primary location.\n",
          "type": "string"
        },
        "primaryBlobHost": {
          "description": "The hostname with port if applicable for blob storage in the primary location.\n",
          "type": "string"
        },
        "primaryConnectionString": {
          "description": "The connection string associated with the primary location.\n",
          "type": "string"
        },
        "primaryDfsEndpoint": {
          "description": "The endpoint URL for DFS storage in the primary location.\n",
          "type": "string"
        },
        "primaryDfsHost": {
          "description": "The hostname with port if applicable for DFS storage in the primary location.\n",
          "type": "string"
        },
        "primaryFileEndpoint": {
          "description": "The endpoint URL for file storage in the primary location.\n",
          "type": "string"
        },
        "primaryFileHost": {
          "description": "The hostname with port if applicable for file storage in the primary location.\n",
          "type": "string"
        },
        "primaryLocation": {
          "description": "The primary location of the storage account.\n",
          "type": "string"
        },
        "primaryQueueEndpoint": {
          "description": "The endpoint URL for queue storage in the primary location.\n",
          "type": "string"
        },
        "primaryQueueHost": {
          "description": "The hostname with port if applicable for queue storage in the primary location.\n",
          "type": "string"
        },
        "primaryTableEndpoint": {
          "description": "The endpoint URL for table storage in the primary location.\n",
          "type": "string"
        },
        "primaryTableHost": {
          "description": "The hostname with port if applicable for table storage in the primary location.\n",
          "type": "string"
        },
        "primaryWebEndpoint": {
          "description": "The endpoint URL for web storage in the primary location.\n",
          "type": "string"
        },
        "primaryWebHost": {
          "description": "The hostname with port if applicable for web storage in the primary location.\n",
          "type": "string"
        },
        "queueProperties": {
          "$ref": "#/types/azure:storage/AccountQueueProperties:AccountQueueProperties",
          "description": "A `queue_properties` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the storage account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "routing": {
          "$ref": "#/types/azure:storage/AccountRouting:AccountRouting",
          "description": "A `routing` block as defined below.\n"
        },
        "secondaryAccessKey": {
          "description": "The secondary access key for the storage account.\n",
          "type": "string"
        },
        "secondaryBlobConnectionString": {
          "description": "The connection string associated with the secondary blob location.\n",
          "type": "string"
        },
        "secondaryBlobEndpoint": {
          "description": "The endpoint URL for blob storage in the secondary location.\n",
          "type": "string"
        },
        "secondaryBlobHost": {
          "description": "The hostname with port if applicable for blob storage in the secondary location.\n",
          "type": "string"
        },
        "secondaryConnectionString": {
          "description": "The connection string associated with the secondary location.\n",
          "type": "string"
        },
        "secondaryDfsEndpoint": {
          "description": "The endpoint URL for DFS storage in the secondary location.\n",
          "type": "string"
        },
        "secondaryDfsHost": {
          "description": "The hostname with port if applicable for DFS storage in the secondary location.\n",
          "type": "string"
        },
        "secondaryFileEndpoint": {
          "description": "The endpoint URL for file storage in the secondary location.\n",
          "type": "string"
        },
        "secondaryFileHost": {
          "description": "The hostname with port if applicable for file storage in the secondary location.\n",
          "type": "string"
        },
        "secondaryLocation": {
          "description": "The secondary location of the storage account.\n",
          "type": "string"
        },
        "secondaryQueueEndpoint": {
          "description": "The endpoint URL for queue storage in the secondary location.\n",
          "type": "string"
        },
        "secondaryQueueHost": {
          "description": "The hostname with port if applicable for queue storage in the secondary location.\n",
          "type": "string"
        },
        "secondaryTableEndpoint": {
          "description": "The endpoint URL for table storage in the secondary location.\n",
          "type": "string"
        },
        "secondaryTableHost": {
          "description": "The hostname with port if applicable for table storage in the secondary location.\n",
          "type": "string"
        },
        "secondaryWebEndpoint": {
          "description": "The endpoint URL for web storage in the secondary location.\n",
          "type": "string"
        },
        "secondaryWebHost": {
          "description": "The hostname with port if applicable for web storage in the secondary location.\n",
          "type": "string"
        },
        "shareProperties": {
          "$ref": "#/types/azure:storage/AccountShareProperties:AccountShareProperties"
        },
        "sharedAccessKeyEnabled": {
          "description": "Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is `true`.\n",
          "type": "boolean"
        },
        "staticWebsite": {
          "$ref": "#/types/azure:storage/AccountStaticWebsite:AccountStaticWebsite",
          "description": "A `static_website` block as defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "accessTier",
        "accountReplicationType",
        "accountTier",
        "blobProperties",
        "identity",
        "largeFileShareEnabled",
        "location",
        "name",
        "networkRules",
        "primaryAccessKey",
        "primaryBlobConnectionString",
        "primaryBlobEndpoint",
        "primaryBlobHost",
        "primaryConnectionString",
        "primaryDfsEndpoint",
        "primaryDfsHost",
        "primaryFileEndpoint",
        "primaryFileHost",
        "primaryLocation",
        "primaryQueueEndpoint",
        "primaryQueueHost",
        "primaryTableEndpoint",
        "primaryTableHost",
        "primaryWebEndpoint",
        "primaryWebHost",
        "queueProperties",
        "resourceGroupName",
        "routing",
        "secondaryAccessKey",
        "secondaryBlobConnectionString",
        "secondaryBlobEndpoint",
        "secondaryBlobHost",
        "secondaryConnectionString",
        "secondaryDfsEndpoint",
        "secondaryDfsHost",
        "secondaryFileEndpoint",
        "secondaryFileHost",
        "secondaryLocation",
        "secondaryQueueEndpoint",
        "secondaryQueueHost",
        "secondaryTableEndpoint",
        "secondaryTableHost",
        "secondaryWebEndpoint",
        "secondaryWebHost",
        "shareProperties"
      ],
      "requiredInputs": [
        "accountReplicationType",
        "accountTier",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Account resources.\n",
        "properties": {
          "accessTier": {
            "description": "Defines the access tier for `BlobStorage`, `FileStorage` and `StorageV2` accounts. Valid options are `Hot` and `Cool`, defaults to `Hot`.\n",
            "type": "string"
          },
          "accountKind": {
            "description": "Defines the Kind of account. Valid options are `BlobStorage`, `BlockBlobStorage`, `FileStorage`, `Storage` and `StorageV2`. Changing this forces a new resource to be created. Defaults to `StorageV2`.\n",
            "type": "string"
          },
          "accountReplicationType": {
            "description": "Defines the type of replication to use for this storage account. Valid options are `LRS`, `GRS`, `RAGRS`, `ZRS`, `GZRS` and `RAGZRS`. Changing this forces a new resource to be created when types `LRS`, `GRS` and `RAGRS` are changed to `ZRS`, `GZRS` or `RAGZRS` and vice versa.\n",
            "type": "string"
          },
          "accountTier": {
            "description": "Defines the Tier to use for this storage account. Valid options are `Standard` and `Premium`. For `BlockBlobStorage` and `FileStorage` accounts only `Premium` is valid. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "allowBlobPublicAccess": {
            "description": "Allow or disallow public access to all blobs or containers in the storage account. Defaults to `false`.\n",
            "type": "boolean"
          },
          "azureFilesAuthentication": {
            "$ref": "#/types/azure:storage/AccountAzureFilesAuthentication:AccountAzureFilesAuthentication",
            "description": "A `azure_files_authentication` block as defined below.\n"
          },
          "blobProperties": {
            "$ref": "#/types/azure:storage/AccountBlobProperties:AccountBlobProperties",
            "description": "A `blob_properties` block as defined below.\n"
          },
          "customDomain": {
            "$ref": "#/types/azure:storage/AccountCustomDomain:AccountCustomDomain",
            "description": "A `custom_domain` block as documented below.\n"
          },
          "enableHttpsTrafficOnly": {
            "description": "Boolean flag which forces HTTPS if enabled, see [here](https://docs.microsoft.com/en-us/azure/storage/storage-require-secure-transfer/)\nfor more information. Defaults to `true`.\n",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/types/azure:storage/AccountIdentity:AccountIdentity",
            "description": "A `identity` block as defined below.\n"
          },
          "isHnsEnabled": {
            "description": "Is Hierarchical Namespace enabled? This can be used with Azure Data Lake Storage Gen 2 ([see here for more information](https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-quickstart-create-account/)). Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "largeFileShareEnabled": {
            "description": "Is Large File Share Enabled?\n",
            "type": "boolean"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "minTlsVersion": {
            "description": "The minimum supported TLS version for the storage account. Possible values are `TLS1_0`, `TLS1_1`, and `TLS1_2`. Defaults to `TLS1_0` for new storage accounts.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the storage account. Changing this forces a new resource to be created. This must be unique across the entire Azure service, not just within the resource group.\n",
            "type": "string"
          },
          "networkRules": {
            "$ref": "#/types/azure:storage/AccountNetworkRules:AccountNetworkRules",
            "description": "A `network_rules` block as documented below.\n"
          },
          "nfsv3Enabled": {
            "description": "Is NFSv3 protocol enabled? Changing this forces a new resource to be created. Defaults to `false`.\n",
            "type": "boolean"
          },
          "primaryAccessKey": {
            "description": "The primary access key for the storage account.\n",
            "type": "string"
          },
          "primaryBlobConnectionString": {
            "description": "The connection string associated with the primary blob location.\n",
            "type": "string"
          },
          "primaryBlobEndpoint": {
            "description": "The endpoint URL for blob storage in the primary location.\n",
            "type": "string"
          },
          "primaryBlobHost": {
            "description": "The hostname with port if applicable for blob storage in the primary location.\n",
            "type": "string"
          },
          "primaryConnectionString": {
            "description": "The connection string associated with the primary location.\n",
            "type": "string"
          },
          "primaryDfsEndpoint": {
            "description": "The endpoint URL for DFS storage in the primary location.\n",
            "type": "string"
          },
          "primaryDfsHost": {
            "description": "The hostname with port if applicable for DFS storage in the primary location.\n",
            "type": "string"
          },
          "primaryFileEndpoint": {
            "description": "The endpoint URL for file storage in the primary location.\n",
            "type": "string"
          },
          "primaryFileHost": {
            "description": "The hostname with port if applicable for file storage in the primary location.\n",
            "type": "string"
          },
          "primaryLocation": {
            "description": "The primary location of the storage account.\n",
            "type": "string"
          },
          "primaryQueueEndpoint": {
            "description": "The endpoint URL for queue storage in the primary location.\n",
            "type": "string"
          },
          "primaryQueueHost": {
            "description": "The hostname with port if applicable for queue storage in the primary location.\n",
            "type": "string"
          },
          "primaryTableEndpoint": {
            "description": "The endpoint URL for table storage in the primary location.\n",
            "type": "string"
          },
          "primaryTableHost": {
            "description": "The hostname with port if applicable for table storage in the primary location.\n",
            "type": "string"
          },
          "primaryWebEndpoint": {
            "description": "The endpoint URL for web storage in the primary location.\n",
            "type": "string"
          },
          "primaryWebHost": {
            "description": "The hostname with port if applicable for web storage in the primary location.\n",
            "type": "string"
          },
          "queueProperties": {
            "$ref": "#/types/azure:storage/AccountQueueProperties:AccountQueueProperties",
            "description": "A `queue_properties` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the storage account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "routing": {
            "$ref": "#/types/azure:storage/AccountRouting:AccountRouting",
            "description": "A `routing` block as defined below.\n"
          },
          "secondaryAccessKey": {
            "description": "The secondary access key for the storage account.\n",
            "type": "string"
          },
          "secondaryBlobConnectionString": {
            "description": "The connection string associated with the secondary blob location.\n",
            "type": "string"
          },
          "secondaryBlobEndpoint": {
            "description": "The endpoint URL for blob storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryBlobHost": {
            "description": "The hostname with port if applicable for blob storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryConnectionString": {
            "description": "The connection string associated with the secondary location.\n",
            "type": "string"
          },
          "secondaryDfsEndpoint": {
            "description": "The endpoint URL for DFS storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryDfsHost": {
            "description": "The hostname with port if applicable for DFS storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryFileEndpoint": {
            "description": "The endpoint URL for file storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryFileHost": {
            "description": "The hostname with port if applicable for file storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryLocation": {
            "description": "The secondary location of the storage account.\n",
            "type": "string"
          },
          "secondaryQueueEndpoint": {
            "description": "The endpoint URL for queue storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryQueueHost": {
            "description": "The hostname with port if applicable for queue storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryTableEndpoint": {
            "description": "The endpoint URL for table storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryTableHost": {
            "description": "The hostname with port if applicable for table storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryWebEndpoint": {
            "description": "The endpoint URL for web storage in the secondary location.\n",
            "type": "string"
          },
          "secondaryWebHost": {
            "description": "The hostname with port if applicable for web storage in the secondary location.\n",
            "type": "string"
          },
          "shareProperties": {
            "$ref": "#/types/azure:storage/AccountShareProperties:AccountShareProperties"
          },
          "sharedAccessKeyEnabled": {
            "description": "Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is `true`.\n",
            "type": "boolean"
          },
          "staticWebsite": {
            "$ref": "#/types/azure:storage/AccountStaticWebsite:AccountStaticWebsite",
            "description": "A `static_website` block as defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/accountNetworkRules:AccountNetworkRules": {
      "description": "Manages network rules inside of a Azure Storage Account.\n\n\u003e **NOTE:** Network Rules can be defined either directly on the `azure.storage.Account` resource, or using the `azure.storage.AccountNetworkRules` resource - but the two cannot be used together. Spurious changes will occur if both are used against the same Storage Account.\n\n\u003e **NOTE:** Only one `azure.storage.AccountNetworkRules` can be tied to an `azure.storage.Account`. Spurious changes will occur if more than `azure.storage.AccountNetworkRules` is tied to the same `azure.storage.Account`.\n\n\u003e **NOTE:** Deleting this resource updates the storage account back to the default values it had when the storage account was created.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n    addressSpaces: [\"10.0.0.0/16\"],\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n    resourceGroupName: exampleResourceGroup.name,\n    virtualNetworkName: exampleVirtualNetwork.name,\n    addressPrefixes: [\"10.0.2.0/24\"],\n    serviceEndpoints: [\"Microsoft.Storage\"],\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n    tags: {\n        environment: \"staging\",\n    },\n});\nconst test = new azure.storage.AccountNetworkRules(\"test\", {\n    resourceGroupName: azurerm_resource_group.test.name,\n    storageAccountName: azurerm_storage_account.test.name,\n    defaultAction: \"Allow\",\n    ipRules: [\"127.0.0.1\"],\n    virtualNetworkSubnetIds: [azurerm_subnet.test.id],\n    bypasses: [\"Metrics\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n    address_spaces=[\"10.0.0.0/16\"],\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n    resource_group_name=example_resource_group.name,\n    virtual_network_name=example_virtual_network.name,\n    address_prefixes=[\"10.0.2.0/24\"],\n    service_endpoints=[\"Microsoft.Storage\"])\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\",\n    tags={\n        \"environment\": \"staging\",\n    })\ntest = azure.storage.AccountNetworkRules(\"test\",\n    resource_group_name=azurerm_resource_group[\"test\"][\"name\"],\n    storage_account_name=azurerm_storage_account[\"test\"][\"name\"],\n    default_action=\"Allow\",\n    ip_rules=[\"127.0.0.1\"],\n    virtual_network_subnet_ids=[azurerm_subnet[\"test\"][\"id\"]],\n    bypasses=[\"Metrics\"])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new Azure.Network.VirtualNetworkArgs\n        {\n            AddressSpaces = \n            {\n                \"10.0.0.0/16\",\n            },\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n        });\n        var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new Azure.Network.SubnetArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VirtualNetworkName = exampleVirtualNetwork.Name,\n            AddressPrefixes = \n            {\n                \"10.0.2.0/24\",\n            },\n            ServiceEndpoints = \n            {\n                \"Microsoft.Storage\",\n            },\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n        var test = new Azure.Storage.AccountNetworkRules(\"test\", new Azure.Storage.AccountNetworkRulesArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n            StorageAccountName = azurerm_storage_account.Test.Name,\n            DefaultAction = \"Allow\",\n            IpRules = \n            {\n                \"127.0.0.1\",\n            },\n            VirtualNetworkSubnetIds = \n            {\n                azurerm_subnet.Test.Id,\n            },\n            Bypasses = \n            {\n                \"Metrics\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", \u0026network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewSubnet(ctx, \"exampleSubnet\", \u0026network.SubnetArgs{\n\t\t\tResourceGroupName:  exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t\tServiceEndpoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Microsoft.Storage\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewAccountNetworkRules(ctx, \"test\", \u0026storage.AccountNetworkRulesArgs{\n\t\t\tResourceGroupName:  pulumi.Any(azurerm_resource_group.Test.Name),\n\t\t\tStorageAccountName: pulumi.Any(azurerm_storage_account.Test.Name),\n\t\t\tDefaultAction:      pulumi.String(\"Allow\"),\n\t\t\tIpRules: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"127.0.0.1\"),\n\t\t\t},\n\t\t\tVirtualNetworkSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.Any(azurerm_subnet.Test.Id),\n\t\t\t},\n\t\t\tBypasses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Metrics\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStorage Account Network Rules can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/accountNetworkRules:AccountNetworkRules storageAcc1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount\n```\n\n ",
      "inputProperties": {
        "bypasses": {
          "description": "Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Valid options are any combination of `Logging`, `Metrics`, `AzureServices`, or `None`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "defaultAction": {
          "description": "Specifies the default action of allow or deny when no other rules match. Valid options are `Deny` or `Allow`.\n",
          "type": "string"
        },
        "ipRules": {
          "description": "List of public IP or IP ranges in CIDR Format. Only IPV4 addresses are allowed. Private IP address ranges (as defined in [RFC 1918](https://tools.ietf.org/html/rfc1918#section-3)) are not allowed.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "privateLinkAccessRules": {
          "description": "One or More `private_link_access` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/AccountNetworkRulesPrivateLinkAccessRule:AccountNetworkRulesPrivateLinkAccessRule"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the storage account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "Specifies the name of the storage account. Changing this forces a new resource to be created. This must be unique across the entire Azure service, not just within the resource group.\n",
          "type": "string"
        },
        "virtualNetworkSubnetIds": {
          "description": "A list of virtual network subnet ids to to secure the storage account.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "properties": {
        "bypasses": {
          "description": "Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Valid options are any combination of `Logging`, `Metrics`, `AzureServices`, or `None`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "defaultAction": {
          "description": "Specifies the default action of allow or deny when no other rules match. Valid options are `Deny` or `Allow`.\n",
          "type": "string"
        },
        "ipRules": {
          "description": "List of public IP or IP ranges in CIDR Format. Only IPV4 addresses are allowed. Private IP address ranges (as defined in [RFC 1918](https://tools.ietf.org/html/rfc1918#section-3)) are not allowed.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "privateLinkAccessRules": {
          "description": "One or More `private_link_access` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/AccountNetworkRulesPrivateLinkAccessRule:AccountNetworkRulesPrivateLinkAccessRule"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the storage account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "Specifies the name of the storage account. Changing this forces a new resource to be created. This must be unique across the entire Azure service, not just within the resource group.\n",
          "type": "string"
        },
        "virtualNetworkSubnetIds": {
          "description": "A list of virtual network subnet ids to to secure the storage account.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "bypasses",
        "defaultAction",
        "ipRules",
        "resourceGroupName",
        "storageAccountName",
        "virtualNetworkSubnetIds"
      ],
      "requiredInputs": [
        "defaultAction",
        "resourceGroupName",
        "storageAccountName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering AccountNetworkRules resources.\n",
        "properties": {
          "bypasses": {
            "description": "Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Valid options are any combination of `Logging`, `Metrics`, `AzureServices`, or `None`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "defaultAction": {
            "description": "Specifies the default action of allow or deny when no other rules match. Valid options are `Deny` or `Allow`.\n",
            "type": "string"
          },
          "ipRules": {
            "description": "List of public IP or IP ranges in CIDR Format. Only IPV4 addresses are allowed. Private IP address ranges (as defined in [RFC 1918](https://tools.ietf.org/html/rfc1918#section-3)) are not allowed.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "privateLinkAccessRules": {
            "description": "One or More `private_link_access` block as defined below.\n",
            "items": {
              "$ref": "#/types/azure:storage/AccountNetworkRulesPrivateLinkAccessRule:AccountNetworkRulesPrivateLinkAccessRule"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the storage account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "Specifies the name of the storage account. Changing this forces a new resource to be created. This must be unique across the entire Azure service, not just within the resource group.\n",
            "type": "string"
          },
          "virtualNetworkSubnetIds": {
            "description": "A list of virtual network subnet ids to to secure the storage account.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/blob:Blob": {
      "description": "Manages a Blob within a Storage Container.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleBlob = new azure.storage.Blob(\"exampleBlob\", {\n    storageAccountName: exampleAccount.name,\n    storageContainerName: exampleContainer.name,\n    type: \"Block\",\n    source: new pulumi.asset.FileAsset(\"some-local-file.zip\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_blob = azure.storage.Blob(\"exampleBlob\",\n    storage_account_name=example_account.name,\n    storage_container_name=example_container.name,\n    type=\"Block\",\n    source=pulumi.FileAsset(\"some-local-file.zip\"))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleBlob = new Azure.Storage.Blob(\"exampleBlob\", new Azure.Storage.BlobArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            StorageContainerName = exampleContainer.Name,\n            Type = \"Block\",\n            Source = new FileAsset(\"some-local-file.zip\"),\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBlob(ctx, \"exampleBlob\", \u0026storage.BlobArgs{\n\t\t\tStorageAccountName:   exampleAccount.Name,\n\t\t\tStorageContainerName: exampleContainer.Name,\n\t\t\tType:                 pulumi.String(\"Block\"),\n\t\t\tSource:               pulumi.NewFileAsset(\"some-local-file.zip\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStorage Blob's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/blob:Blob blob1 https://example.blob.core.windows.net/container/blob.vhd\n```\n\n ",
      "inputProperties": {
        "accessTier": {
          "description": "The access tier of the storage blob. Possible values are `Archive`, `Cool` and `Hot`.\n",
          "type": "string"
        },
        "contentMd5": {
          "description": "The MD5 sum of the blob contents. Cannot be defined if `source_uri` is defined, or if blob type is Append or Page. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "contentType": {
          "description": "The content type of the storage blob. Cannot be defined if `source_uri` is defined. Defaults to `application/octet-stream`.\n",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of custom blob metadata.\n",
          "type": "object"
        },
        "name": {
          "description": "The name of the storage blob. Must be unique within the storage container the blob is located.\n",
          "type": "string"
        },
        "parallelism": {
          "description": "The number of workers per CPU core to run for concurrent uploads. Defaults to `8`.\n",
          "type": "integer"
        },
        "size": {
          "description": "Used only for `page` blobs to specify the size in bytes of the blob to be created. Must be a multiple of 512. Defaults to 0.\n",
          "type": "integer"
        },
        "source": {
          "$ref": "pulumi.json#/Asset",
          "description": "An absolute path to a file on the local system. This field cannot be specified for Append blobs and cannot be specified if `source_content` or `source_uri` is specified.\n"
        },
        "sourceContent": {
          "description": "The content for this blob which should be defined inline. This field can only be specified for Block blobs and cannot be specified if `source` or `source_uri` is specified.\n",
          "type": "string"
        },
        "sourceUri": {
          "description": "The URI of an existing blob, or a file in the Azure File service, to use as the source contents\nfor the blob to be created. Changing this forces a new resource to be created. This field cannot be specified for Append blobs and cannot be specified if `source` or `source_content` is specified.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "Specifies the storage account in which to create the storage container.\nChanging this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageContainerName": {
          "description": "The name of the storage container in which this blob should be created.\n",
          "type": "string"
        },
        "type": {
          "description": "The type of the storage blob to be created. Possible values are `Append`, `Block` or `Page`. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "accessTier": {
          "description": "The access tier of the storage blob. Possible values are `Archive`, `Cool` and `Hot`.\n",
          "type": "string"
        },
        "contentMd5": {
          "description": "The MD5 sum of the blob contents. Cannot be defined if `source_uri` is defined, or if blob type is Append or Page. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "contentType": {
          "description": "The content type of the storage blob. Cannot be defined if `source_uri` is defined. Defaults to `application/octet-stream`.\n",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of custom blob metadata.\n",
          "type": "object"
        },
        "name": {
          "description": "The name of the storage blob. Must be unique within the storage container the blob is located.\n",
          "type": "string"
        },
        "parallelism": {
          "description": "The number of workers per CPU core to run for concurrent uploads. Defaults to `8`.\n",
          "type": "integer"
        },
        "size": {
          "description": "Used only for `page` blobs to specify the size in bytes of the blob to be created. Must be a multiple of 512. Defaults to 0.\n",
          "type": "integer"
        },
        "source": {
          "$ref": "pulumi.json#/Asset",
          "description": "An absolute path to a file on the local system. This field cannot be specified for Append blobs and cannot be specified if `source_content` or `source_uri` is specified.\n"
        },
        "sourceContent": {
          "description": "The content for this blob which should be defined inline. This field can only be specified for Block blobs and cannot be specified if `source` or `source_uri` is specified.\n",
          "type": "string"
        },
        "sourceUri": {
          "description": "The URI of an existing blob, or a file in the Azure File service, to use as the source contents\nfor the blob to be created. Changing this forces a new resource to be created. This field cannot be specified for Append blobs and cannot be specified if `source` or `source_content` is specified.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "Specifies the storage account in which to create the storage container.\nChanging this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageContainerName": {
          "description": "The name of the storage container in which this blob should be created.\n",
          "type": "string"
        },
        "type": {
          "description": "The type of the storage blob to be created. Possible values are `Append`, `Block` or `Page`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "url": {
          "description": "The URL of the blob\n",
          "type": "string"
        }
      },
      "required": [
        "accessTier",
        "metadata",
        "name",
        "storageAccountName",
        "storageContainerName",
        "type",
        "url"
      ],
      "requiredInputs": [
        "storageAccountName",
        "storageContainerName",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Blob resources.\n",
        "properties": {
          "accessTier": {
            "description": "The access tier of the storage blob. Possible values are `Archive`, `Cool` and `Hot`.\n",
            "type": "string"
          },
          "contentMd5": {
            "description": "The MD5 sum of the blob contents. Cannot be defined if `source_uri` is defined, or if blob type is Append or Page. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "contentType": {
            "description": "The content type of the storage blob. Cannot be defined if `source_uri` is defined. Defaults to `application/octet-stream`.\n",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of custom blob metadata.\n",
            "type": "object"
          },
          "name": {
            "description": "The name of the storage blob. Must be unique within the storage container the blob is located.\n",
            "type": "string"
          },
          "parallelism": {
            "description": "The number of workers per CPU core to run for concurrent uploads. Defaults to `8`.\n",
            "type": "integer"
          },
          "size": {
            "description": "Used only for `page` blobs to specify the size in bytes of the blob to be created. Must be a multiple of 512. Defaults to 0.\n",
            "type": "integer"
          },
          "source": {
            "$ref": "pulumi.json#/Asset",
            "description": "An absolute path to a file on the local system. This field cannot be specified for Append blobs and cannot be specified if `source_content` or `source_uri` is specified.\n"
          },
          "sourceContent": {
            "description": "The content for this blob which should be defined inline. This field can only be specified for Block blobs and cannot be specified if `source` or `source_uri` is specified.\n",
            "type": "string"
          },
          "sourceUri": {
            "description": "The URI of an existing blob, or a file in the Azure File service, to use as the source contents\nfor the blob to be created. Changing this forces a new resource to be created. This field cannot be specified for Append blobs and cannot be specified if `source` or `source_content` is specified.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "Specifies the storage account in which to create the storage container.\nChanging this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageContainerName": {
            "description": "The name of the storage container in which this blob should be created.\n",
            "type": "string"
          },
          "type": {
            "description": "The type of the storage blob to be created. Possible values are `Append`, `Block` or `Page`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "url": {
            "description": "The URL of the blob\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/blobInventoryPolicy:BlobInventoryPolicy": {
      "description": "Manages a Storage Blob Inventory Policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    blobProperties: {\n        versioningEnabled: true,\n    },\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleBlobInventoryPolicy = new azure.storage.BlobInventoryPolicy(\"exampleBlobInventoryPolicy\", {\n    storageAccountId: exampleAccount.id,\n    storageContainerName: exampleContainer.name,\n    rules: [{\n        name: \"rule1\",\n        filter: {\n            blobTypes: [\"blockBlob\"],\n            includeBlobVersions: true,\n            includeSnapshots: true,\n            prefixMatches: [\"*/example\"],\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    blob_properties=azure.storage.AccountBlobPropertiesArgs(\n        versioning_enabled=True,\n    ))\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_blob_inventory_policy = azure.storage.BlobInventoryPolicy(\"exampleBlobInventoryPolicy\",\n    storage_account_id=example_account.id,\n    storage_container_name=example_container.name,\n    rules=[azure.storage.BlobInventoryPolicyRuleArgs(\n        name=\"rule1\",\n        filter=azure.storage.BlobInventoryPolicyRuleFilterArgs(\n            blob_types=[\"blockBlob\"],\n            include_blob_versions=True,\n            include_snapshots=True,\n            prefix_matches=[\"*/example\"],\n        ),\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            BlobProperties = new Azure.Storage.Inputs.AccountBlobPropertiesArgs\n            {\n                VersioningEnabled = true,\n            },\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleBlobInventoryPolicy = new Azure.Storage.BlobInventoryPolicy(\"exampleBlobInventoryPolicy\", new Azure.Storage.BlobInventoryPolicyArgs\n        {\n            StorageAccountId = exampleAccount.Id,\n            StorageContainerName = exampleContainer.Name,\n            Rules = \n            {\n                new Azure.Storage.Inputs.BlobInventoryPolicyRuleArgs\n                {\n                    Name = \"rule1\",\n                    Filter = new Azure.Storage.Inputs.BlobInventoryPolicyRuleFilterArgs\n                    {\n                        BlobTypes = \n                        {\n                            \"blockBlob\",\n                        },\n                        IncludeBlobVersions = true,\n                        IncludeSnapshots = true,\n                        PrefixMatches = \n                        {\n                            \"*/example\",\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tBlobProperties: \u0026storage.AccountBlobPropertiesArgs{\n\t\t\t\tVersioningEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBlobInventoryPolicy(ctx, \"exampleBlobInventoryPolicy\", \u0026storage.BlobInventoryPolicyArgs{\n\t\t\tStorageAccountId:     exampleAccount.ID(),\n\t\t\tStorageContainerName: exampleContainer.Name,\n\t\t\tRules: storage.BlobInventoryPolicyRuleArray{\n\t\t\t\t\u0026storage.BlobInventoryPolicyRuleArgs{\n\t\t\t\t\tName: pulumi.String(\"rule1\"),\n\t\t\t\t\tFilter: \u0026storage.BlobInventoryPolicyRuleFilterArgs{\n\t\t\t\t\t\tBlobTypes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"blockBlob\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tIncludeBlobVersions: pulumi.Bool(true),\n\t\t\t\t\t\tIncludeSnapshots:    pulumi.Bool(true),\n\t\t\t\t\t\tPrefixMatches: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"*/example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStorage Blob Inventory Policys can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/blobInventoryPolicy:BlobInventoryPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Storage/storageAccounts/storageAccount1/inventoryPolicies/inventoryPolicy1\n```\n\n ",
      "inputProperties": {
        "rules": {
          "description": "One or more `rules` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/BlobInventoryPolicyRule:BlobInventoryPolicyRule"
          },
          "type": "array"
        },
        "storageAccountId": {
          "description": "The ID of the storage account to apply this Blob Inventory Policy to. Changing this forces a new Storage Blob Inventory Policy to be created.\n",
          "type": "string"
        },
        "storageContainerName": {
          "description": "The storage container name to store the blob inventory files. Changing this forces a new Storage Blob Inventory Policy to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "rules": {
          "description": "One or more `rules` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/BlobInventoryPolicyRule:BlobInventoryPolicyRule"
          },
          "type": "array"
        },
        "storageAccountId": {
          "description": "The ID of the storage account to apply this Blob Inventory Policy to. Changing this forces a new Storage Blob Inventory Policy to be created.\n",
          "type": "string"
        },
        "storageContainerName": {
          "description": "The storage container name to store the blob inventory files. Changing this forces a new Storage Blob Inventory Policy to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "rules",
        "storageAccountId",
        "storageContainerName"
      ],
      "requiredInputs": [
        "rules",
        "storageAccountId",
        "storageContainerName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering BlobInventoryPolicy resources.\n",
        "properties": {
          "rules": {
            "description": "One or more `rules` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:storage/BlobInventoryPolicyRule:BlobInventoryPolicyRule"
            },
            "type": "array"
          },
          "storageAccountId": {
            "description": "The ID of the storage account to apply this Blob Inventory Policy to. Changing this forces a new Storage Blob Inventory Policy to be created.\n",
            "type": "string"
          },
          "storageContainerName": {
            "description": "The storage container name to store the blob inventory files. Changing this forces a new Storage Blob Inventory Policy to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/container:Container": {
      "description": "Manages a Container within an Azure Storage Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    tags: {\n        environment: \"staging\",\n    },\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    tags={\n        \"environment\": \"staging\",\n    })\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStorage Containers can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/container:Container container1 https://example.blob.core.windows.net/container\n```\n\n ",
      "inputProperties": {
        "containerAccessType": {
          "description": "The Access Level configured for this Container. Possible values are `blob`, `container` or `private`. Defaults to `private`.\n",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of MetaData for this Container. All metadata keys should be lowercase.\n",
          "type": "object"
        },
        "name": {
          "description": "The name of the Container which should be created within the Storage Account.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The name of the Storage Account where the Container should be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "containerAccessType": {
          "description": "The Access Level configured for this Container. Possible values are `blob`, `container` or `private`. Defaults to `private`.\n",
          "type": "string"
        },
        "hasImmutabilityPolicy": {
          "description": "Is there an Immutability Policy configured on this Storage Container?\n",
          "type": "boolean"
        },
        "hasLegalHold": {
          "description": "Is there a Legal Hold configured on this Storage Container?\n",
          "type": "boolean"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of MetaData for this Container. All metadata keys should be lowercase.\n",
          "type": "object"
        },
        "name": {
          "description": "The name of the Container which should be created within the Storage Account.\n",
          "type": "string"
        },
        "resourceManagerId": {
          "description": "The Resource Manager ID of this Storage Container.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The name of the Storage Account where the Container should be created.\n",
          "type": "string"
        }
      },
      "required": [
        "hasImmutabilityPolicy",
        "hasLegalHold",
        "metadata",
        "name",
        "resourceManagerId",
        "storageAccountName"
      ],
      "requiredInputs": [
        "storageAccountName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Container resources.\n",
        "properties": {
          "containerAccessType": {
            "description": "The Access Level configured for this Container. Possible values are `blob`, `container` or `private`. Defaults to `private`.\n",
            "type": "string"
          },
          "hasImmutabilityPolicy": {
            "description": "Is there an Immutability Policy configured on this Storage Container?\n",
            "type": "boolean"
          },
          "hasLegalHold": {
            "description": "Is there a Legal Hold configured on this Storage Container?\n",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of MetaData for this Container. All metadata keys should be lowercase.\n",
            "type": "object"
          },
          "name": {
            "description": "The name of the Container which should be created within the Storage Account.\n",
            "type": "string"
          },
          "resourceManagerId": {
            "description": "The Resource Manager ID of this Storage Container.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "The name of the Storage Account where the Container should be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/customerManagedKey:CustomerManagedKey": {
      "description": "Manages a Customer Managed Key for a Storage Account.\n\n\n## Import\n\nCustomer Managed Keys for a Storage Account can be imported using the `resource id` of the Storage Account, e.g.\n\n```sh\n $ pulumi import azure:storage/customerManagedKey:CustomerManagedKey example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount\n```\n\n ",
      "inputProperties": {
        "keyName": {
          "description": "The name of Key Vault Key.\n",
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "keyVersion": {
          "description": "The version of Key Vault Key. Remove or omit this argument to enable Automatic Key Rotation.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "userAssignedIdentityId": {
          "description": "The ID of a user assigned identity.\n",
          "type": "string"
        }
      },
      "properties": {
        "keyName": {
          "description": "The name of Key Vault Key.\n",
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "keyVersion": {
          "description": "The version of Key Vault Key. Remove or omit this argument to enable Automatic Key Rotation.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "userAssignedIdentityId": {
          "description": "The ID of a user assigned identity.\n",
          "type": "string"
        }
      },
      "required": [
        "keyName",
        "keyVaultId",
        "storageAccountId"
      ],
      "requiredInputs": [
        "keyName",
        "keyVaultId",
        "storageAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering CustomerManagedKey resources.\n",
        "properties": {
          "keyName": {
            "description": "The name of Key Vault Key.\n",
            "type": "string"
          },
          "keyVaultId": {
            "description": "The ID of the Key Vault. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "keyVersion": {
            "description": "The version of Key Vault Key. Remove or omit this argument to enable Automatic Key Rotation.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of the Storage Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "userAssignedIdentityId": {
            "description": "The ID of a user assigned identity.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/dataLakeGen2Filesystem:DataLakeGen2Filesystem": {
      "description": "Manages a Data Lake Gen2 File System within an Azure Storage Account.\n\n\u003e **NOTE:** This Resource requires using Azure Active Directory to connect to Azure Storage, which in turn requires the `Storage` specific roles - which are not granted by default.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    accountKind: \"StorageV2\",\n    isHnsEnabled: \"true\",\n});\nconst exampleDataLakeGen2Filesystem = new azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", {\n    storageAccountId: exampleAccount.id,\n    properties: {\n        hello: \"aGVsbG8=\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    account_kind=\"StorageV2\",\n    is_hns_enabled=True)\nexample_data_lake_gen2_filesystem = azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\",\n    storage_account_id=example_account.id,\n    properties={\n        \"hello\": \"aGVsbG8=\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            AccountKind = \"StorageV2\",\n            IsHnsEnabled = true,\n        });\n        var exampleDataLakeGen2Filesystem = new Azure.Storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", new Azure.Storage.DataLakeGen2FilesystemArgs\n        {\n            StorageAccountId = exampleAccount.Id,\n            Properties = \n            {\n                { \"hello\", \"aGVsbG8=\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tAccountKind:            pulumi.String(\"StorageV2\"),\n\t\t\tIsHnsEnabled:           pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewDataLakeGen2Filesystem(ctx, \"exampleDataLakeGen2Filesystem\", \u0026storage.DataLakeGen2FilesystemArgs{\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t\tProperties: pulumi.StringMap{\n\t\t\t\t\"hello\": pulumi.String(\"aGVsbG8=\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Lake Gen2 File System's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/dataLakeGen2Filesystem:DataLakeGen2Filesystem queue1 https://account1.dfs.core.windows.net/fileSystem1\n```\n\n ",
      "inputProperties": {
        "aces": {
          "description": "One or more `ace` blocks as defined below to specify the entries for the ACL for the path.\n",
          "items": {
            "$ref": "#/types/azure:storage/DataLakeGen2FilesystemAce:DataLakeGen2FilesystemAce"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the Data Lake Gen2 File System which should be created within the Storage Account. Must be unique within the storage account the queue is located. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "properties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of Key to Base64-Encoded Values which should be assigned to this Data Lake Gen2 File System.\n",
          "type": "object"
        },
        "storageAccountId": {
          "description": "Specifies the ID of the Storage Account in which the Data Lake Gen2 File System should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "aces": {
          "description": "One or more `ace` blocks as defined below to specify the entries for the ACL for the path.\n",
          "items": {
            "$ref": "#/types/azure:storage/DataLakeGen2FilesystemAce:DataLakeGen2FilesystemAce"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the Data Lake Gen2 File System which should be created within the Storage Account. Must be unique within the storage account the queue is located. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "properties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of Key to Base64-Encoded Values which should be assigned to this Data Lake Gen2 File System.\n",
          "type": "object"
        },
        "storageAccountId": {
          "description": "Specifies the ID of the Storage Account in which the Data Lake Gen2 File System should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "aces",
        "name",
        "storageAccountId"
      ],
      "requiredInputs": [
        "storageAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataLakeGen2Filesystem resources.\n",
        "properties": {
          "aces": {
            "description": "One or more `ace` blocks as defined below to specify the entries for the ACL for the path.\n",
            "items": {
              "$ref": "#/types/azure:storage/DataLakeGen2FilesystemAce:DataLakeGen2FilesystemAce"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the Data Lake Gen2 File System which should be created within the Storage Account. Must be unique within the storage account the queue is located. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "properties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of Key to Base64-Encoded Values which should be assigned to this Data Lake Gen2 File System.\n",
            "type": "object"
          },
          "storageAccountId": {
            "description": "Specifies the ID of the Storage Account in which the Data Lake Gen2 File System should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/dataLakeGen2Path:DataLakeGen2Path": {
      "description": "Manages a Data Lake Gen2 Path in a File System within an Azure Storage Account.\n\n\u003e **NOTE:** This Resource requires using Azure Active Directory to connect to Azure Storage, which in turn requires the `Storage` specific roles - which are not granted by default.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    accountKind: \"StorageV2\",\n    isHnsEnabled: \"true\",\n});\nconst exampleDataLakeGen2Filesystem = new azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", {storageAccountId: exampleAccount.id});\nconst exampleDataLakeGen2Path = new azure.storage.DataLakeGen2Path(\"exampleDataLakeGen2Path\", {\n    path: \"example\",\n    filesystemName: exampleDataLakeGen2Filesystem.name,\n    storageAccountId: exampleAccount.id,\n    resource: \"directory\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    account_kind=\"StorageV2\",\n    is_hns_enabled=True)\nexample_data_lake_gen2_filesystem = azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", storage_account_id=example_account.id)\nexample_data_lake_gen2_path = azure.storage.DataLakeGen2Path(\"exampleDataLakeGen2Path\",\n    path=\"example\",\n    filesystem_name=example_data_lake_gen2_filesystem.name,\n    storage_account_id=example_account.id,\n    resource=\"directory\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            AccountKind = \"StorageV2\",\n            IsHnsEnabled = true,\n        });\n        var exampleDataLakeGen2Filesystem = new Azure.Storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", new Azure.Storage.DataLakeGen2FilesystemArgs\n        {\n            StorageAccountId = exampleAccount.Id,\n        });\n        var exampleDataLakeGen2Path = new Azure.Storage.DataLakeGen2Path(\"exampleDataLakeGen2Path\", new Azure.Storage.DataLakeGen2PathArgs\n        {\n            Path = \"example\",\n            FilesystemName = exampleDataLakeGen2Filesystem.Name,\n            StorageAccountId = exampleAccount.Id,\n            Resource = \"directory\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tAccountKind:            pulumi.String(\"StorageV2\"),\n\t\t\tIsHnsEnabled:           pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDataLakeGen2Filesystem, err := storage.NewDataLakeGen2Filesystem(ctx, \"exampleDataLakeGen2Filesystem\", \u0026storage.DataLakeGen2FilesystemArgs{\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewDataLakeGen2Path(ctx, \"exampleDataLakeGen2Path\", \u0026storage.DataLakeGen2PathArgs{\n\t\t\tPath:             pulumi.String(\"example\"),\n\t\t\tFilesystemName:   exampleDataLakeGen2Filesystem.Name,\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t\tResource:         pulumi.String(\"directory\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nData Lake Gen2 Paths can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/dataLakeGen2Path:DataLakeGen2Path example https://account1.dfs.core.windows.net/fileSystem1/path\n```\n\n ",
      "inputProperties": {
        "aces": {
          "description": "One or more `ace` blocks as defined below to specify the entries for the ACL for the path.\n",
          "items": {
            "$ref": "#/types/azure:storage/DataLakeGen2PathAce:DataLakeGen2PathAce"
          },
          "type": "array"
        },
        "filesystemName": {
          "description": "The name of the Data Lake Gen2 File System which should be created within the Storage Account. Must be unique within the storage account the queue is located. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "group": {
          "description": "Specifies the Object ID of the Azure Active Directory Group to make the owning group.\n",
          "type": "string"
        },
        "owner": {
          "description": "Specifies the Object ID of the Azure Active Directory User to make the owning user.\n",
          "type": "string"
        },
        "path": {
          "description": "The path which should be created within the Data Lake Gen2 File System in the Storage Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resource": {
          "description": "Specifies the type for path to create. Currently only `directory` is supported.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "Specifies the ID of the Storage Account in which the Data Lake Gen2 File System should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "aces": {
          "description": "One or more `ace` blocks as defined below to specify the entries for the ACL for the path.\n",
          "items": {
            "$ref": "#/types/azure:storage/DataLakeGen2PathAce:DataLakeGen2PathAce"
          },
          "type": "array"
        },
        "filesystemName": {
          "description": "The name of the Data Lake Gen2 File System which should be created within the Storage Account. Must be unique within the storage account the queue is located. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "group": {
          "description": "Specifies the Object ID of the Azure Active Directory Group to make the owning group.\n",
          "type": "string"
        },
        "owner": {
          "description": "Specifies the Object ID of the Azure Active Directory User to make the owning user.\n",
          "type": "string"
        },
        "path": {
          "description": "The path which should be created within the Data Lake Gen2 File System in the Storage Account. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resource": {
          "description": "Specifies the type for path to create. Currently only `directory` is supported.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "Specifies the ID of the Storage Account in which the Data Lake Gen2 File System should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "aces",
        "filesystemName",
        "group",
        "owner",
        "path",
        "resource",
        "storageAccountId"
      ],
      "requiredInputs": [
        "filesystemName",
        "path",
        "resource",
        "storageAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DataLakeGen2Path resources.\n",
        "properties": {
          "aces": {
            "description": "One or more `ace` blocks as defined below to specify the entries for the ACL for the path.\n",
            "items": {
              "$ref": "#/types/azure:storage/DataLakeGen2PathAce:DataLakeGen2PathAce"
            },
            "type": "array"
          },
          "filesystemName": {
            "description": "The name of the Data Lake Gen2 File System which should be created within the Storage Account. Must be unique within the storage account the queue is located. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "group": {
            "description": "Specifies the Object ID of the Azure Active Directory Group to make the owning group.\n",
            "type": "string"
          },
          "owner": {
            "description": "Specifies the Object ID of the Azure Active Directory User to make the owning user.\n",
            "type": "string"
          },
          "path": {
            "description": "The path which should be created within the Data Lake Gen2 File System in the Storage Account. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resource": {
            "description": "Specifies the type for path to create. Currently only `directory` is supported.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "Specifies the ID of the Storage Account in which the Data Lake Gen2 File System should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/encryptionScope:EncryptionScope": {
      "description": "Manages a Storage Encryption Scope.\n\n\u003e **Note:** Storage Encryption Scopes are in Preview [more information can be found here](https://docs.microsoft.com/en-us/azure/storage/blobs/encryption-scope-manage).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    identity: {\n        type: \"SystemAssigned\",\n    },\n});\nconst exampleEncryptionScope = new azure.storage.EncryptionScope(\"exampleEncryptionScope\", {\n    storageAccountId: exampleAccount.id,\n    source: \"Microsoft.Storage\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    identity=azure.storage.AccountIdentityArgs(\n        type=\"SystemAssigned\",\n    ))\nexample_encryption_scope = azure.storage.EncryptionScope(\"exampleEncryptionScope\",\n    storage_account_id=example_account.id,\n    source=\"Microsoft.Storage\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            Identity = new Azure.Storage.Inputs.AccountIdentityArgs\n            {\n                Type = \"SystemAssigned\",\n            },\n        });\n        var exampleEncryptionScope = new Azure.Storage.EncryptionScope(\"exampleEncryptionScope\", new Azure.Storage.EncryptionScopeArgs\n        {\n            StorageAccountId = exampleAccount.Id,\n            Source = \"Microsoft.Storage\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tIdentity: \u0026storage.AccountIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewEncryptionScope(ctx, \"exampleEncryptionScope\", \u0026storage.EncryptionScopeArgs{\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t\tSource:           pulumi.String(\"Microsoft.Storage\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStorage Encryption Scopes can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/encryptionScope:EncryptionScope example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Storage/storageAccounts/account1/encryptionScopes/scope1\n```\n\n ",
      "inputProperties": {
        "infrastructureEncryptionRequired": {
          "description": "Is a secondary layer of encryption with Platform Managed Keys for data applied?\n",
          "type": "boolean"
        },
        "keyVaultKeyId": {
          "description": "The ID of the Key Vault Key. Required when `source` is `Microsoft.KeyVault`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Storage Encryption Scope. Changing this forces a new Storage Encryption Scope to be created.\n",
          "type": "string"
        },
        "source": {
          "description": "The source of the Storage Encryption Scope. Possible values are `Microsoft.KeyVault` and `Microsoft.Storage`.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account where this Storage Encryption Scope is created. Changing this forces a new Storage Encryption Scope to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "infrastructureEncryptionRequired": {
          "description": "Is a secondary layer of encryption with Platform Managed Keys for data applied?\n",
          "type": "boolean"
        },
        "keyVaultKeyId": {
          "description": "The ID of the Key Vault Key. Required when `source` is `Microsoft.KeyVault`.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Storage Encryption Scope. Changing this forces a new Storage Encryption Scope to be created.\n",
          "type": "string"
        },
        "source": {
          "description": "The source of the Storage Encryption Scope. Possible values are `Microsoft.KeyVault` and `Microsoft.Storage`.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account where this Storage Encryption Scope is created. Changing this forces a new Storage Encryption Scope to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "source",
        "storageAccountId"
      ],
      "requiredInputs": [
        "source",
        "storageAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EncryptionScope resources.\n",
        "properties": {
          "infrastructureEncryptionRequired": {
            "description": "Is a secondary layer of encryption with Platform Managed Keys for data applied?\n",
            "type": "boolean"
          },
          "keyVaultKeyId": {
            "description": "The ID of the Key Vault Key. Required when `source` is `Microsoft.KeyVault`.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Storage Encryption Scope. Changing this forces a new Storage Encryption Scope to be created.\n",
            "type": "string"
          },
          "source": {
            "description": "The source of the Storage Encryption Scope. Possible values are `Microsoft.KeyVault` and `Microsoft.Storage`.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of the Storage Account where this Storage Encryption Scope is created. Changing this forces a new Storage Encryption Scope to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/managementPolicy:ManagementPolicy": {
      "description": "Manages an Azure Storage Account Management Policy.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    accountKind: \"BlobStorage\",\n});\nconst exampleManagementPolicy = new azure.storage.ManagementPolicy(\"exampleManagementPolicy\", {\n    storageAccountId: exampleAccount.id,\n    rules: [\n        {\n            name: \"rule1\",\n            enabled: true,\n            filters: {\n                prefixMatches: [\"container1/prefix1\"],\n                blobTypes: [\"blockBlob\"],\n                matchBlobIndexTags: [{\n                    name: \"tag1\",\n                    operation: \"==\",\n                    value: \"val1\",\n                }],\n            },\n            actions: {\n                baseBlob: {\n                    tierToCoolAfterDaysSinceModificationGreaterThan: 10,\n                    tierToArchiveAfterDaysSinceModificationGreaterThan: 50,\n                    deleteAfterDaysSinceModificationGreaterThan: 100,\n                },\n                snapshot: {\n                    deleteAfterDaysSinceCreationGreaterThan: 30,\n                },\n            },\n        },\n        {\n            name: \"rule2\",\n            enabled: false,\n            filters: {\n                prefixMatches: [\n                    \"container2/prefix1\",\n                    \"container2/prefix2\",\n                ],\n                blobTypes: [\"blockBlob\"],\n            },\n            actions: {\n                baseBlob: {\n                    tierToCoolAfterDaysSinceModificationGreaterThan: 11,\n                    tierToArchiveAfterDaysSinceModificationGreaterThan: 51,\n                    deleteAfterDaysSinceModificationGreaterThan: 101,\n                },\n                snapshot: {\n                    changeTierToArchiveAfterDaysSinceCreation: 90,\n                    changeTierToCoolAfterDaysSinceCreation: 23,\n                    deleteAfterDaysSinceCreationGreaterThan: 31,\n                },\n                version: {\n                    changeTierToArchiveAfterDaysSinceCreation: 9,\n                    changeTierToCoolAfterDaysSinceCreation: 90,\n                    deleteAfterDaysSinceCreation: 3,\n                },\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    account_kind=\"BlobStorage\")\nexample_management_policy = azure.storage.ManagementPolicy(\"exampleManagementPolicy\",\n    storage_account_id=example_account.id,\n    rules=[\n        azure.storage.ManagementPolicyRuleArgs(\n            name=\"rule1\",\n            enabled=True,\n            filters=azure.storage.ManagementPolicyRuleFiltersArgs(\n                prefix_matches=[\"container1/prefix1\"],\n                blob_types=[\"blockBlob\"],\n                match_blob_index_tags=[azure.storage.ManagementPolicyRuleFiltersMatchBlobIndexTagArgs(\n                    name=\"tag1\",\n                    operation=\"==\",\n                    value=\"val1\",\n                )],\n            ),\n            actions=azure.storage.ManagementPolicyRuleActionsArgs(\n                base_blob=azure.storage.ManagementPolicyRuleActionsBaseBlobArgs(\n                    tier_to_cool_after_days_since_modification_greater_than=10,\n                    tier_to_archive_after_days_since_modification_greater_than=50,\n                    delete_after_days_since_modification_greater_than=100,\n                ),\n                snapshot=azure.storage.ManagementPolicyRuleActionsSnapshotArgs(\n                    delete_after_days_since_creation_greater_than=30,\n                ),\n            ),\n        ),\n        azure.storage.ManagementPolicyRuleArgs(\n            name=\"rule2\",\n            enabled=False,\n            filters=azure.storage.ManagementPolicyRuleFiltersArgs(\n                prefix_matches=[\n                    \"container2/prefix1\",\n                    \"container2/prefix2\",\n                ],\n                blob_types=[\"blockBlob\"],\n            ),\n            actions=azure.storage.ManagementPolicyRuleActionsArgs(\n                base_blob=azure.storage.ManagementPolicyRuleActionsBaseBlobArgs(\n                    tier_to_cool_after_days_since_modification_greater_than=11,\n                    tier_to_archive_after_days_since_modification_greater_than=51,\n                    delete_after_days_since_modification_greater_than=101,\n                ),\n                snapshot=azure.storage.ManagementPolicyRuleActionsSnapshotArgs(\n                    change_tier_to_archive_after_days_since_creation=90,\n                    change_tier_to_cool_after_days_since_creation=23,\n                    delete_after_days_since_creation_greater_than=31,\n                ),\n                version=azure.storage.ManagementPolicyRuleActionsVersionArgs(\n                    change_tier_to_archive_after_days_since_creation=9,\n                    change_tier_to_cool_after_days_since_creation=90,\n                    delete_after_days_since_creation=3,\n                ),\n            ),\n        ),\n    ])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            AccountKind = \"BlobStorage\",\n        });\n        var exampleManagementPolicy = new Azure.Storage.ManagementPolicy(\"exampleManagementPolicy\", new Azure.Storage.ManagementPolicyArgs\n        {\n            StorageAccountId = exampleAccount.Id,\n            Rules = \n            {\n                new Azure.Storage.Inputs.ManagementPolicyRuleArgs\n                {\n                    Name = \"rule1\",\n                    Enabled = true,\n                    Filters = new Azure.Storage.Inputs.ManagementPolicyRuleFiltersArgs\n                    {\n                        PrefixMatches = \n                        {\n                            \"container1/prefix1\",\n                        },\n                        BlobTypes = \n                        {\n                            \"blockBlob\",\n                        },\n                        MatchBlobIndexTags = \n                        {\n                            new Azure.Storage.Inputs.ManagementPolicyRuleFiltersMatchBlobIndexTagArgs\n                            {\n                                Name = \"tag1\",\n                                Operation = \"==\",\n                                Value = \"val1\",\n                            },\n                        },\n                    },\n                    Actions = new Azure.Storage.Inputs.ManagementPolicyRuleActionsArgs\n                    {\n                        BaseBlob = new Azure.Storage.Inputs.ManagementPolicyRuleActionsBaseBlobArgs\n                        {\n                            TierToCoolAfterDaysSinceModificationGreaterThan = 10,\n                            TierToArchiveAfterDaysSinceModificationGreaterThan = 50,\n                            DeleteAfterDaysSinceModificationGreaterThan = 100,\n                        },\n                        Snapshot = new Azure.Storage.Inputs.ManagementPolicyRuleActionsSnapshotArgs\n                        {\n                            DeleteAfterDaysSinceCreationGreaterThan = 30,\n                        },\n                    },\n                },\n                new Azure.Storage.Inputs.ManagementPolicyRuleArgs\n                {\n                    Name = \"rule2\",\n                    Enabled = false,\n                    Filters = new Azure.Storage.Inputs.ManagementPolicyRuleFiltersArgs\n                    {\n                        PrefixMatches = \n                        {\n                            \"container2/prefix1\",\n                            \"container2/prefix2\",\n                        },\n                        BlobTypes = \n                        {\n                            \"blockBlob\",\n                        },\n                    },\n                    Actions = new Azure.Storage.Inputs.ManagementPolicyRuleActionsArgs\n                    {\n                        BaseBlob = new Azure.Storage.Inputs.ManagementPolicyRuleActionsBaseBlobArgs\n                        {\n                            TierToCoolAfterDaysSinceModificationGreaterThan = 11,\n                            TierToArchiveAfterDaysSinceModificationGreaterThan = 51,\n                            DeleteAfterDaysSinceModificationGreaterThan = 101,\n                        },\n                        Snapshot = new Azure.Storage.Inputs.ManagementPolicyRuleActionsSnapshotArgs\n                        {\n                            ChangeTierToArchiveAfterDaysSinceCreation = 90,\n                            ChangeTierToCoolAfterDaysSinceCreation = 23,\n                            DeleteAfterDaysSinceCreationGreaterThan = 31,\n                        },\n                        Version = new Azure.Storage.Inputs.ManagementPolicyRuleActionsVersionArgs\n                        {\n                            ChangeTierToArchiveAfterDaysSinceCreation = 9,\n                            ChangeTierToCoolAfterDaysSinceCreation = 90,\n                            DeleteAfterDaysSinceCreation = 3,\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tAccountKind:            pulumi.String(\"BlobStorage\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewManagementPolicy(ctx, \"exampleManagementPolicy\", \u0026storage.ManagementPolicyArgs{\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t\tRules: storage.ManagementPolicyRuleArray{\n\t\t\t\t\u0026storage.ManagementPolicyRuleArgs{\n\t\t\t\t\tName:    pulumi.String(\"rule1\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tFilters: \u0026storage.ManagementPolicyRuleFiltersArgs{\n\t\t\t\t\t\tPrefixMatches: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"container1/prefix1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tBlobTypes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"blockBlob\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tMatchBlobIndexTags: storage.ManagementPolicyRuleFiltersMatchBlobIndexTagArray{\n\t\t\t\t\t\t\t\u0026storage.ManagementPolicyRuleFiltersMatchBlobIndexTagArgs{\n\t\t\t\t\t\t\t\tName:      pulumi.String(\"tag1\"),\n\t\t\t\t\t\t\t\tOperation: pulumi.String(\"==\"),\n\t\t\t\t\t\t\t\tValue:     pulumi.String(\"val1\"),\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\tActions: \u0026storage.ManagementPolicyRuleActionsArgs{\n\t\t\t\t\t\tBaseBlob: \u0026storage.ManagementPolicyRuleActionsBaseBlobArgs{\n\t\t\t\t\t\t\tTierToCoolAfterDaysSinceModificationGreaterThan:    pulumi.Int(10),\n\t\t\t\t\t\t\tTierToArchiveAfterDaysSinceModificationGreaterThan: pulumi.Int(50),\n\t\t\t\t\t\t\tDeleteAfterDaysSinceModificationGreaterThan:        pulumi.Int(100),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSnapshot: \u0026storage.ManagementPolicyRuleActionsSnapshotArgs{\n\t\t\t\t\t\t\tDeleteAfterDaysSinceCreationGreaterThan: pulumi.Int(30),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026storage.ManagementPolicyRuleArgs{\n\t\t\t\t\tName:    pulumi.String(\"rule2\"),\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tFilters: \u0026storage.ManagementPolicyRuleFiltersArgs{\n\t\t\t\t\t\tPrefixMatches: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"container2/prefix1\"),\n\t\t\t\t\t\t\tpulumi.String(\"container2/prefix2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tBlobTypes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"blockBlob\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tActions: \u0026storage.ManagementPolicyRuleActionsArgs{\n\t\t\t\t\t\tBaseBlob: \u0026storage.ManagementPolicyRuleActionsBaseBlobArgs{\n\t\t\t\t\t\t\tTierToCoolAfterDaysSinceModificationGreaterThan:    pulumi.Int(11),\n\t\t\t\t\t\t\tTierToArchiveAfterDaysSinceModificationGreaterThan: pulumi.Int(51),\n\t\t\t\t\t\t\tDeleteAfterDaysSinceModificationGreaterThan:        pulumi.Int(101),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSnapshot: \u0026storage.ManagementPolicyRuleActionsSnapshotArgs{\n\t\t\t\t\t\t\tChangeTierToArchiveAfterDaysSinceCreation: pulumi.Int(90),\n\t\t\t\t\t\t\tChangeTierToCoolAfterDaysSinceCreation:    pulumi.Int(23),\n\t\t\t\t\t\t\tDeleteAfterDaysSinceCreationGreaterThan:   pulumi.Int(31),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tVersion: \u0026storage.ManagementPolicyRuleActionsVersionArgs{\n\t\t\t\t\t\t\tChangeTierToArchiveAfterDaysSinceCreation: pulumi.Int(9),\n\t\t\t\t\t\t\tChangeTierToCoolAfterDaysSinceCreation:    pulumi.Int(90),\n\t\t\t\t\t\t\tDeleteAfterDaysSinceCreation:              pulumi.Int(3),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStorage Account Management Policies can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/managementPolicy:ManagementPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Storage/storageAccounts/myaccountname/managementPolicies/default\n```\n\n ",
      "inputProperties": {
        "rules": {
          "description": "A `rule` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:storage/ManagementPolicyRule:ManagementPolicyRule"
          },
          "type": "array"
        },
        "storageAccountId": {
          "description": "Specifies the id of the storage account to apply the management policy to.\n",
          "type": "string"
        }
      },
      "properties": {
        "rules": {
          "description": "A `rule` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:storage/ManagementPolicyRule:ManagementPolicyRule"
          },
          "type": "array"
        },
        "storageAccountId": {
          "description": "Specifies the id of the storage account to apply the management policy to.\n",
          "type": "string"
        }
      },
      "required": [
        "storageAccountId"
      ],
      "requiredInputs": [
        "storageAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ManagementPolicy resources.\n",
        "properties": {
          "rules": {
            "description": "A `rule` block as documented below.\n",
            "items": {
              "$ref": "#/types/azure:storage/ManagementPolicyRule:ManagementPolicyRule"
            },
            "type": "array"
          },
          "storageAccountId": {
            "description": "Specifies the id of the storage account to apply the management policy to.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/objectReplication:ObjectReplication": {
      "description": "Manages a Storage Object Replication.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst srcResourceGroup = new azure.core.ResourceGroup(\"srcResourceGroup\", {location: \"West Europe\"});\nconst srcAccount = new azure.storage.Account(\"srcAccount\", {\n    resourceGroupName: srcResourceGroup.name,\n    location: srcResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    blobProperties: {\n        versioningEnabled: true,\n        changeFeedEnabled: true,\n    },\n});\nconst srcContainer = new azure.storage.Container(\"srcContainer\", {\n    storageAccountName: srcAccount.name,\n    containerAccessType: \"private\",\n});\nconst dstResourceGroup = new azure.core.ResourceGroup(\"dstResourceGroup\", {location: \"East US\"});\nconst dstAccount = new azure.storage.Account(\"dstAccount\", {\n    resourceGroupName: dstResourceGroup.name,\n    location: dstResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    blobProperties: {\n        versioningEnabled: true,\n        changeFeedEnabled: true,\n    },\n});\nconst dstContainer = new azure.storage.Container(\"dstContainer\", {\n    storageAccountName: dstAccount.name,\n    containerAccessType: \"private\",\n});\nconst example = new azure.storage.ObjectReplication(\"example\", {\n    sourceStorageAccountId: srcAccount.id,\n    destinationStorageAccountId: dstAccount.id,\n    rules: [{\n        sourceContainerName: srcContainer.name,\n        destinationContainerName: dstContainer.name,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nsrc_resource_group = azure.core.ResourceGroup(\"srcResourceGroup\", location=\"West Europe\")\nsrc_account = azure.storage.Account(\"srcAccount\",\n    resource_group_name=src_resource_group.name,\n    location=src_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    blob_properties=azure.storage.AccountBlobPropertiesArgs(\n        versioning_enabled=True,\n        change_feed_enabled=True,\n    ))\nsrc_container = azure.storage.Container(\"srcContainer\",\n    storage_account_name=src_account.name,\n    container_access_type=\"private\")\ndst_resource_group = azure.core.ResourceGroup(\"dstResourceGroup\", location=\"East US\")\ndst_account = azure.storage.Account(\"dstAccount\",\n    resource_group_name=dst_resource_group.name,\n    location=dst_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    blob_properties=azure.storage.AccountBlobPropertiesArgs(\n        versioning_enabled=True,\n        change_feed_enabled=True,\n    ))\ndst_container = azure.storage.Container(\"dstContainer\",\n    storage_account_name=dst_account.name,\n    container_access_type=\"private\")\nexample = azure.storage.ObjectReplication(\"example\",\n    source_storage_account_id=src_account.id,\n    destination_storage_account_id=dst_account.id,\n    rules=[azure.storage.ObjectReplicationRuleArgs(\n        source_container_name=src_container.name,\n        destination_container_name=dst_container.name,\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var srcResourceGroup = new Azure.Core.ResourceGroup(\"srcResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var srcAccount = new Azure.Storage.Account(\"srcAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = srcResourceGroup.Name,\n            Location = srcResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            BlobProperties = new Azure.Storage.Inputs.AccountBlobPropertiesArgs\n            {\n                VersioningEnabled = true,\n                ChangeFeedEnabled = true,\n            },\n        });\n        var srcContainer = new Azure.Storage.Container(\"srcContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = srcAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var dstResourceGroup = new Azure.Core.ResourceGroup(\"dstResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"East US\",\n        });\n        var dstAccount = new Azure.Storage.Account(\"dstAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = dstResourceGroup.Name,\n            Location = dstResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            BlobProperties = new Azure.Storage.Inputs.AccountBlobPropertiesArgs\n            {\n                VersioningEnabled = true,\n                ChangeFeedEnabled = true,\n            },\n        });\n        var dstContainer = new Azure.Storage.Container(\"dstContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = dstAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var example = new Azure.Storage.ObjectReplication(\"example\", new Azure.Storage.ObjectReplicationArgs\n        {\n            SourceStorageAccountId = srcAccount.Id,\n            DestinationStorageAccountId = dstAccount.Id,\n            Rules = \n            {\n                new Azure.Storage.Inputs.ObjectReplicationRuleArgs\n                {\n                    SourceContainerName = srcContainer.Name,\n                    DestinationContainerName = dstContainer.Name,\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsrcResourceGroup, err := core.NewResourceGroup(ctx, \"srcResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsrcAccount, err := storage.NewAccount(ctx, \"srcAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      srcResourceGroup.Name,\n\t\t\tLocation:               srcResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tBlobProperties: \u0026storage.AccountBlobPropertiesArgs{\n\t\t\t\tVersioningEnabled: pulumi.Bool(true),\n\t\t\t\tChangeFeedEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsrcContainer, err := storage.NewContainer(ctx, \"srcContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  srcAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdstResourceGroup, err := core.NewResourceGroup(ctx, \"dstResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"East US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdstAccount, err := storage.NewAccount(ctx, \"dstAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      dstResourceGroup.Name,\n\t\t\tLocation:               dstResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tBlobProperties: \u0026storage.AccountBlobPropertiesArgs{\n\t\t\t\tVersioningEnabled: pulumi.Bool(true),\n\t\t\t\tChangeFeedEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdstContainer, err := storage.NewContainer(ctx, \"dstContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  dstAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewObjectReplication(ctx, \"example\", \u0026storage.ObjectReplicationArgs{\n\t\t\tSourceStorageAccountId:      srcAccount.ID(),\n\t\t\tDestinationStorageAccountId: dstAccount.ID(),\n\t\t\tRules: storage.ObjectReplicationRuleArray{\n\t\t\t\t\u0026storage.ObjectReplicationRuleArgs{\n\t\t\t\t\tSourceContainerName:      srcContainer.Name,\n\t\t\t\t\tDestinationContainerName: dstContainer.Name,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStorage Object Replication Policys can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/objectReplication:ObjectReplication example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Storage/storageAccounts/storageAccount1/objectReplicationPolicies/objectReplicationPolicy1;/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group2/providers/Microsoft.Storage/storageAccounts/storageAccount2/objectReplicationPolicies/objectReplicationPolicy2\n```\n\n ",
      "inputProperties": {
        "destinationStorageAccountId": {
          "description": "The ID of the destination storage account. Changing this forces a new Storage Object Replication to be created.\n",
          "type": "string"
        },
        "rules": {
          "description": "One or more `rules` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/ObjectReplicationRule:ObjectReplicationRule"
          },
          "type": "array"
        },
        "sourceStorageAccountId": {
          "description": "The ID of the source storage account. Changing this forces a new Storage Object Replication to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "destinationObjectReplicationId": {
          "description": "The ID of the Object Replication in the destination storage account.\n",
          "type": "string"
        },
        "destinationStorageAccountId": {
          "description": "The ID of the destination storage account. Changing this forces a new Storage Object Replication to be created.\n",
          "type": "string"
        },
        "rules": {
          "description": "One or more `rules` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/ObjectReplicationRule:ObjectReplicationRule"
          },
          "type": "array"
        },
        "sourceObjectReplicationId": {
          "description": "The ID of the Object Replication in the source storage account.\n",
          "type": "string"
        },
        "sourceStorageAccountId": {
          "description": "The ID of the source storage account. Changing this forces a new Storage Object Replication to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "destinationObjectReplicationId",
        "destinationStorageAccountId",
        "rules",
        "sourceObjectReplicationId",
        "sourceStorageAccountId"
      ],
      "requiredInputs": [
        "destinationStorageAccountId",
        "rules",
        "sourceStorageAccountId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ObjectReplication resources.\n",
        "properties": {
          "destinationObjectReplicationId": {
            "description": "The ID of the Object Replication in the destination storage account.\n",
            "type": "string"
          },
          "destinationStorageAccountId": {
            "description": "The ID of the destination storage account. Changing this forces a new Storage Object Replication to be created.\n",
            "type": "string"
          },
          "rules": {
            "description": "One or more `rules` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:storage/ObjectReplicationRule:ObjectReplicationRule"
            },
            "type": "array"
          },
          "sourceObjectReplicationId": {
            "description": "The ID of the Object Replication in the source storage account.\n",
            "type": "string"
          },
          "sourceStorageAccountId": {
            "description": "The ID of the source storage account. Changing this forces a new Storage Object Replication to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/queue:Queue": {
      "description": "Manages a Queue within an Azure Storage Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleQueue = new azure.storage.Queue(\"exampleQueue\", {storageAccountName: exampleAccount.name});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_queue = azure.storage.Queue(\"exampleQueue\", storage_account_name=example_account.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleQueue = new Azure.Storage.Queue(\"exampleQueue\", new Azure.Storage.QueueArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewQueue(ctx, \"exampleQueue\", \u0026storage.QueueArgs{\n\t\t\tStorageAccountName: exampleAccount.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStorage Queue's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/queue:Queue queue1 https://example.queue.core.windows.net/queue1\n```\n\n ",
      "inputProperties": {
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of MetaData which should be assigned to this Storage Queue.\n",
          "type": "object"
        },
        "name": {
          "description": "The name of the Queue which should be created within the Storage Account. Must be unique within the storage account the queue is located.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "Specifies the Storage Account in which the Storage Queue should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of MetaData which should be assigned to this Storage Queue.\n",
          "type": "object"
        },
        "name": {
          "description": "The name of the Queue which should be created within the Storage Account. Must be unique within the storage account the queue is located.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "Specifies the Storage Account in which the Storage Queue should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "storageAccountName"
      ],
      "requiredInputs": [
        "storageAccountName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Queue resources.\n",
        "properties": {
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of MetaData which should be assigned to this Storage Queue.\n",
            "type": "object"
          },
          "name": {
            "description": "The name of the Queue which should be created within the Storage Account. Must be unique within the storage account the queue is located.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "Specifies the Storage Account in which the Storage Queue should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/share:Share": {
      "description": "Manages a File Share within Azure Storage.\n\n\u003e **Note:** The storage share supports two storage tiers: premium and standard. Standard file shares are created in general purpose (GPv1 or GPv2) storage accounts and premium file shares are created in FileStorage storage accounts. For further information, refer to the section \"What storage tiers are supported in Azure Files?\" of [documentation](https://docs.microsoft.com/en-us/azure/storage/files/storage-files-faq#general).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleShare = new azure.storage.Share(\"exampleShare\", {\n    storageAccountName: exampleAccount.name,\n    quota: 50,\n    acls: [{\n        id: \"MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI\",\n        accessPolicies: [{\n            permissions: \"rwdl\",\n            start: \"2019-07-02T09:38:21.0000000Z\",\n            expiry: \"2019-07-02T10:38:21.0000000Z\",\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_share = azure.storage.Share(\"exampleShare\",\n    storage_account_name=example_account.name,\n    quota=50,\n    acls=[azure.storage.ShareAclArgs(\n        id=\"MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI\",\n        access_policies=[{\n            \"permissions\": \"rwdl\",\n            \"start\": \"2019-07-02T09:38:21.0000000Z\",\n            \"expiry\": \"2019-07-02T10:38:21.0000000Z\",\n        }],\n    )])\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleShare = new Azure.Storage.Share(\"exampleShare\", new Azure.Storage.ShareArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            Quota = 50,\n            Acls = \n            {\n                new Azure.Storage.Inputs.ShareAclArgs\n                {\n                    Id = \"MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI\",\n                    AccessPolicies = \n                    {\n                        new Azure.Storage.Inputs.ShareAclAccessPolicyArgs\n                        {\n                            Permissions = \"rwdl\",\n                            Start = \"2019-07-02T09:38:21.0000000Z\",\n                            Expiry = \"2019-07-02T10:38:21.0000000Z\",\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewShare(ctx, \"exampleShare\", \u0026storage.ShareArgs{\n\t\t\tStorageAccountName: exampleAccount.Name,\n\t\t\tQuota:              pulumi.Int(50),\n\t\t\tAcls: storage.ShareAclArray{\n\t\t\t\t\u0026storage.ShareAclArgs{\n\t\t\t\t\tId: pulumi.String(\"MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI\"),\n\t\t\t\t\tAccessPolicies: storage.ShareAclAccessPolicyArray{\n\t\t\t\t\t\t\u0026storage.ShareAclAccessPolicyArgs{\n\t\t\t\t\t\t\tPermissions: pulumi.String(\"rwdl\"),\n\t\t\t\t\t\t\tStart:       pulumi.String(\"2019-07-02T09:38:21.0000000Z\"),\n\t\t\t\t\t\t\tExpiry:      pulumi.String(\"2019-07-02T10:38:21.0000000Z\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStorage Shares can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/share:Share exampleShare https://account1.file.core.windows.net/share1\n```\n\n ",
      "inputProperties": {
        "acls": {
          "description": "One or more `acl` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/ShareAcl:ShareAcl"
          },
          "type": "array"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of MetaData for this File Share.\n",
          "type": "object"
        },
        "name": {
          "description": "The name of the share. Must be unique within the storage account where the share is located.\n",
          "type": "string"
        },
        "quota": {
          "description": "The maximum size of the share, in gigabytes. For Standard storage accounts, this must be greater than 0 and less than 5120 GB (5 TB). For Premium FileStorage storage accounts, this must be greater than 100 GB and less than 102400 GB (100 TB). Default is 5120.\n",
          "type": "integer"
        },
        "storageAccountName": {
          "description": "Specifies the storage account in which to create the share.\nChanging this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "acls": {
          "description": "One or more `acl` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/ShareAcl:ShareAcl"
          },
          "type": "array"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of MetaData for this File Share.\n",
          "type": "object"
        },
        "name": {
          "description": "The name of the share. Must be unique within the storage account where the share is located.\n",
          "type": "string"
        },
        "quota": {
          "description": "The maximum size of the share, in gigabytes. For Standard storage accounts, this must be greater than 0 and less than 5120 GB (5 TB). For Premium FileStorage storage accounts, this must be greater than 100 GB and less than 102400 GB (100 TB). Default is 5120.\n",
          "type": "integer"
        },
        "resourceManagerId": {
          "description": "The Resource Manager ID of this File Share.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "Specifies the storage account in which to create the share.\nChanging this forces a new resource to be created.\n",
          "type": "string"
        },
        "url": {
          "description": "The URL of the File Share\n",
          "type": "string"
        }
      },
      "required": [
        "metadata",
        "name",
        "resourceManagerId",
        "storageAccountName",
        "url"
      ],
      "requiredInputs": [
        "storageAccountName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Share resources.\n",
        "properties": {
          "acls": {
            "description": "One or more `acl` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:storage/ShareAcl:ShareAcl"
            },
            "type": "array"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of MetaData for this File Share.\n",
            "type": "object"
          },
          "name": {
            "description": "The name of the share. Must be unique within the storage account where the share is located.\n",
            "type": "string"
          },
          "quota": {
            "description": "The maximum size of the share, in gigabytes. For Standard storage accounts, this must be greater than 0 and less than 5120 GB (5 TB). For Premium FileStorage storage accounts, this must be greater than 100 GB and less than 102400 GB (100 TB). Default is 5120.\n",
            "type": "integer"
          },
          "resourceManagerId": {
            "description": "The Resource Manager ID of this File Share.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "Specifies the storage account in which to create the share.\nChanging this forces a new resource to be created.\n",
            "type": "string"
          },
          "url": {
            "description": "The URL of the File Share\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/shareDirectory:ShareDirectory": {
      "description": "Manages a Directory within an Azure Storage File Share.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleShare = new azure.storage.Share(\"exampleShare\", {\n    storageAccountName: exampleAccount.name,\n    quota: 50,\n});\nconst exampleShareDirectory = new azure.storage.ShareDirectory(\"exampleShareDirectory\", {\n    shareName: exampleShare.name,\n    storageAccountName: exampleAccount.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_share = azure.storage.Share(\"exampleShare\",\n    storage_account_name=example_account.name,\n    quota=50)\nexample_share_directory = azure.storage.ShareDirectory(\"exampleShareDirectory\",\n    share_name=example_share.name,\n    storage_account_name=example_account.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleShare = new Azure.Storage.Share(\"exampleShare\", new Azure.Storage.ShareArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            Quota = 50,\n        });\n        var exampleShareDirectory = new Azure.Storage.ShareDirectory(\"exampleShareDirectory\", new Azure.Storage.ShareDirectoryArgs\n        {\n            ShareName = exampleShare.Name,\n            StorageAccountName = exampleAccount.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleShare, err := storage.NewShare(ctx, \"exampleShare\", \u0026storage.ShareArgs{\n\t\t\tStorageAccountName: exampleAccount.Name,\n\t\t\tQuota:              pulumi.Int(50),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewShareDirectory(ctx, \"exampleShareDirectory\", \u0026storage.ShareDirectoryArgs{\n\t\t\tShareName:          exampleShare.Name,\n\t\t\tStorageAccountName: exampleAccount.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDirectories within an Azure Storage File Share can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/shareDirectory:ShareDirectory net/share1/directory1\n```\n\n ",
      "inputProperties": {
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of metadata to assign to this Directory.\n",
          "type": "object"
        },
        "name": {
          "description": "The name (or path) of the Directory that should be created within this File Share. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "shareName": {
          "description": "The name of the File Share where this Directory should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The name of the Storage Account within which the File Share is located. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of metadata to assign to this Directory.\n",
          "type": "object"
        },
        "name": {
          "description": "The name (or path) of the Directory that should be created within this File Share. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "shareName": {
          "description": "The name of the File Share where this Directory should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The name of the Storage Account within which the File Share is located. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "shareName",
        "storageAccountName"
      ],
      "requiredInputs": [
        "shareName",
        "storageAccountName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ShareDirectory resources.\n",
        "properties": {
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of metadata to assign to this Directory.\n",
            "type": "object"
          },
          "name": {
            "description": "The name (or path) of the Directory that should be created within this File Share. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "shareName": {
            "description": "The name of the File Share where this Directory should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "The name of the Storage Account within which the File Share is located. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/shareFile:ShareFile": {
      "description": "Manages a File within an Azure Storage File Share.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleShare = new azure.storage.Share(\"exampleShare\", {\n    storageAccountName: exampleAccount.name,\n    quota: 50,\n});\nconst exampleShareFile = new azure.storage.ShareFile(\"exampleShareFile\", {\n    storageShareId: exampleShare.id,\n    source: \"some-local-file.zip\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_share = azure.storage.Share(\"exampleShare\",\n    storage_account_name=example_account.name,\n    quota=50)\nexample_share_file = azure.storage.ShareFile(\"exampleShareFile\",\n    storage_share_id=example_share.id,\n    source=\"some-local-file.zip\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleShare = new Azure.Storage.Share(\"exampleShare\", new Azure.Storage.ShareArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            Quota = 50,\n        });\n        var exampleShareFile = new Azure.Storage.ShareFile(\"exampleShareFile\", new Azure.Storage.ShareFileArgs\n        {\n            StorageShareId = exampleShare.Id,\n            Source = \"some-local-file.zip\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleShare, err := storage.NewShare(ctx, \"exampleShare\", \u0026storage.ShareArgs{\n\t\t\tStorageAccountName: exampleAccount.Name,\n\t\t\tQuota:              pulumi.Int(50),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewShareFile(ctx, \"exampleShareFile\", \u0026storage.ShareFileArgs{\n\t\t\tStorageShareId: exampleShare.ID(),\n\t\t\tSource:         pulumi.String(\"some-local-file.zip\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDirectories within an Azure Storage File Share can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/shareFile:ShareFile example https://account1.file.core.windows.net/share1/file1\n```\n\n ",
      "inputProperties": {
        "contentDisposition": {
          "description": "Sets the file’s Content-Disposition header.\n",
          "type": "string"
        },
        "contentEncoding": {
          "description": "Specifies which content encodings have been applied to the file.\n",
          "type": "string"
        },
        "contentMd5": {
          "description": "The MD5 sum of the file contents. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "contentType": {
          "description": "The content type of the share file. Defaults to `application/octet-stream`.\n",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of metadata to assign to this file.\n",
          "type": "object"
        },
        "name": {
          "description": "The name (or path) of the File that should be created within this File Share. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "path": {
          "description": "The storage share directory that you would like the file placed into. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "source": {
          "description": "An absolute path to a file on the local system.\n",
          "type": "string"
        },
        "storageShareId": {
          "description": "The Storage Share ID in which this file will be placed into. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "contentDisposition": {
          "description": "Sets the file’s Content-Disposition header.\n",
          "type": "string"
        },
        "contentEncoding": {
          "description": "Specifies which content encodings have been applied to the file.\n",
          "type": "string"
        },
        "contentMd5": {
          "description": "The MD5 sum of the file contents. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "contentType": {
          "description": "The content type of the share file. Defaults to `application/octet-stream`.\n",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of metadata to assign to this file.\n",
          "type": "object"
        },
        "name": {
          "description": "The name (or path) of the File that should be created within this File Share. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "path": {
          "description": "The storage share directory that you would like the file placed into. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "source": {
          "description": "An absolute path to a file on the local system.\n",
          "type": "string"
        },
        "storageShareId": {
          "description": "The Storage Share ID in which this file will be placed into. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "storageShareId"
      ],
      "requiredInputs": [
        "storageShareId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ShareFile resources.\n",
        "properties": {
          "contentDisposition": {
            "description": "Sets the file’s Content-Disposition header.\n",
            "type": "string"
          },
          "contentEncoding": {
            "description": "Specifies which content encodings have been applied to the file.\n",
            "type": "string"
          },
          "contentMd5": {
            "description": "The MD5 sum of the file contents. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "contentType": {
            "description": "The content type of the share file. Defaults to `application/octet-stream`.\n",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of metadata to assign to this file.\n",
            "type": "object"
          },
          "name": {
            "description": "The name (or path) of the File that should be created within this File Share. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "path": {
            "description": "The storage share directory that you would like the file placed into. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "source": {
            "description": "An absolute path to a file on the local system.\n",
            "type": "string"
          },
          "storageShareId": {
            "description": "The Storage Share ID in which this file will be placed into. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/sync:Sync": {
      "description": "Manages a Storage Sync.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst test = new azure.storage.Sync(\"test\", {\n    resourceGroupName: azurerm_resource_group.test.name,\n    location: azurerm_resource_group.test.location,\n    tags: {\n        foo: \"bar\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\ntest = azure.storage.Sync(\"test\",\n    resource_group_name=azurerm_resource_group[\"test\"][\"name\"],\n    location=azurerm_resource_group[\"test\"][\"location\"],\n    tags={\n        \"foo\": \"bar\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Core.ResourceGroup(\"example\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var test = new Azure.Storage.Sync(\"test\", new Azure.Storage.SyncArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Test.Name,\n            Location = azurerm_resource_group.Test.Location,\n            Tags = \n            {\n                { \"foo\", \"bar\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewSync(ctx, \"test\", \u0026storage.SyncArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_resource_group.Test.Name),\n\t\t\tLocation:          pulumi.Any(azurerm_resource_group.Test.Location),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStorage Syncs can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/sync:Sync example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.StorageSync/storageSyncServices/sync1\n```\n\n ",
      "inputProperties": {
        "incomingTrafficPolicy": {
          "description": "Incoming traffic policy. Possible values are `AllowAllTraffic` and `AllowVirtualNetworksOnly`.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Storage Sync should exist. Changing this forces a new Storage Sync to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Storage Sync. Changing this forces a new Storage Sync to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Storage Sync should exist. Changing this forces a new Storage Sync to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Storage Sync.\n",
          "type": "object"
        }
      },
      "properties": {
        "incomingTrafficPolicy": {
          "description": "Incoming traffic policy. Possible values are `AllowAllTraffic` and `AllowVirtualNetworksOnly`.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region where the Storage Sync should exist. Changing this forces a new Storage Sync to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Storage Sync. Changing this forces a new Storage Sync to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Storage Sync should exist. Changing this forces a new Storage Sync to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Storage Sync.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Sync resources.\n",
        "properties": {
          "incomingTrafficPolicy": {
            "description": "Incoming traffic policy. Possible values are `AllowAllTraffic` and `AllowVirtualNetworksOnly`.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region where the Storage Sync should exist. Changing this forces a new Storage Sync to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Storage Sync. Changing this forces a new Storage Sync to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Storage Sync should exist. Changing this forces a new Storage Sync to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Storage Sync.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/syncCloudEndpoint:SyncCloudEndpoint": {
      "description": "Manages a Storage Sync Cloud Endpoint.\n\n\u003e **NOTE:** Please ensure Azure File Sync has access to the storage account in your subscription, which indicates that `Microsoft.StorageSync` is assigned role `Reader and Data Access` ( refer to details [here](https://docs.microsoft.com/en-us/azure/storage/files/storage-sync-files-troubleshoot?tabs=portal1%2Cazure-portal#common-troubleshooting-steps)).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSync = new azure.storage.Sync(\"exampleSync\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleSyncGroup = new azure.storage.SyncGroup(\"exampleSyncGroup\", {storageSyncId: exampleSync.id});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleShare = new azure.storage.Share(\"exampleShare\", {\n    storageAccountName: exampleAccount.name,\n    acls: [{\n        id: \"GhostedRecall\",\n        accessPolicies: [{\n            permissions: \"r\",\n        }],\n    }],\n});\nconst exampleSyncCloudEndpoint = new azure.storage.SyncCloudEndpoint(\"exampleSyncCloudEndpoint\", {\n    storageSyncGroupId: exampleSyncGroup.id,\n    fileShareName: exampleShare.name,\n    storageAccountId: exampleAccount.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_sync = azure.storage.Sync(\"exampleSync\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_sync_group = azure.storage.SyncGroup(\"exampleSyncGroup\", storage_sync_id=example_sync.id)\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_share = azure.storage.Share(\"exampleShare\",\n    storage_account_name=example_account.name,\n    acls=[azure.storage.ShareAclArgs(\n        id=\"GhostedRecall\",\n        access_policies=[{\n            \"permissions\": \"r\",\n        }],\n    )])\nexample_sync_cloud_endpoint = azure.storage.SyncCloudEndpoint(\"exampleSyncCloudEndpoint\",\n    storage_sync_group_id=example_sync_group.id,\n    file_share_name=example_share.name,\n    storage_account_id=example_account.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSync = new Azure.Storage.Sync(\"exampleSync\", new Azure.Storage.SyncArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleSyncGroup = new Azure.Storage.SyncGroup(\"exampleSyncGroup\", new Azure.Storage.SyncGroupArgs\n        {\n            StorageSyncId = exampleSync.Id,\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleShare = new Azure.Storage.Share(\"exampleShare\", new Azure.Storage.ShareArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            Acls = \n            {\n                new Azure.Storage.Inputs.ShareAclArgs\n                {\n                    Id = \"GhostedRecall\",\n                    AccessPolicies = \n                    {\n                        new Azure.Storage.Inputs.ShareAclAccessPolicyArgs\n                        {\n                            Permissions = \"r\",\n                        },\n                    },\n                },\n            },\n        });\n        var exampleSyncCloudEndpoint = new Azure.Storage.SyncCloudEndpoint(\"exampleSyncCloudEndpoint\", new Azure.Storage.SyncCloudEndpointArgs\n        {\n            StorageSyncGroupId = exampleSyncGroup.Id,\n            FileShareName = exampleShare.Name,\n            StorageAccountId = exampleAccount.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSync, err := storage.NewSync(ctx, \"exampleSync\", \u0026storage.SyncArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSyncGroup, err := storage.NewSyncGroup(ctx, \"exampleSyncGroup\", \u0026storage.SyncGroupArgs{\n\t\t\tStorageSyncId: exampleSync.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleShare, err := storage.NewShare(ctx, \"exampleShare\", \u0026storage.ShareArgs{\n\t\t\tStorageAccountName: exampleAccount.Name,\n\t\t\tAcls: storage.ShareAclArray{\n\t\t\t\t\u0026storage.ShareAclArgs{\n\t\t\t\t\tId: pulumi.String(\"GhostedRecall\"),\n\t\t\t\t\tAccessPolicies: storage.ShareAclAccessPolicyArray{\n\t\t\t\t\t\t\u0026storage.ShareAclAccessPolicyArgs{\n\t\t\t\t\t\t\tPermissions: pulumi.String(\"r\"),\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 = storage.NewSyncCloudEndpoint(ctx, \"exampleSyncCloudEndpoint\", \u0026storage.SyncCloudEndpointArgs{\n\t\t\tStorageSyncGroupId: exampleSyncGroup.ID(),\n\t\t\tFileShareName:      exampleShare.Name,\n\t\t\tStorageAccountId:   exampleAccount.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStorage Sync Cloud Endpoints can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/syncCloudEndpoint:SyncCloudEndpoint example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.StorageSync/storageSyncServices/sync1/syncGroups/syncgroup1/cloudEndpoints/cloudEndpoint1\n```\n\n ",
      "inputProperties": {
        "fileShareName": {
          "description": "The Storage Share name to be synchronized in this Storage Sync Cloud Endpoint. Changing this forces a new Storage Sync Cloud Endpoint to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Storage Sync Cloud Endpoint. Changing this forces a new Storage Sync Cloud Endpoint to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account where the Storage Share exists. Changing this forces a new Storage Sync Cloud Endpoint to be created.\n",
          "type": "string"
        },
        "storageAccountTenantId": {
          "description": "The Tenant ID of the Storage Account where the Storage Share exists. Changing this forces a new Storage Sync Cloud Endpoint to be created. Defaults to the current tenant id.\n",
          "type": "string"
        },
        "storageSyncGroupId": {
          "description": "The ID of the Storage Sync Group where this Cloud Endpoint should be created. Changing this forces a new Storage Sync Cloud Endpoint to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "fileShareName": {
          "description": "The Storage Share name to be synchronized in this Storage Sync Cloud Endpoint. Changing this forces a new Storage Sync Cloud Endpoint to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Storage Sync Cloud Endpoint. Changing this forces a new Storage Sync Cloud Endpoint to be created.\n",
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Storage Account where the Storage Share exists. Changing this forces a new Storage Sync Cloud Endpoint to be created.\n",
          "type": "string"
        },
        "storageAccountTenantId": {
          "description": "The Tenant ID of the Storage Account where the Storage Share exists. Changing this forces a new Storage Sync Cloud Endpoint to be created. Defaults to the current tenant id.\n",
          "type": "string"
        },
        "storageSyncGroupId": {
          "description": "The ID of the Storage Sync Group where this Cloud Endpoint should be created. Changing this forces a new Storage Sync Cloud Endpoint to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "fileShareName",
        "name",
        "storageAccountId",
        "storageAccountTenantId",
        "storageSyncGroupId"
      ],
      "requiredInputs": [
        "fileShareName",
        "storageAccountId",
        "storageSyncGroupId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SyncCloudEndpoint resources.\n",
        "properties": {
          "fileShareName": {
            "description": "The Storage Share name to be synchronized in this Storage Sync Cloud Endpoint. Changing this forces a new Storage Sync Cloud Endpoint to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Storage Sync Cloud Endpoint. Changing this forces a new Storage Sync Cloud Endpoint to be created.\n",
            "type": "string"
          },
          "storageAccountId": {
            "description": "The ID of the Storage Account where the Storage Share exists. Changing this forces a new Storage Sync Cloud Endpoint to be created.\n",
            "type": "string"
          },
          "storageAccountTenantId": {
            "description": "The Tenant ID of the Storage Account where the Storage Share exists. Changing this forces a new Storage Sync Cloud Endpoint to be created. Defaults to the current tenant id.\n",
            "type": "string"
          },
          "storageSyncGroupId": {
            "description": "The ID of the Storage Sync Group where this Cloud Endpoint should be created. Changing this forces a new Storage Sync Cloud Endpoint to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/syncGroup:SyncGroup": {
      "description": "Manages a Storage Sync Group.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleSync = new azure.storage.Sync(\"exampleSync\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst exampleSyncGroup = new azure.storage.SyncGroup(\"exampleSyncGroup\", {storageSyncId: exampleSync.id});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_sync = azure.storage.Sync(\"exampleSync\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\nexample_sync_group = azure.storage.SyncGroup(\"exampleSyncGroup\", storage_sync_id=example_sync.id)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleSync = new Azure.Storage.Sync(\"exampleSync\", new Azure.Storage.SyncArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var exampleSyncGroup = new Azure.Storage.SyncGroup(\"exampleSyncGroup\", new Azure.Storage.SyncGroupArgs\n        {\n            StorageSyncId = exampleSync.Id,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSync, err := storage.NewSync(ctx, \"exampleSync\", \u0026storage.SyncArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewSyncGroup(ctx, \"exampleSyncGroup\", \u0026storage.SyncGroupArgs{\n\t\t\tStorageSyncId: exampleSync.ID(),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStorage Sync Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/syncGroup:SyncGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.StorageSync/storageSyncServices/sync1/syncGroups/group1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name which should be used for this Storage Sync Group. Changing this forces a new Storage Sync Group to be created.\n",
          "type": "string"
        },
        "storageSyncId": {
          "description": "The resource ID of the Storage Sync where this Storage Sync Group is. Changing this forces a new Storage Sync Group to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "The name which should be used for this Storage Sync Group. Changing this forces a new Storage Sync Group to be created.\n",
          "type": "string"
        },
        "storageSyncId": {
          "description": "The resource ID of the Storage Sync where this Storage Sync Group is. Changing this forces a new Storage Sync Group to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "storageSyncId"
      ],
      "requiredInputs": [
        "storageSyncId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SyncGroup resources.\n",
        "properties": {
          "name": {
            "description": "The name which should be used for this Storage Sync Group. Changing this forces a new Storage Sync Group to be created.\n",
            "type": "string"
          },
          "storageSyncId": {
            "description": "The resource ID of the Storage Sync where this Storage Sync Group is. Changing this forces a new Storage Sync Group to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/table:Table": {
      "description": "Manages a Table within an Azure Storage Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleTable = new azure.storage.Table(\"exampleTable\", {storageAccountName: exampleAccount.name});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_table = azure.storage.Table(\"exampleTable\", storage_account_name=example_account.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleTable = new Azure.Storage.Table(\"exampleTable\", new Azure.Storage.TableArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewTable(ctx, \"exampleTable\", \u0026storage.TableArgs{\n\t\t\tStorageAccountName: exampleAccount.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nTable's within a Storage Account can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/table:Table table1 \"https://example.table.core.windows.net/Tables('replace-with-table-name')\"\n```\n\n ",
      "inputProperties": {
        "acls": {
          "description": "One or more `acl` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/TableAcl:TableAcl"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the storage table. Must be unique within the storage account the table is located.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "Specifies the storage account in which to create the storage table.\nChanging this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "acls": {
          "description": "One or more `acl` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/TableAcl:TableAcl"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the storage table. Must be unique within the storage account the table is located.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "Specifies the storage account in which to create the storage table.\nChanging this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "storageAccountName"
      ],
      "requiredInputs": [
        "storageAccountName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Table resources.\n",
        "properties": {
          "acls": {
            "description": "One or more `acl` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:storage/TableAcl:TableAcl"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the storage table. Must be unique within the storage account the table is located.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "Specifies the storage account in which to create the storage table.\nChanging this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/tableEntity:TableEntity": {
      "description": "Manages an Entity within a Table in an Azure Storage Account.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleTable = new azure.storage.Table(\"exampleTable\", {storageAccountName: exampleAccount.name});\nconst exampleTableEntity = new azure.storage.TableEntity(\"exampleTableEntity\", {\n    storageAccountName: exampleAccount.name,\n    tableName: exampleTable.name,\n    partitionKey: \"examplepartition\",\n    rowKey: \"examplerow\",\n    entity: {\n        example: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_table = azure.storage.Table(\"exampleTable\", storage_account_name=example_account.name)\nexample_table_entity = azure.storage.TableEntity(\"exampleTableEntity\",\n    storage_account_name=example_account.name,\n    table_name=example_table.name,\n    partition_key=\"examplepartition\",\n    row_key=\"examplerow\",\n    entity={\n        \"example\": \"example\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleTable = new Azure.Storage.Table(\"exampleTable\", new Azure.Storage.TableArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n        });\n        var exampleTableEntity = new Azure.Storage.TableEntity(\"exampleTableEntity\", new Azure.Storage.TableEntityArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            TableName = exampleTable.Name,\n            PartitionKey = \"examplepartition\",\n            RowKey = \"examplerow\",\n            Entity = \n            {\n                { \"example\", \"example\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTable, err := storage.NewTable(ctx, \"exampleTable\", \u0026storage.TableArgs{\n\t\t\tStorageAccountName: exampleAccount.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewTableEntity(ctx, \"exampleTableEntity\", \u0026storage.TableEntityArgs{\n\t\t\tStorageAccountName: exampleAccount.Name,\n\t\t\tTableName:          exampleTable.Name,\n\t\t\tPartitionKey:       pulumi.String(\"examplepartition\"),\n\t\t\tRowKey:             pulumi.String(\"examplerow\"),\n\t\t\tEntity: pulumi.StringMap{\n\t\t\t\t\"example\": pulumi.String(\"example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEntities within a Table in an Azure Storage Account can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:storage/tableEntity:TableEntity entity1 https://example.table.core.windows.net/table1(PartitionKey='samplepartition',RowKey='samplerow')\n```\n\n ",
      "inputProperties": {
        "entity": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of key/value pairs that describe the entity to be inserted/merged in to the storage table.\n",
          "type": "object"
        },
        "partitionKey": {
          "description": "The key for the partition where the entity will be inserted/merged. Changing this forces a new resource.\n",
          "type": "string"
        },
        "rowKey": {
          "description": "The key for the row where the entity will be inserted/merged. Changing this forces a new resource.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "Specifies the storage account in which to create the storage table entity.\nChanging this forces a new resource to be created.\n",
          "type": "string"
        },
        "tableName": {
          "description": "The name of the storage table in which to create the storage table entity.\nChanging this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "entity": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of key/value pairs that describe the entity to be inserted/merged in to the storage table.\n",
          "type": "object"
        },
        "partitionKey": {
          "description": "The key for the partition where the entity will be inserted/merged. Changing this forces a new resource.\n",
          "type": "string"
        },
        "rowKey": {
          "description": "The key for the row where the entity will be inserted/merged. Changing this forces a new resource.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "Specifies the storage account in which to create the storage table entity.\nChanging this forces a new resource to be created.\n",
          "type": "string"
        },
        "tableName": {
          "description": "The name of the storage table in which to create the storage table entity.\nChanging this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "entity",
        "partitionKey",
        "rowKey",
        "storageAccountName",
        "tableName"
      ],
      "requiredInputs": [
        "entity",
        "partitionKey",
        "rowKey",
        "storageAccountName",
        "tableName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering TableEntity resources.\n",
        "properties": {
          "entity": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of key/value pairs that describe the entity to be inserted/merged in to the storage table.\n",
            "type": "object"
          },
          "partitionKey": {
            "description": "The key for the partition where the entity will be inserted/merged. Changing this forces a new resource.\n",
            "type": "string"
          },
          "rowKey": {
            "description": "The key for the row where the entity will be inserted/merged. Changing this forces a new resource.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "Specifies the storage account in which to create the storage table entity.\nChanging this forces a new resource to be created.\n",
            "type": "string"
          },
          "tableName": {
            "description": "The name of the storage table in which to create the storage table entity.\nChanging this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:storage/zipBlob:ZipBlob": {
      "deprecationMessage": "ZipBlob resource is deprecated in the 2.0 version of the provider. Use Blob resource instead.",
      "inputProperties": {
        "accessTier": {
          "type": "string"
        },
        "content": {
          "$ref": "pulumi.json#/Archive"
        },
        "contentMd5": {
          "type": "string"
        },
        "contentType": {
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "name": {
          "type": "string"
        },
        "parallelism": {
          "type": "integer"
        },
        "size": {
          "type": "integer"
        },
        "sourceContent": {
          "type": "string"
        },
        "sourceUri": {
          "type": "string"
        },
        "storageAccountName": {
          "type": "string"
        },
        "storageContainerName": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "properties": {
        "accessTier": {
          "type": "string"
        },
        "content": {
          "$ref": "pulumi.json#/Archive"
        },
        "contentMd5": {
          "type": "string"
        },
        "contentType": {
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "name": {
          "type": "string"
        },
        "parallelism": {
          "type": "integer"
        },
        "size": {
          "type": "integer"
        },
        "sourceContent": {
          "type": "string"
        },
        "sourceUri": {
          "type": "string"
        },
        "storageAccountName": {
          "type": "string"
        },
        "storageContainerName": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      },
      "required": [
        "accessTier",
        "metadata",
        "name",
        "storageAccountName",
        "storageContainerName",
        "type",
        "url"
      ],
      "requiredInputs": [
        "storageAccountName",
        "storageContainerName",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ZipBlob resources.\n",
        "properties": {
          "accessTier": {
            "type": "string"
          },
          "content": {
            "$ref": "pulumi.json#/Archive"
          },
          "contentMd5": {
            "type": "string"
          },
          "contentType": {
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "parallelism": {
            "type": "integer"
          },
          "size": {
            "type": "integer"
          },
          "sourceContent": {
            "type": "string"
          },
          "sourceUri": {
            "type": "string"
          },
          "storageAccountName": {
            "type": "string"
          },
          "storageContainerName": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:streamanalytics/functionJavaScriptUDF:FunctionJavaScriptUDF": {
      "description": "Manages a JavaScript UDF Function within Stream Analytics Streaming Job.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = azure.core.getResourceGroup({\n    name: \"example-resources\",\n});\nconst exampleJob = azure.streamanalytics.getJob({\n    name: \"example-job\",\n    resourceGroupName: azurerm_resource_group.example.name,\n});\nconst exampleFunctionJavaScriptUDF = new azure.streamanalytics.FunctionJavaScriptUDF(\"exampleFunctionJavaScriptUDF\", {\n    streamAnalyticsJobName: exampleJob.then(exampleJob =\u003e exampleJob.name),\n    resourceGroupName: exampleJob.then(exampleJob =\u003e exampleJob.resourceGroupName),\n    script: `function getRandomNumber(in) {\n  return in;\n}\n`,\n    inputs: [{\n        type: \"bigint\",\n    }],\n    output: {\n        type: \"bigint\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.get_resource_group(name=\"example-resources\")\nexample_job = azure.streamanalytics.get_job(name=\"example-job\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\nexample_function_java_script_udf = azure.streamanalytics.FunctionJavaScriptUDF(\"exampleFunctionJavaScriptUDF\",\n    stream_analytics_job_name=example_job.name,\n    resource_group_name=example_job.resource_group_name,\n    script=\"\"\"function getRandomNumber(in) {\n  return in;\n}\n\"\"\",\n    inputs=[azure.streamanalytics.FunctionJavaScriptUDFInputArgs(\n        type=\"bigint\",\n    )],\n    output=azure.streamanalytics.FunctionJavaScriptUDFOutputArgs(\n        type=\"bigint\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = Output.Create(Azure.Core.GetResourceGroup.InvokeAsync(new Azure.Core.GetResourceGroupArgs\n        {\n            Name = \"example-resources\",\n        }));\n        var exampleJob = Output.Create(Azure.StreamAnalytics.GetJob.InvokeAsync(new Azure.StreamAnalytics.GetJobArgs\n        {\n            Name = \"example-job\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n        var exampleFunctionJavaScriptUDF = new Azure.StreamAnalytics.FunctionJavaScriptUDF(\"exampleFunctionJavaScriptUDF\", new Azure.StreamAnalytics.FunctionJavaScriptUDFArgs\n        {\n            StreamAnalyticsJobName = exampleJob.Apply(exampleJob =\u003e exampleJob.Name),\n            ResourceGroupName = exampleJob.Apply(exampleJob =\u003e exampleJob.ResourceGroupName),\n            Script = @\"function getRandomNumber(in) {\n  return in;\n}\n\",\n            Inputs = \n            {\n                new Azure.StreamAnalytics.Inputs.FunctionJavaScriptUDFInputArgs\n                {\n                    Type = \"bigint\",\n                },\n            },\n            Output = new Azure.StreamAnalytics.Inputs.FunctionJavaScriptUDFOutputArgs\n            {\n                Type = \"bigint\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/streamanalytics\"\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 := core.LookupResourceGroup(ctx, \u0026core.LookupResourceGroupArgs{\n\t\t\tName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleJob, err := streamanalytics.LookupJob(ctx, \u0026streamanalytics.LookupJobArgs{\n\t\t\tName:              \"example-job\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = streamanalytics.NewFunctionJavaScriptUDF(ctx, \"exampleFunctionJavaScriptUDF\", \u0026streamanalytics.FunctionJavaScriptUDFArgs{\n\t\t\tStreamAnalyticsJobName: pulumi.String(exampleJob.Name),\n\t\t\tResourceGroupName:      pulumi.String(exampleJob.ResourceGroupName),\n\t\t\tScript:                 pulumi.String(fmt.Sprintf(\"%v%v%v\", \"function getRandomNumber(in) {\\n\", \"  return in;\\n\", \"}\\n\")),\n\t\t\tInputs: streamanalytics.FunctionJavaScriptUDFInputArray{\n\t\t\t\t\u0026streamanalytics.FunctionJavaScriptUDFInputArgs{\n\t\t\t\t\tType: pulumi.String(\"bigint\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOutput: \u0026streamanalytics.FunctionJavaScriptUDFOutputArgs{\n\t\t\t\tType: pulumi.String(\"bigint\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStream Analytics JavaScript UDF Functions can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:streamanalytics/functionJavaScriptUDF:FunctionJavaScriptUDF example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.StreamAnalytics/streamingjobs/job1/outputs/output1\n```\n\n ",
      "inputProperties": {
        "inputs": {
          "description": "One or more `input` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:streamanalytics/FunctionJavaScriptUDFInput:FunctionJavaScriptUDFInput"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the JavaScript UDF Function. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "output": {
          "$ref": "#/types/azure:streamanalytics/FunctionJavaScriptUDFOutput:FunctionJavaScriptUDFOutput",
          "description": "An `output` blocks as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "script": {
          "description": "The JavaScript of this UDF Function.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job where this Function should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "inputs": {
          "description": "One or more `input` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:streamanalytics/FunctionJavaScriptUDFInput:FunctionJavaScriptUDFInput"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the JavaScript UDF Function. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "output": {
          "$ref": "#/types/azure:streamanalytics/FunctionJavaScriptUDFOutput:FunctionJavaScriptUDFOutput",
          "description": "An `output` blocks as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "script": {
          "description": "The JavaScript of this UDF Function.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job where this Function should be created. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "inputs",
        "name",
        "output",
        "resourceGroupName",
        "script",
        "streamAnalyticsJobName"
      ],
      "requiredInputs": [
        "inputs",
        "output",
        "resourceGroupName",
        "script",
        "streamAnalyticsJobName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FunctionJavaScriptUDF resources.\n",
        "properties": {
          "inputs": {
            "description": "One or more `input` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:streamanalytics/FunctionJavaScriptUDFInput:FunctionJavaScriptUDFInput"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the JavaScript UDF Function. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "output": {
            "$ref": "#/types/azure:streamanalytics/FunctionJavaScriptUDFOutput:FunctionJavaScriptUDFOutput",
            "description": "An `output` blocks as defined below.\n"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "script": {
            "description": "The JavaScript of this UDF Function.\n",
            "type": "string"
          },
          "streamAnalyticsJobName": {
            "description": "The name of the Stream Analytics Job where this Function should be created. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:streamanalytics/job:Job": {
      "description": "Manages a Stream Analytics Job.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleJob = new azure.streamanalytics.Job(\"exampleJob\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    compatibilityLevel: \"1.1\",\n    dataLocale: \"en-GB\",\n    eventsLateArrivalMaxDelayInSeconds: 60,\n    eventsOutOfOrderMaxDelayInSeconds: 50,\n    eventsOutOfOrderPolicy: \"Adjust\",\n    outputErrorPolicy: \"Drop\",\n    streamingUnits: 3,\n    tags: {\n        environment: \"Example\",\n    },\n    transformationQuery: `    SELECT *\n    INTO [YourOutputAlias]\n    FROM [YourInputAlias]\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_job = azure.streamanalytics.Job(\"exampleJob\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    compatibility_level=\"1.1\",\n    data_locale=\"en-GB\",\n    events_late_arrival_max_delay_in_seconds=60,\n    events_out_of_order_max_delay_in_seconds=50,\n    events_out_of_order_policy=\"Adjust\",\n    output_error_policy=\"Drop\",\n    streaming_units=3,\n    tags={\n        \"environment\": \"Example\",\n    },\n    transformation_query=\"\"\"    SELECT *\n    INTO [YourOutputAlias]\n    FROM [YourInputAlias]\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleJob = new Azure.StreamAnalytics.Job(\"exampleJob\", new Azure.StreamAnalytics.JobArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            CompatibilityLevel = \"1.1\",\n            DataLocale = \"en-GB\",\n            EventsLateArrivalMaxDelayInSeconds = 60,\n            EventsOutOfOrderMaxDelayInSeconds = 50,\n            EventsOutOfOrderPolicy = \"Adjust\",\n            OutputErrorPolicy = \"Drop\",\n            StreamingUnits = 3,\n            Tags = \n            {\n                { \"environment\", \"Example\" },\n            },\n            TransformationQuery = @\"    SELECT *\n    INTO [YourOutputAlias]\n    FROM [YourInputAlias]\n\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/streamanalytics\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = streamanalytics.NewJob(ctx, \"exampleJob\", \u0026streamanalytics.JobArgs{\n\t\t\tResourceGroupName:                  exampleResourceGroup.Name,\n\t\t\tLocation:                           exampleResourceGroup.Location,\n\t\t\tCompatibilityLevel:                 pulumi.String(\"1.1\"),\n\t\t\tDataLocale:                         pulumi.String(\"en-GB\"),\n\t\t\tEventsLateArrivalMaxDelayInSeconds: pulumi.Int(60),\n\t\t\tEventsOutOfOrderMaxDelayInSeconds:  pulumi.Int(50),\n\t\t\tEventsOutOfOrderPolicy:             pulumi.String(\"Adjust\"),\n\t\t\tOutputErrorPolicy:                  pulumi.String(\"Drop\"),\n\t\t\tStreamingUnits:                     pulumi.Int(3),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Example\"),\n\t\t\t},\n\t\t\tTransformationQuery: pulumi.String(fmt.Sprintf(\"%v%v%v\", \"    SELECT *\\n\", \"    INTO [YourOutputAlias]\\n\", \"    FROM [YourInputAlias]\\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStream Analytics Job's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:streamanalytics/job:Job example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.StreamAnalytics/streamingjobs/job1\n```\n\n ",
      "inputProperties": {
        "compatibilityLevel": {
          "description": "Specifies the compatibility level for this job - which controls certain runtime behaviours of the streaming job. Possible values are `1.0` and `1.1`.\n",
          "type": "string"
        },
        "dataLocale": {
          "description": "Specifies the Data Locale of the Job, which [should be a supported .NET Culture](https://msdn.microsoft.com/en-us/library/system.globalization.culturetypes(v=vs.110).aspx).\n",
          "type": "string"
        },
        "eventsLateArrivalMaxDelayInSeconds": {
          "description": "Specifies the maximum tolerable delay in seconds where events arriving late could be included. Supported range is `-1` (indefinite) to `1814399` (20d 23h 59m 59s).  Default is `0`.\n",
          "type": "integer"
        },
        "eventsOutOfOrderMaxDelayInSeconds": {
          "description": "Specifies the maximum tolerable delay in seconds where out-of-order events can be adjusted to be back in order. Supported range is `0` to `599` (9m 59s). Default is `5`.\n",
          "type": "integer"
        },
        "eventsOutOfOrderPolicy": {
          "description": "Specifies the policy which should be applied to events which arrive out of order in the input event stream. Possible values are `Adjust` and `Drop`.  Default is `Adjust`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:streamanalytics/JobIdentity:JobIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "location": {
          "description": "The Azure Region in which the Resource Group exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "outputErrorPolicy": {
          "description": "Specifies the policy which should be applied to events which arrive at the output and cannot be written to the external storage due to being malformed (such as missing column values, column values of wrong type or size). Possible values are `Drop` and `Stop`.  Default is `Drop`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "streamingUnits": {
          "description": "Specifies the number of streaming units that the streaming job uses. Supported values are `1`, `3`, `6` and multiples of `6` up to `120`.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "type": "object"
        },
        "transformationQuery": {
          "description": "Specifies the query that will be run in the streaming job, [written in Stream Analytics Query Language (SAQL)](https://msdn.microsoft.com/library/azure/dn834998).\n",
          "type": "string"
        }
      },
      "properties": {
        "compatibilityLevel": {
          "description": "Specifies the compatibility level for this job - which controls certain runtime behaviours of the streaming job. Possible values are `1.0` and `1.1`.\n",
          "type": "string"
        },
        "dataLocale": {
          "description": "Specifies the Data Locale of the Job, which [should be a supported .NET Culture](https://msdn.microsoft.com/en-us/library/system.globalization.culturetypes(v=vs.110).aspx).\n",
          "type": "string"
        },
        "eventsLateArrivalMaxDelayInSeconds": {
          "description": "Specifies the maximum tolerable delay in seconds where events arriving late could be included. Supported range is `-1` (indefinite) to `1814399` (20d 23h 59m 59s).  Default is `0`.\n",
          "type": "integer"
        },
        "eventsOutOfOrderMaxDelayInSeconds": {
          "description": "Specifies the maximum tolerable delay in seconds where out-of-order events can be adjusted to be back in order. Supported range is `0` to `599` (9m 59s). Default is `5`.\n",
          "type": "integer"
        },
        "eventsOutOfOrderPolicy": {
          "description": "Specifies the policy which should be applied to events which arrive out of order in the input event stream. Possible values are `Adjust` and `Drop`.  Default is `Adjust`.\n",
          "type": "string"
        },
        "identity": {
          "$ref": "#/types/azure:streamanalytics/JobIdentity:JobIdentity",
          "description": "An `identity` block as defined below.\n"
        },
        "jobId": {
          "description": "The Job ID assigned by the Stream Analytics Job.\n",
          "type": "string"
        },
        "location": {
          "description": "The Azure Region in which the Resource Group exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "outputErrorPolicy": {
          "description": "Specifies the policy which should be applied to events which arrive at the output and cannot be written to the external storage due to being malformed (such as missing column values, column values of wrong type or size). Possible values are `Drop` and `Stop`.  Default is `Drop`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "streamingUnits": {
          "description": "Specifies the number of streaming units that the streaming job uses. Supported values are `1`, `3`, `6` and multiples of `6` up to `120`.\n",
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "type": "object"
        },
        "transformationQuery": {
          "description": "Specifies the query that will be run in the streaming job, [written in Stream Analytics Query Language (SAQL)](https://msdn.microsoft.com/library/azure/dn834998).\n",
          "type": "string"
        }
      },
      "required": [
        "compatibilityLevel",
        "dataLocale",
        "jobId",
        "location",
        "name",
        "resourceGroupName",
        "streamingUnits",
        "transformationQuery"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "streamingUnits",
        "transformationQuery"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Job resources.\n",
        "properties": {
          "compatibilityLevel": {
            "description": "Specifies the compatibility level for this job - which controls certain runtime behaviours of the streaming job. Possible values are `1.0` and `1.1`.\n",
            "type": "string"
          },
          "dataLocale": {
            "description": "Specifies the Data Locale of the Job, which [should be a supported .NET Culture](https://msdn.microsoft.com/en-us/library/system.globalization.culturetypes(v=vs.110).aspx).\n",
            "type": "string"
          },
          "eventsLateArrivalMaxDelayInSeconds": {
            "description": "Specifies the maximum tolerable delay in seconds where events arriving late could be included. Supported range is `-1` (indefinite) to `1814399` (20d 23h 59m 59s).  Default is `0`.\n",
            "type": "integer"
          },
          "eventsOutOfOrderMaxDelayInSeconds": {
            "description": "Specifies the maximum tolerable delay in seconds where out-of-order events can be adjusted to be back in order. Supported range is `0` to `599` (9m 59s). Default is `5`.\n",
            "type": "integer"
          },
          "eventsOutOfOrderPolicy": {
            "description": "Specifies the policy which should be applied to events which arrive out of order in the input event stream. Possible values are `Adjust` and `Drop`.  Default is `Adjust`.\n",
            "type": "string"
          },
          "identity": {
            "$ref": "#/types/azure:streamanalytics/JobIdentity:JobIdentity",
            "description": "An `identity` block as defined below.\n"
          },
          "jobId": {
            "description": "The Job ID assigned by the Stream Analytics Job.\n",
            "type": "string"
          },
          "location": {
            "description": "The Azure Region in which the Resource Group exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "outputErrorPolicy": {
            "description": "Specifies the policy which should be applied to events which arrive at the output and cannot be written to the external storage due to being malformed (such as missing column values, column values of wrong type or size). Possible values are `Drop` and `Stop`.  Default is `Drop`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Stream Analytics Job should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "streamingUnits": {
            "description": "Specifies the number of streaming units that the streaming job uses. Supported values are `1`, `3`, `6` and multiples of `6` up to `120`.\n",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          },
          "transformationQuery": {
            "description": "Specifies the query that will be run in the streaming job, [written in Stream Analytics Query Language (SAQL)](https://msdn.microsoft.com/library/azure/dn834998).\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:streamanalytics/outputBlob:OutputBlob": {
      "description": "Manages a Stream Analytics Output to Blob Storage.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = azure.core.getResourceGroup({\n    name: \"example-resources\",\n});\nconst exampleJob = azure.streamanalytics.getJob({\n    name: \"example-job\",\n    resourceGroupName: azurerm_resource_group.example.name,\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.name),\n    location: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.location),\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleOutputBlob = new azure.streamanalytics.OutputBlob(\"exampleOutputBlob\", {\n    streamAnalyticsJobName: exampleJob.then(exampleJob =\u003e exampleJob.name),\n    resourceGroupName: exampleJob.then(exampleJob =\u003e exampleJob.resourceGroupName),\n    storageAccountName: exampleAccount.name,\n    storageAccountKey: exampleAccount.primaryAccessKey,\n    storageContainerName: exampleContainer.name,\n    pathPattern: \"some-pattern\",\n    dateFormat: \"yyyy-MM-dd\",\n    timeFormat: \"HH\",\n    serialization: {\n        type: \"Csv\",\n        encoding: \"UTF8\",\n        fieldDelimiter: \",\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.get_resource_group(name=\"example-resources\")\nexample_job = azure.streamanalytics.get_job(name=\"example-job\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_output_blob = azure.streamanalytics.OutputBlob(\"exampleOutputBlob\",\n    stream_analytics_job_name=example_job.name,\n    resource_group_name=example_job.resource_group_name,\n    storage_account_name=example_account.name,\n    storage_account_key=example_account.primary_access_key,\n    storage_container_name=example_container.name,\n    path_pattern=\"some-pattern\",\n    date_format=\"yyyy-MM-dd\",\n    time_format=\"HH\",\n    serialization=azure.streamanalytics.OutputBlobSerializationArgs(\n        type=\"Csv\",\n        encoding=\"UTF8\",\n        field_delimiter=\",\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = Output.Create(Azure.Core.GetResourceGroup.InvokeAsync(new Azure.Core.GetResourceGroupArgs\n        {\n            Name = \"example-resources\",\n        }));\n        var exampleJob = Output.Create(Azure.StreamAnalytics.GetJob.InvokeAsync(new Azure.StreamAnalytics.GetJobArgs\n        {\n            Name = \"example-job\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Name),\n            Location = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Location),\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleOutputBlob = new Azure.StreamAnalytics.OutputBlob(\"exampleOutputBlob\", new Azure.StreamAnalytics.OutputBlobArgs\n        {\n            StreamAnalyticsJobName = exampleJob.Apply(exampleJob =\u003e exampleJob.Name),\n            ResourceGroupName = exampleJob.Apply(exampleJob =\u003e exampleJob.ResourceGroupName),\n            StorageAccountName = exampleAccount.Name,\n            StorageAccountKey = exampleAccount.PrimaryAccessKey,\n            StorageContainerName = exampleContainer.Name,\n            PathPattern = \"some-pattern\",\n            DateFormat = \"yyyy-MM-dd\",\n            TimeFormat = \"HH\",\n            Serialization = new Azure.StreamAnalytics.Inputs.OutputBlobSerializationArgs\n            {\n                Type = \"Csv\",\n                Encoding = \"UTF8\",\n                FieldDelimiter = \",\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/streamanalytics\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.LookupResourceGroup(ctx, \u0026core.LookupResourceGroupArgs{\n\t\t\tName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleJob, err := streamanalytics.LookupJob(ctx, \u0026streamanalytics.LookupJobArgs{\n\t\t\tName:              \"example-job\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      pulumi.String(exampleResourceGroup.Name),\n\t\t\tLocation:               pulumi.String(exampleResourceGroup.Location),\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = streamanalytics.NewOutputBlob(ctx, \"exampleOutputBlob\", \u0026streamanalytics.OutputBlobArgs{\n\t\t\tStreamAnalyticsJobName: pulumi.String(exampleJob.Name),\n\t\t\tResourceGroupName:      pulumi.String(exampleJob.ResourceGroupName),\n\t\t\tStorageAccountName:     exampleAccount.Name,\n\t\t\tStorageAccountKey:      exampleAccount.PrimaryAccessKey,\n\t\t\tStorageContainerName:   exampleContainer.Name,\n\t\t\tPathPattern:            pulumi.String(\"some-pattern\"),\n\t\t\tDateFormat:             pulumi.String(\"yyyy-MM-dd\"),\n\t\t\tTimeFormat:             pulumi.String(\"HH\"),\n\t\t\tSerialization: \u0026streamanalytics.OutputBlobSerializationArgs{\n\t\t\t\tType:           pulumi.String(\"Csv\"),\n\t\t\t\tEncoding:       pulumi.String(\"UTF8\"),\n\t\t\t\tFieldDelimiter: pulumi.String(\",\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStream Analytics Outputs to Blob Storage can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:streamanalytics/outputBlob:OutputBlob example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.StreamAnalytics/streamingjobs/job1/outputs/output1\n```\n\n ",
      "inputProperties": {
        "batchMaxWaitTime": {
          "description": "The maximum wait time per batch in `hh:mm:ss` e.g. `00:02:00` for two minutes.\n",
          "type": "string"
        },
        "batchMinRows": {
          "description": "The minimum number of rows per batch (must be between `0` and `10000`).\n",
          "type": "number"
        },
        "dateFormat": {
          "description": "The date format. Wherever `{date}` appears in `path_pattern`, the value of this property is used as the date format instead.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pathPattern": {
          "description": "The blob path pattern. Not a regular expression. It represents a pattern against which blob names will be matched to determine whether or not they should be included as input or output to the job.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/OutputBlobSerialization:OutputBlobSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "storageAccountKey": {
          "description": "The Access Key which should be used to connect to this Storage Account.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The name of the Storage Account.\n",
          "type": "string"
        },
        "storageContainerName": {
          "description": "The name of the Container within the Storage Account.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "timeFormat": {
          "description": "The time format. Wherever `{time}` appears in `path_pattern`, the value of this property is used as the time format instead.\n",
          "type": "string"
        }
      },
      "properties": {
        "batchMaxWaitTime": {
          "description": "The maximum wait time per batch in `hh:mm:ss` e.g. `00:02:00` for two minutes.\n",
          "type": "string"
        },
        "batchMinRows": {
          "description": "The minimum number of rows per batch (must be between `0` and `10000`).\n",
          "type": "number"
        },
        "dateFormat": {
          "description": "The date format. Wherever `{date}` appears in `path_pattern`, the value of this property is used as the date format instead.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pathPattern": {
          "description": "The blob path pattern. Not a regular expression. It represents a pattern against which blob names will be matched to determine whether or not they should be included as input or output to the job.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/OutputBlobSerialization:OutputBlobSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "storageAccountKey": {
          "description": "The Access Key which should be used to connect to this Storage Account.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The name of the Storage Account.\n",
          "type": "string"
        },
        "storageContainerName": {
          "description": "The name of the Container within the Storage Account.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "timeFormat": {
          "description": "The time format. Wherever `{time}` appears in `path_pattern`, the value of this property is used as the time format instead.\n",
          "type": "string"
        }
      },
      "required": [
        "dateFormat",
        "name",
        "pathPattern",
        "resourceGroupName",
        "serialization",
        "storageAccountKey",
        "storageAccountName",
        "storageContainerName",
        "streamAnalyticsJobName",
        "timeFormat"
      ],
      "requiredInputs": [
        "dateFormat",
        "pathPattern",
        "resourceGroupName",
        "serialization",
        "storageAccountKey",
        "storageAccountName",
        "storageContainerName",
        "streamAnalyticsJobName",
        "timeFormat"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering OutputBlob resources.\n",
        "properties": {
          "batchMaxWaitTime": {
            "description": "The maximum wait time per batch in `hh:mm:ss` e.g. `00:02:00` for two minutes.\n",
            "type": "string"
          },
          "batchMinRows": {
            "description": "The minimum number of rows per batch (must be between `0` and `10000`).\n",
            "type": "number"
          },
          "dateFormat": {
            "description": "The date format. Wherever `{date}` appears in `path_pattern`, the value of this property is used as the date format instead.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "pathPattern": {
            "description": "The blob path pattern. Not a regular expression. It represents a pattern against which blob names will be matched to determine whether or not they should be included as input or output to the job.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serialization": {
            "$ref": "#/types/azure:streamanalytics/OutputBlobSerialization:OutputBlobSerialization",
            "description": "A `serialization` block as defined below.\n"
          },
          "storageAccountKey": {
            "description": "The Access Key which should be used to connect to this Storage Account.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "The name of the Storage Account.\n",
            "type": "string"
          },
          "storageContainerName": {
            "description": "The name of the Container within the Storage Account.\n",
            "type": "string"
          },
          "streamAnalyticsJobName": {
            "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "timeFormat": {
            "description": "The time format. Wherever `{time}` appears in `path_pattern`, the value of this property is used as the time format instead.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:streamanalytics/outputEventHub:OutputEventHub": {
      "description": "Manages a Stream Analytics Output to an EventHub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = azure.core.getResourceGroup({\n    name: \"example-resources\",\n});\nconst exampleJob = azure.streamanalytics.getJob({\n    name: \"example-job\",\n    resourceGroupName: azurerm_resource_group.example.name,\n});\nconst exampleEventHubNamespace = new azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\", {\n    location: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.location),\n    resourceGroupName: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.name),\n    sku: \"Standard\",\n    capacity: 1,\n});\nconst exampleEventHub = new azure.eventhub.EventHub(\"exampleEventHub\", {\n    namespaceName: exampleEventHubNamespace.name,\n    resourceGroupName: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.name),\n    partitionCount: 2,\n    messageRetention: 1,\n});\nconst exampleOutputEventHub = new azure.streamanalytics.OutputEventHub(\"exampleOutputEventHub\", {\n    streamAnalyticsJobName: exampleJob.then(exampleJob =\u003e exampleJob.name),\n    resourceGroupName: exampleJob.then(exampleJob =\u003e exampleJob.resourceGroupName),\n    eventhubName: exampleEventHub.name,\n    servicebusNamespace: exampleEventHubNamespace.name,\n    sharedAccessPolicyKey: exampleEventHubNamespace.defaultPrimaryKey,\n    sharedAccessPolicyName: \"RootManageSharedAccessKey\",\n    serialization: {\n        type: \"Avro\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.get_resource_group(name=\"example-resources\")\nexample_job = azure.streamanalytics.get_job(name=\"example-job\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\nexample_event_hub_namespace = azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    capacity=1)\nexample_event_hub = azure.eventhub.EventHub(\"exampleEventHub\",\n    namespace_name=example_event_hub_namespace.name,\n    resource_group_name=example_resource_group.name,\n    partition_count=2,\n    message_retention=1)\nexample_output_event_hub = azure.streamanalytics.OutputEventHub(\"exampleOutputEventHub\",\n    stream_analytics_job_name=example_job.name,\n    resource_group_name=example_job.resource_group_name,\n    eventhub_name=example_event_hub.name,\n    servicebus_namespace=example_event_hub_namespace.name,\n    shared_access_policy_key=example_event_hub_namespace.default_primary_key,\n    shared_access_policy_name=\"RootManageSharedAccessKey\",\n    serialization=azure.streamanalytics.OutputEventHubSerializationArgs(\n        type=\"Avro\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = Output.Create(Azure.Core.GetResourceGroup.InvokeAsync(new Azure.Core.GetResourceGroupArgs\n        {\n            Name = \"example-resources\",\n        }));\n        var exampleJob = Output.Create(Azure.StreamAnalytics.GetJob.InvokeAsync(new Azure.StreamAnalytics.GetJobArgs\n        {\n            Name = \"example-job\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n        var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"exampleEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Location),\n            ResourceGroupName = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Name),\n            Sku = \"Standard\",\n            Capacity = 1,\n        });\n        var exampleEventHub = new Azure.EventHub.EventHub(\"exampleEventHub\", new Azure.EventHub.EventHubArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Name),\n            PartitionCount = 2,\n            MessageRetention = 1,\n        });\n        var exampleOutputEventHub = new Azure.StreamAnalytics.OutputEventHub(\"exampleOutputEventHub\", new Azure.StreamAnalytics.OutputEventHubArgs\n        {\n            StreamAnalyticsJobName = exampleJob.Apply(exampleJob =\u003e exampleJob.Name),\n            ResourceGroupName = exampleJob.Apply(exampleJob =\u003e exampleJob.ResourceGroupName),\n            EventhubName = exampleEventHub.Name,\n            ServicebusNamespace = exampleEventHubNamespace.Name,\n            SharedAccessPolicyKey = exampleEventHubNamespace.DefaultPrimaryKey,\n            SharedAccessPolicyName = \"RootManageSharedAccessKey\",\n            Serialization = new Azure.StreamAnalytics.Inputs.OutputEventHubSerializationArgs\n            {\n                Type = \"Avro\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/streamanalytics\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.LookupResourceGroup(ctx, \u0026core.LookupResourceGroupArgs{\n\t\t\tName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleJob, err := streamanalytics.LookupJob(ctx, \u0026streamanalytics.LookupJobArgs{\n\t\t\tName:              \"example-job\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHubNamespace, err := eventhub.NewEventHubNamespace(ctx, \"exampleEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          pulumi.String(exampleResourceGroup.Location),\n\t\t\tResourceGroupName: pulumi.String(exampleResourceGroup.Name),\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tCapacity:          pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHub, err := eventhub.NewEventHub(ctx, \"exampleEventHub\", \u0026eventhub.EventHubArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tResourceGroupName: pulumi.String(exampleResourceGroup.Name),\n\t\t\tPartitionCount:    pulumi.Int(2),\n\t\t\tMessageRetention:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = streamanalytics.NewOutputEventHub(ctx, \"exampleOutputEventHub\", \u0026streamanalytics.OutputEventHubArgs{\n\t\t\tStreamAnalyticsJobName: pulumi.String(exampleJob.Name),\n\t\t\tResourceGroupName:      pulumi.String(exampleJob.ResourceGroupName),\n\t\t\tEventhubName:           exampleEventHub.Name,\n\t\t\tServicebusNamespace:    exampleEventHubNamespace.Name,\n\t\t\tSharedAccessPolicyKey:  exampleEventHubNamespace.DefaultPrimaryKey,\n\t\t\tSharedAccessPolicyName: pulumi.String(\"RootManageSharedAccessKey\"),\n\t\t\tSerialization: \u0026streamanalytics.OutputEventHubSerializationArgs{\n\t\t\t\tType: pulumi.String(\"Avro\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStream Analytics Outputs to an EventHub can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:streamanalytics/outputEventHub:OutputEventHub example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.StreamAnalytics/streamingjobs/job1/outputs/output1\n```\n\n ",
      "inputProperties": {
        "eventhubName": {
          "description": "The name of the Event Hub.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "propertyColumns": {
          "description": "A list of property columns to add to the Event Hub output.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/OutputEventHubSerialization:OutputEventHubSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "servicebusNamespace": {
          "description": "The namespace that is associated with the desired Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "sharedAccessPolicyKey": {
          "description": "The shared access policy key for the specified shared access policy.\n",
          "type": "string"
        },
        "sharedAccessPolicyName": {
          "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "eventhubName": {
          "description": "The name of the Event Hub.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "propertyColumns": {
          "description": "A list of property columns to add to the Event Hub output.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/OutputEventHubSerialization:OutputEventHubSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "servicebusNamespace": {
          "description": "The namespace that is associated with the desired Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "sharedAccessPolicyKey": {
          "description": "The shared access policy key for the specified shared access policy.\n",
          "type": "string"
        },
        "sharedAccessPolicyName": {
          "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "eventhubName",
        "name",
        "resourceGroupName",
        "serialization",
        "servicebusNamespace",
        "sharedAccessPolicyKey",
        "sharedAccessPolicyName",
        "streamAnalyticsJobName"
      ],
      "requiredInputs": [
        "eventhubName",
        "resourceGroupName",
        "serialization",
        "servicebusNamespace",
        "sharedAccessPolicyKey",
        "sharedAccessPolicyName",
        "streamAnalyticsJobName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering OutputEventHub resources.\n",
        "properties": {
          "eventhubName": {
            "description": "The name of the Event Hub.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "propertyColumns": {
            "description": "A list of property columns to add to the Event Hub output.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serialization": {
            "$ref": "#/types/azure:streamanalytics/OutputEventHubSerialization:OutputEventHubSerialization",
            "description": "A `serialization` block as defined below.\n"
          },
          "servicebusNamespace": {
            "description": "The namespace that is associated with the desired Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
            "type": "string"
          },
          "sharedAccessPolicyKey": {
            "description": "The shared access policy key for the specified shared access policy.\n",
            "type": "string"
          },
          "sharedAccessPolicyName": {
            "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
            "type": "string"
          },
          "streamAnalyticsJobName": {
            "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:streamanalytics/outputMssql:OutputMssql": {
      "description": "Manages a Stream Analytics Output to Microsoft SQL Server Database.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = azure.core.getResourceGroup({\n    name: \"example-resources\",\n});\nconst exampleJob = azure.streamanalytics.getJob({\n    name: \"example-job\",\n    resourceGroupName: azurerm_resource_group.example.name,\n});\nconst exampleSqlServer = new azure.sql.SqlServer(\"exampleSqlServer\", {\n    resourceGroupName: azurerm_resource_group.example.name,\n    location: azurerm_resource_group.example.location,\n    version: \"12.0\",\n    administratorLogin: \"dbadmin\",\n    administratorLoginPassword: \"example-password\",\n});\nconst exampleDatabase = new azure.sql.Database(\"exampleDatabase\", {\n    resourceGroupName: azurerm_resource_group.example.name,\n    location: azurerm_resource_group.example.location,\n    serverName: exampleSqlServer.name,\n    requestedServiceObjectiveName: \"S0\",\n    collation: \"SQL_LATIN1_GENERAL_CP1_CI_AS\",\n    maxSizeBytes: \"268435456000\",\n    createMode: \"Default\",\n});\nconst exampleOutputMssql = new azure.streamanalytics.OutputMssql(\"exampleOutputMssql\", {\n    streamAnalyticsJobName: azurerm_stream_analytics_job.example.name,\n    resourceGroupName: azurerm_stream_analytics_job.example.resource_group_name,\n    server: exampleSqlServer.fullyQualifiedDomainName,\n    user: exampleSqlServer.administratorLogin,\n    password: exampleSqlServer.administratorLoginPassword,\n    database: exampleDatabase.name,\n    table: \"ExampleTable\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.get_resource_group(name=\"example-resources\")\nexample_job = azure.streamanalytics.get_job(name=\"example-job\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\nexample_sql_server = azure.sql.SqlServer(\"exampleSqlServer\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"],\n    location=azurerm_resource_group[\"example\"][\"location\"],\n    version=\"12.0\",\n    administrator_login=\"dbadmin\",\n    administrator_login_password=\"example-password\")\nexample_database = azure.sql.Database(\"exampleDatabase\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"],\n    location=azurerm_resource_group[\"example\"][\"location\"],\n    server_name=example_sql_server.name,\n    requested_service_objective_name=\"S0\",\n    collation=\"SQL_LATIN1_GENERAL_CP1_CI_AS\",\n    max_size_bytes=\"268435456000\",\n    create_mode=\"Default\")\nexample_output_mssql = azure.streamanalytics.OutputMssql(\"exampleOutputMssql\",\n    stream_analytics_job_name=azurerm_stream_analytics_job[\"example\"][\"name\"],\n    resource_group_name=azurerm_stream_analytics_job[\"example\"][\"resource_group_name\"],\n    server=example_sql_server.fully_qualified_domain_name,\n    user=example_sql_server.administrator_login,\n    password=example_sql_server.administrator_login_password,\n    database=example_database.name,\n    table=\"ExampleTable\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = Output.Create(Azure.Core.GetResourceGroup.InvokeAsync(new Azure.Core.GetResourceGroupArgs\n        {\n            Name = \"example-resources\",\n        }));\n        var exampleJob = Output.Create(Azure.StreamAnalytics.GetJob.InvokeAsync(new Azure.StreamAnalytics.GetJobArgs\n        {\n            Name = \"example-job\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n        var exampleSqlServer = new Azure.Sql.SqlServer(\"exampleSqlServer\", new Azure.Sql.SqlServerArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n            Location = azurerm_resource_group.Example.Location,\n            Version = \"12.0\",\n            AdministratorLogin = \"dbadmin\",\n            AdministratorLoginPassword = \"example-password\",\n        });\n        var exampleDatabase = new Azure.Sql.Database(\"exampleDatabase\", new Azure.Sql.DatabaseArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n            Location = azurerm_resource_group.Example.Location,\n            ServerName = exampleSqlServer.Name,\n            RequestedServiceObjectiveName = \"S0\",\n            Collation = \"SQL_LATIN1_GENERAL_CP1_CI_AS\",\n            MaxSizeBytes = \"268435456000\",\n            CreateMode = \"Default\",\n        });\n        var exampleOutputMssql = new Azure.StreamAnalytics.OutputMssql(\"exampleOutputMssql\", new Azure.StreamAnalytics.OutputMssqlArgs\n        {\n            StreamAnalyticsJobName = azurerm_stream_analytics_job.Example.Name,\n            ResourceGroupName = azurerm_stream_analytics_job.Example.Resource_group_name,\n            Server = exampleSqlServer.FullyQualifiedDomainName,\n            User = exampleSqlServer.AdministratorLogin,\n            Password = exampleSqlServer.AdministratorLoginPassword,\n            Database = exampleDatabase.Name,\n            Table = \"ExampleTable\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/sql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/streamanalytics\"\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 := core.LookupResourceGroup(ctx, \u0026core.LookupResourceGroupArgs{\n\t\t\tName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = streamanalytics.LookupJob(ctx, \u0026streamanalytics.LookupJobArgs{\n\t\t\tName:              \"example-job\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSqlServer, err := sql.NewSqlServer(ctx, \"exampleSqlServer\", \u0026sql.SqlServerArgs{\n\t\t\tResourceGroupName:          pulumi.Any(azurerm_resource_group.Example.Name),\n\t\t\tLocation:                   pulumi.Any(azurerm_resource_group.Example.Location),\n\t\t\tVersion:                    pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin:         pulumi.String(\"dbadmin\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"example-password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDatabase, err := sql.NewDatabase(ctx, \"exampleDatabase\", \u0026sql.DatabaseArgs{\n\t\t\tResourceGroupName:             pulumi.Any(azurerm_resource_group.Example.Name),\n\t\t\tLocation:                      pulumi.Any(azurerm_resource_group.Example.Location),\n\t\t\tServerName:                    exampleSqlServer.Name,\n\t\t\tRequestedServiceObjectiveName: pulumi.String(\"S0\"),\n\t\t\tCollation:                     pulumi.String(\"SQL_LATIN1_GENERAL_CP1_CI_AS\"),\n\t\t\tMaxSizeBytes:                  pulumi.String(\"268435456000\"),\n\t\t\tCreateMode:                    pulumi.String(\"Default\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = streamanalytics.NewOutputMssql(ctx, \"exampleOutputMssql\", \u0026streamanalytics.OutputMssqlArgs{\n\t\t\tStreamAnalyticsJobName: pulumi.Any(azurerm_stream_analytics_job.Example.Name),\n\t\t\tResourceGroupName:      pulumi.Any(azurerm_stream_analytics_job.Example.Resource_group_name),\n\t\t\tServer:                 exampleSqlServer.FullyQualifiedDomainName,\n\t\t\tUser:                   exampleSqlServer.AdministratorLogin,\n\t\t\tPassword:               exampleSqlServer.AdministratorLoginPassword,\n\t\t\tDatabase:               exampleDatabase.Name,\n\t\t\tTable:                  pulumi.String(\"ExampleTable\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStream Analytics Outputs to Microsoft SQL Server Database can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:streamanalytics/outputMssql:OutputMssql example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.StreamAnalytics/streamingjobs/job1/outputs/output1\n```\n\n ",
      "inputProperties": {
        "database": {
          "type": "string"
        },
        "name": {
          "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "password": {
          "description": "Password used together with username, to login to the Microsoft SQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "server": {
          "description": "The SQL server url. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "table": {
          "description": "Table in the database that the output points to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "user": {
          "description": "Username used to login to the Microsoft SQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "database": {
          "type": "string"
        },
        "name": {
          "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "password": {
          "description": "Password used together with username, to login to the Microsoft SQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "server": {
          "description": "The SQL server url. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "table": {
          "description": "Table in the database that the output points to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "user": {
          "description": "Username used to login to the Microsoft SQL Server. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "database",
        "name",
        "password",
        "resourceGroupName",
        "server",
        "streamAnalyticsJobName",
        "table",
        "user"
      ],
      "requiredInputs": [
        "database",
        "password",
        "resourceGroupName",
        "server",
        "streamAnalyticsJobName",
        "table",
        "user"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering OutputMssql resources.\n",
        "properties": {
          "database": {
            "type": "string"
          },
          "name": {
            "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "password": {
            "description": "Password used together with username, to login to the Microsoft SQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "server": {
            "description": "The SQL server url. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "streamAnalyticsJobName": {
            "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "table": {
            "description": "Table in the database that the output points to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "user": {
            "description": "Username used to login to the Microsoft SQL Server. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:streamanalytics/outputServiceBusQueue:OutputServiceBusQueue": {
      "description": "Manages a Stream Analytics Output to a ServiceBus Queue.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = azure.core.getResourceGroup({\n    name: \"example-resources\",\n});\nconst exampleJob = azure.streamanalytics.getJob({\n    name: \"example-job\",\n    resourceGroupName: azurerm_resource_group.example.name,\n});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.location),\n    resourceGroupName: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.name),\n    sku: \"Standard\",\n});\nconst exampleQueue = new azure.servicebus.Queue(\"exampleQueue\", {\n    resourceGroupName: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.name),\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\nconst exampleOutputServiceBusQueue = new azure.streamanalytics.OutputServiceBusQueue(\"exampleOutputServiceBusQueue\", {\n    streamAnalyticsJobName: exampleJob.then(exampleJob =\u003e exampleJob.name),\n    resourceGroupName: exampleJob.then(exampleJob =\u003e exampleJob.resourceGroupName),\n    queueName: exampleQueue.name,\n    servicebusNamespace: exampleNamespace.name,\n    sharedAccessPolicyKey: exampleNamespace.defaultPrimaryKey,\n    sharedAccessPolicyName: \"RootManageSharedAccessKey\",\n    serialization: {\n        format: \"Avro\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.get_resource_group(name=\"example-resources\")\nexample_job = azure.streamanalytics.get_job(name=\"example-job\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\")\nexample_queue = azure.servicebus.Queue(\"exampleQueue\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\nexample_output_service_bus_queue = azure.streamanalytics.OutputServiceBusQueue(\"exampleOutputServiceBusQueue\",\n    stream_analytics_job_name=example_job.name,\n    resource_group_name=example_job.resource_group_name,\n    queue_name=example_queue.name,\n    servicebus_namespace=example_namespace.name,\n    shared_access_policy_key=example_namespace.default_primary_key,\n    shared_access_policy_name=\"RootManageSharedAccessKey\",\n    serialization=azure.streamanalytics.OutputServiceBusQueueSerializationArgs(\n        format=\"Avro\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = Output.Create(Azure.Core.GetResourceGroup.InvokeAsync(new Azure.Core.GetResourceGroupArgs\n        {\n            Name = \"example-resources\",\n        }));\n        var exampleJob = Output.Create(Azure.StreamAnalytics.GetJob.InvokeAsync(new Azure.StreamAnalytics.GetJobArgs\n        {\n            Name = \"example-job\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Location),\n            ResourceGroupName = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Name),\n            Sku = \"Standard\",\n        });\n        var exampleQueue = new Azure.ServiceBus.Queue(\"exampleQueue\", new Azure.ServiceBus.QueueArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Name),\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n        var exampleOutputServiceBusQueue = new Azure.StreamAnalytics.OutputServiceBusQueue(\"exampleOutputServiceBusQueue\", new Azure.StreamAnalytics.OutputServiceBusQueueArgs\n        {\n            StreamAnalyticsJobName = exampleJob.Apply(exampleJob =\u003e exampleJob.Name),\n            ResourceGroupName = exampleJob.Apply(exampleJob =\u003e exampleJob.ResourceGroupName),\n            QueueName = exampleQueue.Name,\n            ServicebusNamespace = exampleNamespace.Name,\n            SharedAccessPolicyKey = exampleNamespace.DefaultPrimaryKey,\n            SharedAccessPolicyName = \"RootManageSharedAccessKey\",\n            Serialization = new Azure.StreamAnalytics.Inputs.OutputServiceBusQueueSerializationArgs\n            {\n                Format = \"Avro\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/streamanalytics\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.LookupResourceGroup(ctx, \u0026core.LookupResourceGroupArgs{\n\t\t\tName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleJob, err := streamanalytics.LookupJob(ctx, \u0026streamanalytics.LookupJobArgs{\n\t\t\tName:              \"example-job\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          pulumi.String(exampleResourceGroup.Location),\n\t\t\tResourceGroupName: pulumi.String(exampleResourceGroup.Name),\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleQueue, err := servicebus.NewQueue(ctx, \"exampleQueue\", \u0026servicebus.QueueArgs{\n\t\t\tResourceGroupName:  pulumi.String(exampleResourceGroup.Name),\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = streamanalytics.NewOutputServiceBusQueue(ctx, \"exampleOutputServiceBusQueue\", \u0026streamanalytics.OutputServiceBusQueueArgs{\n\t\t\tStreamAnalyticsJobName: pulumi.String(exampleJob.Name),\n\t\t\tResourceGroupName:      pulumi.String(exampleJob.ResourceGroupName),\n\t\t\tQueueName:              exampleQueue.Name,\n\t\t\tServicebusNamespace:    exampleNamespace.Name,\n\t\t\tSharedAccessPolicyKey:  exampleNamespace.DefaultPrimaryKey,\n\t\t\tSharedAccessPolicyName: pulumi.String(\"RootManageSharedAccessKey\"),\n\t\t\tSerialization: \u0026streamanalytics.OutputServiceBusQueueSerializationArgs{\n\t\t\t\tFormat: pulumi.String(\"Avro\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStream Analytics Output ServiceBus Queue's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:streamanalytics/outputServiceBusQueue:OutputServiceBusQueue example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.StreamAnalytics/streamingjobs/job1/outputs/output1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "queueName": {
          "description": "The name of the Service Bus Queue.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/OutputServiceBusQueueSerialization:OutputServiceBusQueueSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "servicebusNamespace": {
          "description": "The namespace that is associated with the desired Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "sharedAccessPolicyKey": {
          "description": "The shared access policy key for the specified shared access policy.\n",
          "type": "string"
        },
        "sharedAccessPolicyName": {
          "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "queueName": {
          "description": "The name of the Service Bus Queue.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/OutputServiceBusQueueSerialization:OutputServiceBusQueueSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "servicebusNamespace": {
          "description": "The namespace that is associated with the desired Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "sharedAccessPolicyKey": {
          "description": "The shared access policy key for the specified shared access policy.\n",
          "type": "string"
        },
        "sharedAccessPolicyName": {
          "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "queueName",
        "resourceGroupName",
        "serialization",
        "servicebusNamespace",
        "sharedAccessPolicyKey",
        "sharedAccessPolicyName",
        "streamAnalyticsJobName"
      ],
      "requiredInputs": [
        "queueName",
        "resourceGroupName",
        "serialization",
        "servicebusNamespace",
        "sharedAccessPolicyKey",
        "sharedAccessPolicyName",
        "streamAnalyticsJobName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering OutputServiceBusQueue resources.\n",
        "properties": {
          "name": {
            "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "queueName": {
            "description": "The name of the Service Bus Queue.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serialization": {
            "$ref": "#/types/azure:streamanalytics/OutputServiceBusQueueSerialization:OutputServiceBusQueueSerialization",
            "description": "A `serialization` block as defined below.\n"
          },
          "servicebusNamespace": {
            "description": "The namespace that is associated with the desired Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
            "type": "string"
          },
          "sharedAccessPolicyKey": {
            "description": "The shared access policy key for the specified shared access policy.\n",
            "type": "string"
          },
          "sharedAccessPolicyName": {
            "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
            "type": "string"
          },
          "streamAnalyticsJobName": {
            "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:streamanalytics/outputServicebusTopic:OutputServicebusTopic": {
      "description": "Manages a Stream Analytics Output to a ServiceBus Topic.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = azure.core.getResourceGroup({\n    name: \"example-resources\",\n});\nconst exampleJob = azure.streamanalytics.getJob({\n    name: \"example-job\",\n    resourceGroupName: azurerm_resource_group.example.name,\n});\nconst exampleNamespace = new azure.servicebus.Namespace(\"exampleNamespace\", {\n    location: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.location),\n    resourceGroupName: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.name),\n    sku: \"Standard\",\n});\nconst exampleTopic = new azure.servicebus.Topic(\"exampleTopic\", {\n    resourceGroupName: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.name),\n    namespaceName: exampleNamespace.name,\n    enablePartitioning: true,\n});\nconst exampleOutputServicebusTopic = new azure.streamanalytics.OutputServicebusTopic(\"exampleOutputServicebusTopic\", {\n    streamAnalyticsJobName: exampleJob.then(exampleJob =\u003e exampleJob.name),\n    resourceGroupName: exampleJob.then(exampleJob =\u003e exampleJob.resourceGroupName),\n    topicName: exampleTopic.name,\n    servicebusNamespace: exampleNamespace.name,\n    sharedAccessPolicyKey: exampleNamespace.defaultPrimaryKey,\n    sharedAccessPolicyName: \"RootManageSharedAccessKey\",\n    serialization: {\n        format: \"Avro\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.get_resource_group(name=\"example-resources\")\nexample_job = azure.streamanalytics.get_job(name=\"example-job\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\nexample_namespace = azure.servicebus.Namespace(\"exampleNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\")\nexample_topic = azure.servicebus.Topic(\"exampleTopic\",\n    resource_group_name=example_resource_group.name,\n    namespace_name=example_namespace.name,\n    enable_partitioning=True)\nexample_output_servicebus_topic = azure.streamanalytics.OutputServicebusTopic(\"exampleOutputServicebusTopic\",\n    stream_analytics_job_name=example_job.name,\n    resource_group_name=example_job.resource_group_name,\n    topic_name=example_topic.name,\n    servicebus_namespace=example_namespace.name,\n    shared_access_policy_key=example_namespace.default_primary_key,\n    shared_access_policy_name=\"RootManageSharedAccessKey\",\n    serialization=azure.streamanalytics.OutputServicebusTopicSerializationArgs(\n        format=\"Avro\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = Output.Create(Azure.Core.GetResourceGroup.InvokeAsync(new Azure.Core.GetResourceGroupArgs\n        {\n            Name = \"example-resources\",\n        }));\n        var exampleJob = Output.Create(Azure.StreamAnalytics.GetJob.InvokeAsync(new Azure.StreamAnalytics.GetJobArgs\n        {\n            Name = \"example-job\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n        var exampleNamespace = new Azure.ServiceBus.Namespace(\"exampleNamespace\", new Azure.ServiceBus.NamespaceArgs\n        {\n            Location = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Location),\n            ResourceGroupName = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Name),\n            Sku = \"Standard\",\n        });\n        var exampleTopic = new Azure.ServiceBus.Topic(\"exampleTopic\", new Azure.ServiceBus.TopicArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Name),\n            NamespaceName = exampleNamespace.Name,\n            EnablePartitioning = true,\n        });\n        var exampleOutputServicebusTopic = new Azure.StreamAnalytics.OutputServicebusTopic(\"exampleOutputServicebusTopic\", new Azure.StreamAnalytics.OutputServicebusTopicArgs\n        {\n            StreamAnalyticsJobName = exampleJob.Apply(exampleJob =\u003e exampleJob.Name),\n            ResourceGroupName = exampleJob.Apply(exampleJob =\u003e exampleJob.ResourceGroupName),\n            TopicName = exampleTopic.Name,\n            ServicebusNamespace = exampleNamespace.Name,\n            SharedAccessPolicyKey = exampleNamespace.DefaultPrimaryKey,\n            SharedAccessPolicyName = \"RootManageSharedAccessKey\",\n            Serialization = new Azure.StreamAnalytics.Inputs.OutputServicebusTopicSerializationArgs\n            {\n                Format = \"Avro\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/servicebus\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/streamanalytics\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.LookupResourceGroup(ctx, \u0026core.LookupResourceGroupArgs{\n\t\t\tName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleJob, err := streamanalytics.LookupJob(ctx, \u0026streamanalytics.LookupJobArgs{\n\t\t\tName:              \"example-job\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := servicebus.NewNamespace(ctx, \"exampleNamespace\", \u0026servicebus.NamespaceArgs{\n\t\t\tLocation:          pulumi.String(exampleResourceGroup.Location),\n\t\t\tResourceGroupName: pulumi.String(exampleResourceGroup.Name),\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := servicebus.NewTopic(ctx, \"exampleTopic\", \u0026servicebus.TopicArgs{\n\t\t\tResourceGroupName:  pulumi.String(exampleResourceGroup.Name),\n\t\t\tNamespaceName:      exampleNamespace.Name,\n\t\t\tEnablePartitioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = streamanalytics.NewOutputServicebusTopic(ctx, \"exampleOutputServicebusTopic\", \u0026streamanalytics.OutputServicebusTopicArgs{\n\t\t\tStreamAnalyticsJobName: pulumi.String(exampleJob.Name),\n\t\t\tResourceGroupName:      pulumi.String(exampleJob.ResourceGroupName),\n\t\t\tTopicName:              exampleTopic.Name,\n\t\t\tServicebusNamespace:    exampleNamespace.Name,\n\t\t\tSharedAccessPolicyKey:  exampleNamespace.DefaultPrimaryKey,\n\t\t\tSharedAccessPolicyName: pulumi.String(\"RootManageSharedAccessKey\"),\n\t\t\tSerialization: \u0026streamanalytics.OutputServicebusTopicSerializationArgs{\n\t\t\t\tFormat: pulumi.String(\"Avro\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStream Analytics Output ServiceBus Topic's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:streamanalytics/outputServicebusTopic:OutputServicebusTopic example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.StreamAnalytics/streamingjobs/job1/outputs/output1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/OutputServicebusTopicSerialization:OutputServicebusTopicSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "servicebusNamespace": {
          "description": "The namespace that is associated with the desired Event Hub, Service Bus Topic, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "sharedAccessPolicyKey": {
          "description": "The shared access policy key for the specified shared access policy.\n",
          "type": "string"
        },
        "sharedAccessPolicyName": {
          "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "topicName": {
          "description": "The name of the Service Bus Topic.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/OutputServicebusTopicSerialization:OutputServicebusTopicSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "servicebusNamespace": {
          "description": "The namespace that is associated with the desired Event Hub, Service Bus Topic, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "sharedAccessPolicyKey": {
          "description": "The shared access policy key for the specified shared access policy.\n",
          "type": "string"
        },
        "sharedAccessPolicyName": {
          "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "topicName": {
          "description": "The name of the Service Bus Topic.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "serialization",
        "servicebusNamespace",
        "sharedAccessPolicyKey",
        "sharedAccessPolicyName",
        "streamAnalyticsJobName",
        "topicName"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "serialization",
        "servicebusNamespace",
        "sharedAccessPolicyKey",
        "sharedAccessPolicyName",
        "streamAnalyticsJobName",
        "topicName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering OutputServicebusTopic resources.\n",
        "properties": {
          "name": {
            "description": "The name of the Stream Output. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serialization": {
            "$ref": "#/types/azure:streamanalytics/OutputServicebusTopicSerialization:OutputServicebusTopicSerialization",
            "description": "A `serialization` block as defined below.\n"
          },
          "servicebusNamespace": {
            "description": "The namespace that is associated with the desired Event Hub, Service Bus Topic, Service Bus Topic, etc.\n",
            "type": "string"
          },
          "sharedAccessPolicyKey": {
            "description": "The shared access policy key for the specified shared access policy.\n",
            "type": "string"
          },
          "sharedAccessPolicyName": {
            "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
            "type": "string"
          },
          "streamAnalyticsJobName": {
            "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "topicName": {
            "description": "The name of the Service Bus Topic.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:streamanalytics/referenceInputBlob:ReferenceInputBlob": {
      "description": "Manages a Stream Analytics Reference Input Blob. Reference data (also known as a lookup table) is a finite data set that is static or slowly changing in nature, used to perform a lookup or to correlate with your data stream. Learn more [here](https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-use-reference-data#azure-blob-storage).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = azure.core.getResourceGroup({\n    name: \"example-resources\",\n});\nconst exampleJob = azure.streamanalytics.getJob({\n    name: \"example-job\",\n    resourceGroupName: azurerm_resource_group.example.name,\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: azurerm_resource_group.example.name,\n    location: azurerm_resource_group.example.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst test = new azure.streamanalytics.ReferenceInputBlob(\"test\", {\n    streamAnalyticsJobName: exampleJob.then(exampleJob =\u003e exampleJob.name),\n    resourceGroupName: exampleJob.then(exampleJob =\u003e exampleJob.resourceGroupName),\n    storageAccountName: exampleAccount.name,\n    storageAccountKey: exampleAccount.primaryAccessKey,\n    storageContainerName: exampleContainer.name,\n    pathPattern: \"some-random-pattern\",\n    dateFormat: \"yyyy/MM/dd\",\n    timeFormat: \"HH\",\n    serialization: {\n        type: \"Json\",\n        encoding: \"UTF8\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.get_resource_group(name=\"example-resources\")\nexample_job = azure.streamanalytics.get_job(name=\"example-job\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"],\n    location=azurerm_resource_group[\"example\"][\"location\"],\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\ntest = azure.streamanalytics.ReferenceInputBlob(\"test\",\n    stream_analytics_job_name=example_job.name,\n    resource_group_name=example_job.resource_group_name,\n    storage_account_name=example_account.name,\n    storage_account_key=example_account.primary_access_key,\n    storage_container_name=example_container.name,\n    path_pattern=\"some-random-pattern\",\n    date_format=\"yyyy/MM/dd\",\n    time_format=\"HH\",\n    serialization=azure.streamanalytics.ReferenceInputBlobSerializationArgs(\n        type=\"Json\",\n        encoding=\"UTF8\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = Output.Create(Azure.Core.GetResourceGroup.InvokeAsync(new Azure.Core.GetResourceGroupArgs\n        {\n            Name = \"example-resources\",\n        }));\n        var exampleJob = Output.Create(Azure.StreamAnalytics.GetJob.InvokeAsync(new Azure.StreamAnalytics.GetJobArgs\n        {\n            Name = \"example-job\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n            Location = azurerm_resource_group.Example.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var test = new Azure.StreamAnalytics.ReferenceInputBlob(\"test\", new Azure.StreamAnalytics.ReferenceInputBlobArgs\n        {\n            StreamAnalyticsJobName = exampleJob.Apply(exampleJob =\u003e exampleJob.Name),\n            ResourceGroupName = exampleJob.Apply(exampleJob =\u003e exampleJob.ResourceGroupName),\n            StorageAccountName = exampleAccount.Name,\n            StorageAccountKey = exampleAccount.PrimaryAccessKey,\n            StorageContainerName = exampleContainer.Name,\n            PathPattern = \"some-random-pattern\",\n            DateFormat = \"yyyy/MM/dd\",\n            TimeFormat = \"HH\",\n            Serialization = new Azure.StreamAnalytics.Inputs.ReferenceInputBlobSerializationArgs\n            {\n                Type = \"Json\",\n                Encoding = \"UTF8\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/streamanalytics\"\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 := core.LookupResourceGroup(ctx, \u0026core.LookupResourceGroupArgs{\n\t\t\tName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleJob, err := streamanalytics.LookupJob(ctx, \u0026streamanalytics.LookupJobArgs{\n\t\t\tName:              \"example-job\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      pulumi.Any(azurerm_resource_group.Example.Name),\n\t\t\tLocation:               pulumi.Any(azurerm_resource_group.Example.Location),\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = streamanalytics.NewReferenceInputBlob(ctx, \"test\", \u0026streamanalytics.ReferenceInputBlobArgs{\n\t\t\tStreamAnalyticsJobName: pulumi.String(exampleJob.Name),\n\t\t\tResourceGroupName:      pulumi.String(exampleJob.ResourceGroupName),\n\t\t\tStorageAccountName:     exampleAccount.Name,\n\t\t\tStorageAccountKey:      exampleAccount.PrimaryAccessKey,\n\t\t\tStorageContainerName:   exampleContainer.Name,\n\t\t\tPathPattern:            pulumi.String(\"some-random-pattern\"),\n\t\t\tDateFormat:             pulumi.String(\"yyyy/MM/dd\"),\n\t\t\tTimeFormat:             pulumi.String(\"HH\"),\n\t\t\tSerialization: \u0026streamanalytics.ReferenceInputBlobSerializationArgs{\n\t\t\t\tType:     pulumi.String(\"Json\"),\n\t\t\t\tEncoding: pulumi.String(\"UTF8\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStream Analytics Reference Input Blob's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:streamanalytics/referenceInputBlob:ReferenceInputBlob example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.StreamAnalytics/streamingjobs/job1/inputs/input1\n```\n\n ",
      "inputProperties": {
        "dateFormat": {
          "description": "The date format. Wherever `{date}` appears in `path_pattern`, the value of this property is used as the date format instead.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Reference Input Blob. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pathPattern": {
          "description": "The blob path pattern. Not a regular expression. It represents a pattern against which blob names will be matched to determine whether or not they should be included as input or output to the job.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/ReferenceInputBlobSerialization:ReferenceInputBlobSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "storageAccountKey": {
          "description": "The Access Key which should be used to connect to this Storage Account.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The name of the Storage Account that has the blob container with reference data.\n",
          "type": "string"
        },
        "storageContainerName": {
          "description": "The name of the Container within the Storage Account.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "timeFormat": {
          "description": "The time format. Wherever `{time}` appears in `path_pattern`, the value of this property is used as the time format instead.\n",
          "type": "string"
        }
      },
      "properties": {
        "dateFormat": {
          "description": "The date format. Wherever `{date}` appears in `path_pattern`, the value of this property is used as the date format instead.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Reference Input Blob. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pathPattern": {
          "description": "The blob path pattern. Not a regular expression. It represents a pattern against which blob names will be matched to determine whether or not they should be included as input or output to the job.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/ReferenceInputBlobSerialization:ReferenceInputBlobSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "storageAccountKey": {
          "description": "The Access Key which should be used to connect to this Storage Account.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The name of the Storage Account that has the blob container with reference data.\n",
          "type": "string"
        },
        "storageContainerName": {
          "description": "The name of the Container within the Storage Account.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "timeFormat": {
          "description": "The time format. Wherever `{time}` appears in `path_pattern`, the value of this property is used as the time format instead.\n",
          "type": "string"
        }
      },
      "required": [
        "dateFormat",
        "name",
        "pathPattern",
        "resourceGroupName",
        "serialization",
        "storageAccountKey",
        "storageAccountName",
        "storageContainerName",
        "streamAnalyticsJobName",
        "timeFormat"
      ],
      "requiredInputs": [
        "dateFormat",
        "pathPattern",
        "resourceGroupName",
        "serialization",
        "storageAccountKey",
        "storageAccountName",
        "storageContainerName",
        "streamAnalyticsJobName",
        "timeFormat"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ReferenceInputBlob resources.\n",
        "properties": {
          "dateFormat": {
            "description": "The date format. Wherever `{date}` appears in `path_pattern`, the value of this property is used as the date format instead.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Reference Input Blob. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "pathPattern": {
            "description": "The blob path pattern. Not a regular expression. It represents a pattern against which blob names will be matched to determine whether or not they should be included as input or output to the job.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serialization": {
            "$ref": "#/types/azure:streamanalytics/ReferenceInputBlobSerialization:ReferenceInputBlobSerialization",
            "description": "A `serialization` block as defined below.\n"
          },
          "storageAccountKey": {
            "description": "The Access Key which should be used to connect to this Storage Account.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "The name of the Storage Account that has the blob container with reference data.\n",
            "type": "string"
          },
          "storageContainerName": {
            "description": "The name of the Container within the Storage Account.\n",
            "type": "string"
          },
          "streamAnalyticsJobName": {
            "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "timeFormat": {
            "description": "The time format. Wherever `{time}` appears in `path_pattern`, the value of this property is used as the time format instead.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:streamanalytics/streamInputBlob:StreamInputBlob": {
      "description": "Manages a Stream Analytics Stream Input Blob.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = azure.core.getResourceGroup({\n    name: \"example-resources\",\n});\nconst exampleJob = azure.streamanalytics.getJob({\n    name: \"example-job\",\n    resourceGroupName: azurerm_resource_group.example.name,\n});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: azurerm_resource_group.example.name,\n    location: azurerm_resource_group.example.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"exampleContainer\", {\n    storageAccountName: exampleAccount.name,\n    containerAccessType: \"private\",\n});\nconst exampleStreamInputBlob = new azure.streamanalytics.StreamInputBlob(\"exampleStreamInputBlob\", {\n    streamAnalyticsJobName: exampleJob.then(exampleJob =\u003e exampleJob.name),\n    resourceGroupName: exampleJob.then(exampleJob =\u003e exampleJob.resourceGroupName),\n    storageAccountName: exampleAccount.name,\n    storageAccountKey: exampleAccount.primaryAccessKey,\n    storageContainerName: exampleContainer.name,\n    pathPattern: \"some-random-pattern\",\n    dateFormat: \"yyyy/MM/dd\",\n    timeFormat: \"HH\",\n    serialization: {\n        type: \"Json\",\n        encoding: \"UTF8\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.get_resource_group(name=\"example-resources\")\nexample_job = azure.streamanalytics.get_job(name=\"example-job\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"],\n    location=azurerm_resource_group[\"example\"][\"location\"],\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"exampleContainer\",\n    storage_account_name=example_account.name,\n    container_access_type=\"private\")\nexample_stream_input_blob = azure.streamanalytics.StreamInputBlob(\"exampleStreamInputBlob\",\n    stream_analytics_job_name=example_job.name,\n    resource_group_name=example_job.resource_group_name,\n    storage_account_name=example_account.name,\n    storage_account_key=example_account.primary_access_key,\n    storage_container_name=example_container.name,\n    path_pattern=\"some-random-pattern\",\n    date_format=\"yyyy/MM/dd\",\n    time_format=\"HH\",\n    serialization=azure.streamanalytics.StreamInputBlobSerializationArgs(\n        type=\"Json\",\n        encoding=\"UTF8\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = Output.Create(Azure.Core.GetResourceGroup.InvokeAsync(new Azure.Core.GetResourceGroupArgs\n        {\n            Name = \"example-resources\",\n        }));\n        var exampleJob = Output.Create(Azure.StreamAnalytics.GetJob.InvokeAsync(new Azure.StreamAnalytics.GetJobArgs\n        {\n            Name = \"example-job\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n            Location = azurerm_resource_group.Example.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n        });\n        var exampleContainer = new Azure.Storage.Container(\"exampleContainer\", new Azure.Storage.ContainerArgs\n        {\n            StorageAccountName = exampleAccount.Name,\n            ContainerAccessType = \"private\",\n        });\n        var exampleStreamInputBlob = new Azure.StreamAnalytics.StreamInputBlob(\"exampleStreamInputBlob\", new Azure.StreamAnalytics.StreamInputBlobArgs\n        {\n            StreamAnalyticsJobName = exampleJob.Apply(exampleJob =\u003e exampleJob.Name),\n            ResourceGroupName = exampleJob.Apply(exampleJob =\u003e exampleJob.ResourceGroupName),\n            StorageAccountName = exampleAccount.Name,\n            StorageAccountKey = exampleAccount.PrimaryAccessKey,\n            StorageContainerName = exampleContainer.Name,\n            PathPattern = \"some-random-pattern\",\n            DateFormat = \"yyyy/MM/dd\",\n            TimeFormat = \"HH\",\n            Serialization = new Azure.StreamAnalytics.Inputs.StreamInputBlobSerializationArgs\n            {\n                Type = \"Json\",\n                Encoding = \"UTF8\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/streamanalytics\"\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 := core.LookupResourceGroup(ctx, \u0026core.LookupResourceGroupArgs{\n\t\t\tName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleJob, err := streamanalytics.LookupJob(ctx, \u0026streamanalytics.LookupJobArgs{\n\t\t\tName:              \"example-job\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      pulumi.Any(azurerm_resource_group.Example.Name),\n\t\t\tLocation:               pulumi.Any(azurerm_resource_group.Example.Location),\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := storage.NewContainer(ctx, \"exampleContainer\", \u0026storage.ContainerArgs{\n\t\t\tStorageAccountName:  exampleAccount.Name,\n\t\t\tContainerAccessType: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = streamanalytics.NewStreamInputBlob(ctx, \"exampleStreamInputBlob\", \u0026streamanalytics.StreamInputBlobArgs{\n\t\t\tStreamAnalyticsJobName: pulumi.String(exampleJob.Name),\n\t\t\tResourceGroupName:      pulumi.String(exampleJob.ResourceGroupName),\n\t\t\tStorageAccountName:     exampleAccount.Name,\n\t\t\tStorageAccountKey:      exampleAccount.PrimaryAccessKey,\n\t\t\tStorageContainerName:   exampleContainer.Name,\n\t\t\tPathPattern:            pulumi.String(\"some-random-pattern\"),\n\t\t\tDateFormat:             pulumi.String(\"yyyy/MM/dd\"),\n\t\t\tTimeFormat:             pulumi.String(\"HH\"),\n\t\t\tSerialization: \u0026streamanalytics.StreamInputBlobSerializationArgs{\n\t\t\t\tType:     pulumi.String(\"Json\"),\n\t\t\t\tEncoding: pulumi.String(\"UTF8\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStream Analytics Stream Input Blob's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:streamanalytics/streamInputBlob:StreamInputBlob example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.StreamAnalytics/streamingjobs/job1/inputs/input1\n```\n\n ",
      "inputProperties": {
        "dateFormat": {
          "description": "The date format. Wherever `{date}` appears in `path_pattern`, the value of this property is used as the date format instead.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Stream Input Blob. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pathPattern": {
          "description": "The blob path pattern. Not a regular expression. It represents a pattern against which blob names will be matched to determine whether or not they should be included as input or output to the job.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/StreamInputBlobSerialization:StreamInputBlobSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "storageAccountKey": {
          "description": "The Access Key which should be used to connect to this Storage Account.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The name of the Storage Account.\n",
          "type": "string"
        },
        "storageContainerName": {
          "description": "The name of the Container within the Storage Account.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "timeFormat": {
          "description": "The time format. Wherever `{time}` appears in `path_pattern`, the value of this property is used as the time format instead.\n",
          "type": "string"
        }
      },
      "properties": {
        "dateFormat": {
          "description": "The date format. Wherever `{date}` appears in `path_pattern`, the value of this property is used as the date format instead.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Stream Input Blob. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pathPattern": {
          "description": "The blob path pattern. Not a regular expression. It represents a pattern against which blob names will be matched to determine whether or not they should be included as input or output to the job.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/StreamInputBlobSerialization:StreamInputBlobSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "storageAccountKey": {
          "description": "The Access Key which should be used to connect to this Storage Account.\n",
          "type": "string"
        },
        "storageAccountName": {
          "description": "The name of the Storage Account.\n",
          "type": "string"
        },
        "storageContainerName": {
          "description": "The name of the Container within the Storage Account.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "timeFormat": {
          "description": "The time format. Wherever `{time}` appears in `path_pattern`, the value of this property is used as the time format instead.\n",
          "type": "string"
        }
      },
      "required": [
        "dateFormat",
        "name",
        "pathPattern",
        "resourceGroupName",
        "serialization",
        "storageAccountKey",
        "storageAccountName",
        "storageContainerName",
        "streamAnalyticsJobName",
        "timeFormat"
      ],
      "requiredInputs": [
        "dateFormat",
        "pathPattern",
        "resourceGroupName",
        "serialization",
        "storageAccountKey",
        "storageAccountName",
        "storageContainerName",
        "streamAnalyticsJobName",
        "timeFormat"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StreamInputBlob resources.\n",
        "properties": {
          "dateFormat": {
            "description": "The date format. Wherever `{date}` appears in `path_pattern`, the value of this property is used as the date format instead.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Stream Input Blob. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "pathPattern": {
            "description": "The blob path pattern. Not a regular expression. It represents a pattern against which blob names will be matched to determine whether or not they should be included as input or output to the job.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serialization": {
            "$ref": "#/types/azure:streamanalytics/StreamInputBlobSerialization:StreamInputBlobSerialization",
            "description": "A `serialization` block as defined below.\n"
          },
          "storageAccountKey": {
            "description": "The Access Key which should be used to connect to this Storage Account.\n",
            "type": "string"
          },
          "storageAccountName": {
            "description": "The name of the Storage Account.\n",
            "type": "string"
          },
          "storageContainerName": {
            "description": "The name of the Container within the Storage Account.\n",
            "type": "string"
          },
          "streamAnalyticsJobName": {
            "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "timeFormat": {
            "description": "The time format. Wherever `{time}` appears in `path_pattern`, the value of this property is used as the time format instead.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:streamanalytics/streamInputEventHub:StreamInputEventHub": {
      "description": "Manages a Stream Analytics Stream Input EventHub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = azure.core.getResourceGroup({\n    name: \"example-resources\",\n});\nconst exampleJob = azure.streamanalytics.getJob({\n    name: \"example-job\",\n    resourceGroupName: azurerm_resource_group.example.name,\n});\nconst exampleEventHubNamespace = new azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\", {\n    location: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.location),\n    resourceGroupName: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.name),\n    sku: \"Standard\",\n    capacity: 1,\n});\nconst exampleEventHub = new azure.eventhub.EventHub(\"exampleEventHub\", {\n    namespaceName: exampleEventHubNamespace.name,\n    resourceGroupName: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.name),\n    partitionCount: 2,\n    messageRetention: 1,\n});\nconst exampleConsumerGroup = new azure.eventhub.ConsumerGroup(\"exampleConsumerGroup\", {\n    namespaceName: exampleEventHubNamespace.name,\n    eventhubName: exampleEventHub.name,\n    resourceGroupName: exampleResourceGroup.then(exampleResourceGroup =\u003e exampleResourceGroup.name),\n});\nconst exampleStreamInputEventHub = new azure.streamanalytics.StreamInputEventHub(\"exampleStreamInputEventHub\", {\n    streamAnalyticsJobName: exampleJob.then(exampleJob =\u003e exampleJob.name),\n    resourceGroupName: exampleJob.then(exampleJob =\u003e exampleJob.resourceGroupName),\n    eventhubConsumerGroupName: exampleConsumerGroup.name,\n    eventhubName: exampleEventHub.name,\n    servicebusNamespace: exampleEventHubNamespace.name,\n    sharedAccessPolicyKey: exampleEventHubNamespace.defaultPrimaryKey,\n    sharedAccessPolicyName: \"RootManageSharedAccessKey\",\n    serialization: {\n        type: \"Json\",\n        encoding: \"UTF8\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.get_resource_group(name=\"example-resources\")\nexample_job = azure.streamanalytics.get_job(name=\"example-job\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\nexample_event_hub_namespace = azure.eventhub.EventHubNamespace(\"exampleEventHubNamespace\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    sku=\"Standard\",\n    capacity=1)\nexample_event_hub = azure.eventhub.EventHub(\"exampleEventHub\",\n    namespace_name=example_event_hub_namespace.name,\n    resource_group_name=example_resource_group.name,\n    partition_count=2,\n    message_retention=1)\nexample_consumer_group = azure.eventhub.ConsumerGroup(\"exampleConsumerGroup\",\n    namespace_name=example_event_hub_namespace.name,\n    eventhub_name=example_event_hub.name,\n    resource_group_name=example_resource_group.name)\nexample_stream_input_event_hub = azure.streamanalytics.StreamInputEventHub(\"exampleStreamInputEventHub\",\n    stream_analytics_job_name=example_job.name,\n    resource_group_name=example_job.resource_group_name,\n    eventhub_consumer_group_name=example_consumer_group.name,\n    eventhub_name=example_event_hub.name,\n    servicebus_namespace=example_event_hub_namespace.name,\n    shared_access_policy_key=example_event_hub_namespace.default_primary_key,\n    shared_access_policy_name=\"RootManageSharedAccessKey\",\n    serialization=azure.streamanalytics.StreamInputEventHubSerializationArgs(\n        type=\"Json\",\n        encoding=\"UTF8\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = Output.Create(Azure.Core.GetResourceGroup.InvokeAsync(new Azure.Core.GetResourceGroupArgs\n        {\n            Name = \"example-resources\",\n        }));\n        var exampleJob = Output.Create(Azure.StreamAnalytics.GetJob.InvokeAsync(new Azure.StreamAnalytics.GetJobArgs\n        {\n            Name = \"example-job\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n        var exampleEventHubNamespace = new Azure.EventHub.EventHubNamespace(\"exampleEventHubNamespace\", new Azure.EventHub.EventHubNamespaceArgs\n        {\n            Location = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Location),\n            ResourceGroupName = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Name),\n            Sku = \"Standard\",\n            Capacity = 1,\n        });\n        var exampleEventHub = new Azure.EventHub.EventHub(\"exampleEventHub\", new Azure.EventHub.EventHubArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            ResourceGroupName = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Name),\n            PartitionCount = 2,\n            MessageRetention = 1,\n        });\n        var exampleConsumerGroup = new Azure.EventHub.ConsumerGroup(\"exampleConsumerGroup\", new Azure.EventHub.ConsumerGroupArgs\n        {\n            NamespaceName = exampleEventHubNamespace.Name,\n            EventhubName = exampleEventHub.Name,\n            ResourceGroupName = exampleResourceGroup.Apply(exampleResourceGroup =\u003e exampleResourceGroup.Name),\n        });\n        var exampleStreamInputEventHub = new Azure.StreamAnalytics.StreamInputEventHub(\"exampleStreamInputEventHub\", new Azure.StreamAnalytics.StreamInputEventHubArgs\n        {\n            StreamAnalyticsJobName = exampleJob.Apply(exampleJob =\u003e exampleJob.Name),\n            ResourceGroupName = exampleJob.Apply(exampleJob =\u003e exampleJob.ResourceGroupName),\n            EventhubConsumerGroupName = exampleConsumerGroup.Name,\n            EventhubName = exampleEventHub.Name,\n            ServicebusNamespace = exampleEventHubNamespace.Name,\n            SharedAccessPolicyKey = exampleEventHubNamespace.DefaultPrimaryKey,\n            SharedAccessPolicyName = \"RootManageSharedAccessKey\",\n            Serialization = new Azure.StreamAnalytics.Inputs.StreamInputEventHubSerializationArgs\n            {\n                Type = \"Json\",\n                Encoding = \"UTF8\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/eventhub\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/streamanalytics\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.LookupResourceGroup(ctx, \u0026core.LookupResourceGroupArgs{\n\t\t\tName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleJob, err := streamanalytics.LookupJob(ctx, \u0026streamanalytics.LookupJobArgs{\n\t\t\tName:              \"example-job\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHubNamespace, err := eventhub.NewEventHubNamespace(ctx, \"exampleEventHubNamespace\", \u0026eventhub.EventHubNamespaceArgs{\n\t\t\tLocation:          pulumi.String(exampleResourceGroup.Location),\n\t\t\tResourceGroupName: pulumi.String(exampleResourceGroup.Name),\n\t\t\tSku:               pulumi.String(\"Standard\"),\n\t\t\tCapacity:          pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEventHub, err := eventhub.NewEventHub(ctx, \"exampleEventHub\", \u0026eventhub.EventHubArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tResourceGroupName: pulumi.String(exampleResourceGroup.Name),\n\t\t\tPartitionCount:    pulumi.Int(2),\n\t\t\tMessageRetention:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleConsumerGroup, err := eventhub.NewConsumerGroup(ctx, \"exampleConsumerGroup\", \u0026eventhub.ConsumerGroupArgs{\n\t\t\tNamespaceName:     exampleEventHubNamespace.Name,\n\t\t\tEventhubName:      exampleEventHub.Name,\n\t\t\tResourceGroupName: pulumi.String(exampleResourceGroup.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = streamanalytics.NewStreamInputEventHub(ctx, \"exampleStreamInputEventHub\", \u0026streamanalytics.StreamInputEventHubArgs{\n\t\t\tStreamAnalyticsJobName:    pulumi.String(exampleJob.Name),\n\t\t\tResourceGroupName:         pulumi.String(exampleJob.ResourceGroupName),\n\t\t\tEventhubConsumerGroupName: exampleConsumerGroup.Name,\n\t\t\tEventhubName:              exampleEventHub.Name,\n\t\t\tServicebusNamespace:       exampleEventHubNamespace.Name,\n\t\t\tSharedAccessPolicyKey:     exampleEventHubNamespace.DefaultPrimaryKey,\n\t\t\tSharedAccessPolicyName:    pulumi.String(\"RootManageSharedAccessKey\"),\n\t\t\tSerialization: \u0026streamanalytics.StreamInputEventHubSerializationArgs{\n\t\t\t\tType:     pulumi.String(\"Json\"),\n\t\t\t\tEncoding: pulumi.String(\"UTF8\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStream Analytics Stream Input EventHub's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:streamanalytics/streamInputEventHub:StreamInputEventHub example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.StreamAnalytics/streamingjobs/job1/inputs/input1\n```\n\n ",
      "inputProperties": {
        "eventhubConsumerGroupName": {
          "description": "The name of an Event Hub Consumer Group that should be used to read events from the Event Hub. Specifying distinct consumer group names for multiple inputs allows each of those inputs to receive the same events from the Event Hub.\n",
          "type": "string"
        },
        "eventhubName": {
          "description": "The name of the Event Hub.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Stream Input EventHub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/StreamInputEventHubSerialization:StreamInputEventHubSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "servicebusNamespace": {
          "description": "The namespace that is associated with the desired Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "sharedAccessPolicyKey": {
          "description": "The shared access policy key for the specified shared access policy.\n",
          "type": "string"
        },
        "sharedAccessPolicyName": {
          "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "eventhubConsumerGroupName": {
          "description": "The name of an Event Hub Consumer Group that should be used to read events from the Event Hub. Specifying distinct consumer group names for multiple inputs allows each of those inputs to receive the same events from the Event Hub.\n",
          "type": "string"
        },
        "eventhubName": {
          "description": "The name of the Event Hub.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Stream Input EventHub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/StreamInputEventHubSerialization:StreamInputEventHubSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "servicebusNamespace": {
          "description": "The namespace that is associated with the desired Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "sharedAccessPolicyKey": {
          "description": "The shared access policy key for the specified shared access policy.\n",
          "type": "string"
        },
        "sharedAccessPolicyName": {
          "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "eventhubConsumerGroupName",
        "eventhubName",
        "name",
        "resourceGroupName",
        "serialization",
        "servicebusNamespace",
        "sharedAccessPolicyKey",
        "sharedAccessPolicyName",
        "streamAnalyticsJobName"
      ],
      "requiredInputs": [
        "eventhubConsumerGroupName",
        "eventhubName",
        "resourceGroupName",
        "serialization",
        "servicebusNamespace",
        "sharedAccessPolicyKey",
        "sharedAccessPolicyName",
        "streamAnalyticsJobName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StreamInputEventHub resources.\n",
        "properties": {
          "eventhubConsumerGroupName": {
            "description": "The name of an Event Hub Consumer Group that should be used to read events from the Event Hub. Specifying distinct consumer group names for multiple inputs allows each of those inputs to receive the same events from the Event Hub.\n",
            "type": "string"
          },
          "eventhubName": {
            "description": "The name of the Event Hub.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Stream Input EventHub. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serialization": {
            "$ref": "#/types/azure:streamanalytics/StreamInputEventHubSerialization:StreamInputEventHubSerialization",
            "description": "A `serialization` block as defined below.\n"
          },
          "servicebusNamespace": {
            "description": "The namespace that is associated with the desired Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
            "type": "string"
          },
          "sharedAccessPolicyKey": {
            "description": "The shared access policy key for the specified shared access policy.\n",
            "type": "string"
          },
          "sharedAccessPolicyName": {
            "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
            "type": "string"
          },
          "streamAnalyticsJobName": {
            "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:streamanalytics/streamInputIotHub:StreamInputIotHub": {
      "description": "Manages a Stream Analytics Stream Input IoTHub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = azure.core.getResourceGroup({\n    name: \"example-resources\",\n});\nconst exampleJob = azure.streamanalytics.getJob({\n    name: \"example-job\",\n    resourceGroupName: azurerm_resource_group.example.name,\n});\nconst exampleIoTHub = new azure.iot.IoTHub(\"exampleIoTHub\", {\n    resourceGroupName: azurerm_resource_group.example.name,\n    location: azurerm_resource_group.example.location,\n    sku: {\n        name: \"S1\",\n        capacity: \"1\",\n    },\n});\nconst exampleStreamInputIotHub = new azure.streamanalytics.StreamInputIotHub(\"exampleStreamInputIotHub\", {\n    streamAnalyticsJobName: exampleJob.then(exampleJob =\u003e exampleJob.name),\n    resourceGroupName: exampleJob.then(exampleJob =\u003e exampleJob.resourceGroupName),\n    endpoint: \"messages/events\",\n    eventhubConsumerGroupName: `$Default`,\n    iothubNamespace: exampleIoTHub.name,\n    sharedAccessPolicyKey: exampleIoTHub.sharedAccessPolicies.apply(sharedAccessPolicies =\u003e sharedAccessPolicies[0].primaryKey),\n    sharedAccessPolicyName: \"iothubowner\",\n    serialization: {\n        type: \"Json\",\n        encoding: \"UTF8\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.get_resource_group(name=\"example-resources\")\nexample_job = azure.streamanalytics.get_job(name=\"example-job\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"])\nexample_io_t_hub = azure.iot.IoTHub(\"exampleIoTHub\",\n    resource_group_name=azurerm_resource_group[\"example\"][\"name\"],\n    location=azurerm_resource_group[\"example\"][\"location\"],\n    sku=azure.iot.IoTHubSkuArgs(\n        name=\"S1\",\n        capacity=1,\n    ))\nexample_stream_input_iot_hub = azure.streamanalytics.StreamInputIotHub(\"exampleStreamInputIotHub\",\n    stream_analytics_job_name=example_job.name,\n    resource_group_name=example_job.resource_group_name,\n    endpoint=\"messages/events\",\n    eventhub_consumer_group_name=\"$Default\",\n    iothub_namespace=example_io_t_hub.name,\n    shared_access_policy_key=example_io_t_hub.shared_access_policies[0].primary_key,\n    shared_access_policy_name=\"iothubowner\",\n    serialization=azure.streamanalytics.StreamInputIotHubSerializationArgs(\n        type=\"Json\",\n        encoding=\"UTF8\",\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = Output.Create(Azure.Core.GetResourceGroup.InvokeAsync(new Azure.Core.GetResourceGroupArgs\n        {\n            Name = \"example-resources\",\n        }));\n        var exampleJob = Output.Create(Azure.StreamAnalytics.GetJob.InvokeAsync(new Azure.StreamAnalytics.GetJobArgs\n        {\n            Name = \"example-job\",\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n        }));\n        var exampleIoTHub = new Azure.Iot.IoTHub(\"exampleIoTHub\", new Azure.Iot.IoTHubArgs\n        {\n            ResourceGroupName = azurerm_resource_group.Example.Name,\n            Location = azurerm_resource_group.Example.Location,\n            Sku = new Azure.Iot.Inputs.IoTHubSkuArgs\n            {\n                Name = \"S1\",\n                Capacity = 1,\n            },\n        });\n        var exampleStreamInputIotHub = new Azure.StreamAnalytics.StreamInputIotHub(\"exampleStreamInputIotHub\", new Azure.StreamAnalytics.StreamInputIotHubArgs\n        {\n            StreamAnalyticsJobName = exampleJob.Apply(exampleJob =\u003e exampleJob.Name),\n            ResourceGroupName = exampleJob.Apply(exampleJob =\u003e exampleJob.ResourceGroupName),\n            Endpoint = \"messages/events\",\n            EventhubConsumerGroupName = \"$Default\",\n            IothubNamespace = exampleIoTHub.Name,\n            SharedAccessPolicyKey = exampleIoTHub.SharedAccessPolicies.Apply(sharedAccessPolicies =\u003e sharedAccessPolicies[0].PrimaryKey),\n            SharedAccessPolicyName = \"iothubowner\",\n            Serialization = new Azure.StreamAnalytics.Inputs.StreamInputIotHubSerializationArgs\n            {\n                Type = \"Json\",\n                Encoding = \"UTF8\",\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/iot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/streamanalytics\"\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 := core.LookupResourceGroup(ctx, \u0026core.LookupResourceGroupArgs{\n\t\t\tName: \"example-resources\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleJob, err := streamanalytics.LookupJob(ctx, \u0026streamanalytics.LookupJobArgs{\n\t\t\tName:              \"example-job\",\n\t\t\tResourceGroupName: azurerm_resource_group.Example.Name,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIoTHub, err := iot.NewIoTHub(ctx, \"exampleIoTHub\", \u0026iot.IoTHubArgs{\n\t\t\tResourceGroupName: pulumi.Any(azurerm_resource_group.Example.Name),\n\t\t\tLocation:          pulumi.Any(azurerm_resource_group.Example.Location),\n\t\t\tSku: \u0026iot.IoTHubSkuArgs{\n\t\t\t\tName:     pulumi.String(\"S1\"),\n\t\t\t\tCapacity: pulumi.Int(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = streamanalytics.NewStreamInputIotHub(ctx, \"exampleStreamInputIotHub\", \u0026streamanalytics.StreamInputIotHubArgs{\n\t\t\tStreamAnalyticsJobName:    pulumi.String(exampleJob.Name),\n\t\t\tResourceGroupName:         pulumi.String(exampleJob.ResourceGroupName),\n\t\t\tEndpoint:                  pulumi.String(\"messages/events\"),\n\t\t\tEventhubConsumerGroupName: pulumi.String(fmt.Sprintf(\"%v%v\", \"$\", \"Default\")),\n\t\t\tIothubNamespace:           exampleIoTHub.Name,\n\t\t\tSharedAccessPolicyKey: exampleIoTHub.SharedAccessPolicies.ApplyT(func(sharedAccessPolicies []iot.IoTHubSharedAccessPolicy) (string, error) {\n\t\t\t\treturn sharedAccessPolicies[0].PrimaryKey, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tSharedAccessPolicyName: pulumi.String(\"iothubowner\"),\n\t\t\tSerialization: \u0026streamanalytics.StreamInputIotHubSerializationArgs{\n\t\t\t\tType:     pulumi.String(\"Json\"),\n\t\t\t\tEncoding: pulumi.String(\"UTF8\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStream Analytics Stream Input IoTHub's can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:streamanalytics/streamInputIotHub:StreamInputIotHub example /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.StreamAnalytics/streamingjobs/job1/inputs/input1\n```\n\n ",
      "inputProperties": {
        "endpoint": {
          "description": "The IoT Hub endpoint to connect to (ie. messages/events, messages/operationsMonitoringEvents, etc.).\n",
          "type": "string"
        },
        "eventhubConsumerGroupName": {
          "description": "The name of an Event Hub Consumer Group that should be used to read events from the Event Hub. Specifying distinct consumer group names for multiple inputs allows each of those inputs to receive the same events from the Event Hub.\n",
          "type": "string"
        },
        "iothubNamespace": {
          "description": "The name or the URI of the IoT Hub.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Stream Input IoTHub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/StreamInputIotHubSerialization:StreamInputIotHubSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "sharedAccessPolicyKey": {
          "description": "The shared access policy key for the specified shared access policy.\n",
          "type": "string"
        },
        "sharedAccessPolicyName": {
          "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "endpoint": {
          "description": "The IoT Hub endpoint to connect to (ie. messages/events, messages/operationsMonitoringEvents, etc.).\n",
          "type": "string"
        },
        "eventhubConsumerGroupName": {
          "description": "The name of an Event Hub Consumer Group that should be used to read events from the Event Hub. Specifying distinct consumer group names for multiple inputs allows each of those inputs to receive the same events from the Event Hub.\n",
          "type": "string"
        },
        "iothubNamespace": {
          "description": "The name or the URI of the IoT Hub.\n",
          "type": "string"
        },
        "name": {
          "description": "The name of the Stream Input IoTHub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "serialization": {
          "$ref": "#/types/azure:streamanalytics/StreamInputIotHubSerialization:StreamInputIotHubSerialization",
          "description": "A `serialization` block as defined below.\n"
        },
        "sharedAccessPolicyKey": {
          "description": "The shared access policy key for the specified shared access policy.\n",
          "type": "string"
        },
        "sharedAccessPolicyName": {
          "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
          "type": "string"
        },
        "streamAnalyticsJobName": {
          "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "endpoint",
        "eventhubConsumerGroupName",
        "iothubNamespace",
        "name",
        "resourceGroupName",
        "serialization",
        "sharedAccessPolicyKey",
        "sharedAccessPolicyName",
        "streamAnalyticsJobName"
      ],
      "requiredInputs": [
        "endpoint",
        "eventhubConsumerGroupName",
        "iothubNamespace",
        "resourceGroupName",
        "serialization",
        "sharedAccessPolicyKey",
        "sharedAccessPolicyName",
        "streamAnalyticsJobName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering StreamInputIotHub resources.\n",
        "properties": {
          "endpoint": {
            "description": "The IoT Hub endpoint to connect to (ie. messages/events, messages/operationsMonitoringEvents, etc.).\n",
            "type": "string"
          },
          "eventhubConsumerGroupName": {
            "description": "The name of an Event Hub Consumer Group that should be used to read events from the Event Hub. Specifying distinct consumer group names for multiple inputs allows each of those inputs to receive the same events from the Event Hub.\n",
            "type": "string"
          },
          "iothubNamespace": {
            "description": "The name or the URI of the IoT Hub.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Stream Input IoTHub. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the Resource Group where the Stream Analytics Job exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "serialization": {
            "$ref": "#/types/azure:streamanalytics/StreamInputIotHubSerialization:StreamInputIotHubSerialization",
            "description": "A `serialization` block as defined below.\n"
          },
          "sharedAccessPolicyKey": {
            "description": "The shared access policy key for the specified shared access policy.\n",
            "type": "string"
          },
          "sharedAccessPolicyName": {
            "description": "The shared access policy name for the Event Hub, Service Bus Queue, Service Bus Topic, etc.\n",
            "type": "string"
          },
          "streamAnalyticsJobName": {
            "description": "The name of the Stream Analytics Job. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:synapse/firewallRule:FirewallRule": {
      "description": "Allows you to Manages a Synapse Firewall Rule.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    accountKind: \"StorageV2\",\n    isHnsEnabled: \"true\",\n});\nconst exampleDataLakeGen2Filesystem = new azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", {storageAccountId: exampleAccount.id});\nconst exampleWorkspace = new azure.synapse.Workspace(\"exampleWorkspace\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    storageDataLakeGen2FilesystemId: exampleDataLakeGen2Filesystem.id,\n    sqlAdministratorLogin: \"sqladminuser\",\n    sqlAdministratorLoginPassword: \"H@Sh1CoR3!\",\n});\nconst exampleFirewallRule = new azure.synapse.FirewallRule(\"exampleFirewallRule\", {\n    synapseWorkspaceId: azurerm_synapse_workspace.test.id,\n    startIpAddress: \"0.0.0.0\",\n    endIpAddress: \"255.255.255.255\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    account_kind=\"StorageV2\",\n    is_hns_enabled=True)\nexample_data_lake_gen2_filesystem = azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", storage_account_id=example_account.id)\nexample_workspace = azure.synapse.Workspace(\"exampleWorkspace\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    storage_data_lake_gen2_filesystem_id=example_data_lake_gen2_filesystem.id,\n    sql_administrator_login=\"sqladminuser\",\n    sql_administrator_login_password=\"H@Sh1CoR3!\")\nexample_firewall_rule = azure.synapse.FirewallRule(\"exampleFirewallRule\",\n    synapse_workspace_id=azurerm_synapse_workspace[\"test\"][\"id\"],\n    start_ip_address=\"0.0.0.0\",\n    end_ip_address=\"255.255.255.255\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            AccountKind = \"StorageV2\",\n            IsHnsEnabled = true,\n        });\n        var exampleDataLakeGen2Filesystem = new Azure.Storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", new Azure.Storage.DataLakeGen2FilesystemArgs\n        {\n            StorageAccountId = exampleAccount.Id,\n        });\n        var exampleWorkspace = new Azure.Synapse.Workspace(\"exampleWorkspace\", new Azure.Synapse.WorkspaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            StorageDataLakeGen2FilesystemId = exampleDataLakeGen2Filesystem.Id,\n            SqlAdministratorLogin = \"sqladminuser\",\n            SqlAdministratorLoginPassword = \"H@Sh1CoR3!\",\n        });\n        var exampleFirewallRule = new Azure.Synapse.FirewallRule(\"exampleFirewallRule\", new Azure.Synapse.FirewallRuleArgs\n        {\n            SynapseWorkspaceId = azurerm_synapse_workspace.Test.Id,\n            StartIpAddress = \"0.0.0.0\",\n            EndIpAddress = \"255.255.255.255\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/synapse\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tAccountKind:            pulumi.String(\"StorageV2\"),\n\t\t\tIsHnsEnabled:           pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDataLakeGen2Filesystem, err := storage.NewDataLakeGen2Filesystem(ctx, \"exampleDataLakeGen2Filesystem\", \u0026storage.DataLakeGen2FilesystemArgs{\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = synapse.NewWorkspace(ctx, \"exampleWorkspace\", \u0026synapse.WorkspaceArgs{\n\t\t\tResourceGroupName:               exampleResourceGroup.Name,\n\t\t\tLocation:                        exampleResourceGroup.Location,\n\t\t\tStorageDataLakeGen2FilesystemId: exampleDataLakeGen2Filesystem.ID(),\n\t\t\tSqlAdministratorLogin:           pulumi.String(\"sqladminuser\"),\n\t\t\tSqlAdministratorLoginPassword:   pulumi.String(\"H@Sh1CoR3!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = synapse.NewFirewallRule(ctx, \"exampleFirewallRule\", \u0026synapse.FirewallRuleArgs{\n\t\t\tSynapseWorkspaceId: pulumi.Any(azurerm_synapse_workspace.Test.Id),\n\t\t\tStartIpAddress:     pulumi.String(\"0.0.0.0\"),\n\t\t\tEndIpAddress:       pulumi.String(\"255.255.255.255\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSynapse Firewall Rule can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:synapse/firewallRule:FirewallRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourcegroup1/providers/Microsoft.Synapse/workspaces/workspace1/firewallRules/rule1\n```\n\n ",
      "inputProperties": {
        "endIpAddress": {
          "description": "The ending IP address to allow through the firewall for this rule.\n",
          "type": "string"
        },
        "name": {
          "description": "The Name of the firewall rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "The starting IP address to allow through the firewall for this rule.\n",
          "type": "string"
        },
        "synapseWorkspaceId": {
          "description": "The ID of the Synapse Workspace on which to create the Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "endIpAddress": {
          "description": "The ending IP address to allow through the firewall for this rule.\n",
          "type": "string"
        },
        "name": {
          "description": "The Name of the firewall rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "startIpAddress": {
          "description": "The starting IP address to allow through the firewall for this rule.\n",
          "type": "string"
        },
        "synapseWorkspaceId": {
          "description": "The ID of the Synapse Workspace on which to create the Firewall Rule. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "endIpAddress",
        "name",
        "startIpAddress",
        "synapseWorkspaceId"
      ],
      "requiredInputs": [
        "endIpAddress",
        "startIpAddress",
        "synapseWorkspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering FirewallRule resources.\n",
        "properties": {
          "endIpAddress": {
            "description": "The ending IP address to allow through the firewall for this rule.\n",
            "type": "string"
          },
          "name": {
            "description": "The Name of the firewall rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "startIpAddress": {
            "description": "The starting IP address to allow through the firewall for this rule.\n",
            "type": "string"
          },
          "synapseWorkspaceId": {
            "description": "The ID of the Synapse Workspace on which to create the Firewall Rule. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:synapse/managedPrivateEndpoint:ManagedPrivateEndpoint": {
      "description": "Allows you to Manages a Synapse Managed Private Endpoint.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    accountKind: \"StorageV2\",\n    isHnsEnabled: \"true\",\n});\nconst exampleDataLakeGen2Filesystem = new azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", {storageAccountId: exampleAccount.id});\nconst exampleWorkspace = new azure.synapse.Workspace(\"exampleWorkspace\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    storageDataLakeGen2FilesystemId: exampleDataLakeGen2Filesystem.id,\n    sqlAdministratorLogin: \"sqladminuser\",\n    sqlAdministratorLoginPassword: \"H@Sh1CoR3!\",\n    managedVirtualNetworkEnabled: true,\n});\nconst exampleFirewallRule = new azure.synapse.FirewallRule(\"exampleFirewallRule\", {\n    synapseWorkspaceId: azurerm_synapse_workspace.test.id,\n    startIpAddress: \"0.0.0.0\",\n    endIpAddress: \"255.255.255.255\",\n});\nconst exampleConnect = new azure.storage.Account(\"exampleConnect\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    accountKind: \"BlobStorage\",\n});\nconst exampleManagedPrivateEndpoint = new azure.synapse.ManagedPrivateEndpoint(\"exampleManagedPrivateEndpoint\", {\n    synapseWorkspaceId: exampleWorkspace.id,\n    targetResourceId: exampleConnect.id,\n    subresourceName: \"blob\",\n}, {\n    dependsOn: [exampleFirewallRule],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    account_kind=\"StorageV2\",\n    is_hns_enabled=True)\nexample_data_lake_gen2_filesystem = azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", storage_account_id=example_account.id)\nexample_workspace = azure.synapse.Workspace(\"exampleWorkspace\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    storage_data_lake_gen2_filesystem_id=example_data_lake_gen2_filesystem.id,\n    sql_administrator_login=\"sqladminuser\",\n    sql_administrator_login_password=\"H@Sh1CoR3!\",\n    managed_virtual_network_enabled=True)\nexample_firewall_rule = azure.synapse.FirewallRule(\"exampleFirewallRule\",\n    synapse_workspace_id=azurerm_synapse_workspace[\"test\"][\"id\"],\n    start_ip_address=\"0.0.0.0\",\n    end_ip_address=\"255.255.255.255\")\nexample_connect = azure.storage.Account(\"exampleConnect\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    account_kind=\"BlobStorage\")\nexample_managed_private_endpoint = azure.synapse.ManagedPrivateEndpoint(\"exampleManagedPrivateEndpoint\",\n    synapse_workspace_id=example_workspace.id,\n    target_resource_id=example_connect.id,\n    subresource_name=\"blob\",\n    opts=pulumi.ResourceOptions(depends_on=[example_firewall_rule]))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            AccountKind = \"StorageV2\",\n            IsHnsEnabled = true,\n        });\n        var exampleDataLakeGen2Filesystem = new Azure.Storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", new Azure.Storage.DataLakeGen2FilesystemArgs\n        {\n            StorageAccountId = exampleAccount.Id,\n        });\n        var exampleWorkspace = new Azure.Synapse.Workspace(\"exampleWorkspace\", new Azure.Synapse.WorkspaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            StorageDataLakeGen2FilesystemId = exampleDataLakeGen2Filesystem.Id,\n            SqlAdministratorLogin = \"sqladminuser\",\n            SqlAdministratorLoginPassword = \"H@Sh1CoR3!\",\n            ManagedVirtualNetworkEnabled = true,\n        });\n        var exampleFirewallRule = new Azure.Synapse.FirewallRule(\"exampleFirewallRule\", new Azure.Synapse.FirewallRuleArgs\n        {\n            SynapseWorkspaceId = azurerm_synapse_workspace.Test.Id,\n            StartIpAddress = \"0.0.0.0\",\n            EndIpAddress = \"255.255.255.255\",\n        });\n        var exampleConnect = new Azure.Storage.Account(\"exampleConnect\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            AccountKind = \"BlobStorage\",\n        });\n        var exampleManagedPrivateEndpoint = new Azure.Synapse.ManagedPrivateEndpoint(\"exampleManagedPrivateEndpoint\", new Azure.Synapse.ManagedPrivateEndpointArgs\n        {\n            SynapseWorkspaceId = exampleWorkspace.Id,\n            TargetResourceId = exampleConnect.Id,\n            SubresourceName = \"blob\",\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                exampleFirewallRule,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/synapse\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tAccountKind:            pulumi.String(\"StorageV2\"),\n\t\t\tIsHnsEnabled:           pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDataLakeGen2Filesystem, err := storage.NewDataLakeGen2Filesystem(ctx, \"exampleDataLakeGen2Filesystem\", \u0026storage.DataLakeGen2FilesystemArgs{\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkspace, err := synapse.NewWorkspace(ctx, \"exampleWorkspace\", \u0026synapse.WorkspaceArgs{\n\t\t\tResourceGroupName:               exampleResourceGroup.Name,\n\t\t\tLocation:                        exampleResourceGroup.Location,\n\t\t\tStorageDataLakeGen2FilesystemId: exampleDataLakeGen2Filesystem.ID(),\n\t\t\tSqlAdministratorLogin:           pulumi.String(\"sqladminuser\"),\n\t\t\tSqlAdministratorLoginPassword:   pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tManagedVirtualNetworkEnabled:    pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFirewallRule, err := synapse.NewFirewallRule(ctx, \"exampleFirewallRule\", \u0026synapse.FirewallRuleArgs{\n\t\t\tSynapseWorkspaceId: pulumi.Any(azurerm_synapse_workspace.Test.Id),\n\t\t\tStartIpAddress:     pulumi.String(\"0.0.0.0\"),\n\t\t\tEndIpAddress:       pulumi.String(\"255.255.255.255\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleConnect, err := storage.NewAccount(ctx, \"exampleConnect\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tAccountKind:            pulumi.String(\"BlobStorage\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = synapse.NewManagedPrivateEndpoint(ctx, \"exampleManagedPrivateEndpoint\", \u0026synapse.ManagedPrivateEndpointArgs{\n\t\t\tSynapseWorkspaceId: exampleWorkspace.ID(),\n\t\t\tTargetResourceId:   exampleConnect.ID(),\n\t\t\tSubresourceName:    pulumi.String(\"blob\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleFirewallRule,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSynapse Managed Private Endpoint can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:synapse/managedPrivateEndpoint:ManagedPrivateEndpoint example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Synapse/workspaces/workspace1/managedVirtualNetworks/default/managedPrivateEndpoints/endpoint1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "Specifies the name which should be used for this Managed Private Endpoint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subresourceName": {
          "description": "Specifies the sub resource name which the Synapse Private Endpoint is able to connect to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "synapseWorkspaceId": {
          "description": "The ID of the Synapse Workspace on which to create the Managed Private Endpoint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "targetResourceId": {
          "description": "The ID of the Private Link Enabled Remote Resource which this Synapse Private Endpoint should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name which should be used for this Managed Private Endpoint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "subresourceName": {
          "description": "Specifies the sub resource name which the Synapse Private Endpoint is able to connect to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "synapseWorkspaceId": {
          "description": "The ID of the Synapse Workspace on which to create the Managed Private Endpoint. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "targetResourceId": {
          "description": "The ID of the Private Link Enabled Remote Resource which this Synapse Private Endpoint should be connected to. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "subresourceName",
        "synapseWorkspaceId",
        "targetResourceId"
      ],
      "requiredInputs": [
        "subresourceName",
        "synapseWorkspaceId",
        "targetResourceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ManagedPrivateEndpoint resources.\n",
        "properties": {
          "name": {
            "description": "Specifies the name which should be used for this Managed Private Endpoint. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "subresourceName": {
            "description": "Specifies the sub resource name which the Synapse Private Endpoint is able to connect to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "synapseWorkspaceId": {
            "description": "The ID of the Synapse Workspace on which to create the Managed Private Endpoint. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "targetResourceId": {
            "description": "The ID of the Private Link Enabled Remote Resource which this Synapse Private Endpoint should be connected to. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:synapse/privateLinkHub:PrivateLinkHub": {
      "description": "Manages a Synapse Private Link Hub.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.synapse.PrivateLinkHub(\"example\", {\n    location: \"West Europe\",\n    resourceGroupName: \"example-rg\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.synapse.PrivateLinkHub(\"example\",\n    location=\"West Europe\",\n    resource_group_name=\"example-rg\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var example = new Azure.Synapse.PrivateLinkHub(\"example\", new Azure.Synapse.PrivateLinkHubArgs\n        {\n            Location = \"West Europe\",\n            ResourceGroupName = \"example-rg\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/synapse\"\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 := synapse.NewPrivateLinkHub(ctx, \"example\", \u0026synapse.PrivateLinkHubArgs{\n\t\t\tLocation:          pulumi.String(\"West Europe\"),\n\t\t\tResourceGroupName: pulumi.String(\"example-rg\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSynapse Private Link Hub can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:synapse/privateLinkHub:PrivateLinkHub example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Synapse/privateLinkHubs/privateLinkHub1\n```\n\n ",
      "inputProperties": {
        "location": {
          "description": "Specifies the Azure location where the Synapse Private Link Hub exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Synapse Private Link Hub. Changing this forces a new Synapse Private Link Hub to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Synapse Private Link Hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Synapse Private Link Hub.\n",
          "type": "object"
        }
      },
      "properties": {
        "location": {
          "description": "Specifies the Azure location where the Synapse Private Link Hub exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Synapse Private Link Hub. Changing this forces a new Synapse Private Link Hub to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Synapse Private Link Hub. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Synapse Private Link Hub.\n",
          "type": "object"
        }
      },
      "required": [
        "location",
        "name",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering PrivateLinkHub resources.\n",
        "properties": {
          "location": {
            "description": "Specifies the Azure location where the Synapse Private Link Hub exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "The name which should be used for this Synapse Private Link Hub. Changing this forces a new Synapse Private Link Hub to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Synapse Private Link Hub. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Synapse Private Link Hub.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:synapse/roleAssignment:RoleAssignment": {
      "description": "Manages a Synapse Role Assignment.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    accountKind: \"StorageV2\",\n    isHnsEnabled: \"true\",\n});\nconst exampleDataLakeGen2Filesystem = new azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", {storageAccountId: exampleAccount.id});\nconst exampleWorkspace = new azure.synapse.Workspace(\"exampleWorkspace\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    storageDataLakeGen2FilesystemId: exampleDataLakeGen2Filesystem.id,\n    sqlAdministratorLogin: \"sqladminuser\",\n    sqlAdministratorLoginPassword: \"H@Sh1CoR3!\",\n});\nconst exampleFirewallRule = new azure.synapse.FirewallRule(\"exampleFirewallRule\", {\n    synapseWorkspaceId: azurerm_synapse_workspace.test.id,\n    startIpAddress: \"0.0.0.0\",\n    endIpAddress: \"255.255.255.255\",\n});\nconst current = azure.core.getClientConfig({});\nconst exampleRoleAssignment = new azure.synapse.RoleAssignment(\"exampleRoleAssignment\", {\n    synapseWorkspaceId: exampleWorkspace.id,\n    roleName: \"Synapse SQL Administrator\",\n    principalId: current.then(current =\u003e current.objectId),\n}, {\n    dependsOn: [exampleFirewallRule],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    account_kind=\"StorageV2\",\n    is_hns_enabled=True)\nexample_data_lake_gen2_filesystem = azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", storage_account_id=example_account.id)\nexample_workspace = azure.synapse.Workspace(\"exampleWorkspace\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    storage_data_lake_gen2_filesystem_id=example_data_lake_gen2_filesystem.id,\n    sql_administrator_login=\"sqladminuser\",\n    sql_administrator_login_password=\"H@Sh1CoR3!\")\nexample_firewall_rule = azure.synapse.FirewallRule(\"exampleFirewallRule\",\n    synapse_workspace_id=azurerm_synapse_workspace[\"test\"][\"id\"],\n    start_ip_address=\"0.0.0.0\",\n    end_ip_address=\"255.255.255.255\")\ncurrent = azure.core.get_client_config()\nexample_role_assignment = azure.synapse.RoleAssignment(\"exampleRoleAssignment\",\n    synapse_workspace_id=example_workspace.id,\n    role_name=\"Synapse SQL Administrator\",\n    principal_id=current.object_id,\n    opts=pulumi.ResourceOptions(depends_on=[example_firewall_rule]))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            AccountKind = \"StorageV2\",\n            IsHnsEnabled = true,\n        });\n        var exampleDataLakeGen2Filesystem = new Azure.Storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", new Azure.Storage.DataLakeGen2FilesystemArgs\n        {\n            StorageAccountId = exampleAccount.Id,\n        });\n        var exampleWorkspace = new Azure.Synapse.Workspace(\"exampleWorkspace\", new Azure.Synapse.WorkspaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            StorageDataLakeGen2FilesystemId = exampleDataLakeGen2Filesystem.Id,\n            SqlAdministratorLogin = \"sqladminuser\",\n            SqlAdministratorLoginPassword = \"H@Sh1CoR3!\",\n        });\n        var exampleFirewallRule = new Azure.Synapse.FirewallRule(\"exampleFirewallRule\", new Azure.Synapse.FirewallRuleArgs\n        {\n            SynapseWorkspaceId = azurerm_synapse_workspace.Test.Id,\n            StartIpAddress = \"0.0.0.0\",\n            EndIpAddress = \"255.255.255.255\",\n        });\n        var current = Output.Create(Azure.Core.GetClientConfig.InvokeAsync());\n        var exampleRoleAssignment = new Azure.Synapse.RoleAssignment(\"exampleRoleAssignment\", new Azure.Synapse.RoleAssignmentArgs\n        {\n            SynapseWorkspaceId = exampleWorkspace.Id,\n            RoleName = \"Synapse SQL Administrator\",\n            PrincipalId = current.Apply(current =\u003e current.ObjectId),\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                exampleFirewallRule,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/synapse\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tAccountKind:            pulumi.String(\"StorageV2\"),\n\t\t\tIsHnsEnabled:           pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDataLakeGen2Filesystem, err := storage.NewDataLakeGen2Filesystem(ctx, \"exampleDataLakeGen2Filesystem\", \u0026storage.DataLakeGen2FilesystemArgs{\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkspace, err := synapse.NewWorkspace(ctx, \"exampleWorkspace\", \u0026synapse.WorkspaceArgs{\n\t\t\tResourceGroupName:               exampleResourceGroup.Name,\n\t\t\tLocation:                        exampleResourceGroup.Location,\n\t\t\tStorageDataLakeGen2FilesystemId: exampleDataLakeGen2Filesystem.ID(),\n\t\t\tSqlAdministratorLogin:           pulumi.String(\"sqladminuser\"),\n\t\t\tSqlAdministratorLoginPassword:   pulumi.String(\"H@Sh1CoR3!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFirewallRule, err := synapse.NewFirewallRule(ctx, \"exampleFirewallRule\", \u0026synapse.FirewallRuleArgs{\n\t\t\tSynapseWorkspaceId: pulumi.Any(azurerm_synapse_workspace.Test.Id),\n\t\t\tStartIpAddress:     pulumi.String(\"0.0.0.0\"),\n\t\t\tEndIpAddress:       pulumi.String(\"255.255.255.255\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = synapse.NewRoleAssignment(ctx, \"exampleRoleAssignment\", \u0026synapse.RoleAssignmentArgs{\n\t\t\tSynapseWorkspaceId: exampleWorkspace.ID(),\n\t\t\tRoleName:           pulumi.String(\"Synapse SQL Administrator\"),\n\t\t\tPrincipalId:        pulumi.String(current.ObjectId),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleFirewallRule,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSynapse Role Assignment can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:synapse/roleAssignment:RoleAssignment example \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Synapse/workspaces/workspace1|000000000000\"\n```\n\n ",
      "inputProperties": {
        "principalId": {
          "description": "The ID of the Principal (User, Group or Service Principal) to assign the Synapse Role Definition to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roleName": {
          "description": "The Role Name of the Synapse Built-In Role. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "synapseSparkPoolId": {
          "description": "The Synapse Spark Pool which the Synapse Role Assignment applies to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "synapseWorkspaceId": {
          "description": "The Synapse Workspace which the Synapse Role Assignment applies to. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "principalId": {
          "description": "The ID of the Principal (User, Group or Service Principal) to assign the Synapse Role Definition to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "roleName": {
          "description": "The Role Name of the Synapse Built-In Role. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "synapseSparkPoolId": {
          "description": "The Synapse Spark Pool which the Synapse Role Assignment applies to. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "synapseWorkspaceId": {
          "description": "The Synapse Workspace which the Synapse Role Assignment applies to. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "roleName"
      ],
      "requiredInputs": [
        "principalId",
        "roleName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RoleAssignment resources.\n",
        "properties": {
          "principalId": {
            "description": "The ID of the Principal (User, Group or Service Principal) to assign the Synapse Role Definition to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "roleName": {
            "description": "The Role Name of the Synapse Built-In Role. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "synapseSparkPoolId": {
            "description": "The Synapse Spark Pool which the Synapse Role Assignment applies to. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "synapseWorkspaceId": {
            "description": "The Synapse Workspace which the Synapse Role Assignment applies to. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:synapse/sparkPool:SparkPool": {
      "description": "Manages a Synapse Spark Pool.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    accountKind: \"StorageV2\",\n    isHnsEnabled: \"true\",\n});\nconst exampleDataLakeGen2Filesystem = new azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", {storageAccountId: exampleAccount.id});\nconst exampleWorkspace = new azure.synapse.Workspace(\"exampleWorkspace\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    storageDataLakeGen2FilesystemId: exampleDataLakeGen2Filesystem.id,\n    sqlAdministratorLogin: \"sqladminuser\",\n    sqlAdministratorLoginPassword: \"H@Sh1CoR3!\",\n});\nconst exampleSparkPool = new azure.synapse.SparkPool(\"exampleSparkPool\", {\n    synapseWorkspaceId: exampleWorkspace.id,\n    nodeSizeFamily: \"MemoryOptimized\",\n    nodeSize: \"Small\",\n    autoScale: {\n        maxNodeCount: 50,\n        minNodeCount: 3,\n    },\n    autoPause: {\n        delayInMinutes: 15,\n    },\n    tags: {\n        ENV: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    account_kind=\"StorageV2\",\n    is_hns_enabled=True)\nexample_data_lake_gen2_filesystem = azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", storage_account_id=example_account.id)\nexample_workspace = azure.synapse.Workspace(\"exampleWorkspace\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    storage_data_lake_gen2_filesystem_id=example_data_lake_gen2_filesystem.id,\n    sql_administrator_login=\"sqladminuser\",\n    sql_administrator_login_password=\"H@Sh1CoR3!\")\nexample_spark_pool = azure.synapse.SparkPool(\"exampleSparkPool\",\n    synapse_workspace_id=example_workspace.id,\n    node_size_family=\"MemoryOptimized\",\n    node_size=\"Small\",\n    auto_scale=azure.synapse.SparkPoolAutoScaleArgs(\n        max_node_count=50,\n        min_node_count=3,\n    ),\n    auto_pause=azure.synapse.SparkPoolAutoPauseArgs(\n        delay_in_minutes=15,\n    ),\n    tags={\n        \"ENV\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            AccountKind = \"StorageV2\",\n            IsHnsEnabled = true,\n        });\n        var exampleDataLakeGen2Filesystem = new Azure.Storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", new Azure.Storage.DataLakeGen2FilesystemArgs\n        {\n            StorageAccountId = exampleAccount.Id,\n        });\n        var exampleWorkspace = new Azure.Synapse.Workspace(\"exampleWorkspace\", new Azure.Synapse.WorkspaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            StorageDataLakeGen2FilesystemId = exampleDataLakeGen2Filesystem.Id,\n            SqlAdministratorLogin = \"sqladminuser\",\n            SqlAdministratorLoginPassword = \"H@Sh1CoR3!\",\n        });\n        var exampleSparkPool = new Azure.Synapse.SparkPool(\"exampleSparkPool\", new Azure.Synapse.SparkPoolArgs\n        {\n            SynapseWorkspaceId = exampleWorkspace.Id,\n            NodeSizeFamily = \"MemoryOptimized\",\n            NodeSize = \"Small\",\n            AutoScale = new Azure.Synapse.Inputs.SparkPoolAutoScaleArgs\n            {\n                MaxNodeCount = 50,\n                MinNodeCount = 3,\n            },\n            AutoPause = new Azure.Synapse.Inputs.SparkPoolAutoPauseArgs\n            {\n                DelayInMinutes = 15,\n            },\n            Tags = \n            {\n                { \"ENV\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/synapse\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tAccountKind:            pulumi.String(\"StorageV2\"),\n\t\t\tIsHnsEnabled:           pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDataLakeGen2Filesystem, err := storage.NewDataLakeGen2Filesystem(ctx, \"exampleDataLakeGen2Filesystem\", \u0026storage.DataLakeGen2FilesystemArgs{\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkspace, err := synapse.NewWorkspace(ctx, \"exampleWorkspace\", \u0026synapse.WorkspaceArgs{\n\t\t\tResourceGroupName:               exampleResourceGroup.Name,\n\t\t\tLocation:                        exampleResourceGroup.Location,\n\t\t\tStorageDataLakeGen2FilesystemId: exampleDataLakeGen2Filesystem.ID(),\n\t\t\tSqlAdministratorLogin:           pulumi.String(\"sqladminuser\"),\n\t\t\tSqlAdministratorLoginPassword:   pulumi.String(\"H@Sh1CoR3!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = synapse.NewSparkPool(ctx, \"exampleSparkPool\", \u0026synapse.SparkPoolArgs{\n\t\t\tSynapseWorkspaceId: exampleWorkspace.ID(),\n\t\t\tNodeSizeFamily:     pulumi.String(\"MemoryOptimized\"),\n\t\t\tNodeSize:           pulumi.String(\"Small\"),\n\t\t\tAutoScale: \u0026synapse.SparkPoolAutoScaleArgs{\n\t\t\t\tMaxNodeCount: pulumi.Int(50),\n\t\t\t\tMinNodeCount: pulumi.Int(3),\n\t\t\t},\n\t\t\tAutoPause: \u0026synapse.SparkPoolAutoPauseArgs{\n\t\t\t\tDelayInMinutes: pulumi.Int(15),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"ENV\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSynapse Spark Pool can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:synapse/sparkPool:SparkPool example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Synapse/workspaces/workspace1/bigDataPools/sparkPool1\n```\n\n ",
      "inputProperties": {
        "autoPause": {
          "$ref": "#/types/azure:synapse/SparkPoolAutoPause:SparkPoolAutoPause",
          "description": "An `auto_pause` block as defined below.\n"
        },
        "autoScale": {
          "$ref": "#/types/azure:synapse/SparkPoolAutoScale:SparkPoolAutoScale",
          "description": "An `auto_scale` block as defined below. Exactly one of `node_count` or `auto_scale` must be specified.\n"
        },
        "libraryRequirement": {
          "$ref": "#/types/azure:synapse/SparkPoolLibraryRequirement:SparkPoolLibraryRequirement",
          "description": "A `library_requirement` block as defined below.\n"
        },
        "name": {
          "description": "The name which should be used for this Synapse Spark Pool. Changing this forces a new Synapse Spark Pool to be created.\n",
          "type": "string"
        },
        "nodeCount": {
          "description": "The number of nodes in the Spark Pool. Exactly one of `node_count` or `auto_scale` must be specified.\n",
          "type": "integer"
        },
        "nodeSize": {
          "description": "The level of node in the Spark Pool. Possible value is `Small`, `Medium` and `Large`.\n",
          "type": "string"
        },
        "nodeSizeFamily": {
          "description": "The kind of nodes that the Spark Pool provides. Possible value is `MemoryOptimized`.\n",
          "type": "string"
        },
        "sparkEventsFolder": {
          "description": "The Spark events folder. Defaults to `/events`.\n",
          "type": "string"
        },
        "sparkLogFolder": {
          "description": "The default folder where Spark logs will be written. Defaults to `/logs`.\n",
          "type": "string"
        },
        "sparkVersion": {
          "description": "The Apache Spark version. Possible values are `2.4` and `3.1`. Defaults to `2.4`.\n",
          "type": "string"
        },
        "synapseWorkspaceId": {
          "description": "The ID of the Synapse Workspace where the Synapse Spark Pool should exist. Changing this forces a new Synapse Spark Pool to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Synapse Spark Pool.\n",
          "type": "object"
        }
      },
      "properties": {
        "autoPause": {
          "$ref": "#/types/azure:synapse/SparkPoolAutoPause:SparkPoolAutoPause",
          "description": "An `auto_pause` block as defined below.\n"
        },
        "autoScale": {
          "$ref": "#/types/azure:synapse/SparkPoolAutoScale:SparkPoolAutoScale",
          "description": "An `auto_scale` block as defined below. Exactly one of `node_count` or `auto_scale` must be specified.\n"
        },
        "libraryRequirement": {
          "$ref": "#/types/azure:synapse/SparkPoolLibraryRequirement:SparkPoolLibraryRequirement",
          "description": "A `library_requirement` block as defined below.\n"
        },
        "name": {
          "description": "The name which should be used for this Synapse Spark Pool. Changing this forces a new Synapse Spark Pool to be created.\n",
          "type": "string"
        },
        "nodeCount": {
          "description": "The number of nodes in the Spark Pool. Exactly one of `node_count` or `auto_scale` must be specified.\n",
          "type": "integer"
        },
        "nodeSize": {
          "description": "The level of node in the Spark Pool. Possible value is `Small`, `Medium` and `Large`.\n",
          "type": "string"
        },
        "nodeSizeFamily": {
          "description": "The kind of nodes that the Spark Pool provides. Possible value is `MemoryOptimized`.\n",
          "type": "string"
        },
        "sparkEventsFolder": {
          "description": "The Spark events folder. Defaults to `/events`.\n",
          "type": "string"
        },
        "sparkLogFolder": {
          "description": "The default folder where Spark logs will be written. Defaults to `/logs`.\n",
          "type": "string"
        },
        "sparkVersion": {
          "description": "The Apache Spark version. Possible values are `2.4` and `3.1`. Defaults to `2.4`.\n",
          "type": "string"
        },
        "synapseWorkspaceId": {
          "description": "The ID of the Synapse Workspace where the Synapse Spark Pool should exist. Changing this forces a new Synapse Spark Pool to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Synapse Spark Pool.\n",
          "type": "object"
        }
      },
      "required": [
        "name",
        "nodeSize",
        "nodeSizeFamily",
        "synapseWorkspaceId"
      ],
      "requiredInputs": [
        "nodeSize",
        "nodeSizeFamily",
        "synapseWorkspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SparkPool resources.\n",
        "properties": {
          "autoPause": {
            "$ref": "#/types/azure:synapse/SparkPoolAutoPause:SparkPoolAutoPause",
            "description": "An `auto_pause` block as defined below.\n"
          },
          "autoScale": {
            "$ref": "#/types/azure:synapse/SparkPoolAutoScale:SparkPoolAutoScale",
            "description": "An `auto_scale` block as defined below. Exactly one of `node_count` or `auto_scale` must be specified.\n"
          },
          "libraryRequirement": {
            "$ref": "#/types/azure:synapse/SparkPoolLibraryRequirement:SparkPoolLibraryRequirement",
            "description": "A `library_requirement` block as defined below.\n"
          },
          "name": {
            "description": "The name which should be used for this Synapse Spark Pool. Changing this forces a new Synapse Spark Pool to be created.\n",
            "type": "string"
          },
          "nodeCount": {
            "description": "The number of nodes in the Spark Pool. Exactly one of `node_count` or `auto_scale` must be specified.\n",
            "type": "integer"
          },
          "nodeSize": {
            "description": "The level of node in the Spark Pool. Possible value is `Small`, `Medium` and `Large`.\n",
            "type": "string"
          },
          "nodeSizeFamily": {
            "description": "The kind of nodes that the Spark Pool provides. Possible value is `MemoryOptimized`.\n",
            "type": "string"
          },
          "sparkEventsFolder": {
            "description": "The Spark events folder. Defaults to `/events`.\n",
            "type": "string"
          },
          "sparkLogFolder": {
            "description": "The default folder where Spark logs will be written. Defaults to `/logs`.\n",
            "type": "string"
          },
          "sparkVersion": {
            "description": "The Apache Spark version. Possible values are `2.4` and `3.1`. Defaults to `2.4`.\n",
            "type": "string"
          },
          "synapseWorkspaceId": {
            "description": "The ID of the Synapse Workspace where the Synapse Spark Pool should exist. Changing this forces a new Synapse Spark Pool to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Synapse Spark Pool.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:synapse/sqlPool:SqlPool": {
      "description": "Manages a Synapse Sql Pool.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    accountKind: \"BlobStorage\",\n});\nconst exampleDataLakeGen2Filesystem = new azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", {storageAccountId: exampleAccount.id});\nconst exampleWorkspace = new azure.synapse.Workspace(\"exampleWorkspace\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    storageDataLakeGen2FilesystemId: exampleDataLakeGen2Filesystem.id,\n    sqlAdministratorLogin: \"sqladminuser\",\n    sqlAdministratorLoginPassword: \"H@Sh1CoR3!\",\n});\nconst exampleSqlPool = new azure.synapse.SqlPool(\"exampleSqlPool\", {\n    synapseWorkspaceId: exampleWorkspace.id,\n    skuName: \"DW100c\",\n    createMode: \"Default\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    account_kind=\"BlobStorage\")\nexample_data_lake_gen2_filesystem = azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", storage_account_id=example_account.id)\nexample_workspace = azure.synapse.Workspace(\"exampleWorkspace\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    storage_data_lake_gen2_filesystem_id=example_data_lake_gen2_filesystem.id,\n    sql_administrator_login=\"sqladminuser\",\n    sql_administrator_login_password=\"H@Sh1CoR3!\")\nexample_sql_pool = azure.synapse.SqlPool(\"exampleSqlPool\",\n    synapse_workspace_id=example_workspace.id,\n    sku_name=\"DW100c\",\n    create_mode=\"Default\")\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            AccountKind = \"BlobStorage\",\n        });\n        var exampleDataLakeGen2Filesystem = new Azure.Storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", new Azure.Storage.DataLakeGen2FilesystemArgs\n        {\n            StorageAccountId = exampleAccount.Id,\n        });\n        var exampleWorkspace = new Azure.Synapse.Workspace(\"exampleWorkspace\", new Azure.Synapse.WorkspaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            StorageDataLakeGen2FilesystemId = exampleDataLakeGen2Filesystem.Id,\n            SqlAdministratorLogin = \"sqladminuser\",\n            SqlAdministratorLoginPassword = \"H@Sh1CoR3!\",\n        });\n        var exampleSqlPool = new Azure.Synapse.SqlPool(\"exampleSqlPool\", new Azure.Synapse.SqlPoolArgs\n        {\n            SynapseWorkspaceId = exampleWorkspace.Id,\n            SkuName = \"DW100c\",\n            CreateMode = \"Default\",\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/synapse\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tAccountKind:            pulumi.String(\"BlobStorage\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDataLakeGen2Filesystem, err := storage.NewDataLakeGen2Filesystem(ctx, \"exampleDataLakeGen2Filesystem\", \u0026storage.DataLakeGen2FilesystemArgs{\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkspace, err := synapse.NewWorkspace(ctx, \"exampleWorkspace\", \u0026synapse.WorkspaceArgs{\n\t\t\tResourceGroupName:               exampleResourceGroup.Name,\n\t\t\tLocation:                        exampleResourceGroup.Location,\n\t\t\tStorageDataLakeGen2FilesystemId: exampleDataLakeGen2Filesystem.ID(),\n\t\t\tSqlAdministratorLogin:           pulumi.String(\"sqladminuser\"),\n\t\t\tSqlAdministratorLoginPassword:   pulumi.String(\"H@Sh1CoR3!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = synapse.NewSqlPool(ctx, \"exampleSqlPool\", \u0026synapse.SqlPoolArgs{\n\t\t\tSynapseWorkspaceId: exampleWorkspace.ID(),\n\t\t\tSkuName:            pulumi.String(\"DW100c\"),\n\t\t\tCreateMode:         pulumi.String(\"Default\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSynapse Sql Pool can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:synapse/sqlPool:SqlPool example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Synapse/workspaces/workspace1/sqlPools/sqlPool1\n```\n\n ",
      "inputProperties": {
        "collation": {
          "description": "The name of the collation to use with this pool, only applicable when `create_mode` is set to `Default`. Azure default is `SQL_LATIN1_GENERAL_CP1_CI_AS`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "createMode": {
          "description": "Specifies how to create the Sql Pool. Valid values are: `Default`, `Recovery` or `PointInTimeRestore`. Must be `Default` to create a new database. Defaults to `Default`.\n",
          "type": "string"
        },
        "dataEncrypted": {
          "description": "Is transparent data encryption enabled? Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name which should be used for this Synapse Sql Pool. Changing this forces a new synapse SqlPool to be created.\n",
          "type": "string"
        },
        "recoveryDatabaseId": {
          "description": "The ID of the Synapse Sql Pool or Sql Database which is to back up, only applicable when `create_mode` is set to `Recovery`. Changing this forces a new Synapse Sql Pool to be created.\n",
          "type": "string"
        },
        "restore": {
          "$ref": "#/types/azure:synapse/SqlPoolRestore:SqlPoolRestore",
          "description": "A `restore` block as defined below. only applicable when `create_mode` is set to `PointInTimeRestore`.\n"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this Synapse Sql Pool. Possible values are `DW100c`, `DW200c`, `DW300c`, `DW400c`, `DW500c`, `DW1000c`, `DW1500c`, `DW2000c`, `DW2500c`, `DW3000c`, `DW5000c`, `DW6000c`, `DW7500c`, `DW10000c`, `DW15000c` or `DW30000c`.\n",
          "type": "string"
        },
        "synapseWorkspaceId": {
          "description": "The ID of Synapse Workspace within which this Sql Pool should be created. Changing this forces a new Synapse Sql Pool to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Synapse Sql Pool.\n",
          "type": "object"
        }
      },
      "properties": {
        "collation": {
          "description": "The name of the collation to use with this pool, only applicable when `create_mode` is set to `Default`. Azure default is `SQL_LATIN1_GENERAL_CP1_CI_AS`. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "createMode": {
          "description": "Specifies how to create the Sql Pool. Valid values are: `Default`, `Recovery` or `PointInTimeRestore`. Must be `Default` to create a new database. Defaults to `Default`.\n",
          "type": "string"
        },
        "dataEncrypted": {
          "description": "Is transparent data encryption enabled? Defaults to `false`.\n",
          "type": "boolean"
        },
        "name": {
          "description": "The name which should be used for this Synapse Sql Pool. Changing this forces a new synapse SqlPool to be created.\n",
          "type": "string"
        },
        "recoveryDatabaseId": {
          "description": "The ID of the Synapse Sql Pool or Sql Database which is to back up, only applicable when `create_mode` is set to `Recovery`. Changing this forces a new Synapse Sql Pool to be created.\n",
          "type": "string"
        },
        "restore": {
          "$ref": "#/types/azure:synapse/SqlPoolRestore:SqlPoolRestore",
          "description": "A `restore` block as defined below. only applicable when `create_mode` is set to `PointInTimeRestore`.\n"
        },
        "skuName": {
          "description": "Specifies the SKU Name for this Synapse Sql Pool. Possible values are `DW100c`, `DW200c`, `DW300c`, `DW400c`, `DW500c`, `DW1000c`, `DW1500c`, `DW2000c`, `DW2500c`, `DW3000c`, `DW5000c`, `DW6000c`, `DW7500c`, `DW10000c`, `DW15000c` or `DW30000c`.\n",
          "type": "string"
        },
        "synapseWorkspaceId": {
          "description": "The ID of Synapse Workspace within which this Sql Pool should be created. Changing this forces a new Synapse Sql Pool to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Synapse Sql Pool.\n",
          "type": "object"
        }
      },
      "required": [
        "collation",
        "name",
        "skuName",
        "synapseWorkspaceId"
      ],
      "requiredInputs": [
        "skuName",
        "synapseWorkspaceId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SqlPool resources.\n",
        "properties": {
          "collation": {
            "description": "The name of the collation to use with this pool, only applicable when `create_mode` is set to `Default`. Azure default is `SQL_LATIN1_GENERAL_CP1_CI_AS`. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "createMode": {
            "description": "Specifies how to create the Sql Pool. Valid values are: `Default`, `Recovery` or `PointInTimeRestore`. Must be `Default` to create a new database. Defaults to `Default`.\n",
            "type": "string"
          },
          "dataEncrypted": {
            "description": "Is transparent data encryption enabled? Defaults to `false`.\n",
            "type": "boolean"
          },
          "name": {
            "description": "The name which should be used for this Synapse Sql Pool. Changing this forces a new synapse SqlPool to be created.\n",
            "type": "string"
          },
          "recoveryDatabaseId": {
            "description": "The ID of the Synapse Sql Pool or Sql Database which is to back up, only applicable when `create_mode` is set to `Recovery`. Changing this forces a new Synapse Sql Pool to be created.\n",
            "type": "string"
          },
          "restore": {
            "$ref": "#/types/azure:synapse/SqlPoolRestore:SqlPoolRestore",
            "description": "A `restore` block as defined below. only applicable when `create_mode` is set to `PointInTimeRestore`.\n"
          },
          "skuName": {
            "description": "Specifies the SKU Name for this Synapse Sql Pool. Possible values are `DW100c`, `DW200c`, `DW300c`, `DW400c`, `DW500c`, `DW1000c`, `DW1500c`, `DW2000c`, `DW2500c`, `DW3000c`, `DW5000c`, `DW6000c`, `DW7500c`, `DW10000c`, `DW15000c` or `DW30000c`.\n",
            "type": "string"
          },
          "synapseWorkspaceId": {
            "description": "The ID of Synapse Workspace within which this Sql Pool should be created. Changing this forces a new Synapse Sql Pool to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Synapse Sql Pool.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:synapse/workspace:Workspace": {
      "description": "Manages a Synapse Workspace.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n    accountKind: \"StorageV2\",\n    isHnsEnabled: \"true\",\n});\nconst exampleDataLakeGen2Filesystem = new azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", {storageAccountId: exampleAccount.id});\nconst exampleWorkspace = new azure.synapse.Workspace(\"exampleWorkspace\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    storageDataLakeGen2FilesystemId: exampleDataLakeGen2Filesystem.id,\n    sqlAdministratorLogin: \"sqladminuser\",\n    sqlAdministratorLoginPassword: \"H@Sh1CoR3!\",\n    aadAdmin: {\n        login: \"AzureAD Admin\",\n        objectId: \"00000000-0000-0000-0000-000000000000\",\n        tenantId: \"00000000-0000-0000-0000-000000000000\",\n    },\n    tags: {\n        Env: \"production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"LRS\",\n    account_kind=\"StorageV2\",\n    is_hns_enabled=True)\nexample_data_lake_gen2_filesystem = azure.storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", storage_account_id=example_account.id)\nexample_workspace = azure.synapse.Workspace(\"exampleWorkspace\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    storage_data_lake_gen2_filesystem_id=example_data_lake_gen2_filesystem.id,\n    sql_administrator_login=\"sqladminuser\",\n    sql_administrator_login_password=\"H@Sh1CoR3!\",\n    aad_admin=azure.synapse.WorkspaceAadAdminArgs(\n        login=\"AzureAD Admin\",\n        object_id=\"00000000-0000-0000-0000-000000000000\",\n        tenant_id=\"00000000-0000-0000-0000-000000000000\",\n    ),\n    tags={\n        \"Env\": \"production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"LRS\",\n            AccountKind = \"StorageV2\",\n            IsHnsEnabled = true,\n        });\n        var exampleDataLakeGen2Filesystem = new Azure.Storage.DataLakeGen2Filesystem(\"exampleDataLakeGen2Filesystem\", new Azure.Storage.DataLakeGen2FilesystemArgs\n        {\n            StorageAccountId = exampleAccount.Id,\n        });\n        var exampleWorkspace = new Azure.Synapse.Workspace(\"exampleWorkspace\", new Azure.Synapse.WorkspaceArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            StorageDataLakeGen2FilesystemId = exampleDataLakeGen2Filesystem.Id,\n            SqlAdministratorLogin = \"sqladminuser\",\n            SqlAdministratorLoginPassword = \"H@Sh1CoR3!\",\n            AadAdmin = new Azure.Synapse.Inputs.WorkspaceAadAdminArgs\n            {\n                Login = \"AzureAD Admin\",\n                ObjectId = \"00000000-0000-0000-0000-000000000000\",\n                TenantId = \"00000000-0000-0000-0000-000000000000\",\n            },\n            Tags = \n            {\n                { \"Env\", \"production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/synapse\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tAccountKind:            pulumi.String(\"StorageV2\"),\n\t\t\tIsHnsEnabled:           pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDataLakeGen2Filesystem, err := storage.NewDataLakeGen2Filesystem(ctx, \"exampleDataLakeGen2Filesystem\", \u0026storage.DataLakeGen2FilesystemArgs{\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = synapse.NewWorkspace(ctx, \"exampleWorkspace\", \u0026synapse.WorkspaceArgs{\n\t\t\tResourceGroupName:               exampleResourceGroup.Name,\n\t\t\tLocation:                        exampleResourceGroup.Location,\n\t\t\tStorageDataLakeGen2FilesystemId: exampleDataLakeGen2Filesystem.ID(),\n\t\t\tSqlAdministratorLogin:           pulumi.String(\"sqladminuser\"),\n\t\t\tSqlAdministratorLoginPassword:   pulumi.String(\"H@Sh1CoR3!\"),\n\t\t\tAadAdmin: \u0026synapse.WorkspaceAadAdminArgs{\n\t\t\t\tLogin:    pulumi.String(\"AzureAD Admin\"),\n\t\t\t\tObjectId: pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t\tTenantId: pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Env\": pulumi.String(\"production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSynapse Workspace can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:synapse/workspace:Workspace example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Synapse/workspaces/workspace1\n```\n\n ",
      "inputProperties": {
        "aadAdmin": {
          "$ref": "#/types/azure:synapse/WorkspaceAadAdmin:WorkspaceAadAdmin",
          "description": "An `aad_admin` block as defined below.\n"
        },
        "azureDevopsRepo": {
          "$ref": "#/types/azure:synapse/WorkspaceAzureDevopsRepo:WorkspaceAzureDevopsRepo",
          "description": "An `azure_devops_repo` block as defined below.\n"
        },
        "customerManagedKeyVersionlessId": {
          "description": "The Azure Key Vault Key Versionless ID to be used as the Customer Managed Key (CMK) for double encryption (e.g. `https://example-keyvault.vault.azure.net/type/cmk/`).\n",
          "type": "string"
        },
        "dataExfiltrationProtectionEnabled": {
          "description": "Is data exfiltration protection enabled in this workspace? If set to `true`, `managed_virtual_network_enabled` must also be set to `true`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "githubRepo": {
          "$ref": "#/types/azure:synapse/WorkspaceGithubRepo:WorkspaceGithubRepo",
          "description": "A `github_repo` block as defined below.\n"
        },
        "location": {
          "description": "Specifies the Azure Region where the synapse Workspace should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managedResourceGroupName": {
          "description": "Workspace managed resource group.\n",
          "type": "string"
        },
        "managedVirtualNetworkEnabled": {
          "description": "Is Virtual Network enabled for all computes in this workspace? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name which should be used for this synapse Workspace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group where the synapse Workspace should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sqlAdministratorLogin": {
          "description": "Specifies The Login Name of the SQL administrator. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sqlAdministratorLoginPassword": {
          "description": "The Password associated with the `sql_administrator_login` for the SQL administrator.\n",
          "type": "string"
        },
        "sqlIdentityControlEnabled": {
          "description": "Are pipelines (running as workspace's system assigned identity) allowed to access SQL pools?\n",
          "type": "boolean"
        },
        "storageDataLakeGen2FilesystemId": {
          "description": "Specifies the ID of storage data lake gen2 filesystem resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Synapse Workspace.\n",
          "type": "object"
        }
      },
      "properties": {
        "aadAdmin": {
          "$ref": "#/types/azure:synapse/WorkspaceAadAdmin:WorkspaceAadAdmin",
          "description": "An `aad_admin` block as defined below.\n"
        },
        "azureDevopsRepo": {
          "$ref": "#/types/azure:synapse/WorkspaceAzureDevopsRepo:WorkspaceAzureDevopsRepo",
          "description": "An `azure_devops_repo` block as defined below.\n"
        },
        "connectivityEndpoints": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A list of Connectivity endpoints for this Synapse Workspace.\n",
          "type": "object"
        },
        "customerManagedKeyVersionlessId": {
          "description": "The Azure Key Vault Key Versionless ID to be used as the Customer Managed Key (CMK) for double encryption (e.g. `https://example-keyvault.vault.azure.net/type/cmk/`).\n",
          "type": "string"
        },
        "dataExfiltrationProtectionEnabled": {
          "description": "Is data exfiltration protection enabled in this workspace? If set to `true`, `managed_virtual_network_enabled` must also be set to `true`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "githubRepo": {
          "$ref": "#/types/azure:synapse/WorkspaceGithubRepo:WorkspaceGithubRepo",
          "description": "A `github_repo` block as defined below.\n"
        },
        "identities": {
          "description": "An `identity` block as defined below, which contains the Managed Service Identity information for this Synapse Workspace.\n",
          "items": {
            "$ref": "#/types/azure:synapse/WorkspaceIdentity:WorkspaceIdentity"
          },
          "type": "array"
        },
        "location": {
          "description": "Specifies the Azure Region where the synapse Workspace should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managedResourceGroupName": {
          "description": "Workspace managed resource group.\n",
          "type": "string"
        },
        "managedVirtualNetworkEnabled": {
          "description": "Is Virtual Network enabled for all computes in this workspace? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name which should be used for this synapse Workspace. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "Specifies the name of the Resource Group where the synapse Workspace should exist. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sqlAdministratorLogin": {
          "description": "Specifies The Login Name of the SQL administrator. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "sqlAdministratorLoginPassword": {
          "description": "The Password associated with the `sql_administrator_login` for the SQL administrator.\n",
          "type": "string"
        },
        "sqlIdentityControlEnabled": {
          "description": "Are pipelines (running as workspace's system assigned identity) allowed to access SQL pools?\n",
          "type": "boolean"
        },
        "storageDataLakeGen2FilesystemId": {
          "description": "Specifies the ID of storage data lake gen2 filesystem resource. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags which should be assigned to the Synapse Workspace.\n",
          "type": "object"
        }
      },
      "required": [
        "aadAdmin",
        "connectivityEndpoints",
        "identities",
        "location",
        "managedResourceGroupName",
        "name",
        "resourceGroupName",
        "sqlAdministratorLogin",
        "sqlAdministratorLoginPassword",
        "storageDataLakeGen2FilesystemId"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "sqlAdministratorLogin",
        "sqlAdministratorLoginPassword",
        "storageDataLakeGen2FilesystemId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Workspace resources.\n",
        "properties": {
          "aadAdmin": {
            "$ref": "#/types/azure:synapse/WorkspaceAadAdmin:WorkspaceAadAdmin",
            "description": "An `aad_admin` block as defined below.\n"
          },
          "azureDevopsRepo": {
            "$ref": "#/types/azure:synapse/WorkspaceAzureDevopsRepo:WorkspaceAzureDevopsRepo",
            "description": "An `azure_devops_repo` block as defined below.\n"
          },
          "connectivityEndpoints": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A list of Connectivity endpoints for this Synapse Workspace.\n",
            "type": "object"
          },
          "customerManagedKeyVersionlessId": {
            "description": "The Azure Key Vault Key Versionless ID to be used as the Customer Managed Key (CMK) for double encryption (e.g. `https://example-keyvault.vault.azure.net/type/cmk/`).\n",
            "type": "string"
          },
          "dataExfiltrationProtectionEnabled": {
            "description": "Is data exfiltration protection enabled in this workspace? If set to `true`, `managed_virtual_network_enabled` must also be set to `true`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "githubRepo": {
            "$ref": "#/types/azure:synapse/WorkspaceGithubRepo:WorkspaceGithubRepo",
            "description": "A `github_repo` block as defined below.\n"
          },
          "identities": {
            "description": "An `identity` block as defined below, which contains the Managed Service Identity information for this Synapse Workspace.\n",
            "items": {
              "$ref": "#/types/azure:synapse/WorkspaceIdentity:WorkspaceIdentity"
            },
            "type": "array"
          },
          "location": {
            "description": "Specifies the Azure Region where the synapse Workspace should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "managedResourceGroupName": {
            "description": "Workspace managed resource group.\n",
            "type": "string"
          },
          "managedVirtualNetworkEnabled": {
            "description": "Is Virtual Network enabled for all computes in this workspace? Defaults to `false`. Changing this forces a new resource to be created.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Specifies the name which should be used for this synapse Workspace. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "Specifies the name of the Resource Group where the synapse Workspace should exist. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sqlAdministratorLogin": {
            "description": "Specifies The Login Name of the SQL administrator. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "sqlAdministratorLoginPassword": {
            "description": "The Password associated with the `sql_administrator_login` for the SQL administrator.\n",
            "type": "string"
          },
          "sqlIdentityControlEnabled": {
            "description": "Are pipelines (running as workspace's system assigned identity) allowed to access SQL pools?\n",
            "type": "boolean"
          },
          "storageDataLakeGen2FilesystemId": {
            "description": "Specifies the ID of storage data lake gen2 filesystem resource. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags which should be assigned to the Synapse Workspace.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:trafficmanager/endpoint:Endpoint": {
      "deprecationMessage": "azure.trafficmanager.Endpoint has been deprecated in favor of azure.network.TrafficManagerEndpoint",
      "description": "Manages a Traffic Manager Endpoint.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as random from \"@pulumi/random\";\n\nconst server = new random.RandomId(\"server\", {\n    keepers: {\n        azi_id: 1,\n    },\n    byteLength: 8,\n});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleTrafficManagerProfile = new azure.network.TrafficManagerProfile(\"exampleTrafficManagerProfile\", {\n    resourceGroupName: exampleResourceGroup.name,\n    trafficRoutingMethod: \"Weighted\",\n    dnsConfig: {\n        relativeName: server.hex,\n        ttl: 100,\n    },\n    monitorConfig: {\n        protocol: \"http\",\n        port: 80,\n        path: \"/\",\n        intervalInSeconds: 30,\n        timeoutInSeconds: 9,\n        toleratedNumberOfFailures: 3,\n    },\n    tags: {\n        environment: \"Production\",\n    },\n});\nconst exampleTrafficManagerEndpoint = new azure.network.TrafficManagerEndpoint(\"exampleTrafficManagerEndpoint\", {\n    resourceGroupName: exampleResourceGroup.name,\n    profileName: exampleTrafficManagerProfile.name,\n    type: \"externalEndpoints\",\n    weight: 100,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_random as random\n\nserver = random.RandomId(\"server\",\n    keepers={\n        \"azi_id\": 1,\n    },\n    byte_length=8)\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_traffic_manager_profile = azure.network.TrafficManagerProfile(\"exampleTrafficManagerProfile\",\n    resource_group_name=example_resource_group.name,\n    traffic_routing_method=\"Weighted\",\n    dns_config=azure.network.TrafficManagerProfileDnsConfigArgs(\n        relative_name=server.hex,\n        ttl=100,\n    ),\n    monitor_config=azure.network.TrafficManagerProfileMonitorConfigArgs(\n        protocol=\"http\",\n        port=80,\n        path=\"/\",\n        interval_in_seconds=30,\n        timeout_in_seconds=9,\n        tolerated_number_of_failures=3,\n    ),\n    tags={\n        \"environment\": \"Production\",\n    })\nexample_traffic_manager_endpoint = azure.network.TrafficManagerEndpoint(\"exampleTrafficManagerEndpoint\",\n    resource_group_name=example_resource_group.name,\n    profile_name=example_traffic_manager_profile.name,\n    type=\"externalEndpoints\",\n    weight=100)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing Random = Pulumi.Random;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var server = new Random.RandomId(\"server\", new Random.RandomIdArgs\n        {\n            Keepers = \n            {\n                { \"azi_id\", 1 },\n            },\n            ByteLength = 8,\n        });\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleTrafficManagerProfile = new Azure.Network.TrafficManagerProfile(\"exampleTrafficManagerProfile\", new Azure.Network.TrafficManagerProfileArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            TrafficRoutingMethod = \"Weighted\",\n            DnsConfig = new Azure.Network.Inputs.TrafficManagerProfileDnsConfigArgs\n            {\n                RelativeName = server.Hex,\n                Ttl = 100,\n            },\n            MonitorConfig = new Azure.Network.Inputs.TrafficManagerProfileMonitorConfigArgs\n            {\n                Protocol = \"http\",\n                Port = 80,\n                Path = \"/\",\n                IntervalInSeconds = 30,\n                TimeoutInSeconds = 9,\n                ToleratedNumberOfFailures = 3,\n            },\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n        var exampleTrafficManagerEndpoint = new Azure.Network.TrafficManagerEndpoint(\"exampleTrafficManagerEndpoint\", new Azure.Network.TrafficManagerEndpointArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            ProfileName = exampleTrafficManagerProfile.Name,\n            Type = \"externalEndpoints\",\n            Weight = 100,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tserver, err := random.NewRandomId(ctx, \"server\", \u0026random.RandomIdArgs{\n\t\t\tKeepers: pulumi.AnyMap{\n\t\t\t\t\"azi_id\": pulumi.Any(1),\n\t\t\t},\n\t\t\tByteLength: pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTrafficManagerProfile, err := network.NewTrafficManagerProfile(ctx, \"exampleTrafficManagerProfile\", \u0026network.TrafficManagerProfileArgs{\n\t\t\tResourceGroupName:    exampleResourceGroup.Name,\n\t\t\tTrafficRoutingMethod: pulumi.String(\"Weighted\"),\n\t\t\tDnsConfig: \u0026network.TrafficManagerProfileDnsConfigArgs{\n\t\t\t\tRelativeName: server.Hex,\n\t\t\t\tTtl:          pulumi.Int(100),\n\t\t\t},\n\t\t\tMonitorConfig: \u0026network.TrafficManagerProfileMonitorConfigArgs{\n\t\t\t\tProtocol:                  pulumi.String(\"http\"),\n\t\t\t\tPort:                      pulumi.Int(80),\n\t\t\t\tPath:                      pulumi.String(\"/\"),\n\t\t\t\tIntervalInSeconds:         pulumi.Int(30),\n\t\t\t\tTimeoutInSeconds:          pulumi.Int(9),\n\t\t\t\tToleratedNumberOfFailures: pulumi.Int(3),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewTrafficManagerEndpoint(ctx, \"exampleTrafficManagerEndpoint\", \u0026network.TrafficManagerEndpointArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tProfileName:       exampleTrafficManagerProfile.Name,\n\t\t\tType:              pulumi.String(\"externalEndpoints\"),\n\t\t\tWeight:            pulumi.Int(100),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nTraffic Manager Endpoints can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:trafficmanager/endpoint:Endpoint exampleEndpoints /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/trafficManagerProfiles/mytrafficmanagerprofile1/azureEndpoints/mytrafficmanagerendpoint\n```\n\n ",
      "inputProperties": {
        "customHeaders": {
          "description": "One or more `custom_header` blocks as defined below\n",
          "items": {
            "$ref": "#/types/azure:trafficmanager/EndpointCustomHeader:EndpointCustomHeader"
          },
          "type": "array"
        },
        "endpointLocation": {
          "description": "Specifies the Azure location of the Endpoint,\nthis must be specified for Profiles using the `Performance` routing method\nif the Endpoint is of either type `nestedEndpoints` or `externalEndpoints`.\nFor Endpoints of type `azureEndpoints` the value will be taken from the\nlocation of the Azure target resource.\n",
          "type": "string"
        },
        "endpointStatus": {
          "description": "The status of the Endpoint, can be set to\neither `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
          "type": "string"
        },
        "geoMappings": {
          "description": "A list of Geographic Regions used to distribute traffic, such as `WORLD`, `UK` or `DE`. The same location can't be specified in two endpoints. [See the Geographic Hierarchies documentation for more information](https://docs.microsoft.com/en-us/rest/api/trafficmanager/geographichierarchies/getdefault).\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "minChildEndpoints": {
          "description": "This argument specifies the minimum number\nof endpoints that must be ‘online’ in the child profile in order for the\nparent profile to direct traffic to any of the endpoints in that child\nprofile. This argument only applies to Endpoints of type `nestedEndpoints`\nand has to be larger than `0`.\n",
          "type": "integer"
        },
        "minimumRequiredChildEndpointsIpv4": {
          "description": "This argument specifies the minimum number of IPv4 (DNS record type A) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and defaults to `1`.\n",
          "type": "integer"
        },
        "minimumRequiredChildEndpointsIpv6": {
          "description": "This argument specifies the minimum number of IPv6 (DNS record type AAAA) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and defaults to `1`.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name of the Traffic Manager endpoint. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "Specifies the priority of this Endpoint, this must be\nspecified for Profiles using the `Priority` traffic routing method. Supports\nvalues between 1 and 1000, with no Endpoints sharing the same value. If\nomitted the value will be computed in order of creation.\n",
          "type": "integer"
        },
        "profileName": {
          "description": "The name of the Traffic Manager Profile to attach\ncreate the Traffic Manager endpoint.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Traffic Manager Profile exists.\n",
          "type": "string"
        },
        "subnets": {
          "description": "One or more `subnet` blocks as defined below\n",
          "items": {
            "$ref": "#/types/azure:trafficmanager/EndpointSubnet:EndpointSubnet"
          },
          "type": "array"
        },
        "target": {
          "description": "The FQDN DNS name of the target. This argument must be\nprovided for an endpoint of type `externalEndpoints`, for other types it\nwill be computed.\n",
          "type": "string"
        },
        "targetResourceId": {
          "description": "The resource id of an Azure resource to\ntarget. This argument must be provided for an endpoint of type\n`azureEndpoints` or `nestedEndpoints`.\n",
          "type": "string"
        },
        "type": {
          "description": "The Endpoint type, must be one of:\n- `azureEndpoints`\n- `externalEndpoints`\n- `nestedEndpoints`\n",
          "type": "string"
        },
        "weight": {
          "description": "Specifies how much traffic should be distributed to this\nendpoint, this must be specified for Profiles using the  `Weighted` traffic\nrouting method. Supports values between 1 and 1000.\n",
          "type": "integer"
        }
      },
      "properties": {
        "customHeaders": {
          "description": "One or more `custom_header` blocks as defined below\n",
          "items": {
            "$ref": "#/types/azure:trafficmanager/EndpointCustomHeader:EndpointCustomHeader"
          },
          "type": "array"
        },
        "endpointLocation": {
          "description": "Specifies the Azure location of the Endpoint,\nthis must be specified for Profiles using the `Performance` routing method\nif the Endpoint is of either type `nestedEndpoints` or `externalEndpoints`.\nFor Endpoints of type `azureEndpoints` the value will be taken from the\nlocation of the Azure target resource.\n",
          "type": "string"
        },
        "endpointMonitorStatus": {
          "type": "string"
        },
        "endpointStatus": {
          "description": "The status of the Endpoint, can be set to\neither `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
          "type": "string"
        },
        "geoMappings": {
          "description": "A list of Geographic Regions used to distribute traffic, such as `WORLD`, `UK` or `DE`. The same location can't be specified in two endpoints. [See the Geographic Hierarchies documentation for more information](https://docs.microsoft.com/en-us/rest/api/trafficmanager/geographichierarchies/getdefault).\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "minChildEndpoints": {
          "description": "This argument specifies the minimum number\nof endpoints that must be ‘online’ in the child profile in order for the\nparent profile to direct traffic to any of the endpoints in that child\nprofile. This argument only applies to Endpoints of type `nestedEndpoints`\nand has to be larger than `0`.\n",
          "type": "integer"
        },
        "minimumRequiredChildEndpointsIpv4": {
          "description": "This argument specifies the minimum number of IPv4 (DNS record type A) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and defaults to `1`.\n",
          "type": "integer"
        },
        "minimumRequiredChildEndpointsIpv6": {
          "description": "This argument specifies the minimum number of IPv6 (DNS record type AAAA) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and defaults to `1`.\n",
          "type": "integer"
        },
        "name": {
          "description": "The name of the Traffic Manager endpoint. Changing this forces a\nnew resource to be created.\n",
          "type": "string"
        },
        "priority": {
          "description": "Specifies the priority of this Endpoint, this must be\nspecified for Profiles using the `Priority` traffic routing method. Supports\nvalues between 1 and 1000, with no Endpoints sharing the same value. If\nomitted the value will be computed in order of creation.\n",
          "type": "integer"
        },
        "profileName": {
          "description": "The name of the Traffic Manager Profile to attach\ncreate the Traffic Manager endpoint.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group where the Traffic Manager Profile exists.\n",
          "type": "string"
        },
        "subnets": {
          "description": "One or more `subnet` blocks as defined below\n",
          "items": {
            "$ref": "#/types/azure:trafficmanager/EndpointSubnet:EndpointSubnet"
          },
          "type": "array"
        },
        "target": {
          "description": "The FQDN DNS name of the target. This argument must be\nprovided for an endpoint of type `externalEndpoints`, for other types it\nwill be computed.\n",
          "type": "string"
        },
        "targetResourceId": {
          "description": "The resource id of an Azure resource to\ntarget. This argument must be provided for an endpoint of type\n`azureEndpoints` or `nestedEndpoints`.\n",
          "type": "string"
        },
        "type": {
          "description": "The Endpoint type, must be one of:\n- `azureEndpoints`\n- `externalEndpoints`\n- `nestedEndpoints`\n",
          "type": "string"
        },
        "weight": {
          "description": "Specifies how much traffic should be distributed to this\nendpoint, this must be specified for Profiles using the  `Weighted` traffic\nrouting method. Supports values between 1 and 1000.\n",
          "type": "integer"
        }
      },
      "required": [
        "endpointLocation",
        "endpointMonitorStatus",
        "endpointStatus",
        "name",
        "priority",
        "profileName",
        "resourceGroupName",
        "target",
        "type",
        "weight"
      ],
      "requiredInputs": [
        "profileName",
        "resourceGroupName",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Endpoint resources.\n",
        "properties": {
          "customHeaders": {
            "description": "One or more `custom_header` blocks as defined below\n",
            "items": {
              "$ref": "#/types/azure:trafficmanager/EndpointCustomHeader:EndpointCustomHeader"
            },
            "type": "array"
          },
          "endpointLocation": {
            "description": "Specifies the Azure location of the Endpoint,\nthis must be specified for Profiles using the `Performance` routing method\nif the Endpoint is of either type `nestedEndpoints` or `externalEndpoints`.\nFor Endpoints of type `azureEndpoints` the value will be taken from the\nlocation of the Azure target resource.\n",
            "type": "string"
          },
          "endpointMonitorStatus": {
            "type": "string"
          },
          "endpointStatus": {
            "description": "The status of the Endpoint, can be set to\neither `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
            "type": "string"
          },
          "geoMappings": {
            "description": "A list of Geographic Regions used to distribute traffic, such as `WORLD`, `UK` or `DE`. The same location can't be specified in two endpoints. [See the Geographic Hierarchies documentation for more information](https://docs.microsoft.com/en-us/rest/api/trafficmanager/geographichierarchies/getdefault).\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "minChildEndpoints": {
            "description": "This argument specifies the minimum number\nof endpoints that must be ‘online’ in the child profile in order for the\nparent profile to direct traffic to any of the endpoints in that child\nprofile. This argument only applies to Endpoints of type `nestedEndpoints`\nand has to be larger than `0`.\n",
            "type": "integer"
          },
          "minimumRequiredChildEndpointsIpv4": {
            "description": "This argument specifies the minimum number of IPv4 (DNS record type A) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and defaults to `1`.\n",
            "type": "integer"
          },
          "minimumRequiredChildEndpointsIpv6": {
            "description": "This argument specifies the minimum number of IPv6 (DNS record type AAAA) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and defaults to `1`.\n",
            "type": "integer"
          },
          "name": {
            "description": "The name of the Traffic Manager endpoint. Changing this forces a\nnew resource to be created.\n",
            "type": "string"
          },
          "priority": {
            "description": "Specifies the priority of this Endpoint, this must be\nspecified for Profiles using the `Priority` traffic routing method. Supports\nvalues between 1 and 1000, with no Endpoints sharing the same value. If\nomitted the value will be computed in order of creation.\n",
            "type": "integer"
          },
          "profileName": {
            "description": "The name of the Traffic Manager Profile to attach\ncreate the Traffic Manager endpoint.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group where the Traffic Manager Profile exists.\n",
            "type": "string"
          },
          "subnets": {
            "description": "One or more `subnet` blocks as defined below\n",
            "items": {
              "$ref": "#/types/azure:trafficmanager/EndpointSubnet:EndpointSubnet"
            },
            "type": "array"
          },
          "target": {
            "description": "The FQDN DNS name of the target. This argument must be\nprovided for an endpoint of type `externalEndpoints`, for other types it\nwill be computed.\n",
            "type": "string"
          },
          "targetResourceId": {
            "description": "The resource id of an Azure resource to\ntarget. This argument must be provided for an endpoint of type\n`azureEndpoints` or `nestedEndpoints`.\n",
            "type": "string"
          },
          "type": {
            "description": "The Endpoint type, must be one of:\n- `azureEndpoints`\n- `externalEndpoints`\n- `nestedEndpoints`\n",
            "type": "string"
          },
          "weight": {
            "description": "Specifies how much traffic should be distributed to this\nendpoint, this must be specified for Profiles using the  `Weighted` traffic\nrouting method. Supports values between 1 and 1000.\n",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "azure:trafficmanager/profile:Profile": {
      "deprecationMessage": "azure.trafficmanager.Profile has been deprecated in favor of azure.network.TrafficManagerProfile",
      "description": "Manages a Traffic Manager Profile to which multiple endpoints can be attached.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\nimport * as random from \"@pulumi/random\";\n\nconst server = new random.RandomId(\"server\", {\n    keepers: {\n        azi_id: 1,\n    },\n    byteLength: 8,\n});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleTrafficManagerProfile = new azure.network.TrafficManagerProfile(\"exampleTrafficManagerProfile\", {\n    resourceGroupName: exampleResourceGroup.name,\n    trafficRoutingMethod: \"Weighted\",\n    dnsConfig: {\n        relativeName: server.hex,\n        ttl: 100,\n    },\n    monitorConfig: {\n        protocol: \"http\",\n        port: 80,\n        path: \"/\",\n        intervalInSeconds: 30,\n        timeoutInSeconds: 9,\n        toleratedNumberOfFailures: 3,\n    },\n    tags: {\n        environment: \"Production\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\nimport pulumi_random as random\n\nserver = random.RandomId(\"server\",\n    keepers={\n        \"azi_id\": 1,\n    },\n    byte_length=8)\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_traffic_manager_profile = azure.network.TrafficManagerProfile(\"exampleTrafficManagerProfile\",\n    resource_group_name=example_resource_group.name,\n    traffic_routing_method=\"Weighted\",\n    dns_config=azure.network.TrafficManagerProfileDnsConfigArgs(\n        relative_name=server.hex,\n        ttl=100,\n    ),\n    monitor_config=azure.network.TrafficManagerProfileMonitorConfigArgs(\n        protocol=\"http\",\n        port=80,\n        path=\"/\",\n        interval_in_seconds=30,\n        timeout_in_seconds=9,\n        tolerated_number_of_failures=3,\n    ),\n    tags={\n        \"environment\": \"Production\",\n    })\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\nusing Random = Pulumi.Random;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var server = new Random.RandomId(\"server\", new Random.RandomIdArgs\n        {\n            Keepers = \n            {\n                { \"azi_id\", 1 },\n            },\n            ByteLength = 8,\n        });\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleTrafficManagerProfile = new Azure.Network.TrafficManagerProfile(\"exampleTrafficManagerProfile\", new Azure.Network.TrafficManagerProfileArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            TrafficRoutingMethod = \"Weighted\",\n            DnsConfig = new Azure.Network.Inputs.TrafficManagerProfileDnsConfigArgs\n            {\n                RelativeName = server.Hex,\n                Ttl = 100,\n            },\n            MonitorConfig = new Azure.Network.Inputs.TrafficManagerProfileMonitorConfigArgs\n            {\n                Protocol = \"http\",\n                Port = 80,\n                Path = \"/\",\n                IntervalInSeconds = 30,\n                TimeoutInSeconds = 9,\n                ToleratedNumberOfFailures = 3,\n            },\n            Tags = \n            {\n                { \"environment\", \"Production\" },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/network\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tserver, err := random.NewRandomId(ctx, \"server\", \u0026random.RandomIdArgs{\n\t\t\tKeepers: pulumi.AnyMap{\n\t\t\t\t\"azi_id\": pulumi.Any(1),\n\t\t\t},\n\t\t\tByteLength: pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewTrafficManagerProfile(ctx, \"exampleTrafficManagerProfile\", \u0026network.TrafficManagerProfileArgs{\n\t\t\tResourceGroupName:    exampleResourceGroup.Name,\n\t\t\tTrafficRoutingMethod: pulumi.String(\"Weighted\"),\n\t\t\tDnsConfig: \u0026network.TrafficManagerProfileDnsConfigArgs{\n\t\t\t\tRelativeName: server.Hex,\n\t\t\t\tTtl:          pulumi.Int(100),\n\t\t\t},\n\t\t\tMonitorConfig: \u0026network.TrafficManagerProfileMonitorConfigArgs{\n\t\t\t\tProtocol:                  pulumi.String(\"http\"),\n\t\t\t\tPort:                      pulumi.Int(80),\n\t\t\t\tPath:                      pulumi.String(\"/\"),\n\t\t\t\tIntervalInSeconds:         pulumi.Int(30),\n\t\t\t\tTimeoutInSeconds:          pulumi.Int(9),\n\t\t\t\tToleratedNumberOfFailures: pulumi.Int(3),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nTraffic Manager Profiles can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:trafficmanager/profile:Profile exampleProfile /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/trafficManagerProfiles/mytrafficmanagerprofile1\n```\n\n ",
      "inputProperties": {
        "dnsConfig": {
          "$ref": "#/types/azure:trafficmanager/ProfileDnsConfig:ProfileDnsConfig",
          "description": "This block specifies the DNS configuration of the Profile, it supports the fields documented below.\n"
        },
        "maxReturn": {
          "description": "The amount of endpoints to return for DNS queries to this Profile. Possible values range from `1` to `8`.\n",
          "type": "integer"
        },
        "monitorConfig": {
          "$ref": "#/types/azure:trafficmanager/ProfileMonitorConfig:ProfileMonitorConfig",
          "description": "This block specifies the Endpoint monitoring configuration for the Profile, it supports the fields documented below.\n"
        },
        "name": {
          "description": "The name of the Traffic Manager profile. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "profileStatus": {
          "description": "The status of the profile, can be set to either `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Traffic Manager profile.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "trafficRoutingMethod": {
          "description": "Specifies the algorithm used to route traffic, possible values are:\n",
          "type": "string"
        },
        "trafficViewEnabled": {
          "description": "Indicates whether Traffic View is enabled for the Traffic Manager profile.\n",
          "type": "boolean"
        }
      },
      "properties": {
        "dnsConfig": {
          "$ref": "#/types/azure:trafficmanager/ProfileDnsConfig:ProfileDnsConfig",
          "description": "This block specifies the DNS configuration of the Profile, it supports the fields documented below.\n"
        },
        "fqdn": {
          "description": "The FQDN of the created Profile.\n",
          "type": "string"
        },
        "maxReturn": {
          "description": "The amount of endpoints to return for DNS queries to this Profile. Possible values range from `1` to `8`.\n",
          "type": "integer"
        },
        "monitorConfig": {
          "$ref": "#/types/azure:trafficmanager/ProfileMonitorConfig:ProfileMonitorConfig",
          "description": "This block specifies the Endpoint monitoring configuration for the Profile, it supports the fields documented below.\n"
        },
        "name": {
          "description": "The name of the Traffic Manager profile. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "profileStatus": {
          "description": "The status of the profile, can be set to either `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Traffic Manager profile.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "type": "object"
        },
        "trafficRoutingMethod": {
          "description": "Specifies the algorithm used to route traffic, possible values are:\n",
          "type": "string"
        },
        "trafficViewEnabled": {
          "description": "Indicates whether Traffic View is enabled for the Traffic Manager profile.\n",
          "type": "boolean"
        }
      },
      "required": [
        "dnsConfig",
        "fqdn",
        "monitorConfig",
        "name",
        "profileStatus",
        "resourceGroupName",
        "trafficRoutingMethod"
      ],
      "requiredInputs": [
        "dnsConfig",
        "monitorConfig",
        "resourceGroupName",
        "trafficRoutingMethod"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Profile resources.\n",
        "properties": {
          "dnsConfig": {
            "$ref": "#/types/azure:trafficmanager/ProfileDnsConfig:ProfileDnsConfig",
            "description": "This block specifies the DNS configuration of the Profile, it supports the fields documented below.\n"
          },
          "fqdn": {
            "description": "The FQDN of the created Profile.\n",
            "type": "string"
          },
          "maxReturn": {
            "description": "The amount of endpoints to return for DNS queries to this Profile. Possible values range from `1` to `8`.\n",
            "type": "integer"
          },
          "monitorConfig": {
            "$ref": "#/types/azure:trafficmanager/ProfileMonitorConfig:ProfileMonitorConfig",
            "description": "This block specifies the Endpoint monitoring configuration for the Profile, it supports the fields documented below.\n"
          },
          "name": {
            "description": "The name of the Traffic Manager profile. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "profileStatus": {
            "description": "The status of the profile, can be set to either `Enabled` or `Disabled`. Defaults to `Enabled`.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Traffic Manager profile.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the resource.\n",
            "type": "object"
          },
          "trafficRoutingMethod": {
            "description": "Specifies the algorithm used to route traffic, possible values are:\n",
            "type": "string"
          },
          "trafficViewEnabled": {
            "description": "Indicates whether Traffic View is enabled for the Traffic Manager profile.\n",
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "azure:videoanalyzer/analyzer:Analyzer": {
      "description": "Manages a Video Analyzer.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleUserAssignedIdentity = new azure.authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst contributor = new azure.authorization.Assignment(\"contributor\", {\n    scope: exampleAccount.id,\n    roleDefinitionName: \"Storage Blob Data Contributor\",\n    principalId: exampleUserAssignedIdentity.principalId,\n});\nconst reader = new azure.authorization.Assignment(\"reader\", {\n    scope: exampleAccount.id,\n    roleDefinitionName: \"Reader\",\n    principalId: exampleUserAssignedIdentity.principalId,\n});\nconst exampleAnalyzer = new azure.videoanalyzer.Analyzer(\"exampleAnalyzer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccount: {\n        id: exampleAccount.id,\n        userAssignedIdentityId: exampleUserAssignedIdentity.id,\n    },\n    identity: {\n        type: \"UserAssigned\",\n        identityIds: [exampleUserAssignedIdentity.id],\n    },\n    tags: {\n        environment: \"staging\",\n    },\n}, {\n    dependsOn: [\n        contributor,\n        reader,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_user_assigned_identity = azure.authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\ncontributor = azure.authorization.Assignment(\"contributor\",\n    scope=example_account.id,\n    role_definition_name=\"Storage Blob Data Contributor\",\n    principal_id=example_user_assigned_identity.principal_id)\nreader = azure.authorization.Assignment(\"reader\",\n    scope=example_account.id,\n    role_definition_name=\"Reader\",\n    principal_id=example_user_assigned_identity.principal_id)\nexample_analyzer = azure.videoanalyzer.Analyzer(\"exampleAnalyzer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_account=azure.videoanalyzer.AnalyzerStorageAccountArgs(\n        id=example_account.id,\n        user_assigned_identity_id=example_user_assigned_identity.id,\n    ),\n    identity=azure.videoanalyzer.AnalyzerIdentityArgs(\n        type=\"UserAssigned\",\n        identity_ids=[example_user_assigned_identity.id],\n    ),\n    tags={\n        \"environment\": \"staging\",\n    },\n    opts=pulumi.ResourceOptions(depends_on=[\n            contributor,\n            reader,\n        ]))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleUserAssignedIdentity = new Azure.Authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\", new Azure.Authorization.UserAssignedIdentityArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var contributor = new Azure.Authorization.Assignment(\"contributor\", new Azure.Authorization.AssignmentArgs\n        {\n            Scope = exampleAccount.Id,\n            RoleDefinitionName = \"Storage Blob Data Contributor\",\n            PrincipalId = exampleUserAssignedIdentity.PrincipalId,\n        });\n        var reader = new Azure.Authorization.Assignment(\"reader\", new Azure.Authorization.AssignmentArgs\n        {\n            Scope = exampleAccount.Id,\n            RoleDefinitionName = \"Reader\",\n            PrincipalId = exampleUserAssignedIdentity.PrincipalId,\n        });\n        var exampleAnalyzer = new Azure.VideoAnalyzer.Analyzer(\"exampleAnalyzer\", new Azure.VideoAnalyzer.AnalyzerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccount = new Azure.VideoAnalyzer.Inputs.AnalyzerStorageAccountArgs\n            {\n                Id = exampleAccount.Id,\n                UserAssignedIdentityId = exampleUserAssignedIdentity.Id,\n            },\n            Identity = new Azure.VideoAnalyzer.Inputs.AnalyzerIdentityArgs\n            {\n                Type = \"UserAssigned\",\n                IdentityIds = \n                {\n                    exampleUserAssignedIdentity.Id,\n                },\n            },\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                contributor,\n                reader,\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/videoanalyzer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUserAssignedIdentity, err := authorization.NewUserAssignedIdentity(ctx, \"exampleUserAssignedIdentity\", \u0026authorization.UserAssignedIdentityArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcontributor, err := authorization.NewAssignment(ctx, \"contributor\", \u0026authorization.AssignmentArgs{\n\t\t\tScope:              exampleAccount.ID(),\n\t\t\tRoleDefinitionName: pulumi.String(\"Storage Blob Data Contributor\"),\n\t\t\tPrincipalId:        exampleUserAssignedIdentity.PrincipalId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treader, err := authorization.NewAssignment(ctx, \"reader\", \u0026authorization.AssignmentArgs{\n\t\t\tScope:              exampleAccount.ID(),\n\t\t\tRoleDefinitionName: pulumi.String(\"Reader\"),\n\t\t\tPrincipalId:        exampleUserAssignedIdentity.PrincipalId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = videoanalyzer.NewAnalyzer(ctx, \"exampleAnalyzer\", \u0026videoanalyzer.AnalyzerArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccount: \u0026videoanalyzer.AnalyzerStorageAccountArgs{\n\t\t\t\tId:                     exampleAccount.ID(),\n\t\t\t\tUserAssignedIdentityId: exampleUserAssignedIdentity.ID(),\n\t\t\t},\n\t\t\tIdentity: \u0026videoanalyzer.AnalyzerIdentityArgs{\n\t\t\t\tType: pulumi.String(\"UserAssigned\"),\n\t\t\t\tIdentityIds: pulumi.StringArray{\n\t\t\t\t\texampleUserAssignedIdentity.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcontributor,\n\t\t\treader,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVideo Analyzer can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:videoanalyzer/analyzer:Analyzer analyzer /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Media/videoAnalyzers/analyzer1\n```\n\n ",
      "inputProperties": {
        "identity": {
          "$ref": "#/types/azure:videoanalyzer/AnalyzerIdentity:AnalyzerIdentity",
          "description": "An `identity` block is defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Video Analyzer. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Video Analyzer. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccount": {
          "$ref": "#/types/azure:videoanalyzer/AnalyzerStorageAccount:AnalyzerStorageAccount",
          "description": "An `storage_account` blocks is defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "type": "object"
        }
      },
      "properties": {
        "identity": {
          "$ref": "#/types/azure:videoanalyzer/AnalyzerIdentity:AnalyzerIdentity",
          "description": "An `identity` block is defined below.\n"
        },
        "location": {
          "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Video Analyzer. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Video Analyzer. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "storageAccount": {
          "$ref": "#/types/azure:videoanalyzer/AnalyzerStorageAccount:AnalyzerStorageAccount",
          "description": "An `storage_account` blocks is defined below.\n"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "type": "object"
        }
      },
      "required": [
        "identity",
        "location",
        "name",
        "resourceGroupName",
        "storageAccount"
      ],
      "requiredInputs": [
        "identity",
        "resourceGroupName",
        "storageAccount"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Analyzer resources.\n",
        "properties": {
          "identity": {
            "$ref": "#/types/azure:videoanalyzer/AnalyzerIdentity:AnalyzerIdentity",
            "description": "An `identity` block is defined below.\n"
          },
          "location": {
            "description": "Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "name": {
            "description": "Specifies the name of the Video Analyzer. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Video Analyzer. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "storageAccount": {
            "$ref": "#/types/azure:videoanalyzer/AnalyzerStorageAccount:AnalyzerStorageAccount",
            "description": "An `storage_account` blocks is defined below.\n"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags assigned to the resource.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "azure:videoanalyzer/edgeModule:EdgeModule": {
      "description": "Manages a Video Analyzer Edge Module.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleAccount = new azure.storage.Account(\"exampleAccount\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"GRS\",\n});\nconst exampleUserAssignedIdentity = new azure.authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n});\nconst contributor = new azure.authorization.Assignment(\"contributor\", {\n    scope: exampleAccount.id,\n    roleDefinitionName: \"Storage Blob Data Contributor\",\n    principalId: exampleUserAssignedIdentity.principalId,\n});\nconst reader = new azure.authorization.Assignment(\"reader\", {\n    scope: exampleAccount.id,\n    roleDefinitionName: \"Reader\",\n    principalId: exampleUserAssignedIdentity.principalId,\n});\nconst exampleAnalyzer = new azure.videoanalyzer.Analyzer(\"exampleAnalyzer\", {\n    location: exampleResourceGroup.location,\n    resourceGroupName: exampleResourceGroup.name,\n    storageAccount: {\n        id: exampleAccount.id,\n        userAssignedIdentityId: exampleUserAssignedIdentity.id,\n    },\n    identity: {\n        type: \"UserAssigned\",\n        identityIds: [exampleUserAssignedIdentity.id],\n    },\n    tags: {\n        environment: \"staging\",\n    },\n}, {\n    dependsOn: [\n        exampleUserAssignedIdentity,\n        contributor,\n        reader,\n    ],\n});\nconst exampleEdgeModule = new azure.videoanalyzer.EdgeModule(\"exampleEdgeModule\", {\n    resourceGroupName: exampleResourceGroup.name,\n    videoAnalyzerName: exampleAnalyzer.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_account = azure.storage.Account(\"exampleAccount\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=\"Standard\",\n    account_replication_type=\"GRS\")\nexample_user_assigned_identity = azure.authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location)\ncontributor = azure.authorization.Assignment(\"contributor\",\n    scope=example_account.id,\n    role_definition_name=\"Storage Blob Data Contributor\",\n    principal_id=example_user_assigned_identity.principal_id)\nreader = azure.authorization.Assignment(\"reader\",\n    scope=example_account.id,\n    role_definition_name=\"Reader\",\n    principal_id=example_user_assigned_identity.principal_id)\nexample_analyzer = azure.videoanalyzer.Analyzer(\"exampleAnalyzer\",\n    location=example_resource_group.location,\n    resource_group_name=example_resource_group.name,\n    storage_account=azure.videoanalyzer.AnalyzerStorageAccountArgs(\n        id=example_account.id,\n        user_assigned_identity_id=example_user_assigned_identity.id,\n    ),\n    identity=azure.videoanalyzer.AnalyzerIdentityArgs(\n        type=\"UserAssigned\",\n        identity_ids=[example_user_assigned_identity.id],\n    ),\n    tags={\n        \"environment\": \"staging\",\n    },\n    opts=pulumi.ResourceOptions(depends_on=[\n            example_user_assigned_identity,\n            contributor,\n            reader,\n        ]))\nexample_edge_module = azure.videoanalyzer.EdgeModule(\"exampleEdgeModule\",\n    resource_group_name=example_resource_group.name,\n    video_analyzer_name=example_analyzer.name)\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var exampleAccount = new Azure.Storage.Account(\"exampleAccount\", new Azure.Storage.AccountArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            AccountTier = \"Standard\",\n            AccountReplicationType = \"GRS\",\n        });\n        var exampleUserAssignedIdentity = new Azure.Authorization.UserAssignedIdentity(\"exampleUserAssignedIdentity\", new Azure.Authorization.UserAssignedIdentityArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n        });\n        var contributor = new Azure.Authorization.Assignment(\"contributor\", new Azure.Authorization.AssignmentArgs\n        {\n            Scope = exampleAccount.Id,\n            RoleDefinitionName = \"Storage Blob Data Contributor\",\n            PrincipalId = exampleUserAssignedIdentity.PrincipalId,\n        });\n        var reader = new Azure.Authorization.Assignment(\"reader\", new Azure.Authorization.AssignmentArgs\n        {\n            Scope = exampleAccount.Id,\n            RoleDefinitionName = \"Reader\",\n            PrincipalId = exampleUserAssignedIdentity.PrincipalId,\n        });\n        var exampleAnalyzer = new Azure.VideoAnalyzer.Analyzer(\"exampleAnalyzer\", new Azure.VideoAnalyzer.AnalyzerArgs\n        {\n            Location = exampleResourceGroup.Location,\n            ResourceGroupName = exampleResourceGroup.Name,\n            StorageAccount = new Azure.VideoAnalyzer.Inputs.AnalyzerStorageAccountArgs\n            {\n                Id = exampleAccount.Id,\n                UserAssignedIdentityId = exampleUserAssignedIdentity.Id,\n            },\n            Identity = new Azure.VideoAnalyzer.Inputs.AnalyzerIdentityArgs\n            {\n                Type = \"UserAssigned\",\n                IdentityIds = \n                {\n                    exampleUserAssignedIdentity.Id,\n                },\n            },\n            Tags = \n            {\n                { \"environment\", \"staging\" },\n            },\n        }, new CustomResourceOptions\n        {\n            DependsOn = \n            {\n                exampleUserAssignedIdentity,\n                contributor,\n                reader,\n            },\n        });\n        var exampleEdgeModule = new Azure.VideoAnalyzer.EdgeModule(\"exampleEdgeModule\", new Azure.VideoAnalyzer.EdgeModuleArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            VideoAnalyzerName = exampleAnalyzer.Name,\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/storage\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/videoanalyzer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"exampleAccount\", \u0026storage.AccountArgs{\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"GRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUserAssignedIdentity, err := authorization.NewUserAssignedIdentity(ctx, \"exampleUserAssignedIdentity\", \u0026authorization.UserAssignedIdentityArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcontributor, err := authorization.NewAssignment(ctx, \"contributor\", \u0026authorization.AssignmentArgs{\n\t\t\tScope:              exampleAccount.ID(),\n\t\t\tRoleDefinitionName: pulumi.String(\"Storage Blob Data Contributor\"),\n\t\t\tPrincipalId:        exampleUserAssignedIdentity.PrincipalId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treader, err := authorization.NewAssignment(ctx, \"reader\", \u0026authorization.AssignmentArgs{\n\t\t\tScope:              exampleAccount.ID(),\n\t\t\tRoleDefinitionName: pulumi.String(\"Reader\"),\n\t\t\tPrincipalId:        exampleUserAssignedIdentity.PrincipalId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAnalyzer, err := videoanalyzer.NewAnalyzer(ctx, \"exampleAnalyzer\", \u0026videoanalyzer.AnalyzerArgs{\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tStorageAccount: \u0026videoanalyzer.AnalyzerStorageAccountArgs{\n\t\t\t\tId:                     exampleAccount.ID(),\n\t\t\t\tUserAssignedIdentityId: exampleUserAssignedIdentity.ID(),\n\t\t\t},\n\t\t\tIdentity: \u0026videoanalyzer.AnalyzerIdentityArgs{\n\t\t\t\tType: pulumi.String(\"UserAssigned\"),\n\t\t\t\tIdentityIds: pulumi.StringArray{\n\t\t\t\t\texampleUserAssignedIdentity.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleUserAssignedIdentity,\n\t\t\tcontributor,\n\t\t\treader,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = videoanalyzer.NewEdgeModule(ctx, \"exampleEdgeModule\", \u0026videoanalyzer.EdgeModuleArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tVideoAnalyzerName: exampleAnalyzer.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVideo Analyzer Edge Module can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:videoanalyzer/edgeModule:EdgeModule edge /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Media/videoAnalyzers/analyzer1/edgeModules/edge1\n```\n\n ",
      "inputProperties": {
        "name": {
          "description": "Specifies the name of the Video Analyzer Edge Module. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Video Analyzer Edge Module. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "videoAnalyzerName": {
          "description": "The name of the Video Analyzer in which to create the Edge Module. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the Video Analyzer Edge Module. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The name of the resource group in which to create the Video Analyzer Edge Module. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "videoAnalyzerName": {
          "description": "The name of the Video Analyzer in which to create the Edge Module. Changing this forces a new resource to be created.\n",
          "type": "string"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "videoAnalyzerName"
      ],
      "requiredInputs": [
        "resourceGroupName",
        "videoAnalyzerName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EdgeModule resources.\n",
        "properties": {
          "name": {
            "description": "Specifies the name of the Video Analyzer Edge Module. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "resourceGroupName": {
            "description": "The name of the resource group in which to create the Video Analyzer Edge Module. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "videoAnalyzerName": {
            "description": "The name of the Video Analyzer in which to create the Edge Module. Changing this forces a new resource to be created.\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "azure:waf/policy:Policy": {
      "description": "Manages a Azure Web Application Firewall Policy instance.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst examplePolicy = new azure.waf.Policy(\"examplePolicy\", {\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    customRules: [\n        {\n            name: \"Rule1\",\n            priority: 1,\n            ruleType: \"MatchRule\",\n            matchConditions: [{\n                matchVariables: [{\n                    variableName: \"RemoteAddr\",\n                }],\n                operator: \"IPMatch\",\n                negationCondition: false,\n                matchValues: [\n                    \"192.168.1.0/24\",\n                    \"10.0.0.0/24\",\n                ],\n            }],\n            action: \"Block\",\n        },\n        {\n            name: \"Rule2\",\n            priority: 2,\n            ruleType: \"MatchRule\",\n            matchConditions: [\n                {\n                    matchVariables: [{\n                        variableName: \"RemoteAddr\",\n                    }],\n                    operator: \"IPMatch\",\n                    negationCondition: false,\n                    matchValues: [\"192.168.1.0/24\"],\n                },\n                {\n                    matchVariables: [{\n                        variableName: \"RequestHeaders\",\n                        selector: \"UserAgent\",\n                    }],\n                    operator: \"Contains\",\n                    negationCondition: false,\n                    matchValues: [\"Windows\"],\n                },\n            ],\n            action: \"Block\",\n        },\n    ],\n    policySettings: {\n        enabled: true,\n        mode: \"Prevention\",\n        requestBodyCheck: true,\n        fileUploadLimitInMb: 100,\n        maxRequestBodySizeInKb: 128,\n    },\n    managedRules: {\n        exclusions: [\n            {\n                matchVariable: \"RequestHeaderNames\",\n                selector: \"x-company-secret-header\",\n                selectorMatchOperator: \"Equals\",\n            },\n            {\n                matchVariable: \"RequestCookieNames\",\n                selector: \"too-tasty\",\n                selectorMatchOperator: \"EndsWith\",\n            },\n        ],\n        managedRuleSets: [{\n            type: \"OWASP\",\n            version: \"3.1\",\n            ruleGroupOverrides: [{\n                ruleGroupName: \"REQUEST-920-PROTOCOL-ENFORCEMENT\",\n                disabledRules: [\n                    \"920300\",\n                    \"920440\",\n                ],\n            }],\n        }],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_policy = azure.waf.Policy(\"examplePolicy\",\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    custom_rules=[\n        azure.waf.PolicyCustomRuleArgs(\n            name=\"Rule1\",\n            priority=1,\n            rule_type=\"MatchRule\",\n            match_conditions=[azure.waf.PolicyCustomRuleMatchConditionArgs(\n                match_variables=[azure.waf.PolicyCustomRuleMatchConditionMatchVariableArgs(\n                    variable_name=\"RemoteAddr\",\n                )],\n                operator=\"IPMatch\",\n                negation_condition=False,\n                match_values=[\n                    \"192.168.1.0/24\",\n                    \"10.0.0.0/24\",\n                ],\n            )],\n            action=\"Block\",\n        ),\n        azure.waf.PolicyCustomRuleArgs(\n            name=\"Rule2\",\n            priority=2,\n            rule_type=\"MatchRule\",\n            match_conditions=[\n                azure.waf.PolicyCustomRuleMatchConditionArgs(\n                    match_variables=[azure.waf.PolicyCustomRuleMatchConditionMatchVariableArgs(\n                        variable_name=\"RemoteAddr\",\n                    )],\n                    operator=\"IPMatch\",\n                    negation_condition=False,\n                    match_values=[\"192.168.1.0/24\"],\n                ),\n                azure.waf.PolicyCustomRuleMatchConditionArgs(\n                    match_variables=[azure.waf.PolicyCustomRuleMatchConditionMatchVariableArgs(\n                        variable_name=\"RequestHeaders\",\n                        selector=\"UserAgent\",\n                    )],\n                    operator=\"Contains\",\n                    negation_condition=False,\n                    match_values=[\"Windows\"],\n                ),\n            ],\n            action=\"Block\",\n        ),\n    ],\n    policy_settings=azure.waf.PolicyPolicySettingsArgs(\n        enabled=True,\n        mode=\"Prevention\",\n        request_body_check=True,\n        file_upload_limit_in_mb=100,\n        max_request_body_size_in_kb=128,\n    ),\n    managed_rules=azure.waf.PolicyManagedRulesArgs(\n        exclusions=[\n            azure.waf.PolicyManagedRulesExclusionArgs(\n                match_variable=\"RequestHeaderNames\",\n                selector=\"x-company-secret-header\",\n                selector_match_operator=\"Equals\",\n            ),\n            azure.waf.PolicyManagedRulesExclusionArgs(\n                match_variable=\"RequestCookieNames\",\n                selector=\"too-tasty\",\n                selector_match_operator=\"EndsWith\",\n            ),\n        ],\n        managed_rule_sets=[azure.waf.PolicyManagedRulesManagedRuleSetArgs(\n            type=\"OWASP\",\n            version=\"3.1\",\n            rule_group_overrides=[azure.waf.PolicyManagedRulesManagedRuleSetRuleGroupOverrideArgs(\n                rule_group_name=\"REQUEST-920-PROTOCOL-ENFORCEMENT\",\n                disabled_rules=[\n                    \"920300\",\n                    \"920440\",\n                ],\n            )],\n        )],\n    ))\n```\n```csharp\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nclass MyStack : Stack\n{\n    public MyStack()\n    {\n        var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new Azure.Core.ResourceGroupArgs\n        {\n            Location = \"West Europe\",\n        });\n        var examplePolicy = new Azure.Waf.Policy(\"examplePolicy\", new Azure.Waf.PolicyArgs\n        {\n            ResourceGroupName = exampleResourceGroup.Name,\n            Location = exampleResourceGroup.Location,\n            CustomRules = \n            {\n                new Azure.Waf.Inputs.PolicyCustomRuleArgs\n                {\n                    Name = \"Rule1\",\n                    Priority = 1,\n                    RuleType = \"MatchRule\",\n                    MatchConditions = \n                    {\n                        new Azure.Waf.Inputs.PolicyCustomRuleMatchConditionArgs\n                        {\n                            MatchVariables = \n                            {\n                                new Azure.Waf.Inputs.PolicyCustomRuleMatchConditionMatchVariableArgs\n                                {\n                                    VariableName = \"RemoteAddr\",\n                                },\n                            },\n                            Operator = \"IPMatch\",\n                            NegationCondition = false,\n                            MatchValues = \n                            {\n                                \"192.168.1.0/24\",\n                                \"10.0.0.0/24\",\n                            },\n                        },\n                    },\n                    Action = \"Block\",\n                },\n                new Azure.Waf.Inputs.PolicyCustomRuleArgs\n                {\n                    Name = \"Rule2\",\n                    Priority = 2,\n                    RuleType = \"MatchRule\",\n                    MatchConditions = \n                    {\n                        new Azure.Waf.Inputs.PolicyCustomRuleMatchConditionArgs\n                        {\n                            MatchVariables = \n                            {\n                                new Azure.Waf.Inputs.PolicyCustomRuleMatchConditionMatchVariableArgs\n                                {\n                                    VariableName = \"RemoteAddr\",\n                                },\n                            },\n                            Operator = \"IPMatch\",\n                            NegationCondition = false,\n                            MatchValues = \n                            {\n                                \"192.168.1.0/24\",\n                            },\n                        },\n                        new Azure.Waf.Inputs.PolicyCustomRuleMatchConditionArgs\n                        {\n                            MatchVariables = \n                            {\n                                new Azure.Waf.Inputs.PolicyCustomRuleMatchConditionMatchVariableArgs\n                                {\n                                    VariableName = \"RequestHeaders\",\n                                    Selector = \"UserAgent\",\n                                },\n                            },\n                            Operator = \"Contains\",\n                            NegationCondition = false,\n                            MatchValues = \n                            {\n                                \"Windows\",\n                            },\n                        },\n                    },\n                    Action = \"Block\",\n                },\n            },\n            PolicySettings = new Azure.Waf.Inputs.PolicyPolicySettingsArgs\n            {\n                Enabled = true,\n                Mode = \"Prevention\",\n                RequestBodyCheck = true,\n                FileUploadLimitInMb = 100,\n                MaxRequestBodySizeInKb = 128,\n            },\n            ManagedRules = new Azure.Waf.Inputs.PolicyManagedRulesArgs\n            {\n                Exclusions = \n                {\n                    new Azure.Waf.Inputs.PolicyManagedRulesExclusionArgs\n                    {\n                        MatchVariable = \"RequestHeaderNames\",\n                        Selector = \"x-company-secret-header\",\n                        SelectorMatchOperator = \"Equals\",\n                    },\n                    new Azure.Waf.Inputs.PolicyManagedRulesExclusionArgs\n                    {\n                        MatchVariable = \"RequestCookieNames\",\n                        Selector = \"too-tasty\",\n                        SelectorMatchOperator = \"EndsWith\",\n                    },\n                },\n                ManagedRuleSets = \n                {\n                    new Azure.Waf.Inputs.PolicyManagedRulesManagedRuleSetArgs\n                    {\n                        Type = \"OWASP\",\n                        Version = \"3.1\",\n                        RuleGroupOverrides = \n                        {\n                            new Azure.Waf.Inputs.PolicyManagedRulesManagedRuleSetRuleGroupOverrideArgs\n                            {\n                                RuleGroupName = \"REQUEST-920-PROTOCOL-ENFORCEMENT\",\n                                DisabledRules = \n                                {\n                                    \"920300\",\n                                    \"920440\",\n                                },\n                            },\n                        },\n                    },\n                },\n            },\n        });\n    }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v4/go/azure/waf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", \u0026core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = waf.NewPolicy(ctx, \"examplePolicy\", \u0026waf.PolicyArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation:          exampleResourceGroup.Location,\n\t\t\tCustomRules: waf.PolicyCustomRuleArray{\n\t\t\t\t\u0026waf.PolicyCustomRuleArgs{\n\t\t\t\t\tName:     pulumi.String(\"Rule1\"),\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tRuleType: pulumi.String(\"MatchRule\"),\n\t\t\t\t\tMatchConditions: waf.PolicyCustomRuleMatchConditionArray{\n\t\t\t\t\t\t\u0026waf.PolicyCustomRuleMatchConditionArgs{\n\t\t\t\t\t\t\tMatchVariables: waf.PolicyCustomRuleMatchConditionMatchVariableArray{\n\t\t\t\t\t\t\t\t\u0026waf.PolicyCustomRuleMatchConditionMatchVariableArgs{\n\t\t\t\t\t\t\t\t\tVariableName: pulumi.String(\"RemoteAddr\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tOperator:          pulumi.String(\"IPMatch\"),\n\t\t\t\t\t\t\tNegationCondition: pulumi.Bool(false),\n\t\t\t\t\t\t\tMatchValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"192.168.1.0/24\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"10.0.0.0/24\"),\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\tAction: pulumi.String(\"Block\"),\n\t\t\t\t},\n\t\t\t\t\u0026waf.PolicyCustomRuleArgs{\n\t\t\t\t\tName:     pulumi.String(\"Rule2\"),\n\t\t\t\t\tPriority: pulumi.Int(2),\n\t\t\t\t\tRuleType: pulumi.String(\"MatchRule\"),\n\t\t\t\t\tMatchConditions: waf.PolicyCustomRuleMatchConditionArray{\n\t\t\t\t\t\t\u0026waf.PolicyCustomRuleMatchConditionArgs{\n\t\t\t\t\t\t\tMatchVariables: waf.PolicyCustomRuleMatchConditionMatchVariableArray{\n\t\t\t\t\t\t\t\t\u0026waf.PolicyCustomRuleMatchConditionMatchVariableArgs{\n\t\t\t\t\t\t\t\t\tVariableName: pulumi.String(\"RemoteAddr\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tOperator:          pulumi.String(\"IPMatch\"),\n\t\t\t\t\t\t\tNegationCondition: pulumi.Bool(false),\n\t\t\t\t\t\t\tMatchValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"192.168.1.0/24\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026waf.PolicyCustomRuleMatchConditionArgs{\n\t\t\t\t\t\t\tMatchVariables: waf.PolicyCustomRuleMatchConditionMatchVariableArray{\n\t\t\t\t\t\t\t\t\u0026waf.PolicyCustomRuleMatchConditionMatchVariableArgs{\n\t\t\t\t\t\t\t\t\tVariableName: pulumi.String(\"RequestHeaders\"),\n\t\t\t\t\t\t\t\t\tSelector:     pulumi.String(\"UserAgent\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tOperator:          pulumi.String(\"Contains\"),\n\t\t\t\t\t\t\tNegationCondition: pulumi.Bool(false),\n\t\t\t\t\t\t\tMatchValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"Windows\"),\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\tAction: pulumi.String(\"Block\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicySettings: \u0026waf.PolicyPolicySettingsArgs{\n\t\t\t\tEnabled:                pulumi.Bool(true),\n\t\t\t\tMode:                   pulumi.String(\"Prevention\"),\n\t\t\t\tRequestBodyCheck:       pulumi.Bool(true),\n\t\t\t\tFileUploadLimitInMb:    pulumi.Int(100),\n\t\t\t\tMaxRequestBodySizeInKb: pulumi.Int(128),\n\t\t\t},\n\t\t\tManagedRules: \u0026waf.PolicyManagedRulesArgs{\n\t\t\t\tExclusions: waf.PolicyManagedRulesExclusionArray{\n\t\t\t\t\t\u0026waf.PolicyManagedRulesExclusionArgs{\n\t\t\t\t\t\tMatchVariable:         pulumi.String(\"RequestHeaderNames\"),\n\t\t\t\t\t\tSelector:              pulumi.String(\"x-company-secret-header\"),\n\t\t\t\t\t\tSelectorMatchOperator: pulumi.String(\"Equals\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026waf.PolicyManagedRulesExclusionArgs{\n\t\t\t\t\t\tMatchVariable:         pulumi.String(\"RequestCookieNames\"),\n\t\t\t\t\t\tSelector:              pulumi.String(\"too-tasty\"),\n\t\t\t\t\t\tSelectorMatchOperator: pulumi.String(\"EndsWith\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tManagedRuleSets: waf.PolicyManagedRulesManagedRuleSetArray{\n\t\t\t\t\t\u0026waf.PolicyManagedRulesManagedRuleSetArgs{\n\t\t\t\t\t\tType:    pulumi.String(\"OWASP\"),\n\t\t\t\t\t\tVersion: pulumi.String(\"3.1\"),\n\t\t\t\t\t\tRuleGroupOverrides: waf.PolicyManagedRulesManagedRuleSetRuleGroupOverrideArray{\n\t\t\t\t\t\t\t\u0026waf.PolicyManagedRulesManagedRuleSetRuleGroupOverrideArgs{\n\t\t\t\t\t\t\t\tRuleGroupName: pulumi.String(\"REQUEST-920-PROTOCOL-ENFORCEMENT\"),\n\t\t\t\t\t\t\t\tDisabledRules: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\tpulumi.String(\"920300\"),\n\t\t\t\t\t\t\t\t\tpulumi.String(\"920440\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nWeb Application Firewall Policy can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:waf/policy:Policy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/example-wafpolicy\n```\n\n ",
      "inputProperties": {
        "customRules": {
          "description": "One or more `custom_rules` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:waf/PolicyCustomRule:PolicyCustomRule"
          },
          "type": "array"
        },
        "location": {
          "description": "Resource location. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managedRules": {
          "$ref": "#/types/azure:waf/PolicyManagedRules:PolicyManagedRules",
          "description": "A `managed_rules` blocks as defined below.\n"
        },
        "name": {
          "description": "The name of the policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "policySettings": {
          "$ref": "#/types/azure:waf/PolicyPolicySettings:PolicyPolicySettings",
          "description": "A `policy_settings` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Web Application Firewall Policy.\n",
          "type": "object"
        }
      },
      "properties": {
        "customRules": {
          "description": "One or more `custom_rules` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:waf/PolicyCustomRule:PolicyCustomRule"
          },
          "type": "array"
        },
        "httpListenerIds": {
          "description": "A list of HTTP Listener IDs from an `azure.network.ApplicationGateway`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Resource location. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "managedRules": {
          "$ref": "#/types/azure:waf/PolicyManagedRules:PolicyManagedRules",
          "description": "A `managed_rules` blocks as defined below.\n"
        },
        "name": {
          "description": "The name of the policy. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "pathBasedRuleIds": {
          "description": "A list of URL Path Map Path Rule IDs from an `azure.network.ApplicationGateway`.\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "policySettings": {
          "$ref": "#/types/azure:waf/PolicyPolicySettings:PolicyPolicySettings",
          "description": "A `policy_settings` block as defined below.\n"
        },
        "resourceGroupName": {
          "description": "The name of the resource group. Changing this forces a new resource to be created.\n",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Web Application Firewall Policy.\n",
          "type": "object"
        }
      },
      "required": [
        "httpListenerIds",
        "location",
        "managedRules",
        "name",
        "pathBasedRuleIds",
        "resourceGroupName"
      ],
      "requiredInputs": [
        "managedRules",
        "resourceGroupName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Policy resources.\n",
        "properties": {
          "customRules": {
            "description": "One or more `custom_rules` blocks as defined below.\n",
            "items": {
              "$ref": "#/types/azure:waf/PolicyCustomRule:PolicyCustomRule"
            },
            "type": "array"
          },
          "httpListenerIds": {
            "description": "A list of HTTP Listener IDs from an `azure.network.ApplicationGateway`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "location": {
            "description": "Resource location. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "managedRules": {
            "$ref": "#/types/azure:waf/PolicyManagedRules:PolicyManagedRules",
            "description": "A `managed_rules` blocks as defined below.\n"
          },
          "name": {
            "description": "The name of the policy. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "pathBasedRuleIds": {
            "description": "A list of URL Path Map Path Rule IDs from an `azure.network.ApplicationGateway`.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "policySettings": {
            "$ref": "#/types/azure:waf/PolicyPolicySettings:PolicyPolicySettings",
            "description": "A `policy_settings` block as defined below.\n"
          },
          "resourceGroupName": {
            "description": "The name of the resource group. Changing this forces a new resource to be created.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A mapping of tags to assign to the Web Application Firewall Policy.\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    }
  },
  "types": {
    "azure:advisor/getRecommendationsRecommendation:getRecommendationsRecommendation": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "category": {
          "description": "The category of the recommendation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "description": {
          "description": "The description of the issue or the opportunity identified by the recommendation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "impact": {
          "description": "The business impact of the recommendation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "recommendationName": {
          "description": "The name of the Advisor Recommendation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "recommendationTypeId": {
          "description": "The recommendation type id of the Advisor Recommendation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resourceName": {
          "description": "The name of the identified resource of the Advisor Recommendation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resourceType": {
          "description": "The type of the identified resource of the Advisor Recommendation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "suppressionNames": {
          "description": "A list of Advisor Suppression names of the Advisor Recommendation.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "updatedTime": {
          "description": "The most recent time that Advisor checked the validity of the recommendation..\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "category",
        "description",
        "impact",
        "recommendationName",
        "recommendationTypeId",
        "resourceName",
        "resourceType",
        "suppressionNames",
        "updatedTime"
      ],
      "type": "object"
    },
    "azure:analysisservices/ServerIpv4FirewallRule:ServerIpv4FirewallRule": {
      "properties": {
        "name": {
          "description": "Specifies the name of the firewall rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rangeEnd": {
          "description": "End of the firewall rule range as IPv4 address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rangeStart": {
          "description": "Start of the firewall rule range as IPv4 address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "rangeEnd",
        "rangeStart"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticBackendRequest:ApiDiagnosticBackendRequest": {
      "properties": {
        "bodyBytes": {
          "description": "Number of payload bytes to log (up to 8192).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "dataMasking": {
          "$ref": "#/types/azure:apimanagement/ApiDiagnosticBackendRequestDataMasking:ApiDiagnosticBackendRequestDataMasking",
          "description": "A `data_masking` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "headersToLogs": {
          "description": "Specifies a list of headers to log.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticBackendRequestDataMasking:ApiDiagnosticBackendRequestDataMasking": {
      "properties": {
        "headers": {
          "description": "A `headers` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiDiagnosticBackendRequestDataMaskingHeader:ApiDiagnosticBackendRequestDataMaskingHeader"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "queryParams": {
          "description": "A `query_params` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiDiagnosticBackendRequestDataMaskingQueryParam:ApiDiagnosticBackendRequestDataMaskingQueryParam"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticBackendRequestDataMaskingHeader:ApiDiagnosticBackendRequestDataMaskingHeader": {
      "properties": {
        "mode": {
          "description": "The data masking mode. Possible values are `Mask` and `Hide` for `query_params`. The only possible value is `Mask` for `headers`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The name of the header or the uery parameter to mask.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticBackendRequestDataMaskingQueryParam:ApiDiagnosticBackendRequestDataMaskingQueryParam": {
      "properties": {
        "mode": {
          "description": "The data masking mode. Possible values are `Mask` and `Hide` for `query_params`. The only possible value is `Mask` for `headers`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The name of the header or the uery parameter to mask.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticBackendResponse:ApiDiagnosticBackendResponse": {
      "properties": {
        "bodyBytes": {
          "description": "Number of payload bytes to log (up to 8192).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "dataMasking": {
          "$ref": "#/types/azure:apimanagement/ApiDiagnosticBackendResponseDataMasking:ApiDiagnosticBackendResponseDataMasking",
          "description": "A `data_masking` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "headersToLogs": {
          "description": "Specifies a list of headers to log.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticBackendResponseDataMasking:ApiDiagnosticBackendResponseDataMasking": {
      "properties": {
        "headers": {
          "description": "A `headers` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiDiagnosticBackendResponseDataMaskingHeader:ApiDiagnosticBackendResponseDataMaskingHeader"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "queryParams": {
          "description": "A `query_params` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiDiagnosticBackendResponseDataMaskingQueryParam:ApiDiagnosticBackendResponseDataMaskingQueryParam"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticBackendResponseDataMaskingHeader:ApiDiagnosticBackendResponseDataMaskingHeader": {
      "properties": {
        "mode": {
          "description": "The data masking mode. Possible values are `Mask` and `Hide` for `query_params`. The only possible value is `Mask` for `headers`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The name of the header or the uery parameter to mask.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticBackendResponseDataMaskingQueryParam:ApiDiagnosticBackendResponseDataMaskingQueryParam": {
      "properties": {
        "mode": {
          "description": "The data masking mode. Possible values are `Mask` and `Hide` for `query_params`. The only possible value is `Mask` for `headers`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The name of the header or the uery parameter to mask.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticFrontendRequest:ApiDiagnosticFrontendRequest": {
      "properties": {
        "bodyBytes": {
          "description": "Number of payload bytes to log (up to 8192).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "dataMasking": {
          "$ref": "#/types/azure:apimanagement/ApiDiagnosticFrontendRequestDataMasking:ApiDiagnosticFrontendRequestDataMasking",
          "description": "A `data_masking` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "headersToLogs": {
          "description": "Specifies a list of headers to log.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticFrontendRequestDataMasking:ApiDiagnosticFrontendRequestDataMasking": {
      "properties": {
        "headers": {
          "description": "A `headers` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiDiagnosticFrontendRequestDataMaskingHeader:ApiDiagnosticFrontendRequestDataMaskingHeader"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "queryParams": {
          "description": "A `query_params` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiDiagnosticFrontendRequestDataMaskingQueryParam:ApiDiagnosticFrontendRequestDataMaskingQueryParam"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticFrontendRequestDataMaskingHeader:ApiDiagnosticFrontendRequestDataMaskingHeader": {
      "properties": {
        "mode": {
          "description": "The data masking mode. Possible values are `Mask` and `Hide` for `query_params`. The only possible value is `Mask` for `headers`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The name of the header or the uery parameter to mask.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticFrontendRequestDataMaskingQueryParam:ApiDiagnosticFrontendRequestDataMaskingQueryParam": {
      "properties": {
        "mode": {
          "description": "The data masking mode. Possible values are `Mask` and `Hide` for `query_params`. The only possible value is `Mask` for `headers`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The name of the header or the uery parameter to mask.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticFrontendResponse:ApiDiagnosticFrontendResponse": {
      "properties": {
        "bodyBytes": {
          "description": "Number of payload bytes to log (up to 8192).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "dataMasking": {
          "$ref": "#/types/azure:apimanagement/ApiDiagnosticFrontendResponseDataMasking:ApiDiagnosticFrontendResponseDataMasking",
          "description": "A `data_masking` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "headersToLogs": {
          "description": "Specifies a list of headers to log.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticFrontendResponseDataMasking:ApiDiagnosticFrontendResponseDataMasking": {
      "properties": {
        "headers": {
          "description": "A `headers` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiDiagnosticFrontendResponseDataMaskingHeader:ApiDiagnosticFrontendResponseDataMaskingHeader"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "queryParams": {
          "description": "A `query_params` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiDiagnosticFrontendResponseDataMaskingQueryParam:ApiDiagnosticFrontendResponseDataMaskingQueryParam"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticFrontendResponseDataMaskingHeader:ApiDiagnosticFrontendResponseDataMaskingHeader": {
      "properties": {
        "mode": {
          "description": "The data masking mode. Possible values are `Mask` and `Hide` for `query_params`. The only possible value is `Mask` for `headers`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The name of the header or the uery parameter to mask.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiDiagnosticFrontendResponseDataMaskingQueryParam:ApiDiagnosticFrontendResponseDataMaskingQueryParam": {
      "properties": {
        "mode": {
          "description": "The data masking mode. Possible values are `Mask` and `Hide` for `query_params`. The only possible value is `Mask` for `headers`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The name of the header or the uery parameter to mask.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiImport:ApiImport": {
      "properties": {
        "contentFormat": {
          "description": "The format of the content from which the API Definition should be imported. Possible values are: `openapi`, `openapi+json`, `openapi+json-link`, `openapi-link`, `swagger-json`, `swagger-link-json`, `wadl-link-json`, `wadl-xml`, `wsdl` and `wsdl-link`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "contentValue": {
          "description": "The Content from which the API Definition should be imported. When a `content_format` of `*-link-*` is specified this must be a URL, otherwise this must be defined inline.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "wsdlSelector": {
          "$ref": "#/types/azure:apimanagement/ApiImportWsdlSelector:ApiImportWsdlSelector",
          "description": "A `wsdl_selector` block as defined below, which allows you to limit the import of a WSDL to only a subset of the document. This can only be specified when `content_format` is `wsdl` or `wsdl-link`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "contentFormat",
        "contentValue"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiImportWsdlSelector:ApiImportWsdlSelector": {
      "properties": {
        "endpointName": {
          "description": "The name of endpoint (port) to import from WSDL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serviceName": {
          "description": "The name of service to import from WSDL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "endpointName",
        "serviceName"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiOauth2Authorization:ApiOauth2Authorization": {
      "properties": {
        "authorizationServerName": {
          "description": "OAuth authorization server identifier. The name of an OAuth2 Authorization Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scope": {
          "description": "Operations scope.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "authorizationServerName"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiOpenidAuthentication:ApiOpenidAuthentication": {
      "properties": {
        "bearerTokenSendingMethods": {
          "description": "How to send token to the server. A list of zero or more methods. Valid values are `authorizationHeader` and `query`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "openidProviderName": {
          "description": "OpenID Connect provider identifier. The name of an OpenID Connect Provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "openidProviderName"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiOperationRequest:ApiOperationRequest": {
      "properties": {
        "description": {
          "description": "A description of the HTTP Request, which may include HTML tags.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headers": {
          "description": "One or more `header` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiOperationRequestHeader:ApiOperationRequestHeader"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "queryParameters": {
          "description": "One or more `query_parameter` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiOperationRequestQueryParameter:ApiOperationRequestQueryParameter"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "representations": {
          "description": "One or more `representation` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiOperationRequestRepresentation:ApiOperationRequestRepresentation"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/ApiOperationRequestHeader:ApiOperationRequestHeader": {
      "properties": {
        "defaultValue": {
          "description": "The default value for this Header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "description": {
          "description": "A description of this Header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of this Header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "required": {
          "description": "Is this Header Required?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "type": {
          "description": "The Type of this Header, such as a `string`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "One or more acceptable values for this Header.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "required",
        "type"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiOperationRequestQueryParameter:ApiOperationRequestQueryParameter": {
      "properties": {
        "defaultValue": {
          "description": "The default value for this Query Parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "description": {
          "description": "A description of this Query Parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of this Query Parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "required": {
          "description": "Is this Query Parameter Required?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "type": {
          "description": "The Type of this Query Parameter, such as a `string`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "One or more acceptable values for this Query Parameter.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "required",
        "type"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiOperationRequestRepresentation:ApiOperationRequestRepresentation": {
      "properties": {
        "contentType": {
          "description": "The Content Type of this representation, such as `application/json`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "formParameters": {
          "description": "One or more `form_parameter` block as defined above.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiOperationRequestRepresentationFormParameter:ApiOperationRequestRepresentationFormParameter"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sample": {
          "description": "An example of this representation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "schemaId": {
          "description": "The ID of an API Management Schema which represents this Response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "typeName": {
          "description": "The Type Name defined by the Schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "contentType"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiOperationRequestRepresentationFormParameter:ApiOperationRequestRepresentationFormParameter": {
      "properties": {
        "defaultValue": {
          "description": "The default value for this Form Parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "description": {
          "description": "A description of this Form Parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of this Form Parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "required": {
          "description": "Is this Form Parameter Required?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "type": {
          "description": "The Type of this Form Parameter, such as a `string`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "One or more acceptable values for this Form Parameter.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "required",
        "type"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiOperationResponse:ApiOperationResponse": {
      "properties": {
        "description": {
          "description": "A description of the HTTP Response, which may include HTML tags.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headers": {
          "description": "One or more `header` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiOperationResponseHeader:ApiOperationResponseHeader"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "representations": {
          "description": "One or more `representation` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiOperationResponseRepresentation:ApiOperationResponseRepresentation"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "statusCode": {
          "description": "The HTTP Status Code.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "statusCode"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiOperationResponseHeader:ApiOperationResponseHeader": {
      "properties": {
        "defaultValue": {
          "description": "The default value for this Header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "description": {
          "description": "A description of this Header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of this Header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "required": {
          "description": "Is this Header Required?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "type": {
          "description": "The Type of this Header, such as a `string`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "One or more acceptable values for this Header.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "required",
        "type"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiOperationResponseRepresentation:ApiOperationResponseRepresentation": {
      "properties": {
        "contentType": {
          "description": "The Content Type of this representation, such as `application/json`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "formParameters": {
          "description": "One or more `form_parameter` block as defined above.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ApiOperationResponseRepresentationFormParameter:ApiOperationResponseRepresentationFormParameter"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sample": {
          "description": "An example of this representation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "schemaId": {
          "description": "The ID of an API Management Schema which represents this Response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "typeName": {
          "description": "The Type Name defined by the Schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "contentType"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiOperationResponseRepresentationFormParameter:ApiOperationResponseRepresentationFormParameter": {
      "properties": {
        "defaultValue": {
          "description": "The default value for this Form Parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "description": {
          "description": "A description of this Form Parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of this Form Parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "required": {
          "description": "Is this Form Parameter Required?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "type": {
          "description": "The Type of this Form Parameter, such as a `string`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "One or more acceptable values for this Form Parameter.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "required",
        "type"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiOperationTemplateParameter:ApiOperationTemplateParameter": {
      "properties": {
        "defaultValue": {
          "description": "The default value for this Template Parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "description": {
          "description": "A description of this Template Parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of this Template Parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "required": {
          "description": "Is this Template Parameter Required?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "type": {
          "description": "The Type of this Template Parameter, such as a `string`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "One or more acceptable values for this Template Parameter.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "required",
        "type"
      ],
      "type": "object"
    },
    "azure:apimanagement/ApiSubscriptionKeyParameterNames:ApiSubscriptionKeyParameterNames": {
      "properties": {
        "header": {
          "description": "The name of the HTTP Header which should be used for the Subscription Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "query": {
          "description": "The name of the QueryString parameter which should be used for the Subscription Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "header",
        "query"
      ],
      "type": "object"
    },
    "azure:apimanagement/AuthorizationServerTokenBodyParameter:AuthorizationServerTokenBodyParameter": {
      "properties": {
        "name": {
          "description": "The Name of the Parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The Value of the Parameter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/BackendCredentials:BackendCredentials": {
      "properties": {
        "authorization": {
          "$ref": "#/types/azure:apimanagement/BackendCredentialsAuthorization:BackendCredentialsAuthorization",
          "description": "An `authorization` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "certificates": {
          "description": "A list of client certificate thumbprints to present to the backend host. The certificates must exist within the API Management Service.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "header": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of header parameters to pass to the backend host. The keys are the header names and the values are a comma separated string of header values. This is converted to a list before being passed to the API.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "query": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of query parameters to pass to the backend host. The keys are the query names and the values are a comma separated string of query values. This is converted to a list before being passed to the API.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/BackendCredentialsAuthorization:BackendCredentialsAuthorization": {
      "properties": {
        "parameter": {
          "description": "The authentication Parameter value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scheme": {
          "description": "The authentication Scheme name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/BackendProxy:BackendProxy": {
      "properties": {
        "password": {
          "description": "The password to connect to the proxy server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "url": {
          "description": "The URL of the proxy server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username to connect to the proxy server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "url",
        "username"
      ],
      "type": "object"
    },
    "azure:apimanagement/BackendServiceFabricCluster:BackendServiceFabricCluster": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "clientCertificateId",
            "clientCertificateThumbprint",
            "managementEndpoints",
            "maxPartitionResolutionRetries"
          ]
        }
      },
      "properties": {
        "clientCertificateId": {
          "description": "The client certificate resource id for the management endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientCertificateThumbprint": {
          "description": "The client certificate thumbprint for the management endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "managementEndpoints": {
          "description": "A list of cluster management endpoints.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "maxPartitionResolutionRetries": {
          "description": "The maximum number of retries when attempting resolve the partition.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serverCertificateThumbprints": {
          "description": "A list of thumbprints of the server certificates of the Service Fabric cluster.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "serverX509Names": {
          "description": "One or more `server_x509_name` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/BackendServiceFabricClusterServerX509Name:BackendServiceFabricClusterServerX509Name"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "managementEndpoints",
        "maxPartitionResolutionRetries"
      ],
      "type": "object"
    },
    "azure:apimanagement/BackendServiceFabricClusterServerX509Name:BackendServiceFabricClusterServerX509Name": {
      "properties": {
        "issuerCertificateThumbprint": {
          "description": "The thumbprint for the issuer of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the API Management backend. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "issuerCertificateThumbprint",
        "name"
      ],
      "type": "object"
    },
    "azure:apimanagement/BackendTls:BackendTls": {
      "properties": {
        "validateCertificateChain": {
          "description": "Flag indicating whether SSL certificate chain validation should be done when using self-signed certificates for the backend host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "validateCertificateName": {
          "description": "Flag indicating whether SSL certificate name validation should be done when using self-signed certificates for the backend host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/CustomDomainDeveloperPortal:CustomDomainDeveloperPortal": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "expiry",
            "hostName",
            "subject",
            "thumbprint"
          ]
        }
      },
      "properties": {
        "certificate": {
          "description": "The Base64 Encoded Certificate. (Mutually exlusive with `key_vault_id`.)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificatePassword": {
          "description": "The password associated with the certificate provided above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expiry": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostName": {
          "description": "The Hostname to use for the corresponding endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type application/x-pkcs12.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Should Client Certificate Negotiation be enabled for this Hostname? Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sslKeyvaultIdentityClientId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "hostName"
      ],
      "type": "object"
    },
    "azure:apimanagement/CustomDomainManagement:CustomDomainManagement": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "expiry",
            "hostName",
            "subject",
            "thumbprint"
          ]
        }
      },
      "properties": {
        "certificate": {
          "description": "The Base64 Encoded Certificate. (Mutually exlusive with `key_vault_id`.)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificatePassword": {
          "description": "The password associated with the certificate provided above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expiry": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostName": {
          "description": "The Hostname to use for the corresponding endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type application/x-pkcs12.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Should Client Certificate Negotiation be enabled for this Hostname? Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sslKeyvaultIdentityClientId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "hostName"
      ],
      "type": "object"
    },
    "azure:apimanagement/CustomDomainPortal:CustomDomainPortal": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "expiry",
            "hostName",
            "subject",
            "thumbprint"
          ]
        }
      },
      "properties": {
        "certificate": {
          "description": "The Base64 Encoded Certificate. (Mutually exlusive with `key_vault_id`.)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificatePassword": {
          "description": "The password associated with the certificate provided above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expiry": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostName": {
          "description": "The Hostname to use for the corresponding endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type application/x-pkcs12.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Should Client Certificate Negotiation be enabled for this Hostname? Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sslKeyvaultIdentityClientId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "hostName"
      ],
      "type": "object"
    },
    "azure:apimanagement/CustomDomainProxy:CustomDomainProxy": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "defaultSslBinding",
            "expiry",
            "hostName",
            "subject",
            "thumbprint"
          ]
        }
      },
      "properties": {
        "certificate": {
          "description": "The Base64 Encoded Certificate. (Mutually exlusive with `key_vault_id`.)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificatePassword": {
          "description": "The password associated with the certificate provided above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "defaultSslBinding": {
          "description": "Is the certificate associated with this Hostname the Default SSL Certificate? This is used when an SNI header isn't specified by a client. Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "expiry": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostName": {
          "description": "The Hostname to use for the API Proxy Endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type application/x-pkcs12.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Should Client Certificate Negotiation be enabled for this Hostname? Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sslKeyvaultIdentityClientId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "hostName"
      ],
      "type": "object"
    },
    "azure:apimanagement/CustomDomainScm:CustomDomainScm": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "expiry",
            "hostName",
            "subject",
            "thumbprint"
          ]
        }
      },
      "properties": {
        "certificate": {
          "description": "The Base64 Encoded Certificate. (Mutually exlusive with `key_vault_id`.)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificatePassword": {
          "description": "The password associated with the certificate provided above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expiry": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostName": {
          "description": "The Hostname to use for the corresponding endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type application/x-pkcs12.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Should Client Certificate Negotiation be enabled for this Hostname? Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sslKeyvaultIdentityClientId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "hostName"
      ],
      "type": "object"
    },
    "azure:apimanagement/DiagnosticBackendRequest:DiagnosticBackendRequest": {
      "properties": {
        "bodyBytes": {
          "description": "Number of payload bytes to log (up to 8192).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "dataMasking": {
          "$ref": "#/types/azure:apimanagement/DiagnosticBackendRequestDataMasking:DiagnosticBackendRequestDataMasking",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "headersToLogs": {
          "description": "Specifies a list of headers to log.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/DiagnosticBackendRequestDataMasking:DiagnosticBackendRequestDataMasking": {
      "properties": {
        "headers": {
          "items": {
            "$ref": "#/types/azure:apimanagement/DiagnosticBackendRequestDataMaskingHeader:DiagnosticBackendRequestDataMaskingHeader"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "queryParams": {
          "items": {
            "$ref": "#/types/azure:apimanagement/DiagnosticBackendRequestDataMaskingQueryParam:DiagnosticBackendRequestDataMaskingQueryParam"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/DiagnosticBackendRequestDataMaskingHeader:DiagnosticBackendRequestDataMaskingHeader": {
      "properties": {
        "mode": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/DiagnosticBackendRequestDataMaskingQueryParam:DiagnosticBackendRequestDataMaskingQueryParam": {
      "properties": {
        "mode": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/DiagnosticBackendResponse:DiagnosticBackendResponse": {
      "properties": {
        "bodyBytes": {
          "description": "Number of payload bytes to log (up to 8192).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "dataMasking": {
          "$ref": "#/types/azure:apimanagement/DiagnosticBackendResponseDataMasking:DiagnosticBackendResponseDataMasking",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "headersToLogs": {
          "description": "Specifies a list of headers to log.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/DiagnosticBackendResponseDataMasking:DiagnosticBackendResponseDataMasking": {
      "properties": {
        "headers": {
          "items": {
            "$ref": "#/types/azure:apimanagement/DiagnosticBackendResponseDataMaskingHeader:DiagnosticBackendResponseDataMaskingHeader"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "queryParams": {
          "items": {
            "$ref": "#/types/azure:apimanagement/DiagnosticBackendResponseDataMaskingQueryParam:DiagnosticBackendResponseDataMaskingQueryParam"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/DiagnosticBackendResponseDataMaskingHeader:DiagnosticBackendResponseDataMaskingHeader": {
      "properties": {
        "mode": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/DiagnosticBackendResponseDataMaskingQueryParam:DiagnosticBackendResponseDataMaskingQueryParam": {
      "properties": {
        "mode": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/DiagnosticFrontendRequest:DiagnosticFrontendRequest": {
      "properties": {
        "bodyBytes": {
          "description": "Number of payload bytes to log (up to 8192).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "dataMasking": {
          "$ref": "#/types/azure:apimanagement/DiagnosticFrontendRequestDataMasking:DiagnosticFrontendRequestDataMasking",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "headersToLogs": {
          "description": "Specifies a list of headers to log.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/DiagnosticFrontendRequestDataMasking:DiagnosticFrontendRequestDataMasking": {
      "properties": {
        "headers": {
          "items": {
            "$ref": "#/types/azure:apimanagement/DiagnosticFrontendRequestDataMaskingHeader:DiagnosticFrontendRequestDataMaskingHeader"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "queryParams": {
          "items": {
            "$ref": "#/types/azure:apimanagement/DiagnosticFrontendRequestDataMaskingQueryParam:DiagnosticFrontendRequestDataMaskingQueryParam"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/DiagnosticFrontendRequestDataMaskingHeader:DiagnosticFrontendRequestDataMaskingHeader": {
      "properties": {
        "mode": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/DiagnosticFrontendRequestDataMaskingQueryParam:DiagnosticFrontendRequestDataMaskingQueryParam": {
      "properties": {
        "mode": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/DiagnosticFrontendResponse:DiagnosticFrontendResponse": {
      "properties": {
        "bodyBytes": {
          "description": "Number of payload bytes to log (up to 8192).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "dataMasking": {
          "$ref": "#/types/azure:apimanagement/DiagnosticFrontendResponseDataMasking:DiagnosticFrontendResponseDataMasking",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "headersToLogs": {
          "description": "Specifies a list of headers to log.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/DiagnosticFrontendResponseDataMasking:DiagnosticFrontendResponseDataMasking": {
      "properties": {
        "headers": {
          "items": {
            "$ref": "#/types/azure:apimanagement/DiagnosticFrontendResponseDataMaskingHeader:DiagnosticFrontendResponseDataMaskingHeader"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "queryParams": {
          "items": {
            "$ref": "#/types/azure:apimanagement/DiagnosticFrontendResponseDataMaskingQueryParam:DiagnosticFrontendResponseDataMaskingQueryParam"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/DiagnosticFrontendResponseDataMaskingHeader:DiagnosticFrontendResponseDataMaskingHeader": {
      "properties": {
        "mode": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/DiagnosticFrontendResponseDataMaskingQueryParam:DiagnosticFrontendResponseDataMaskingQueryParam": {
      "properties": {
        "mode": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode",
        "value"
      ],
      "type": "object"
    },
    "azure:apimanagement/GatewayLocationData:GatewayLocationData": {
      "properties": {
        "city": {
          "description": "The city or locality where the resource is located.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "district": {
          "description": "The district, state, or province where the resource is located.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "A canonical name for the geographic or physical location.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "region": {
          "description": "The country or region where the resource is located.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:apimanagement/LoggerApplicationInsights:LoggerApplicationInsights": {
      "properties": {
        "instrumentationKey": {
          "description": "The instrumentation key used to push data to Application Insights.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "instrumentationKey"
      ],
      "type": "object"
    },
    "azure:apimanagement/LoggerEventhub:LoggerEventhub": {
      "properties": {
        "connectionString": {
          "description": "The connection string of an EventHub Namespace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of an EventHub.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "name"
      ],
      "type": "object"
    },
    "azure:apimanagement/NamedValueValueFromKeyVault:NamedValueValueFromKeyVault": {
      "properties": {
        "identityClientId": {
          "description": "The client ID of User Assigned Identity, for the API Management Service, which will be used to access the key vault secret. The System Assigned Identity will be used in absence.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretId": {
          "description": "The resource ID of the Key Vault Secret.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "secretId"
      ],
      "type": "object"
    },
    "azure:apimanagement/ServiceAdditionalLocation:ServiceAdditionalLocation": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "gatewayRegionalUrl",
            "location",
            "privateIpAddresses",
            "publicIpAddresses"
          ]
        }
      },
      "properties": {
        "gatewayRegionalUrl": {
          "description": "The URL of the Regional Gateway for the API Management Service in the specified region.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "location": {
          "description": "The name of the Azure Region in which the API Management Service should be expanded to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddresses": {
          "description": "The Private IP addresses of the API Management Service.  Available only when the API Manager instance is using Virtual Network mode.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "publicIpAddresses": {
          "description": "Public Static Load Balanced IP addresses of the API Management service in the additional location. Available only for Basic, Standard and Premium SKU.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "virtualNetworkConfiguration": {
          "$ref": "#/types/azure:apimanagement/ServiceAdditionalLocationVirtualNetworkConfiguration:ServiceAdditionalLocationVirtualNetworkConfiguration",
          "description": "A `virtual_network_configuration` block as defined below.  Required when `virtual_network_type` is `External` or `Internal`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "location"
      ],
      "type": "object"
    },
    "azure:apimanagement/ServiceAdditionalLocationVirtualNetworkConfiguration:ServiceAdditionalLocationVirtualNetworkConfiguration": {
      "properties": {
        "subnetId": {
          "description": "The id of the subnet that will be used for the API Management.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "subnetId"
      ],
      "type": "object"
    },
    "azure:apimanagement/ServiceCertificate:ServiceCertificate": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "encodedCertificate",
            "expiry",
            "storeName",
            "subject",
            "thumbprint"
          ]
        }
      },
      "properties": {
        "certificatePassword": {
          "description": "The password for the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "encodedCertificate": {
          "description": "The Base64 Encoded PFX or Base64 Encoded X.509 Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expiry": {
          "description": "The expiration date of the certificate in RFC3339 format: `2000-01-02T03:04:05Z`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storeName": {
          "description": "The name of the Certificate Store where this certificate should be stored. Possible values are `CertificateAuthority` and `Root`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "The subject of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "description": "The thumbprint of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "encodedCertificate",
        "storeName"
      ],
      "type": "object"
    },
    "azure:apimanagement/ServiceHostnameConfiguration:ServiceHostnameConfiguration": {
      "properties": {
        "developerPortals": {
          "description": "One or more `developer_portal` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ServiceHostnameConfigurationDeveloperPortal:ServiceHostnameConfigurationDeveloperPortal"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "managements": {
          "description": "One or more `management` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ServiceHostnameConfigurationManagement:ServiceHostnameConfigurationManagement"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "portals": {
          "description": "One or more `portal` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ServiceHostnameConfigurationPortal:ServiceHostnameConfigurationPortal"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "proxies": {
          "description": "One or more `proxy` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ServiceHostnameConfigurationProxy:ServiceHostnameConfigurationProxy"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "scms": {
          "description": "One or more `scm` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/ServiceHostnameConfigurationScm:ServiceHostnameConfigurationScm"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/ServiceHostnameConfigurationDeveloperPortal:ServiceHostnameConfigurationDeveloperPortal": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "expiry",
            "hostName",
            "subject",
            "thumbprint"
          ]
        }
      },
      "properties": {
        "certificate": {
          "description": "One or more (up to 10) `certificate` blocks as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificatePassword": {
          "description": "The password for the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expiry": {
          "description": "The expiration date of the certificate in RFC3339 format: `2000-01-02T03:04:05Z`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostName": {
          "description": "The Hostname to use for the Management API.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type `application/x-pkcs12`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Should Client Certificate Negotiation be enabled for this Hostname? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sslKeyvaultIdentityClientId": {
          "description": "The client id of the System or User Assigned Managed identity generated by Azure AD, which has `GET` access to the keyVault containing the SSL certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "The subject of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "description": "The thumbprint of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "hostName"
      ],
      "type": "object"
    },
    "azure:apimanagement/ServiceHostnameConfigurationManagement:ServiceHostnameConfigurationManagement": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "expiry",
            "hostName",
            "subject",
            "thumbprint"
          ]
        }
      },
      "properties": {
        "certificate": {
          "description": "The Base64 Encoded Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificatePassword": {
          "description": "The password associated with the certificate provided above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expiry": {
          "description": "The expiration date of the certificate in RFC3339 format: `2000-01-02T03:04:05Z`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostName": {
          "description": "The Hostname to use for the Management API.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type `application/x-pkcs12`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Should Client Certificate Negotiation be enabled for this Hostname? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sslKeyvaultIdentityClientId": {
          "description": "The client id of the System or User Assigned Managed identity generated by Azure AD, which has `GET` access to the keyVault containing the SSL certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "The subject of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "description": "The thumbprint of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "hostName"
      ],
      "type": "object"
    },
    "azure:apimanagement/ServiceHostnameConfigurationPortal:ServiceHostnameConfigurationPortal": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "expiry",
            "hostName",
            "subject",
            "thumbprint"
          ]
        }
      },
      "properties": {
        "certificate": {
          "description": "One or more (up to 10) `certificate` blocks as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificatePassword": {
          "description": "The password for the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expiry": {
          "description": "The expiration date of the certificate in RFC3339 format: `2000-01-02T03:04:05Z`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostName": {
          "description": "The Hostname to use for the Management API.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type `application/x-pkcs12`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Should Client Certificate Negotiation be enabled for this Hostname? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sslKeyvaultIdentityClientId": {
          "description": "The client id of the System or User Assigned Managed identity generated by Azure AD, which has `GET` access to the keyVault containing the SSL certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "The subject of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "description": "The thumbprint of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "hostName"
      ],
      "type": "object"
    },
    "azure:apimanagement/ServiceHostnameConfigurationProxy:ServiceHostnameConfigurationProxy": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "defaultSslBinding",
            "expiry",
            "hostName",
            "subject",
            "thumbprint"
          ]
        }
      },
      "properties": {
        "certificate": {
          "description": "The Base64 Encoded Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificatePassword": {
          "description": "The password associated with the certificate provided above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "defaultSslBinding": {
          "description": "Is the certificate associated with this Hostname the Default SSL Certificate? This is used when an SNI header isn't specified by a client. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "expiry": {
          "description": "The expiration date of the certificate in RFC3339 format: `2000-01-02T03:04:05Z`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostName": {
          "description": "The Hostname to use for the Management API.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type `application/x-pkcs12`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Should Client Certificate Negotiation be enabled for this Hostname? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sslKeyvaultIdentityClientId": {
          "description": "The client id of the System or User Assigned Managed identity generated by Azure AD, which has `GET` access to the keyVault containing the SSL certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "The subject of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "description": "The thumbprint of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "hostName"
      ],
      "type": "object"
    },
    "azure:apimanagement/ServiceHostnameConfigurationScm:ServiceHostnameConfigurationScm": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "expiry",
            "hostName",
            "subject",
            "thumbprint"
          ]
        }
      },
      "properties": {
        "certificate": {
          "description": "One or more (up to 10) `certificate` blocks as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificatePassword": {
          "description": "The password for the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expiry": {
          "description": "The expiration date of the certificate in RFC3339 format: `2000-01-02T03:04:05Z`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostName": {
          "description": "The Hostname to use for the Management API.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type `application/x-pkcs12`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Should Client Certificate Negotiation be enabled for this Hostname? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sslKeyvaultIdentityClientId": {
          "description": "The client id of the System or User Assigned Managed identity generated by Azure AD, which has `GET` access to the keyVault containing the SSL certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "The subject of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "description": "The thumbprint of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "hostName"
      ],
      "type": "object"
    },
    "azure:apimanagement/ServiceIdentity:ServiceIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "A list of IDs for User Assigned Managed Identity resources to be assigned.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The Principal ID associated with this Managed Service Identity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The identifier for the tenant access information contract.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the type of Managed Service Identity that should be configured on this API Management Service. Possible values are `SystemAssigned`, `UserAssigned`, `SystemAssigned, UserAssigned` (to enable both).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/ServicePolicy:ServicePolicy": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "xmlContent"
          ]
        }
      },
      "properties": {
        "xmlContent": {
          "description": "The XML Content for this Policy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "xmlLink": {
          "description": "A link to an API Management Policy XML Document, which must be publicly available.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/ServiceProtocols:ServiceProtocols": {
      "properties": {
        "enableHttp2": {
          "description": "Should HTTP/2 be supported by the API Management Service? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/ServiceSecurity:ServiceSecurity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "enableTripleDesCiphers",
            "tripleDesCiphersEnabled"
          ]
        }
      },
      "properties": {
        "enableBackendSsl30": {
          "description": "Should SSL 3.0 be enabled on the backend of the gateway? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enableBackendTls10": {
          "description": "Should TLS 1.0 be enabled on the backend of the gateway? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enableBackendTls11": {
          "description": "Should TLS 1.1 be enabled on the backend of the gateway? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enableFrontendSsl30": {
          "description": "Should SSL 3.0 be enabled on the frontend of the gateway? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enableFrontendTls10": {
          "description": "Should TLS 1.0 be enabled on the frontend of the gateway? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enableFrontendTls11": {
          "description": "Should TLS 1.1 be enabled on the frontend of the gateway? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enableTripleDesCiphers": {
          "deprecationMessage": "this has been renamed to the boolean attribute `triple_des_ciphers_enabled`.",
          "description": "Should the `TLS_RSA_WITH_3DES_EDE_CBC_SHA` cipher be enabled for alL TLS versions (1.0, 1.1 and 1.2)? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "tlsEcdheEcdsaWithAes128CbcShaCiphersEnabled": {
          "description": "Should the `TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA` cipher be enabled? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "tlsEcdheEcdsaWithAes256CbcShaCiphersEnabled": {
          "description": "Should the `TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA` cipher be enabled? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "tlsEcdheRsaWithAes128CbcShaCiphersEnabled": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "tlsEcdheRsaWithAes256CbcShaCiphersEnabled": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "tlsRsaWithAes128CbcSha256CiphersEnabled": {
          "description": "Should the `TLS_RSA_WITH_AES_128_CBC_SHA256` cipher be enabled? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "tlsRsaWithAes128CbcShaCiphersEnabled": {
          "description": "Should the `TLS_RSA_WITH_AES_128_CBC_SHA` cipher be enabled? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "tlsRsaWithAes128GcmSha256CiphersEnabled": {
          "description": "Should the `TLS_RSA_WITH_AES_128_GCM_SHA256` cipher be enabled? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "tlsRsaWithAes256CbcSha256CiphersEnabled": {
          "description": "Should the `TLS_RSA_WITH_AES_256_CBC_SHA256` cipher be enabled? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "tlsRsaWithAes256CbcShaCiphersEnabled": {
          "description": "Should the `TLS_RSA_WITH_AES_256_CBC_SHA` cipher be enabled? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "tripleDesCiphersEnabled": {
          "description": "Should the `TLS_RSA_WITH_3DES_EDE_CBC_SHA` cipher be enabled for alL TLS versions (1.0, 1.1 and 1.2)? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:apimanagement/ServiceSignIn:ServiceSignIn": {
      "properties": {
        "enabled": {
          "description": "Should anonymous users be redirected to the sign in page?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:apimanagement/ServiceSignUp:ServiceSignUp": {
      "properties": {
        "enabled": {
          "description": "Can users sign up on the development portal?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "termsOfService": {
          "$ref": "#/types/azure:apimanagement/ServiceSignUpTermsOfService:ServiceSignUpTermsOfService",
          "description": "A `terms_of_service` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "enabled",
        "termsOfService"
      ],
      "type": "object"
    },
    "azure:apimanagement/ServiceSignUpTermsOfService:ServiceSignUpTermsOfService": {
      "properties": {
        "consentRequired": {
          "description": "Should the user be asked for consent during sign up?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enabled": {
          "description": "Should Terms of Service be displayed during sign up?.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "text": {
          "description": "The Terms of Service which users are required to agree to in order to sign up.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "consentRequired",
        "enabled"
      ],
      "type": "object"
    },
    "azure:apimanagement/ServiceTenantAccess:ServiceTenantAccess": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "enabled",
            "primaryKey",
            "secondaryKey",
            "tenantId"
          ]
        }
      },
      "properties": {
        "enabled": {
          "description": "Should the access to the management api be enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "primaryKey": {
          "description": "Primary access key for the tenant access information contract.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secondaryKey": {
          "description": "Secondary access key for the tenant access information contract.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The identifier for the tenant access information contract.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:apimanagement/ServiceVirtualNetworkConfiguration:ServiceVirtualNetworkConfiguration": {
      "properties": {
        "subnetId": {
          "description": "The id of the subnet that will be used for the API Management.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "subnetId"
      ],
      "type": "object"
    },
    "azure:apimanagement/getApiSubscriptionKeyParameterName:getApiSubscriptionKeyParameterName": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "header": {
          "description": "The name of the HTTP Header which should be used for the Subscription Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "query": {
          "description": "The name of the QueryString parameter which should be used for the Subscription Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "header",
        "query"
      ],
      "type": "object"
    },
    "azure:apimanagement/getGatewayLocationData:getGatewayLocationData": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "city": {
          "description": "The city or locality where the resource is located.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "district": {
          "description": "The district, state, or province where the resource is located.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the API Management Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "region": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "city",
        "district",
        "name",
        "region"
      ],
      "type": "object"
    },
    "azure:apimanagement/getServiceAdditionalLocation:getServiceAdditionalLocation": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "gatewayRegionalUrl": {
          "description": "Gateway URL of the API Management service in the Region.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "location": {
          "description": "The location name of the additional region among Azure Data center regions.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddresses": {
          "description": "Private IP addresses of the API Management service in the additional location, for instances using virtual network mode.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "publicIpAddresses": {
          "description": "Public Static Load Balanced IP addresses of the API Management service in the additional location. Available only for Basic, Standard and Premium SKU.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "gatewayRegionalUrl",
        "location",
        "privateIpAddresses",
        "publicIpAddresses"
      ],
      "type": "object"
    },
    "azure:apimanagement/getServiceHostnameConfiguration:getServiceHostnameConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "developerPortals": {
          "description": "One or more `developer_portal` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/getServiceHostnameConfigurationDeveloperPortal:getServiceHostnameConfigurationDeveloperPortal"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "managements": {
          "description": "One or more `management` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/getServiceHostnameConfigurationManagement:getServiceHostnameConfigurationManagement"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "portals": {
          "description": "One or more `portal` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/getServiceHostnameConfigurationPortal:getServiceHostnameConfigurationPortal"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "proxies": {
          "description": "One or more `proxy` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/getServiceHostnameConfigurationProxy:getServiceHostnameConfigurationProxy"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "scms": {
          "description": "One or more `scm` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:apimanagement/getServiceHostnameConfigurationScm:getServiceHostnameConfigurationScm"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "developerPortals",
        "managements",
        "portals",
        "proxies",
        "scms"
      ],
      "type": "object"
    },
    "azure:apimanagement/getServiceHostnameConfigurationDeveloperPortal:getServiceHostnameConfigurationDeveloperPortal": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "hostName": {
          "description": "The Hostname used for the SCM URL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret which contains the SSL Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Is Client Certificate Negotiation enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "hostName",
        "keyVaultId",
        "negotiateClientCertificate"
      ],
      "type": "object"
    },
    "azure:apimanagement/getServiceHostnameConfigurationManagement:getServiceHostnameConfigurationManagement": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "hostName": {
          "description": "The Hostname used for the SCM URL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret which contains the SSL Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Is Client Certificate Negotiation enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "hostName",
        "keyVaultId",
        "negotiateClientCertificate"
      ],
      "type": "object"
    },
    "azure:apimanagement/getServiceHostnameConfigurationPortal:getServiceHostnameConfigurationPortal": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "hostName": {
          "description": "The Hostname used for the SCM URL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret which contains the SSL Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Is Client Certificate Negotiation enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "hostName",
        "keyVaultId",
        "negotiateClientCertificate"
      ],
      "type": "object"
    },
    "azure:apimanagement/getServiceHostnameConfigurationProxy:getServiceHostnameConfigurationProxy": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "defaultSslBinding": {
          "description": "Is this the default SSL Binding?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "hostName": {
          "description": "The Hostname used for the SCM URL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret which contains the SSL Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Is Client Certificate Negotiation enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "defaultSslBinding",
        "hostName",
        "keyVaultId",
        "negotiateClientCertificate"
      ],
      "type": "object"
    },
    "azure:apimanagement/getServiceHostnameConfigurationScm:getServiceHostnameConfigurationScm": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "hostName": {
          "description": "The Hostname used for the SCM URL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault Secret which contains the SSL Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negotiateClientCertificate": {
          "description": "Is Client Certificate Negotiation enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "hostName",
        "keyVaultId",
        "negotiateClientCertificate"
      ],
      "type": "object"
    },
    "azure:apimanagement/getServiceIdentity:getServiceIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "identityIds": {
          "description": "A list of IDs for User Assigned Managed Identity resources to be assigned.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "Specifies the Principal ID of the System Assigned Managed Service Identity that is configured on this API Management Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "Specifies the Tenant ID of the System Assigned Managed Service Identity that is configured on this API Management Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the type of Managed Service Identity that is configured on this API Management Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "identityIds",
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:appconfiguration/ConfigurationStoreIdentity:ConfigurationStoreIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "A list of IDs for User Assigned Managed Identity resources to be assigned.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The ID of the Principal (Client) in Azure Active Directory.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Azure Active Directory Tenant.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the type of Managed Service Identity that should be configured on this API Management Service. Possible values are `SystemAssigned`, `UserAssigned`, `SystemAssigned, UserAssigned` (to enable both).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:appconfiguration/ConfigurationStorePrimaryReadKey:ConfigurationStorePrimaryReadKey": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "connectionString",
            "id",
            "secret"
          ]
        }
      },
      "properties": {
        "connectionString": {
          "description": "The Connection String for this Access Key - comprising of the Endpoint, ID and Secret.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secret": {
          "description": "The Secret of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appconfiguration/ConfigurationStorePrimaryWriteKey:ConfigurationStorePrimaryWriteKey": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "connectionString",
            "id",
            "secret"
          ]
        }
      },
      "properties": {
        "connectionString": {
          "description": "The Connection String for this Access Key - comprising of the Endpoint, ID and Secret.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secret": {
          "description": "The Secret of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appconfiguration/ConfigurationStoreSecondaryReadKey:ConfigurationStoreSecondaryReadKey": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "connectionString",
            "id",
            "secret"
          ]
        }
      },
      "properties": {
        "connectionString": {
          "description": "The Connection String for this Access Key - comprising of the Endpoint, ID and Secret.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secret": {
          "description": "The Secret of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appconfiguration/ConfigurationStoreSecondaryWriteKey:ConfigurationStoreSecondaryWriteKey": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "connectionString",
            "id",
            "secret"
          ]
        }
      },
      "properties": {
        "connectionString": {
          "description": "The Connection String for this Access Key - comprising of the Endpoint, ID and Secret.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secret": {
          "description": "The Secret of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appconfiguration/getConfigurationStorePrimaryReadKey:getConfigurationStorePrimaryReadKey": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "connectionString": {
          "description": "The Connection String for this Access Key - comprising of the Endpoint, ID and Secret.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secret": {
          "description": "The Secret of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "id",
        "secret"
      ],
      "type": "object"
    },
    "azure:appconfiguration/getConfigurationStorePrimaryWriteKey:getConfigurationStorePrimaryWriteKey": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "connectionString": {
          "description": "The Connection String for this Access Key - comprising of the Endpoint, ID and Secret.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secret": {
          "description": "The Secret of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "id",
        "secret"
      ],
      "type": "object"
    },
    "azure:appconfiguration/getConfigurationStoreSecondaryReadKey:getConfigurationStoreSecondaryReadKey": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "connectionString": {
          "description": "The Connection String for this Access Key - comprising of the Endpoint, ID and Secret.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secret": {
          "description": "The Secret of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "id",
        "secret"
      ],
      "type": "object"
    },
    "azure:appconfiguration/getConfigurationStoreSecondaryWriteKey:getConfigurationStoreSecondaryWriteKey": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "connectionString": {
          "description": "The Connection String for this Access Key - comprising of the Endpoint, ID and Secret.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secret": {
          "description": "The Secret of the Access Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "id",
        "secret"
      ],
      "type": "object"
    },
    "azure:appplatform/SpringCloudAppIdentity:SpringCloudAppIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this Spring Cloud Application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Managed Service Identity of this Spring Cloud Application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of the Spring Cloud Application. Possible value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appplatform/SpringCloudAppPersistentDisk:SpringCloudAppPersistentDisk": {
      "properties": {
        "mountPath": {
          "description": "Specifies the mount path of the persistent disk. Defaults to `/persistent`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sizeInGb": {
          "description": "Specifies the size of the persistent disk in GB. Possible values are between `0` and `50`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "sizeInGb"
      ],
      "type": "object"
    },
    "azure:appplatform/SpringCloudServiceConfigServerGitSetting:SpringCloudServiceConfigServerGitSetting": {
      "properties": {
        "httpBasicAuth": {
          "$ref": "#/types/azure:appplatform/SpringCloudServiceConfigServerGitSettingHttpBasicAuth:SpringCloudServiceConfigServerGitSettingHttpBasicAuth",
          "description": "A `http_basic_auth` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "label": {
          "description": "The default label of the Git repository, should be the branch name, tag name, or commit-id of the repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "repositories": {
          "description": "One or more `repository` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appplatform/SpringCloudServiceConfigServerGitSettingRepository:SpringCloudServiceConfigServerGitSettingRepository"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "searchPaths": {
          "description": "An array of strings used to search subdirectories of the Git repository.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sshAuth": {
          "$ref": "#/types/azure:appplatform/SpringCloudServiceConfigServerGitSettingSshAuth:SpringCloudServiceConfigServerGitSettingSshAuth",
          "description": "A `ssh_auth` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "uri": {
          "description": "The URI of the default Git repository used as the Config Server back end, should be started with `http://`, `https://`, `git@`, or `ssh://`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "uri"
      ],
      "type": "object"
    },
    "azure:appplatform/SpringCloudServiceConfigServerGitSettingHttpBasicAuth:SpringCloudServiceConfigServerGitSettingHttpBasicAuth": {
      "properties": {
        "password": {
          "description": "The password used to access the Git repository server, required when the Git repository server supports Http Basic Authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username that's used to access the Git repository server, required when the Git repository server supports Http Basic Authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:appplatform/SpringCloudServiceConfigServerGitSettingRepository:SpringCloudServiceConfigServerGitSettingRepository": {
      "properties": {
        "httpBasicAuth": {
          "$ref": "#/types/azure:appplatform/SpringCloudServiceConfigServerGitSettingRepositoryHttpBasicAuth:SpringCloudServiceConfigServerGitSettingRepositoryHttpBasicAuth",
          "description": "A `http_basic_auth` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "label": {
          "description": "The default label of the Git repository, should be the branch name, tag name, or commit-id of the repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "A name to identify on the Git repository, required only if repos exists.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "patterns": {
          "description": "An array of strings used to match an application name. For each pattern, use the `{application}/{profile}` format with wildcards.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "searchPaths": {
          "description": "An array of strings used to search subdirectories of the Git repository.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sshAuth": {
          "$ref": "#/types/azure:appplatform/SpringCloudServiceConfigServerGitSettingRepositorySshAuth:SpringCloudServiceConfigServerGitSettingRepositorySshAuth",
          "description": "A `ssh_auth` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "uri": {
          "description": "The URI of the Git repository that's used as the Config Server back end should be started with `http://`, `https://`, `git@`, or `ssh://`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "uri"
      ],
      "type": "object"
    },
    "azure:appplatform/SpringCloudServiceConfigServerGitSettingRepositoryHttpBasicAuth:SpringCloudServiceConfigServerGitSettingRepositoryHttpBasicAuth": {
      "properties": {
        "password": {
          "description": "The password used to access the Git repository server, required when the Git repository server supports Http Basic Authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username that's used to access the Git repository server, required when the Git repository server supports Http Basic Authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:appplatform/SpringCloudServiceConfigServerGitSettingRepositorySshAuth:SpringCloudServiceConfigServerGitSettingRepositorySshAuth": {
      "properties": {
        "hostKey": {
          "description": "The host key of the Git repository server, should not include the algorithm prefix as covered by `host-key-algorithm`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostKeyAlgorithm": {
          "description": "The host key algorithm, should be `ssh-dss`, `ssh-rsa`, `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, or `ecdsa-sha2-nistp521`. Required only if `host-key` exists.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateKey": {
          "description": "The SSH private key to access the Git repository, required when the URI starts with `git@` or `ssh://`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "strictHostKeyCheckingEnabled": {
          "description": "Indicates whether the Config Server instance will fail to start if the host_key does not match.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "privateKey"
      ],
      "type": "object"
    },
    "azure:appplatform/SpringCloudServiceConfigServerGitSettingSshAuth:SpringCloudServiceConfigServerGitSettingSshAuth": {
      "properties": {
        "hostKey": {
          "description": "The host key of the Git repository server, should not include the algorithm prefix as covered by `host-key-algorithm`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostKeyAlgorithm": {
          "description": "The host key algorithm, should be `ssh-dss`, `ssh-rsa`, `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, or `ecdsa-sha2-nistp521`. Required only if `host-key` exists.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateKey": {
          "description": "The SSH private key to access the Git repository, required when the URI starts with `git@` or `ssh://`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "strictHostKeyCheckingEnabled": {
          "description": "Indicates whether the Config Server instance will fail to start if the host_key does not match.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "privateKey"
      ],
      "type": "object"
    },
    "azure:appplatform/SpringCloudServiceNetwork:SpringCloudServiceNetwork": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "appNetworkResourceGroup",
            "appSubnetId",
            "cidrRanges",
            "serviceRuntimeNetworkResourceGroup",
            "serviceRuntimeSubnetId"
          ]
        }
      },
      "properties": {
        "appNetworkResourceGroup": {
          "description": "Specifies the Name of the resource group containing network resources of Azure Spring Cloud Apps. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "appSubnetId": {
          "description": "Specifies the ID of the Subnet which should host the Spring Boot Applications deployed in this Spring Cloud Service. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "cidrRanges": {
          "description": "A list of (at least 3) CIDR ranges (at least /16) which are used to host the Spring Cloud infrastructure, which must not overlap with any existing CIDR ranges in the Subnet. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "serviceRuntimeNetworkResourceGroup": {
          "description": "Specifies the Name of the resource group containing network resources of Azure Spring Cloud Service Runtime. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serviceRuntimeSubnetId": {
          "description": "Specifies the ID of the Subnet where the Service Runtime components of the Spring Cloud Service will exist. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "appSubnetId",
        "cidrRanges",
        "serviceRuntimeSubnetId"
      ],
      "type": "object"
    },
    "azure:appplatform/SpringCloudServiceRequiredNetworkTrafficRule:SpringCloudServiceRequiredNetworkTrafficRule": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "direction",
            "fqdns",
            "ipAddresses",
            "port",
            "protocol"
          ]
        }
      },
      "properties": {
        "direction": {
          "description": "The direction of required traffic. Possible values are `Inbound`, `Outbound`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fqdns": {
          "description": "The FQDN list of required traffic.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ipAddresses": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "port": {
          "description": "The port of required traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "protocol": {
          "description": "The protocol of required traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appplatform/SpringCloudServiceTrace:SpringCloudServiceTrace": {
      "properties": {
        "instrumentationKey": {
          "description": "The Instrumentation Key used for Application Insights.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sampleRate": {
          "description": "The sampling rate of Application Insights Agent. Must be between `0.0` and `100.0`. Defaults to `10.0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "instrumentationKey"
      ],
      "type": "object"
    },
    "azure:appplatform/getSpringCloudAppIdentity:getSpringCloudAppIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this Spring Cloud Application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Managed Service Identity of this Spring Cloud Application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Managed Identity assigned to the Spring Cloud Application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:appplatform/getSpringCloudAppPersistentDisk:getSpringCloudAppPersistentDisk": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "mountPath": {
          "description": "The mount path of the persistent disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sizeInGb": {
          "description": "The size of the persistent disk in GB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "mountPath",
        "sizeInGb"
      ],
      "type": "object"
    },
    "azure:appplatform/getSpringCloudServiceConfigServerGitSetting:getSpringCloudServiceConfigServerGitSetting": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "httpBasicAuths": {
          "description": "A `http_basic_auth` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appplatform/getSpringCloudServiceConfigServerGitSettingHttpBasicAuth:getSpringCloudServiceConfigServerGitSettingHttpBasicAuth"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "label": {
          "description": "The default label of the Git repository, which is a branch name, tag name, or commit-id of the repository\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "repositories": {
          "description": "One or more `repository` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appplatform/getSpringCloudServiceConfigServerGitSettingRepository:getSpringCloudServiceConfigServerGitSettingRepository"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "searchPaths": {
          "description": "An array of strings used to search subdirectories of the Git repository.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sshAuths": {
          "description": "A `ssh_auth` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appplatform/getSpringCloudServiceConfigServerGitSettingSshAuth:getSpringCloudServiceConfigServerGitSettingSshAuth"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "uri": {
          "description": "The URI of the Git repository\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "httpBasicAuths",
        "label",
        "repositories",
        "searchPaths",
        "sshAuths",
        "uri"
      ],
      "type": "object"
    },
    "azure:appplatform/getSpringCloudServiceConfigServerGitSettingHttpBasicAuth:getSpringCloudServiceConfigServerGitSettingHttpBasicAuth": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "password": {
          "description": "The password used to access the Http Basic Authentication Git repository server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username used to access the Http Basic Authentication Git repository server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:appplatform/getSpringCloudServiceConfigServerGitSettingRepository:getSpringCloudServiceConfigServerGitSettingRepository": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "httpBasicAuths": {
          "description": "A `http_basic_auth` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appplatform/getSpringCloudServiceConfigServerGitSettingRepositoryHttpBasicAuth:getSpringCloudServiceConfigServerGitSettingRepositoryHttpBasicAuth"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "label": {
          "description": "The default label of the Git repository, which is a branch name, tag name, or commit-id of the repository\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies The name of the Spring Cloud Service resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "patterns": {
          "description": "An array of strings used to match an application name. For each pattern, use the `{application}/{profile}` format with wildcards.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "searchPaths": {
          "description": "An array of strings used to search subdirectories of the Git repository.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sshAuths": {
          "description": "A `ssh_auth` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appplatform/getSpringCloudServiceConfigServerGitSettingRepositorySshAuth:getSpringCloudServiceConfigServerGitSettingRepositorySshAuth"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "uri": {
          "description": "The URI of the Git repository\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "httpBasicAuths",
        "label",
        "name",
        "patterns",
        "searchPaths",
        "sshAuths",
        "uri"
      ],
      "type": "object"
    },
    "azure:appplatform/getSpringCloudServiceConfigServerGitSettingRepositoryHttpBasicAuth:getSpringCloudServiceConfigServerGitSettingRepositoryHttpBasicAuth": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "password": {
          "description": "The password used to access the Http Basic Authentication Git repository server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username used to access the Http Basic Authentication Git repository server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:appplatform/getSpringCloudServiceConfigServerGitSettingRepositorySshAuth:getSpringCloudServiceConfigServerGitSettingRepositorySshAuth": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "hostKey": {
          "description": "The host key of the Git repository server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostKeyAlgorithm": {
          "description": "The host key algorithm.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateKey": {
          "description": "The SSH private key to access the Git repository, needed when the URI starts with `git@` or `ssh://`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "strictHostKeyCheckingEnabled": {
          "description": "Indicates whether the Config Server instance will fail to start if the host_key does not match.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "hostKey",
        "hostKeyAlgorithm",
        "privateKey",
        "strictHostKeyCheckingEnabled"
      ],
      "type": "object"
    },
    "azure:appplatform/getSpringCloudServiceConfigServerGitSettingSshAuth:getSpringCloudServiceConfigServerGitSettingSshAuth": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "hostKey": {
          "description": "The host key of the Git repository server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostKeyAlgorithm": {
          "description": "The host key algorithm.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateKey": {
          "description": "The SSH private key to access the Git repository, needed when the URI starts with `git@` or `ssh://`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "strictHostKeyCheckingEnabled": {
          "description": "Indicates whether the Config Server instance will fail to start if the host_key does not match.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "hostKey",
        "hostKeyAlgorithm",
        "privateKey",
        "strictHostKeyCheckingEnabled"
      ],
      "type": "object"
    },
    "azure:appplatform/getSpringCloudServiceRequiredNetworkTrafficRule:getSpringCloudServiceRequiredNetworkTrafficRule": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "direction": {
          "description": "The direction of required traffic. Possible values are `Inbound`, `Outbound`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fqdns": {
          "description": "The FQDN list of required traffic.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ipAddresses": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "port": {
          "description": "The port of required traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "protocol": {
          "description": "The protocol of required traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "direction",
        "fqdns",
        "ipAddresses",
        "port",
        "protocol"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceAuthSettings:AppServiceAuthSettings": {
      "properties": {
        "activeDirectory": {
          "$ref": "#/types/azure:appservice/AppServiceAuthSettingsActiveDirectory:AppServiceAuthSettingsActiveDirectory",
          "description": "A `active_directory` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "additionalLoginParams": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Login parameters to send to the OpenID Connect authorization endpoint when a user logs in. Each parameter must be in the form \"key=value\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "allowedExternalRedirectUrls": {
          "description": "External URLs that can be redirected to as part of logging in or logging out of the app.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "defaultProvider": {
          "description": "The default provider to use when multiple providers have been set up. Possible values are `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount` and `Twitter`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Is Authentication enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "facebook": {
          "$ref": "#/types/azure:appservice/AppServiceAuthSettingsFacebook:AppServiceAuthSettingsFacebook",
          "description": "A `facebook` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "google": {
          "$ref": "#/types/azure:appservice/AppServiceAuthSettingsGoogle:AppServiceAuthSettingsGoogle",
          "description": "A `google` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "issuer": {
          "description": "Issuer URI. When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://sts.windows.net/{tenant-guid}/.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "microsoft": {
          "$ref": "#/types/azure:appservice/AppServiceAuthSettingsMicrosoft:AppServiceAuthSettingsMicrosoft",
          "description": "A `microsoft` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "runtimeVersion": {
          "description": "The runtime version of the Authentication/Authorization module.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tokenRefreshExtensionHours": {
          "description": "The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to 72.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        },
        "tokenStoreEnabled": {
          "description": "If enabled the module will durably store platform-specific security tokens that are obtained during login flows. Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "twitter": {
          "$ref": "#/types/azure:appservice/AppServiceAuthSettingsTwitter:AppServiceAuthSettingsTwitter",
          "description": "A `twitter` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unauthenticatedClientAction": {
          "description": "The action to take when an unauthenticated client attempts to access the app. Possible values are `AllowAnonymous` and `RedirectToLoginPage`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceAuthSettingsActiveDirectory:AppServiceAuthSettingsActiveDirectory": {
      "properties": {
        "allowedAudiences": {
          "description": "Allowed audience values to consider when validating JWTs issued by Azure Active Directory.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "clientId": {
          "description": "The Client ID of this relying party application. Enables OpenIDConnection authentication with Azure Active Directory.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientSecret": {
          "description": "The Client Secret of this relying party application. If no secret is provided, implicit flow will be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "clientId"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceAuthSettingsFacebook:AppServiceAuthSettingsFacebook": {
      "properties": {
        "appId": {
          "description": "The App ID of the Facebook app used for login\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "appSecret": {
          "description": "The App Secret of the Facebook app used for Facebook Login.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "oauthScopes": {
          "description": "The OAuth 2.0 scopes that will be requested as part of Facebook Login authentication. https://developers.facebook.com/docs/facebook-login\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "appId",
        "appSecret"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceAuthSettingsGoogle:AppServiceAuthSettingsGoogle": {
      "properties": {
        "clientId": {
          "description": "The OpenID Connect Client ID for the Google web application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientSecret": {
          "description": "The client secret associated with the Google web application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "oauthScopes": {
          "description": "The OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. https://developers.google.com/identity/sign-in/web/\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "clientId",
        "clientSecret"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceAuthSettingsMicrosoft:AppServiceAuthSettingsMicrosoft": {
      "properties": {
        "clientId": {
          "description": "The OAuth 2.0 client ID that was created for the app used for authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientSecret": {
          "description": "The OAuth 2.0 client secret that was created for the app used for authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "oauthScopes": {
          "description": "The OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. https://msdn.microsoft.com/en-us/library/dn631845.aspx\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "clientId",
        "clientSecret"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceAuthSettingsTwitter:AppServiceAuthSettingsTwitter": {
      "properties": {
        "consumerKey": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "consumerSecret": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "consumerKey",
        "consumerSecret"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceBackup:AppServiceBackup": {
      "properties": {
        "enabled": {
          "description": "Is this Backup enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name for this Backup.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "schedule": {
          "$ref": "#/types/azure:appservice/AppServiceBackupSchedule:AppServiceBackupSchedule",
          "description": "A `schedule` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "storageAccountUrl": {
          "description": "The SAS URL to a Storage Container where Backups should be saved.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "schedule",
        "storageAccountUrl"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceBackupSchedule:AppServiceBackupSchedule": {
      "properties": {
        "frequencyInterval": {
          "description": "Sets how often the backup should be executed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "frequencyUnit": {
          "description": "Sets the unit of time for how often the backup should be executed. Possible values are `Day` or `Hour`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keepAtLeastOneBackup": {
          "description": "Should at least one backup always be kept in the Storage Account by the Retention Policy, regardless of how old it is?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "retentionPeriodInDays": {
          "description": "Specifies the number of days after which Backups should be deleted.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "startTime": {
          "description": "Sets when the schedule should start working.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "frequencyInterval",
        "frequencyUnit"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceConnectionString:AppServiceConnectionString": {
      "properties": {
        "name": {
          "description": "The name of the Connection String.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of the Connection String. Possible values are `APIHub`, `Custom`, `DocDb`, `EventHub`, `MySQL`, `NotificationHub`, `PostgreSQL`, `RedisCache`, `ServiceBus`, `SQLAzure` and  `SQLServer`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value for the Connection String.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "type",
        "value"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceIdentity:AppServiceIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "Specifies a list of user managed identity ids to be assigned. Required if `type` is `UserAssigned`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of the App Service. Possible values are `SystemAssigned` (where Azure will generate a Service Principal for you), `UserAssigned` where you can specify the Service Principal IDs in the `identity_ids` field, and `SystemAssigned, UserAssigned` which assigns both a system managed identity as well as the specified user assigned identities.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceLogs:AppServiceLogs": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "applicationLogs",
            "httpLogs"
          ]
        }
      },
      "properties": {
        "applicationLogs": {
          "$ref": "#/types/azure:appservice/AppServiceLogsApplicationLogs:AppServiceLogsApplicationLogs",
          "description": "An `application_logs` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "detailedErrorMessagesEnabled": {
          "description": "Should `Detailed error messages` be enabled on this App Service? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "failedRequestTracingEnabled": {
          "description": "Should `Failed request tracing` be enabled on this App Service? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "httpLogs": {
          "$ref": "#/types/azure:appservice/AppServiceLogsHttpLogs:AppServiceLogsHttpLogs",
          "description": "An `http_logs` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:appservice/AppServiceLogsApplicationLogs:AppServiceLogsApplicationLogs": {
      "properties": {
        "azureBlobStorage": {
          "$ref": "#/types/azure:appservice/AppServiceLogsApplicationLogsAzureBlobStorage:AppServiceLogsApplicationLogsAzureBlobStorage",
          "description": "An `azure_blob_storage` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fileSystemLevel": {
          "description": "Log level for filesystem based logging. Supported values are `Error`, `Information`, `Verbose`, `Warning` and `Off`. Defaults to `Off`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/AppServiceLogsApplicationLogsAzureBlobStorage:AppServiceLogsApplicationLogsAzureBlobStorage": {
      "properties": {
        "level": {
          "description": "The level at which to log. Possible values include `Error`, `Warning`, `Information`, `Verbose` and `Off`. **NOTE:** this field is not available for `http_logs`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "retentionInDays": {
          "description": "The number of days to retain logs for.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "sasUrl": {
          "description": "The URL to the storage container with a shared access signature token appended.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "level",
        "retentionInDays",
        "sasUrl"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceLogsHttpLogs:AppServiceLogsHttpLogs": {
      "properties": {
        "azureBlobStorage": {
          "$ref": "#/types/azure:appservice/AppServiceLogsHttpLogsAzureBlobStorage:AppServiceLogsHttpLogsAzureBlobStorage",
          "description": "An `azure_blob_storage` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fileSystem": {
          "$ref": "#/types/azure:appservice/AppServiceLogsHttpLogsFileSystem:AppServiceLogsHttpLogsFileSystem",
          "description": "A `file_system` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:appservice/AppServiceLogsHttpLogsAzureBlobStorage:AppServiceLogsHttpLogsAzureBlobStorage": {
      "properties": {
        "retentionInDays": {
          "description": "The number of days to retain logs for.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "sasUrl": {
          "description": "The URL to the storage container with a shared access signature token appended.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "retentionInDays",
        "sasUrl"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceLogsHttpLogsFileSystem:AppServiceLogsHttpLogsFileSystem": {
      "properties": {
        "retentionInDays": {
          "description": "The number of days to retain logs for.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "retentionInMb": {
          "description": "The maximum size in megabytes that http log files can use before being removed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "retentionInDays",
        "retentionInMb"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceSiteConfig:AppServiceSiteConfig": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "cors",
            "ftpsState",
            "ipRestrictions",
            "linuxFxVersion",
            "localMysqlEnabled",
            "managedPipelineMode",
            "minTlsVersion",
            "numberOfWorkers",
            "remoteDebuggingVersion",
            "scmIpRestrictions",
            "scmType",
            "vnetRouteAllEnabled",
            "websocketsEnabled",
            "windowsFxVersion"
          ]
        }
      },
      "properties": {
        "acrUseManagedIdentityCredentials": {
          "description": "Are Managed Identity Credentials used for Azure Container Registry pull\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "acrUserManagedIdentityClientId": {
          "description": "If using User Managed Identity, the User Managed Identity Client Id\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "alwaysOn": {
          "description": "Should the app be loaded at all times? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "appCommandLine": {
          "description": "App command line to launch, e.g. `/sbin/myserver -b 0.0.0.0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "autoSwapSlotName": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "cors": {
          "$ref": "#/types/azure:appservice/AppServiceSiteConfigCors:AppServiceSiteConfigCors",
          "description": "A `cors` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "defaultDocuments": {
          "description": "The ordering of default documents to load, if an address isn't specified.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "dotnetFrameworkVersion": {
          "description": "The version of the .net framework's CLR used in this App Service. Possible values are `v2.0` (which will use the latest version of the .net framework for the .net CLR v2 - currently `.net 3.5`), `v4.0` (which corresponds to the latest version of the .net CLR v4 - which at the time of writing is `.net 4.7.1`), `v5.0` and `v6.0`. [For more information on which .net CLR version to use based on the .net framework you're targeting - please see this table](https://en.wikipedia.org/wiki/.NET_Framework_version_history#Overview). Defaults to `v4.0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ftpsState": {
          "description": "State of FTP / FTPS service for this App Service. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "healthCheckPath": {
          "description": "The health check path to be pinged by App Service. [For more information - please see App Service health check announcement](https://azure.github.io/AppService/2020/08/24/healthcheck-on-app-service.html).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "http2Enabled": {
          "description": "Is HTTP2 Enabled on this App Service? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "ipRestrictions": {
          "description": "A list of objects representing ip restrictions as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/AppServiceSiteConfigIpRestriction:AppServiceSiteConfigIpRestriction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "javaContainer": {
          "description": "The Java Container to use. If specified `java_version` and `java_container_version` must also be specified. Possible values are `JAVA`, `JETTY`, and `TOMCAT`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "javaContainerVersion": {
          "description": "The version of the Java Container to use. If specified `java_version` and `java_container` must also be specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "javaVersion": {
          "description": "The version of Java to use. If specified `java_container` and `java_container_version` must also be specified. Possible values are `1.7`, `1.8` and `11` and their specific versions - except for Java 11 (e.g. `1.7.0_80`, `1.8.0_181`, `11`)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "linuxFxVersion": {
          "description": "Linux App Framework and version for the App Service. Possible options are a Docker container (`DOCKER|\u003cuser/image:tag\u003e`), a base-64 encoded Docker Compose file (`COMPOSE|${filebase64(\"compose.yml\")}`) or a base-64 encoded Kubernetes Manifest (`KUBE|${filebase64(\"kubernetes.yml\")}`).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "localMysqlEnabled": {
          "description": "Is \"MySQL In App\" Enabled? This runs a local MySQL instance with your app and shares resources from the App Service plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "managedPipelineMode": {
          "description": "The Managed Pipeline Mode. Possible values are `Integrated` and `Classic`. Defaults to `Integrated`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "minTlsVersion": {
          "description": "The minimum supported TLS version for the app service. Possible values are `1.0`, `1.1`, and `1.2`. Defaults to `1.2` for new app services.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "numberOfWorkers": {
          "description": "The scaled number of workers (for per site scaling) of this App Service. Requires that `per_site_scaling` is enabled on the `azure.appservice.Plan`. [For more information - please see Microsoft documentation on high-density hosting](https://docs.microsoft.com/en-us/azure/app-service/manage-scale-per-app).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "phpVersion": {
          "description": "The version of PHP to use in this App Service. Possible values are `5.5`, `5.6`, `7.0`, `7.1`, `7.2`, `7.3` and `7.4`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pythonVersion": {
          "description": "The version of Python to use in this App Service. Possible values are `2.7` and `3.4`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "remoteDebuggingEnabled": {
          "description": "Is Remote Debugging Enabled? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "remoteDebuggingVersion": {
          "description": "Which version of Visual Studio should the Remote Debugger be compatible with? Possible values are `VS2012`, `VS2013`, `VS2015` and `VS2017`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scmIpRestrictions": {
          "description": "A [List of objects](https://www.terraform.io/docs/configuration/attr-as-blocks.html) representing ip restrictions as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/AppServiceSiteConfigScmIpRestriction:AppServiceSiteConfigScmIpRestriction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "scmType": {
          "description": "The type of Source Control enabled for this App Service. Defaults to `None`. Possible values are: `BitbucketGit`, `BitbucketHg`, `CodePlexGit`, `CodePlexHg`, `Dropbox`, `ExternalGit`, `ExternalHg`, `GitHub`, `LocalGit`, `None`, `OneDrive`, `Tfs`, `VSO`, and `VSTSRM`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scmUseMainIpRestriction": {
          "description": "IP security restrictions for scm to use main. Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "use32BitWorkerProcess": {
          "description": "Should the App Service run in 32 bit mode, rather than 64 bit mode?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "vnetRouteAllEnabled": {
          "description": "Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "websocketsEnabled": {
          "description": "Should WebSockets be enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "windowsFxVersion": {
          "description": "The Windows Docker container image (`DOCKER|\u003cuser/image:tag\u003e`)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/AppServiceSiteConfigCors:AppServiceSiteConfigCors": {
      "properties": {
        "allowedOrigins": {
          "description": "A list of origins which should be able to make cross-origin calls. `*` can be used to allow all calls.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "supportCredentials": {
          "description": "Are credentials supported?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "allowedOrigins"
      ],
      "type": "object"
    },
    "azure:appservice/AppServiceSiteConfigIpRestriction:AppServiceSiteConfigIpRestriction": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "headers",
            "name"
          ]
        }
      },
      "properties": {
        "action": {
          "description": "Does this restriction `Allow` or `Deny` access for this IP range. Defaults to `Allow`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headers": {
          "$ref": "#/types/azure:appservice/AppServiceSiteConfigIpRestrictionHeaders:AppServiceSiteConfigIpRestrictionHeaders",
          "description": "The headers for this specific `ip_restriction` as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "description": "The IP Address used for this IP Restriction in CIDR notation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority for this IP Restriction. Restrictions are enforced in priority order. By default, priority is set to 65000 if not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serviceTag": {
          "description": "The Service Tag used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkSubnetId": {
          "description": "The Virtual Network Subnet ID used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/AppServiceSiteConfigIpRestrictionHeaders:AppServiceSiteConfigIpRestrictionHeaders": {
      "properties": {
        "xAzureFdids": {
          "description": "A list of allowed Azure FrontDoor IDs in UUID notation with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xFdHealthProbe": {
          "description": "A list to allow the Azure FrontDoor health probe header. Only allowed value is \"1\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "xForwardedFors": {
          "description": "A list of allowed 'X-Forwarded-For' IPs in CIDR notation with a maximum of 8\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedHosts": {
          "description": "A list of allowed 'X-Forwarded-Host' domains with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:appservice/AppServiceSiteConfigScmIpRestriction:AppServiceSiteConfigScmIpRestriction": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "headers",
            "name"
          ]
        }
      },
      "properties": {
        "action": {
          "description": "Allow or Deny access for this IP range. Defaults to Allow.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headers": {
          "$ref": "#/types/azure:appservice/AppServiceSiteConfigScmIpRestrictionHeaders:AppServiceSiteConfigScmIpRestrictionHeaders",
          "description": "The headers for this specific `scm_ip_restriction` as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "description": "The IP Address used for this IP Restriction in CIDR notation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority for this IP Restriction. Restrictions are enforced in priority order. By default, priority is set to 65000 if not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serviceTag": {
          "description": "The Service Tag used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkSubnetId": {
          "description": "The Virtual Network Subnet ID used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/AppServiceSiteConfigScmIpRestrictionHeaders:AppServiceSiteConfigScmIpRestrictionHeaders": {
      "properties": {
        "xAzureFdids": {
          "description": "A list of allowed Azure FrontDoor IDs in UUID notation with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xFdHealthProbe": {
          "description": "A list to allow the Azure FrontDoor health probe header. Only allowed value is \"1\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "xForwardedFors": {
          "description": "A list of allowed 'X-Forwarded-For' IPs in CIDR notation with a maximum of 8\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedHosts": {
          "description": "A list of allowed 'X-Forwarded-Host' domains with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:appservice/AppServiceSiteCredential:AppServiceSiteCredential": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "password",
            "username"
          ]
        }
      },
      "properties": {
        "password": {
          "description": "The password associated with the username, which can be used to publish to this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username which can be used to publish to this App Service\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/AppServiceSourceControl:AppServiceSourceControl": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "branch",
            "manualIntegration",
            "repoUrl",
            "rollbackEnabled",
            "useMercurial"
          ]
        }
      },
      "properties": {
        "branch": {
          "description": "The branch of the remote repository to use. Defaults to 'master'.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "manualIntegration": {
          "description": "Limits to manual integration. Defaults to `false` if not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "repoUrl": {
          "description": "The URL of the source code repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rollbackEnabled": {
          "description": "Enable roll-back for the repository. Defaults to `false` if not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "useMercurial": {
          "description": "Use Mercurial if `true`, otherwise uses Git.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:appservice/AppServiceStorageAccount:AppServiceStorageAccount": {
      "properties": {
        "accessKey": {
          "description": "The access key for the storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "accountName": {
          "description": "The name of the storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "mountPath": {
          "description": "The path to mount the storage within the site's runtime environment.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the storage account identifier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "shareName": {
          "description": "The name of the file share (container name, for Blob storage).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of storage. Possible values are `AzureBlob` and `AzureFiles`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "accessKey",
        "accountName",
        "name",
        "shareName",
        "type"
      ],
      "type": "object"
    },
    "azure:appservice/CertificateOrderCertificate:CertificateOrderCertificate": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "certificateName",
            "keyVaultId",
            "keyVaultSecretName",
            "provisioningState"
          ]
        }
      },
      "properties": {
        "certificateName": {
          "description": "The name of the App Service Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "Key Vault resource Id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultSecretName": {
          "description": "Key Vault secret name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "provisioningState": {
          "description": "Status of the Key Vault secret.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/EnvironmentClusterSetting:EnvironmentClusterSetting": {
      "properties": {
        "name": {
          "description": "The name of the Cluster Setting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value for the Cluster Setting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "type": "object"
    },
    "azure:appservice/EnvironmentV3ClusterSetting:EnvironmentV3ClusterSetting": {
      "properties": {
        "name": {
          "description": "The name of the Cluster Setting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value for the Cluster Setting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "type": "object"
    },
    "azure:appservice/EnvironmentV3InboundNetworkDependency:EnvironmentV3InboundNetworkDependency": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "description",
            "ipAddresses",
            "ports"
          ]
        }
      },
      "properties": {
        "description": {
          "description": "A short description of the purpose of the network traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipAddresses": {
          "description": "A list of IP addresses that network traffic will originate from in CIDR notation.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ports": {
          "description": "The ports that network traffic will arrive to the App Service Environment V3 on.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:appservice/FunctionAppAuthSettings:FunctionAppAuthSettings": {
      "properties": {
        "activeDirectory": {
          "$ref": "#/types/azure:appservice/FunctionAppAuthSettingsActiveDirectory:FunctionAppAuthSettingsActiveDirectory",
          "description": "A `active_directory` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "additionalLoginParams": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Login parameters to send to the OpenID Connect authorization endpoint when a user logs in. Each parameter must be in the form \"key=value\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "allowedExternalRedirectUrls": {
          "description": "External URLs that can be redirected to as part of logging in or logging out of the app.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "defaultProvider": {
          "description": "The default provider to use when multiple providers have been set up. Possible values are `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount` and `Twitter`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Is Authentication enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "facebook": {
          "$ref": "#/types/azure:appservice/FunctionAppAuthSettingsFacebook:FunctionAppAuthSettingsFacebook",
          "description": "A `facebook` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "google": {
          "$ref": "#/types/azure:appservice/FunctionAppAuthSettingsGoogle:FunctionAppAuthSettingsGoogle",
          "description": "A `google` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "issuer": {
          "description": "Issuer URI. When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://sts.windows.net/{tenant-guid}/.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "microsoft": {
          "$ref": "#/types/azure:appservice/FunctionAppAuthSettingsMicrosoft:FunctionAppAuthSettingsMicrosoft",
          "description": "A `microsoft` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "runtimeVersion": {
          "description": "The runtime version of the Authentication/Authorization module.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tokenRefreshExtensionHours": {
          "description": "The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to 72.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        },
        "tokenStoreEnabled": {
          "description": "If enabled the module will durably store platform-specific security tokens that are obtained during login flows. Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "twitter": {
          "$ref": "#/types/azure:appservice/FunctionAppAuthSettingsTwitter:FunctionAppAuthSettingsTwitter",
          "description": "A `twitter` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unauthenticatedClientAction": {
          "description": "The action to take when an unauthenticated client attempts to access the app. Possible values are `AllowAnonymous` and `RedirectToLoginPage`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppAuthSettingsActiveDirectory:FunctionAppAuthSettingsActiveDirectory": {
      "properties": {
        "allowedAudiences": {
          "description": "Allowed audience values to consider when validating JWTs issued by Azure Active Directory.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "clientId": {
          "description": "The Client ID of this relying party application. Enables OpenIDConnection authentication with Azure Active Directory.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientSecret": {
          "description": "The Client Secret of this relying party application. If no secret is provided, implicit flow will be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "clientId"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppAuthSettingsFacebook:FunctionAppAuthSettingsFacebook": {
      "properties": {
        "appId": {
          "description": "The App ID of the Facebook app used for login\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "appSecret": {
          "description": "The App Secret of the Facebook app used for Facebook Login.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "oauthScopes": {
          "description": "The OAuth 2.0 scopes that will be requested as part of Facebook Login authentication. https://developers.facebook.com/docs/facebook-login\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "appId",
        "appSecret"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppAuthSettingsGoogle:FunctionAppAuthSettingsGoogle": {
      "properties": {
        "clientId": {
          "description": "The OpenID Connect Client ID for the Google web application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientSecret": {
          "description": "The client secret associated with the Google web application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "oauthScopes": {
          "description": "The OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. https://developers.google.com/identity/sign-in/web/\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "clientId",
        "clientSecret"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppAuthSettingsMicrosoft:FunctionAppAuthSettingsMicrosoft": {
      "properties": {
        "clientId": {
          "description": "The OAuth 2.0 client ID that was created for the app used for authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientSecret": {
          "description": "The OAuth 2.0 client secret that was created for the app used for authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "oauthScopes": {
          "description": "The OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. https://msdn.microsoft.com/en-us/library/dn631845.aspx\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "clientId",
        "clientSecret"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppAuthSettingsTwitter:FunctionAppAuthSettingsTwitter": {
      "properties": {
        "consumerKey": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "consumerSecret": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "consumerKey",
        "consumerSecret"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppConnectionString:FunctionAppConnectionString": {
      "properties": {
        "name": {
          "description": "The name of the Connection String.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of the Connection String. Possible values are `APIHub`, `Custom`, `DocDb`, `EventHub`, `MySQL`, `NotificationHub`, `PostgreSQL`, `RedisCache`, `ServiceBus`, `SQLAzure` and  `SQLServer`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value for the Connection String.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "type",
        "value"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppIdentity:FunctionAppIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "Specifies a list of user managed identity ids to be assigned. Required if `type` is `UserAssigned`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of the Function App. Possible values are `SystemAssigned` (where Azure will generate a Service Principal for you), `UserAssigned` where you can specify the Service Principal IDs in the `identity_ids` field, and `SystemAssigned, UserAssigned` which assigns both a system managed identity as well as the specified user assigned identities.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppSiteConfig:FunctionAppSiteConfig": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "appScaleLimit",
            "cors",
            "elasticInstanceMinimum",
            "ftpsState",
            "ipRestrictions",
            "linuxFxVersion",
            "minTlsVersion",
            "preWarmedInstanceCount",
            "scmIpRestrictions",
            "scmType"
          ]
        }
      },
      "properties": {
        "alwaysOn": {
          "description": "Should the Function App be loaded at all times? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "appScaleLimit": {
          "description": "The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "autoSwapSlotName": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "cors": {
          "$ref": "#/types/azure:appservice/FunctionAppSiteConfigCors:FunctionAppSiteConfigCors",
          "description": "A `cors` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dotnetFrameworkVersion": {
          "description": "The version of the .net framework's CLR used in this function app. Possible values are `v4.0` (including .NET Core 2.1 and 3.1), `v5.0` and `v6.0`. [For more information on which .net Framework version to use based on the runtime version you're targeting - please see this table](https://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-class-library#supported-versions). Defaults to `v4.0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "elasticInstanceMinimum": {
          "description": "The number of minimum instances for this function app. Only affects apps on the Premium plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "ftpsState": {
          "description": "State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `AllAllowed`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "healthCheckPath": {
          "description": "Path which will be checked for this function app health.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "http2Enabled": {
          "description": "Specifies whether or not the http2 protocol should be enabled. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "ipRestrictions": {
          "description": "A [List of objects](https://www.terraform.io/docs/configuration/attr-as-blocks.html) representing ip restrictions as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/FunctionAppSiteConfigIpRestriction:FunctionAppSiteConfigIpRestriction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "javaVersion": {
          "description": "Java version hosted by the function app in Azure. Possible values are `1.8`, `11`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "linuxFxVersion": {
          "description": "Linux App Framework and version for the AppService, e.g. `DOCKER|(golang:latest)`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "minTlsVersion": {
          "description": "The minimum supported TLS version for the function app. Possible values are `1.0`, `1.1`, and `1.2`. Defaults to `1.2` for new function apps.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "preWarmedInstanceCount": {
          "description": "The number of pre-warmed instances for this function app. Only affects apps on the Premium plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "runtimeScaleMonitoringEnabled": {
          "description": "Should Runtime Scale Monitoring be enabled?. Only applicable to apps on the Premium plan. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "scmIpRestrictions": {
          "description": "A [List of objects](https://www.terraform.io/docs/configuration/attr-as-blocks.html) representing ip restrictions as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/FunctionAppSiteConfigScmIpRestriction:FunctionAppSiteConfigScmIpRestriction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "scmType": {
          "description": "The type of Source Control used by the Function App. Valid values include: `BitBucketGit`, `BitBucketHg`, `CodePlexGit`, `CodePlexHg`, `Dropbox`, `ExternalGit`, `ExternalHg`, `GitHub`, `LocalGit`, `None` (default), `OneDrive`, `Tfs`, `VSO`, and `VSTSRM`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scmUseMainIpRestriction": {
          "description": "IP security restrictions for scm to use main. Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "use32BitWorkerProcess": {
          "description": "Should the Function App run in 32 bit mode, rather than 64 bit mode? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "websocketsEnabled": {
          "description": "Should WebSockets be enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:appservice/FunctionAppSiteConfigCors:FunctionAppSiteConfigCors": {
      "properties": {
        "allowedOrigins": {
          "description": "A list of origins which should be able to make cross-origin calls. `*` can be used to allow all calls.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "supportCredentials": {
          "description": "Are credentials supported?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "allowedOrigins"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppSiteConfigIpRestriction:FunctionAppSiteConfigIpRestriction": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "headers",
            "name"
          ]
        }
      },
      "properties": {
        "action": {
          "description": "Does this restriction `Allow` or `Deny` access for this IP range. Defaults to `Allow`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headers": {
          "$ref": "#/types/azure:appservice/FunctionAppSiteConfigIpRestrictionHeaders:FunctionAppSiteConfigIpRestrictionHeaders",
          "description": "The headers for this specific `ip_restriction` as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "description": "The IP Address used for this IP Restriction in CIDR notation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority for this IP Restriction. Restrictions are enforced in priority order. By default, the priority is set to 65000 if not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serviceTag": {
          "description": "The Service Tag used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkSubnetId": {
          "description": "The Virtual Network Subnet ID used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/FunctionAppSiteConfigIpRestrictionHeaders:FunctionAppSiteConfigIpRestrictionHeaders": {
      "properties": {
        "xAzureFdids": {
          "description": "A list of allowed Azure FrontDoor IDs in UUID notation with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xFdHealthProbe": {
          "description": "A list to allow the Azure FrontDoor health probe header. Only allowed value is \"1\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "xForwardedFors": {
          "description": "A list of allowed 'X-Forwarded-For' IPs in CIDR notation with a maximum of 8\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedHosts": {
          "description": "A list of allowed 'X-Forwarded-Host' domains with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:appservice/FunctionAppSiteConfigScmIpRestriction:FunctionAppSiteConfigScmIpRestriction": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "headers",
            "name"
          ]
        }
      },
      "properties": {
        "action": {
          "description": "Allow or Deny access for this IP range. Defaults to Allow.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headers": {
          "$ref": "#/types/azure:appservice/FunctionAppSiteConfigScmIpRestrictionHeaders:FunctionAppSiteConfigScmIpRestrictionHeaders",
          "description": "The headers for this specific `scm_ip_restriction` as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "description": "The IP Address used for this IP Restriction in CIDR notation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority for this IP Restriction. Restrictions are enforced in priority order. By default, priority is set to 65000 if not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serviceTag": {
          "description": "The Service Tag used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkSubnetId": {
          "description": "The Virtual Network Subnet ID used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/FunctionAppSiteConfigScmIpRestrictionHeaders:FunctionAppSiteConfigScmIpRestrictionHeaders": {
      "properties": {
        "xAzureFdids": {
          "description": "A list of allowed Azure FrontDoor IDs in UUID notation with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xFdHealthProbe": {
          "description": "A list to allow the Azure FrontDoor health probe header. Only allowed value is \"1\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "xForwardedFors": {
          "description": "A list of allowed 'X-Forwarded-For' IPs in CIDR notation with a maximum of 8\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedHosts": {
          "description": "A list of allowed 'X-Forwarded-Host' domains with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:appservice/FunctionAppSiteCredential:FunctionAppSiteCredential": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "password",
            "username"
          ]
        }
      },
      "properties": {
        "password": {
          "description": "The password associated with the username, which can be used to publish to this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username which can be used to publish to this App Service\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotAuthSettings:FunctionAppSlotAuthSettings": {
      "properties": {
        "activeDirectory": {
          "$ref": "#/types/azure:appservice/FunctionAppSlotAuthSettingsActiveDirectory:FunctionAppSlotAuthSettingsActiveDirectory",
          "description": "An `active_directory` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "additionalLoginParams": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Login parameters to send to the OpenID Connect authorization endpoint when a user logs in. Each parameter must be in the form \"key=value\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "allowedExternalRedirectUrls": {
          "description": "External URLs that can be redirected to as part of logging in or logging out of the app.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "defaultProvider": {
          "description": "The default provider to use when multiple providers have been set up. Possible values are `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount` and `Twitter`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Is Authentication enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "facebook": {
          "$ref": "#/types/azure:appservice/FunctionAppSlotAuthSettingsFacebook:FunctionAppSlotAuthSettingsFacebook",
          "description": "A `facebook` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "google": {
          "$ref": "#/types/azure:appservice/FunctionAppSlotAuthSettingsGoogle:FunctionAppSlotAuthSettingsGoogle",
          "description": "A `google` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "issuer": {
          "description": "Issuer URI. When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://sts.windows.net/{tenant-guid}/.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "microsoft": {
          "$ref": "#/types/azure:appservice/FunctionAppSlotAuthSettingsMicrosoft:FunctionAppSlotAuthSettingsMicrosoft",
          "description": "A `microsoft` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "runtimeVersion": {
          "description": "The runtime version of the Authentication/Authorization module.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tokenRefreshExtensionHours": {
          "description": "The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to 72.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        },
        "tokenStoreEnabled": {
          "description": "If enabled the module will durably store platform-specific security tokens that are obtained during login flows. Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "twitter": {
          "$ref": "#/types/azure:appservice/FunctionAppSlotAuthSettingsTwitter:FunctionAppSlotAuthSettingsTwitter",
          "description": "A `twitter` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unauthenticatedClientAction": {
          "description": "The action to take when an unauthenticated client attempts to access the app. Possible values are `AllowAnonymous` and `RedirectToLoginPage`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotAuthSettingsActiveDirectory:FunctionAppSlotAuthSettingsActiveDirectory": {
      "properties": {
        "allowedAudiences": {
          "description": "Allowed audience values to consider when validating JWTs issued by Azure Active Directory.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "clientId": {
          "description": "The Client ID of this relying party application. Enables OpenIDConnection authentication with Azure Active Directory.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientSecret": {
          "description": "The Client Secret of this relying party application. If no secret is provided, implicit flow will be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "clientId"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotAuthSettingsFacebook:FunctionAppSlotAuthSettingsFacebook": {
      "properties": {
        "appId": {
          "description": "The App ID of the Facebook app used for login\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "appSecret": {
          "description": "The App Secret of the Facebook app used for Facebook Login.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "oauthScopes": {
          "description": "The OAuth 2.0 scopes that will be requested as part of Facebook Login authentication. https://developers.facebook.com/docs/facebook-login\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "appId",
        "appSecret"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotAuthSettingsGoogle:FunctionAppSlotAuthSettingsGoogle": {
      "properties": {
        "clientId": {
          "description": "The OpenID Connect Client ID for the Google web application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientSecret": {
          "description": "The client secret associated with the Google web application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "oauthScopes": {
          "description": "The OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. https://developers.google.com/identity/sign-in/web/\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "clientId",
        "clientSecret"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotAuthSettingsMicrosoft:FunctionAppSlotAuthSettingsMicrosoft": {
      "properties": {
        "clientId": {
          "description": "The OAuth 2.0 client ID that was created for the app used for authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientSecret": {
          "description": "The OAuth 2.0 client secret that was created for the app used for authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "oauthScopes": {
          "description": "The OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. https://msdn.microsoft.com/en-us/library/dn631845.aspx\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "clientId",
        "clientSecret"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotAuthSettingsTwitter:FunctionAppSlotAuthSettingsTwitter": {
      "properties": {
        "consumerKey": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "consumerSecret": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "consumerKey",
        "consumerSecret"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotConnectionString:FunctionAppSlotConnectionString": {
      "properties": {
        "name": {
          "description": "The name of the Connection String.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of the Connection String. Possible values are `APIHub`, `Custom`, `DocDb`, `EventHub`, `MySQL`, `NotificationHub`, `PostgreSQL`, `RedisCache`, `ServiceBus`, `SQLAzure` and  `SQLServer`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value for the Connection String.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "type",
        "value"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotIdentity:FunctionAppSlotIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "Specifies a list of user managed identity ids to be assigned. Required if `type` is `UserAssigned`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of the Function App. Possible values are `SystemAssigned` (where Azure will generate a Service Principal for you), `UserAssigned` where you can specify the Service Principal IDs in the `identity_ids` field, and `SystemAssigned, UserAssigned` which assigns both a system managed identity as well as the specified user assigned identities.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotSiteConfig:FunctionAppSlotSiteConfig": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "appScaleLimit",
            "cors",
            "elasticInstanceMinimum",
            "ftpsState",
            "ipRestrictions",
            "linuxFxVersion",
            "minTlsVersion",
            "preWarmedInstanceCount",
            "scmIpRestrictions",
            "scmType"
          ]
        }
      },
      "properties": {
        "alwaysOn": {
          "description": "Should the Function App be loaded at all times? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "appScaleLimit": {
          "description": "The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "autoSwapSlotName": {
          "description": "The name of the slot to automatically swap to during deployment\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "cors": {
          "$ref": "#/types/azure:appservice/FunctionAppSlotSiteConfigCors:FunctionAppSlotSiteConfigCors",
          "description": "A `cors` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dotnetFrameworkVersion": {
          "description": "The version of the .net framework's CLR used in this function app. Possible values are `v4.0` (including .NET Core 2.1 and 3.1), `v5.0` and `v6.0`. [For more information on which .net Framework version to use based on the runtime version you're targeting - please see this table](https://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-class-library#supported-versions). Defaults to `v4.0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "elasticInstanceMinimum": {
          "description": "The number of minimum instances for this function app. Only applicable to apps on the Premium plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "ftpsState": {
          "description": "State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "healthCheckPath": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "http2Enabled": {
          "description": "Specifies whether or not the http2 protocol should be enabled. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "ipRestrictions": {
          "description": "A [List of objects](https://www.terraform.io/docs/configuration/attr-as-blocks.html) representing ip restrictions as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/FunctionAppSlotSiteConfigIpRestriction:FunctionAppSlotSiteConfigIpRestriction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "javaVersion": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "linuxFxVersion": {
          "description": "Linux App Framework and version for the AppService, e.g. `DOCKER|(golang:latest)`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "minTlsVersion": {
          "description": "The minimum supported TLS version for the function app. Possible values are `1.0`, `1.1`, and `1.2`. Defaults to `1.2` for new function apps.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "preWarmedInstanceCount": {
          "description": "The number of pre-warmed instances for this function app. Only affects apps on the Premium plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "runtimeScaleMonitoringEnabled": {
          "description": "Should Runtime Scale Monitoring be enabled?. Only applicable to apps on the Premium plan. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "scmIpRestrictions": {
          "items": {
            "$ref": "#/types/azure:appservice/FunctionAppSlotSiteConfigScmIpRestriction:FunctionAppSlotSiteConfigScmIpRestriction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "scmType": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scmUseMainIpRestriction": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "use32BitWorkerProcess": {
          "description": "Should the Function App run in 32 bit mode, rather than 64 bit mode? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "websocketsEnabled": {
          "description": "Should WebSockets be enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotSiteConfigCors:FunctionAppSlotSiteConfigCors": {
      "properties": {
        "allowedOrigins": {
          "description": "A list of origins which should be able to make cross-origin calls. `*` can be used to allow all calls.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "supportCredentials": {
          "description": "Are credentials supported?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "allowedOrigins"
      ],
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotSiteConfigIpRestriction:FunctionAppSlotSiteConfigIpRestriction": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "headers",
            "name"
          ]
        }
      },
      "properties": {
        "action": {
          "description": "Does this restriction `Allow` or `Deny` access for this IP range. Defaults to `Allow`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headers": {
          "$ref": "#/types/azure:appservice/FunctionAppSlotSiteConfigIpRestrictionHeaders:FunctionAppSlotSiteConfigIpRestrictionHeaders",
          "description": "The headers for this specific `ip_restriction` as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "description": "The IP Address used for this IP Restriction in CIDR notation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority for this IP Restriction. Restrictions are enforced in priority order. By default, priority is set to 65000 if not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serviceTag": {
          "description": "The Service Tag used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkSubnetId": {
          "description": "The Virtual Network Subnet ID used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotSiteConfigIpRestrictionHeaders:FunctionAppSlotSiteConfigIpRestrictionHeaders": {
      "properties": {
        "xAzureFdids": {
          "description": "A list of allowed Azure FrontDoor IDs in UUID notation with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xFdHealthProbe": {
          "description": "A list to allow the Azure FrontDoor health probe header. Only allowed value is \"1\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "xForwardedFors": {
          "description": "A list of allowed 'X-Forwarded-For' IPs in CIDR notation with a maximum of 8\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedHosts": {
          "description": "A list of allowed 'X-Forwarded-Host' domains with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotSiteConfigScmIpRestriction:FunctionAppSlotSiteConfigScmIpRestriction": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "headers",
            "name"
          ]
        }
      },
      "properties": {
        "action": {
          "description": "Does this restriction `Allow` or `Deny` access for this IP range. Defaults to `Allow`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headers": {
          "$ref": "#/types/azure:appservice/FunctionAppSlotSiteConfigScmIpRestrictionHeaders:FunctionAppSlotSiteConfigScmIpRestrictionHeaders",
          "description": "The headers for this specific `ip_restriction` as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "description": "The IP Address used for this IP Restriction in CIDR notation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Function App. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority for this IP Restriction. Restrictions are enforced in priority order. By default, priority is set to 65000 if not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serviceTag": {
          "description": "The Service Tag used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkSubnetId": {
          "description": "The Virtual Network Subnet ID used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotSiteConfigScmIpRestrictionHeaders:FunctionAppSlotSiteConfigScmIpRestrictionHeaders": {
      "properties": {
        "xAzureFdids": {
          "description": "A list of allowed Azure FrontDoor IDs in UUID notation with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xFdHealthProbe": {
          "description": "A list to allow the Azure FrontDoor health probe header. Only allowed value is \"1\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "xForwardedFors": {
          "description": "A list of allowed 'X-Forwarded-For' IPs in CIDR notation with a maximum of 8\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedHosts": {
          "description": "A list of allowed 'X-Forwarded-Host' domains with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:appservice/FunctionAppSlotSiteCredential:FunctionAppSlotSiteCredential": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "password",
            "username"
          ]
        }
      },
      "properties": {
        "password": {
          "description": "The password associated with the username, which can be used to publish to this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username which can be used to publish to this App Service\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/FunctionAppSourceControl:FunctionAppSourceControl": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "branch",
            "manualIntegration",
            "repoUrl",
            "rollbackEnabled",
            "useMercurial"
          ]
        }
      },
      "properties": {
        "branch": {
          "description": "The branch of the remote repository to use. Defaults to 'master'.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "manualIntegration": {
          "description": "Limits to manual integration. Defaults to `false` if not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "repoUrl": {
          "description": "The URL of the source code repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rollbackEnabled": {
          "description": "Enable roll-back for the repository. Defaults to `false` if not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "useMercurial": {
          "description": "Use Mercurial if `true`, otherwise uses Git.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:appservice/PlanSku:PlanSku": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "capacity",
            "size",
            "tier"
          ]
        }
      },
      "properties": {
        "capacity": {
          "description": "Specifies the number of workers associated with this App Service Plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "size": {
          "description": "Specifies the plan's instance size.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tier": {
          "description": "Specifies the plan's pricing tier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "size",
        "tier"
      ],
      "type": "object"
    },
    "azure:appservice/SlotAuthSettings:SlotAuthSettings": {
      "properties": {
        "activeDirectory": {
          "$ref": "#/types/azure:appservice/SlotAuthSettingsActiveDirectory:SlotAuthSettingsActiveDirectory",
          "description": "A `active_directory` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "additionalLoginParams": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Login parameters to send to the OpenID Connect authorization endpoint when a user logs in. Each parameter must be in the form \"key=value\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "allowedExternalRedirectUrls": {
          "description": "External URLs that can be redirected to as part of logging in or logging out of the app.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "defaultProvider": {
          "description": "The default provider to use when multiple providers have been set up. Possible values are `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount` and `Twitter`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Is Authentication enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "facebook": {
          "$ref": "#/types/azure:appservice/SlotAuthSettingsFacebook:SlotAuthSettingsFacebook",
          "description": "A `facebook` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "google": {
          "$ref": "#/types/azure:appservice/SlotAuthSettingsGoogle:SlotAuthSettingsGoogle",
          "description": "A `google` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "issuer": {
          "description": "Issuer URI. When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://sts.windows.net/{tenant-guid}/.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "microsoft": {
          "$ref": "#/types/azure:appservice/SlotAuthSettingsMicrosoft:SlotAuthSettingsMicrosoft",
          "description": "A `microsoft` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "runtimeVersion": {
          "description": "The runtime version of the Authentication/Authorization module.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tokenRefreshExtensionHours": {
          "description": "The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to 72.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        },
        "tokenStoreEnabled": {
          "description": "If enabled the module will durably store platform-specific security tokens that are obtained during login flows. Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "twitter": {
          "$ref": "#/types/azure:appservice/SlotAuthSettingsTwitter:SlotAuthSettingsTwitter",
          "description": "A `twitter` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "unauthenticatedClientAction": {
          "description": "The action to take when an unauthenticated client attempts to access the app. Possible values are `AllowAnonymous` and `RedirectToLoginPage`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:appservice/SlotAuthSettingsActiveDirectory:SlotAuthSettingsActiveDirectory": {
      "properties": {
        "allowedAudiences": {
          "description": "Allowed audience values to consider when validating JWTs issued by Azure Active Directory.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "clientId": {
          "description": "The Client ID of this relying party application. Enables OpenIDConnection authentication with Azure Active Directory.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientSecret": {
          "description": "The Client Secret of this relying party application. If no secret is provided, implicit flow will be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "clientId"
      ],
      "type": "object"
    },
    "azure:appservice/SlotAuthSettingsFacebook:SlotAuthSettingsFacebook": {
      "properties": {
        "appId": {
          "description": "The App ID of the Facebook app used for login\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "appSecret": {
          "description": "The App Secret of the Facebook app used for Facebook Login.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "oauthScopes": {
          "description": "The OAuth 2.0 scopes that will be requested as part of Facebook Login authentication. https://developers.facebook.com/docs/facebook-login\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "appId",
        "appSecret"
      ],
      "type": "object"
    },
    "azure:appservice/SlotAuthSettingsGoogle:SlotAuthSettingsGoogle": {
      "properties": {
        "clientId": {
          "description": "The OpenID Connect Client ID for the Google web application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientSecret": {
          "description": "The client secret associated with the Google web application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "oauthScopes": {
          "description": "The OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. https://developers.google.com/identity/sign-in/web/\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "clientId",
        "clientSecret"
      ],
      "type": "object"
    },
    "azure:appservice/SlotAuthSettingsMicrosoft:SlotAuthSettingsMicrosoft": {
      "properties": {
        "clientId": {
          "description": "The OAuth 2.0 client ID that was created for the app used for authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientSecret": {
          "description": "The OAuth 2.0 client secret that was created for the app used for authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "oauthScopes": {
          "description": "The OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. https://msdn.microsoft.com/en-us/library/dn631845.aspx\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "clientId",
        "clientSecret"
      ],
      "type": "object"
    },
    "azure:appservice/SlotAuthSettingsTwitter:SlotAuthSettingsTwitter": {
      "properties": {
        "consumerKey": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "consumerSecret": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "consumerKey",
        "consumerSecret"
      ],
      "type": "object"
    },
    "azure:appservice/SlotConnectionString:SlotConnectionString": {
      "properties": {
        "name": {
          "description": "The name of the Connection String.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of the Connection String. Possible values are `APIHub`, `Custom`, `DocDb`, `EventHub`, `MySQL`, `NotificationHub`, `PostgreSQL`, `RedisCache`, `ServiceBus`, `SQLAzure`, and  `SQLServer`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value for the Connection String.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "type",
        "value"
      ],
      "type": "object"
    },
    "azure:appservice/SlotIdentity:SlotIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "Specifies a list of user managed identity ids to be assigned. Required if `type` is `UserAssigned`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of the App Service. Possible values are `SystemAssigned` (where Azure will generate a Service Principal for you), `UserAssigned` where you can specify the Service Principal IDs in the `identity_ids` field, and `SystemAssigned, UserAssigned` which assigns both a system managed identity as well as the specified user assigned identities.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:appservice/SlotLogs:SlotLogs": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "applicationLogs",
            "httpLogs"
          ]
        }
      },
      "properties": {
        "applicationLogs": {
          "$ref": "#/types/azure:appservice/SlotLogsApplicationLogs:SlotLogsApplicationLogs",
          "description": "An `application_logs` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "detailedErrorMessagesEnabled": {
          "description": "Should `Detailed error messages` be enabled on this App Service slot? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "failedRequestTracingEnabled": {
          "description": "Should `Failed request tracing` be enabled on this App Service slot? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "httpLogs": {
          "$ref": "#/types/azure:appservice/SlotLogsHttpLogs:SlotLogsHttpLogs",
          "description": "An `http_logs` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:appservice/SlotLogsApplicationLogs:SlotLogsApplicationLogs": {
      "properties": {
        "azureBlobStorage": {
          "$ref": "#/types/azure:appservice/SlotLogsApplicationLogsAzureBlobStorage:SlotLogsApplicationLogsAzureBlobStorage",
          "description": "An `azure_blob_storage` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fileSystemLevel": {
          "description": "The file system log level. Possible values are `Off`, `Error`, `Warning`, `Information`, and `Verbose`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/SlotLogsApplicationLogsAzureBlobStorage:SlotLogsApplicationLogsAzureBlobStorage": {
      "properties": {
        "level": {
          "description": "The level at which to log. Possible values include `Error`, `Warning`, `Information`, `Verbose` and `Off`. **NOTE:** this field is not available for `http_logs`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "retentionInDays": {
          "description": "The number of days to retain logs for.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "sasUrl": {
          "description": "The URL to the storage container, with a Service SAS token appended. **NOTE:** there is currently no means of generating Service SAS tokens with the `azurerm` provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "level",
        "retentionInDays",
        "sasUrl"
      ],
      "type": "object"
    },
    "azure:appservice/SlotLogsHttpLogs:SlotLogsHttpLogs": {
      "properties": {
        "azureBlobStorage": {
          "$ref": "#/types/azure:appservice/SlotLogsHttpLogsAzureBlobStorage:SlotLogsHttpLogsAzureBlobStorage",
          "description": "An `azure_blob_storage` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fileSystem": {
          "$ref": "#/types/azure:appservice/SlotLogsHttpLogsFileSystem:SlotLogsHttpLogsFileSystem",
          "description": "A `file_system` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:appservice/SlotLogsHttpLogsAzureBlobStorage:SlotLogsHttpLogsAzureBlobStorage": {
      "properties": {
        "retentionInDays": {
          "description": "The number of days to retain logs for.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "sasUrl": {
          "description": "The URL to the storage container, with a Service SAS token appended. **NOTE:** there is currently no means of generating Service SAS tokens with the `azurerm` provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "retentionInDays",
        "sasUrl"
      ],
      "type": "object"
    },
    "azure:appservice/SlotLogsHttpLogsFileSystem:SlotLogsHttpLogsFileSystem": {
      "properties": {
        "retentionInDays": {
          "description": "The number of days to retain logs for.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "retentionInMb": {
          "description": "The maximum size in megabytes that http log files can use before being removed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "retentionInDays",
        "retentionInMb"
      ],
      "type": "object"
    },
    "azure:appservice/SlotSiteConfig:SlotSiteConfig": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "cors",
            "ftpsState",
            "ipRestrictions",
            "linuxFxVersion",
            "localMysqlEnabled",
            "managedPipelineMode",
            "minTlsVersion",
            "numberOfWorkers",
            "remoteDebuggingVersion",
            "scmIpRestrictions",
            "scmType",
            "vnetRouteAllEnabled",
            "websocketsEnabled",
            "windowsFxVersion"
          ]
        }
      },
      "properties": {
        "acrUseManagedIdentityCredentials": {
          "description": "Are Managed Identity Credential used for Azure Container Registry pull\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "acrUserManagedIdentityClientId": {
          "description": "If using User Managed Identity, the User Managed Identity Client Id\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "alwaysOn": {
          "description": "Should the app be loaded at all times? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "appCommandLine": {
          "description": "App command line to launch, e.g. `/sbin/myserver -b 0.0.0.0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "autoSwapSlotName": {
          "description": "The name of the slot to automatically swap to during deployment\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "cors": {
          "$ref": "#/types/azure:appservice/SlotSiteConfigCors:SlotSiteConfigCors",
          "description": "A `cors` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "defaultDocuments": {
          "description": "The ordering of default documents to load, if an address isn't specified.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "dotnetFrameworkVersion": {
          "description": "The version of the .net framework's CLR used in this App Service Slot. Possible values are `v2.0` (which will use the latest version of the .net framework for the .net CLR v2 - currently `.net 3.5`), `v4.0` (which corresponds to the latest version of the .net CLR v4 - which at the time of writing is `.net 4.7.1`), `v5.0` and `v6.0`. [For more information on which .net CLR version to use based on the .net framework you're targeting - please see this table](https://en.wikipedia.org/wiki/.NET_Framework_version_history#Overview). Defaults to `v4.0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ftpsState": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "healthCheckPath": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "http2Enabled": {
          "description": "Is HTTP2 Enabled on this App Service? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "ipRestrictions": {
          "description": "A list of objects representing ip restrictions as defined below.\n",
          "items": {
            "$ref": "#/types/azure:appservice/SlotSiteConfigIpRestriction:SlotSiteConfigIpRestriction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "javaContainer": {
          "description": "The Java Container to use. If specified `java_version` and `java_container_version` must also be specified. Possible values are `JETTY` and `TOMCAT`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "javaContainerVersion": {
          "description": "The version of the Java Container to use. If specified `java_version` and `java_container` must also be specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "javaVersion": {
          "description": "The version of Java to use. If specified `java_container` and `java_container_version` must also be specified. Possible values are `1.7`, `1.8`, and `11` and their specific versions - except for Java 11 (e.g. `1.7.0_80`, `1.8.0_181`, `11`)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "linuxFxVersion": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "localMysqlEnabled": {
          "description": "Is \"MySQL In App\" Enabled? This runs a local MySQL instance with your app and shares resources from the App Service plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "managedPipelineMode": {
          "description": "The Managed Pipeline Mode. Possible values are `Integrated` and `Classic`. Defaults to `Integrated`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "minTlsVersion": {
          "description": "The minimum supported TLS version for the app service. Possible values are `1.0`, `1.1`, and `1.2`. Defaults to `1.2` for new app services.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "numberOfWorkers": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "phpVersion": {
          "description": "The version of PHP to use in this App Service Slot. Possible values are `5.5`, `5.6`, `7.0`, `7.1`, `7.2`, and `7.3`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pythonVersion": {
          "description": "The version of Python to use in this App Service Slot. Possible values are `2.7` and `3.4`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "remoteDebuggingEnabled": {
          "description": "Is Remote Debugging Enabled? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "remoteDebuggingVersion": {
          "description": "Which version of Visual Studio should the Remote Debugger be compatible with? Possible values are `VS2012`, `VS2013`, `VS2015`, and `VS2017`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scmIpRestrictions": {
          "items": {
            "$ref": "#/types/azure:appservice/SlotSiteConfigScmIpRestriction:SlotSiteConfigScmIpRestriction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "scmType": {
          "description": "The type of Source Control enabled for this App Service Slot. Defaults to `None`. Possible values are: `BitbucketGit`, `BitbucketHg`, `CodePlexGit`, `CodePlexHg`, `Dropbox`, `ExternalGit`, `ExternalHg`, `GitHub`, `LocalGit`, `None`, `OneDrive`, `Tfs`, `VSO`, and `VSTSRM`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scmUseMainIpRestriction": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "use32BitWorkerProcess": {
          "description": "Should the App Service Slot run in 32 bit mode, rather than 64 bit mode?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "vnetRouteAllEnabled": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "websocketsEnabled": {
          "description": "Should WebSockets be enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "windowsFxVersion": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/SlotSiteConfigCors:SlotSiteConfigCors": {
      "properties": {
        "allowedOrigins": {
          "description": "A list of origins which should be able to make cross-origin calls. `*` can be used to allow all calls.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "supportCredentials": {
          "description": "Are credentials supported?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "allowedOrigins"
      ],
      "type": "object"
    },
    "azure:appservice/SlotSiteConfigIpRestriction:SlotSiteConfigIpRestriction": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "headers",
            "name"
          ]
        }
      },
      "properties": {
        "action": {
          "description": "Does this restriction `Allow` or `Deny` access for this IP range. Defaults to `Allow`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headers": {
          "$ref": "#/types/azure:appservice/SlotSiteConfigIpRestrictionHeaders:SlotSiteConfigIpRestrictionHeaders",
          "description": "The headers for this specific `ip_restriction` as defined below. The http header filters are evaluated after the rule itself and both conditions must be true for the rule to apply.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "description": "The IP Address used for this IP Restriction in CIDR notation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority for this IP Restriction. Restrictions are enforced in priority order. By default, priority is set to 65000 if not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serviceTag": {
          "description": "The Service Tag used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkSubnetId": {
          "description": "The Virtual Network Subnet ID used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/SlotSiteConfigIpRestrictionHeaders:SlotSiteConfigIpRestrictionHeaders": {
      "properties": {
        "xAzureFdids": {
          "description": "A list of allowed Azure FrontDoor IDs in UUID notation with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xFdHealthProbe": {
          "description": "A list to allow the Azure FrontDoor health probe header. Only allowed value is \"1\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "xForwardedFors": {
          "description": "A list of allowed 'X-Forwarded-For' IPs in CIDR notation with a maximum of 8\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedHosts": {
          "description": "A list of allowed 'X-Forwarded-Host' domains with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:appservice/SlotSiteConfigScmIpRestriction:SlotSiteConfigScmIpRestriction": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "headers",
            "name"
          ]
        }
      },
      "properties": {
        "action": {
          "description": "Does this restriction `Allow` or `Deny` access for this IP range. Defaults to `Allow`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headers": {
          "$ref": "#/types/azure:appservice/SlotSiteConfigScmIpRestrictionHeaders:SlotSiteConfigScmIpRestrictionHeaders",
          "description": "The headers for this specific `ip_restriction` as defined below. The http header filters are evaluated after the rule itself and both conditions must be true for the rule to apply.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "description": "The IP Address used for this IP Restriction in CIDR notation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the App Service Slot component. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority for this IP Restriction. Restrictions are enforced in priority order. By default, priority is set to 65000 if not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serviceTag": {
          "description": "The Service Tag used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkSubnetId": {
          "description": "The Virtual Network Subnet ID used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/SlotSiteConfigScmIpRestrictionHeaders:SlotSiteConfigScmIpRestrictionHeaders": {
      "properties": {
        "xAzureFdids": {
          "description": "A list of allowed Azure FrontDoor IDs in UUID notation with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xFdHealthProbe": {
          "description": "A list to allow the Azure FrontDoor health probe header. Only allowed value is \"1\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "xForwardedFors": {
          "description": "A list of allowed 'X-Forwarded-For' IPs in CIDR notation with a maximum of 8\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedHosts": {
          "description": "A list of allowed 'X-Forwarded-Host' domains with a maximum of 8.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:appservice/SlotSiteCredential:SlotSiteCredential": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "password",
            "username"
          ]
        }
      },
      "properties": {
        "password": {
          "description": "The password associated with the username, which can be used to publish to this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username which can be used to publish to this App Service\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:appservice/getAppServiceConnectionString:getAppServiceConnectionString": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "The name of the App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of the Connection String.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value for the Connection String.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "type",
        "value"
      ],
      "type": "object"
    },
    "azure:appservice/getAppServiceEnvironmentClusterSetting:getAppServiceEnvironmentClusterSetting": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "The name of this App Service Environment.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value for the Cluster Setting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "type": "object"
    },
    "azure:appservice/getAppServicePlanSku:getAppServicePlanSku": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "capacity": {
          "description": "Specifies the number of workers associated with this App Service Plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "size": {
          "description": "Specifies the plan's instance size.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tier": {
          "description": "Specifies the plan's pricing tier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "capacity",
        "size",
        "tier"
      ],
      "type": "object"
    },
    "azure:appservice/getAppServiceSiteConfig:getAppServiceSiteConfig": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "acrUseManagedIdentityCredentials": {
          "description": "Are Managed Identity Credentials used for Azure Container Registry pull.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "acrUserManagedIdentityClientId": {
          "description": "The User Managed Identity Client Id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "alwaysOn": {
          "description": "Is the app loaded at all times?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "appCommandLine": {
          "description": "App command line to launch.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "cors": {
          "description": "A `cors` block as defined above.\n",
          "items": {
            "$ref": "#/types/azure:appservice/getAppServiceSiteConfigCor:getAppServiceSiteConfigCor"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "defaultDocuments": {
          "description": "The ordering of default documents to load, if an address isn't specified.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "dotnetFrameworkVersion": {
          "description": "The version of the .net framework's CLR used in this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ftpsState": {
          "description": "State of FTP / FTPS service for this AppService.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "healthCheckPath": {
          "description": "The health check path to be pinged by App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "http2Enabled": {
          "description": "Is HTTP2 Enabled on this App Service?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "ipRestrictions": {
          "description": "One or more `ip_restriction` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:appservice/getAppServiceSiteConfigIpRestriction:getAppServiceSiteConfigIpRestriction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "javaContainer": {
          "description": "The Java Container in use.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "javaContainerVersion": {
          "description": "The version of the Java Container in use.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "javaVersion": {
          "description": "The version of Java in use.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "linuxFxVersion": {
          "description": "Linux App Framework and version for the AppService.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "localMysqlEnabled": {
          "description": "Is \"MySQL In App\" Enabled? This runs a local MySQL instance with your app and shares resources from the App Service plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "managedPipelineMode": {
          "description": "The Managed Pipeline Mode used in this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "minTlsVersion": {
          "description": "The minimum supported TLS version for this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "numberOfWorkers": {
          "description": "The scaled number of workers (for per site scaling) of this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "phpVersion": {
          "description": "The version of PHP used in this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pythonVersion": {
          "description": "The version of Python used in this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "remoteDebuggingEnabled": {
          "description": "Is Remote Debugging Enabled in this App Service?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "remoteDebuggingVersion": {
          "description": "Which version of Visual Studio is the Remote Debugger compatible with?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scmIpRestrictions": {
          "description": "One or more `scm_ip_restriction` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:appservice/getAppServiceSiteConfigScmIpRestriction:getAppServiceSiteConfigScmIpRestriction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "scmType": {
          "description": "The type of Source Control enabled for this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scmUseMainIpRestriction": {
          "description": "IP security restrictions for scm to use main.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "use32BitWorkerProcess": {
          "description": "Does the App Service run in 32 bit mode, rather than 64 bit mode?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "vnetRouteAllEnabled": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "websocketsEnabled": {
          "description": "Are WebSockets enabled for this App Service?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "windowsFxVersion": {
          "description": "Windows Container Docker Image for the AppService.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "acrUseManagedIdentityCredentials",
        "acrUserManagedIdentityClientId",
        "alwaysOn",
        "appCommandLine",
        "cors",
        "defaultDocuments",
        "dotnetFrameworkVersion",
        "ftpsState",
        "healthCheckPath",
        "http2Enabled",
        "ipRestrictions",
        "javaContainer",
        "javaContainerVersion",
        "javaVersion",
        "linuxFxVersion",
        "localMysqlEnabled",
        "managedPipelineMode",
        "minTlsVersion",
        "numberOfWorkers",
        "phpVersion",
        "pythonVersion",
        "remoteDebuggingEnabled",
        "remoteDebuggingVersion",
        "scmIpRestrictions",
        "scmType",
        "scmUseMainIpRestriction",
        "use32BitWorkerProcess",
        "vnetRouteAllEnabled",
        "websocketsEnabled",
        "windowsFxVersion"
      ],
      "type": "object"
    },
    "azure:appservice/getAppServiceSiteConfigCor:getAppServiceSiteConfigCor": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "allowedOrigins": {
          "description": "A list of origins which are able to make cross-origin calls.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "supportCredentials": {
          "description": "Are credentials supported?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "allowedOrigins",
        "supportCredentials"
      ],
      "type": "object"
    },
    "azure:appservice/getAppServiceSiteConfigIpRestriction:getAppServiceSiteConfigIpRestriction": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "action": {
          "description": "Allow or Deny access for this IP range. Defaults to Allow.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headers": {
          "$ref": "#/types/azure:appservice/getAppServiceSiteConfigIpRestrictionHeaders:getAppServiceSiteConfigIpRestrictionHeaders",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "description": "The IP Address used for this IP Restriction in CIDR notation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serviceTag": {
          "description": "The Service Tag used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkSubnetId": {
          "description": "The Virtual Network Subnet ID used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "headers",
        "ipAddress",
        "name",
        "priority",
        "serviceTag",
        "virtualNetworkSubnetId"
      ],
      "type": "object"
    },
    "azure:appservice/getAppServiceSiteConfigIpRestrictionHeaders:getAppServiceSiteConfigIpRestrictionHeaders": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "xAzureFdids": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xFdHealthProbes": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedFors": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedHosts": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "xAzureFdids",
        "xFdHealthProbes",
        "xForwardedFors",
        "xForwardedHosts"
      ],
      "type": "object"
    },
    "azure:appservice/getAppServiceSiteConfigScmIpRestriction:getAppServiceSiteConfigScmIpRestriction": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "action": {
          "description": "Allow or Deny access for this IP range. Defaults to Allow.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headers": {
          "$ref": "#/types/azure:appservice/getAppServiceSiteConfigScmIpRestrictionHeaders:getAppServiceSiteConfigScmIpRestrictionHeaders",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "description": "The IP Address used for this IP Restriction in CIDR notation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serviceTag": {
          "description": "The Service Tag used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkSubnetId": {
          "description": "The Virtual Network Subnet ID used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "headers",
        "ipAddress",
        "name",
        "priority",
        "serviceTag",
        "virtualNetworkSubnetId"
      ],
      "type": "object"
    },
    "azure:appservice/getAppServiceSiteConfigScmIpRestrictionHeaders:getAppServiceSiteConfigScmIpRestrictionHeaders": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "xAzureFdids": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xFdHealthProbes": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedFors": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedHosts": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "xAzureFdids",
        "xFdHealthProbes",
        "xForwardedFors",
        "xForwardedHosts"
      ],
      "type": "object"
    },
    "azure:appservice/getAppServiceSiteCredential:getAppServiceSiteCredential": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "password": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:appservice/getAppServiceSourceControl:getAppServiceSourceControl": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "branch": {
          "description": "The branch of the remote repository in use.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "manualIntegration": {
          "description": "Limits to manual integration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "repoUrl": {
          "description": "The URL of the source code repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rollbackEnabled": {
          "description": "Is roll-back enabled for the repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "useMercurial": {
          "description": "Uses Mercurial if `true`, otherwise uses Git.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "branch",
        "manualIntegration",
        "repoUrl",
        "rollbackEnabled",
        "useMercurial"
      ],
      "type": "object"
    },
    "azure:appservice/getCertificateOrderCertificate:getCertificateOrderCertificate": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "certificateName": {
          "description": "The name of the App Service Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "Key Vault resource Id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultSecretName": {
          "description": "Key Vault secret name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "provisioningState": {
          "description": "Status of the Key Vault secret.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "certificateName",
        "keyVaultId",
        "keyVaultSecretName",
        "provisioningState"
      ],
      "type": "object"
    },
    "azure:appservice/getEnvironmentV3ClusterSetting:getEnvironmentV3ClusterSetting": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "The name of this v3 App Service Environment.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value for the Cluster Setting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "type": "object"
    },
    "azure:appservice/getEnvironmentV3InboundNetworkDependency:getEnvironmentV3InboundNetworkDependency": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "description": {
          "description": "A short description of the purpose of the network traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipAddresses": {
          "description": "A list of IP addresses that network traffic will originate from in CIDR notation.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ports": {
          "description": "The ports that network traffic will arrive to the App Service Environment V3 on.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "description",
        "ipAddresses",
        "ports"
      ],
      "type": "object"
    },
    "azure:appservice/getFunctionAppConnectionString:getFunctionAppConnectionString": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "The name of the Function App resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The identity type of the Managed Identity assigned to the function app.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value for the Connection String.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "type",
        "value"
      ],
      "type": "object"
    },
    "azure:appservice/getFunctionAppIdentity:getFunctionAppIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "principalId": {
          "description": "The ID of the System Managed Service Principal assigned to the function app.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant of the System Managed Service Principal assigned to the function app.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The identity type of the Managed Identity assigned to the function app.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:appservice/getFunctionAppSiteConfig:getFunctionAppSiteConfig": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "alwaysOn": {
          "description": "Is the app loaded at all times?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "appScaleLimit": {
          "description": "The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "autoSwapSlotName": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "cors": {
          "$ref": "#/types/azure:appservice/getFunctionAppSiteConfigCors:getFunctionAppSiteConfigCors",
          "description": "A `cors` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "dotnetFrameworkVersion": {
          "description": "The version of the .net framework's CLR used in this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "elasticInstanceMinimum": {
          "description": "The number of minimum instances for this function app. Only applicable to apps on the Premium plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "ftpsState": {
          "description": "State of FTP / FTPS service for this AppService.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "healthCheckPath": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "http2Enabled": {
          "description": "Is HTTP2 Enabled on this App Service?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "ipRestrictions": {
          "description": "One or more `ip_restriction` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:appservice/getFunctionAppSiteConfigIpRestriction:getFunctionAppSiteConfigIpRestriction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "javaVersion": {
          "description": "Java version hosted by the function app in Azure.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "linuxFxVersion": {
          "description": "Linux App Framework and version for the AppService.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "minTlsVersion": {
          "description": "The minimum supported TLS version for this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "preWarmedInstanceCount": {
          "description": "The number of pre-warmed instances for this function app. Only applicable to apps on the Premium plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "runtimeScaleMonitoringEnabled": {
          "description": "Is Runtime Scale Monitoring Enabled on this function app?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "scmIpRestrictions": {
          "description": "One or more `scm_ip_restriction` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:appservice/getFunctionAppSiteConfigScmIpRestriction:getFunctionAppSiteConfigScmIpRestriction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "scmType": {
          "description": "The type of Source Control enabled for this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scmUseMainIpRestriction": {
          "description": "IP security restrictions for scm to use main.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "use32BitWorkerProcess": {
          "description": "Does the App Service run in 32 bit mode, rather than 64 bit mode?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "websocketsEnabled": {
          "description": "Are WebSockets enabled for this App Service?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "alwaysOn",
        "appScaleLimit",
        "autoSwapSlotName",
        "cors",
        "dotnetFrameworkVersion",
        "elasticInstanceMinimum",
        "ftpsState",
        "healthCheckPath",
        "http2Enabled",
        "ipRestrictions",
        "javaVersion",
        "linuxFxVersion",
        "minTlsVersion",
        "preWarmedInstanceCount",
        "runtimeScaleMonitoringEnabled",
        "scmIpRestrictions",
        "scmType",
        "scmUseMainIpRestriction",
        "use32BitWorkerProcess",
        "websocketsEnabled"
      ],
      "type": "object"
    },
    "azure:appservice/getFunctionAppSiteConfigCors:getFunctionAppSiteConfigCors": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "allowedOrigins": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "supportCredentials": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "allowedOrigins"
      ],
      "type": "object"
    },
    "azure:appservice/getFunctionAppSiteConfigIpRestriction:getFunctionAppSiteConfigIpRestriction": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "action": {
          "description": "Allow or Deny access for this IP range. Defaults to Allow.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headers": {
          "$ref": "#/types/azure:appservice/getFunctionAppSiteConfigIpRestrictionHeaders:getFunctionAppSiteConfigIpRestrictionHeaders",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "description": "The IP Address used for this IP Restriction in CIDR notation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Function App resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serviceTag": {
          "description": "The Service Tag used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkSubnetId": {
          "description": "The Virtual Network Subnet ID used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "headers",
        "ipAddress",
        "name",
        "priority",
        "serviceTag",
        "virtualNetworkSubnetId"
      ],
      "type": "object"
    },
    "azure:appservice/getFunctionAppSiteConfigIpRestrictionHeaders:getFunctionAppSiteConfigIpRestrictionHeaders": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "xAzureFdids": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xFdHealthProbes": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedFors": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedHosts": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "xAzureFdids",
        "xFdHealthProbes",
        "xForwardedFors",
        "xForwardedHosts"
      ],
      "type": "object"
    },
    "azure:appservice/getFunctionAppSiteConfigScmIpRestriction:getFunctionAppSiteConfigScmIpRestriction": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "action": {
          "description": "Allow or Deny access for this IP range. Defaults to Allow.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headers": {
          "$ref": "#/types/azure:appservice/getFunctionAppSiteConfigScmIpRestrictionHeaders:getFunctionAppSiteConfigScmIpRestrictionHeaders",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipAddress": {
          "description": "The IP Address used for this IP Restriction in CIDR notation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Function App resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serviceTag": {
          "description": "The Service Tag used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkSubnetId": {
          "description": "The Virtual Network Subnet ID used for this IP Restriction.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "headers",
        "ipAddress",
        "name",
        "priority",
        "serviceTag",
        "virtualNetworkSubnetId"
      ],
      "type": "object"
    },
    "azure:appservice/getFunctionAppSiteConfigScmIpRestrictionHeaders:getFunctionAppSiteConfigScmIpRestrictionHeaders": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "xAzureFdids": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xFdHealthProbes": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedFors": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "xForwardedHosts": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "xAzureFdids",
        "xFdHealthProbes",
        "xForwardedFors",
        "xForwardedHosts"
      ],
      "type": "object"
    },
    "azure:appservice/getFunctionAppSiteCredential:getFunctionAppSiteCredential": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "password": {
          "description": "The password associated with the username, which can be used to publish to this App Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username which can be used to publish to this App Service\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:appservice/getFunctionAppSourceControl:getFunctionAppSourceControl": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "branch": {
          "description": "The branch of the remote repository in use.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "manualIntegration": {
          "description": "Limits to manual integration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "repoUrl": {
          "description": "The URL of the source code repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rollbackEnabled": {
          "description": "Is roll-back enabled for the repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "useMercurial": {
          "description": "Uses Mercurial if `true`, otherwise uses Git.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "branch",
        "manualIntegration",
        "repoUrl",
        "rollbackEnabled",
        "useMercurial"
      ],
      "type": "object"
    },
    "azure:authorization/RoleDefinitionPermission:RoleDefinitionPermission": {
      "properties": {
        "actions": {
          "description": "One or more Allowed Actions, such as `*`, `Microsoft.Resources/subscriptions/resourceGroups/read`. See ['Azure Resource Manager resource provider operations'](https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations) for details.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "dataActions": {
          "description": "One or more Allowed Data Actions, such as `*`, `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read`. See ['Azure Resource Manager resource provider operations'](https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations) for details.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "notActions": {
          "description": "One or more Disallowed Actions, such as `*`, `Microsoft.Resources/subscriptions/resourceGroups/read`. See ['Azure Resource Manager resource provider operations'](https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations) for details.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "notDataActions": {
          "description": "One or more Disallowed Data Actions, such as `*`, `Microsoft.Resources/subscriptions/resourceGroups/read`. See ['Azure Resource Manager resource provider operations'](https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations) for details.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:authorization/getRoleDefinitionPermission:getRoleDefinitionPermission": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "actions": {
          "description": "a list of actions supported by this role\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "dataActions": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "notActions": {
          "description": "a list of actions which are denied by this role\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "notDataActions": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "actions",
        "notActions"
      ],
      "type": "object"
    },
    "azure:automation/ModuleModuleLink:ModuleModuleLink": {
      "properties": {
        "hash": {
          "$ref": "#/types/azure:automation/ModuleModuleLinkHash:ModuleModuleLinkHash",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "uri": {
          "description": "The uri of the module content (zip or nupkg).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "uri"
      ],
      "type": "object"
    },
    "azure:automation/ModuleModuleLinkHash:ModuleModuleLinkHash": {
      "properties": {
        "algorithm": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "algorithm",
        "value"
      ],
      "type": "object"
    },
    "azure:automation/RunBookJobSchedule:RunBookJobSchedule": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "jobScheduleId",
            "scheduleName"
          ]
        }
      },
      "properties": {
        "jobScheduleId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "runOn": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scheduleName": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "scheduleName"
      ],
      "type": "object"
    },
    "azure:automation/RunBookPublishContentLink:RunBookPublishContentLink": {
      "properties": {
        "hash": {
          "$ref": "#/types/azure:automation/RunBookPublishContentLinkHash:RunBookPublishContentLinkHash",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "uri": {
          "description": "The uri of the runbook content.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "uri"
      ],
      "type": "object"
    },
    "azure:automation/RunBookPublishContentLinkHash:RunBookPublishContentLinkHash": {
      "properties": {
        "algorithm": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "algorithm",
        "value"
      ],
      "type": "object"
    },
    "azure:automation/ScheduleMonthlyOccurrence:ScheduleMonthlyOccurrence": {
      "properties": {
        "day": {
          "description": "Day of the occurrence. Must be one of `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "occurrence": {
          "description": "Occurrence of the week within the month. Must be between `1` and `5`. `-1` for last week within the month.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "day",
        "occurrence"
      ],
      "type": "object"
    },
    "azure:avs/PrivateCloudCircuit:PrivateCloudCircuit": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "expressRouteId",
            "expressRoutePrivatePeeringId",
            "primarySubnetCidr",
            "secondarySubnetCidr"
          ]
        }
      },
      "properties": {
        "expressRouteId": {
          "description": "The ID of the ExpressRoute Circuit.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expressRoutePrivatePeeringId": {
          "description": "The ID of the ExpressRoute Circuit private peering.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primarySubnetCidr": {
          "description": "The CIDR of the primary subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secondarySubnetCidr": {
          "description": "The CIDR of the secondary subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:avs/PrivateCloudManagementCluster:PrivateCloudManagementCluster": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "hosts",
            "id",
            "size"
          ]
        }
      },
      "properties": {
        "hosts": {
          "description": "A list of hosts in the management cluster.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "id": {
          "description": "The ID of the  management cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "size": {
          "description": "The size of the management cluster. This field can not updated with `internet_connection_enabled` together.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "size"
      ],
      "type": "object"
    },
    "azure:avs/getPrivateCloudCircuit:getPrivateCloudCircuit": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "expressRouteId": {
          "description": "The ID of the ExpressRoute Circuit.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expressRoutePrivatePeeringId": {
          "description": "The ID of the ExpressRoute Circuit private peering.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primarySubnetCidr": {
          "description": "The CIDR of the primary subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secondarySubnetCidr": {
          "description": "The CIDR of the secondary subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "expressRouteId",
        "expressRoutePrivatePeeringId",
        "primarySubnetCidr",
        "secondarySubnetCidr"
      ],
      "type": "object"
    },
    "azure:avs/getPrivateCloudManagementCluster:getPrivateCloudManagementCluster": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "hosts": {
          "description": "The list of the hosts in the management cluster.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "id": {
          "description": "The ID of the management cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "size": {
          "description": "The size of the management cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "hosts",
        "id",
        "size"
      ],
      "type": "object"
    },
    "azure:backup/PolicyFileShareBackup:PolicyFileShareBackup": {
      "properties": {
        "frequency": {
          "description": "Sets the backup frequency. Currently, only `Daily` is supported\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "time": {
          "description": "The time of day to perform the backup in 24-hour format. Times must be either on the hour or half hour (e.g. 12:00, 12:30, 13:00, etc.)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "frequency",
        "time"
      ],
      "type": "object"
    },
    "azure:backup/PolicyFileShareRetentionDaily:PolicyFileShareRetentionDaily": {
      "properties": {
        "count": {
          "description": "The number of yearly backups to keep. Must be between `1` and `10`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "count"
      ],
      "type": "object"
    },
    "azure:backup/PolicyFileShareRetentionMonthly:PolicyFileShareRetentionMonthly": {
      "properties": {
        "count": {
          "description": "The number of yearly backups to keep. Must be between `1` and `10`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "weekdays": {
          "description": "The weekday backups to retain . Must be one of `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` or `Saturday`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "weeks": {
          "description": "The weeks of the month to retain backups of. Must be one of `First`, `Second`, `Third`, `Fourth`, `Last`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "count",
        "weekdays",
        "weeks"
      ],
      "type": "object"
    },
    "azure:backup/PolicyFileShareRetentionWeekly:PolicyFileShareRetentionWeekly": {
      "properties": {
        "count": {
          "description": "The number of yearly backups to keep. Must be between `1` and `10`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "weekdays": {
          "description": "The weekday backups to retain . Must be one of `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` or `Saturday`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "count",
        "weekdays"
      ],
      "type": "object"
    },
    "azure:backup/PolicyFileShareRetentionYearly:PolicyFileShareRetentionYearly": {
      "properties": {
        "count": {
          "description": "The number of yearly backups to keep. Must be between `1` and `10`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "months": {
          "description": "The months of the year to retain backups of. Must be one of `January`, `February`, `March`, `April`, `May`, `June`, `July`, `Augest`, `September`, `October`, `November` and `December`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "weekdays": {
          "description": "The weekday backups to retain . Must be one of `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` or `Saturday`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "weeks": {
          "description": "The weeks of the month to retain backups of. Must be one of `First`, `Second`, `Third`, `Fourth`, `Last`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "count",
        "months",
        "weekdays",
        "weeks"
      ],
      "type": "object"
    },
    "azure:backup/PolicyVMBackup:PolicyVMBackup": {
      "properties": {
        "frequency": {
          "description": "Sets the backup frequency. Must be either `Daily` or`Weekly`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "time": {
          "description": "The time of day to perform the backup in 24hour format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "weekdays": {
          "description": "The weekday backups to retain . Must be one of `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` or `Saturday`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "frequency",
        "time"
      ],
      "type": "object"
    },
    "azure:backup/PolicyVMRetentionDaily:PolicyVMRetentionDaily": {
      "properties": {
        "count": {
          "description": "The number of yearly backups to keep. Must be between `1` and `9999`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "count"
      ],
      "type": "object"
    },
    "azure:backup/PolicyVMRetentionMonthly:PolicyVMRetentionMonthly": {
      "properties": {
        "count": {
          "description": "The number of yearly backups to keep. Must be between `1` and `9999`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "weekdays": {
          "description": "The weekday backups to retain . Must be one of `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` or `Saturday`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "weeks": {
          "description": "The weeks of the month to retain backups of. Must be one of `First`, `Second`, `Third`, `Fourth`, `Last`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "count",
        "weekdays",
        "weeks"
      ],
      "type": "object"
    },
    "azure:backup/PolicyVMRetentionWeekly:PolicyVMRetentionWeekly": {
      "properties": {
        "count": {
          "description": "The number of yearly backups to keep. Must be between `1` and `9999`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "weekdays": {
          "description": "The weekday backups to retain . Must be one of `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` or `Saturday`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "count",
        "weekdays"
      ],
      "type": "object"
    },
    "azure:backup/PolicyVMRetentionYearly:PolicyVMRetentionYearly": {
      "properties": {
        "count": {
          "description": "The number of yearly backups to keep. Must be between `1` and `9999`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "months": {
          "description": "The months of the year to retain backups of. Must be one of `January`, `February`, `March`, `April`, `May`, `June`, `July`, `August`, `September`, `October`, `November` and `December`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "weekdays": {
          "description": "The weekday backups to retain . Must be one of `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` or `Saturday`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "weeks": {
          "description": "The weeks of the month to retain backups of. Must be one of `First`, `Second`, `Third`, `Fourth`, `Last`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "count",
        "months",
        "weekdays",
        "weeks"
      ],
      "type": "object"
    },
    "azure:batch/AccountKeyVaultReference:AccountKeyVaultReference": {
      "properties": {
        "id": {
          "description": "The Azure identifier of the Azure KeyVault to use.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "url": {
          "description": "The HTTPS URL of the Azure KeyVault to use.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "id",
        "url"
      ],
      "type": "object"
    },
    "azure:batch/PoolAutoScale:PoolAutoScale": {
      "properties": {
        "evaluationInterval": {
          "description": "The interval to wait before evaluating if the pool needs to be scaled. Defaults to `PT15M`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "formula": {
          "description": "The autoscale formula that needs to be used for scaling the Batch pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "formula"
      ],
      "type": "object"
    },
    "azure:batch/PoolCertificate:PoolCertificate": {
      "properties": {
        "id": {
          "description": "The ID of the Batch Certificate to install on the Batch Pool, which must be inside the same Batch Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storeLocation": {
          "description": "The location of the certificate store on the compute node into which to install the certificate. Possible values are `CurrentUser` or `LocalMachine`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storeName": {
          "description": "The name of the certificate store on the compute node into which to install the certificate. This property is applicable only for pools configured with Windows nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows image reference). Common store names include: `My`, `Root`, `CA`, `Trust`, `Disallowed`, `TrustedPeople`, `TrustedPublisher`, `AuthRoot`, `AddressBook`, but any custom store name can also be used. The default value is `My`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "visibilities": {
          "description": "Which user accounts on the compute node should have access to the private data of the certificate.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "id",
        "storeLocation"
      ],
      "type": "object"
    },
    "azure:batch/PoolContainerConfiguration:PoolContainerConfiguration": {
      "properties": {
        "containerImageNames": {
          "description": "A list of container image names to use, as would be specified by `docker pull`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "containerRegistries": {
          "description": "Additional container registries from which container images can be pulled by the pool's VMs.\n",
          "items": {
            "$ref": "#/types/azure:batch/PoolContainerConfigurationContainerRegistry:PoolContainerConfigurationContainerRegistry"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "type": {
          "description": "The type of container configuration. Possible value is `DockerCompatible`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:batch/PoolContainerConfigurationContainerRegistry:PoolContainerConfigurationContainerRegistry": {
      "properties": {
        "password": {
          "description": "The password to log into the registry server. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "registryServer": {
          "description": "The container registry URL. The default is \"docker.io\". Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "userName": {
          "description": "The user name to log into the registry server. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "registryServer",
        "userName"
      ],
      "type": "object"
    },
    "azure:batch/PoolFixedScale:PoolFixedScale": {
      "properties": {
        "resizeTimeout": {
          "description": "The timeout for resize operations. Defaults to `PT15M`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetDedicatedNodes": {
          "description": "The number of nodes in the Batch pool. Defaults to `1`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "targetLowPriorityNodes": {
          "description": "The number of low priority nodes in the Batch pool. Defaults to `0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:batch/PoolNetworkConfiguration:PoolNetworkConfiguration": {
      "properties": {
        "endpointConfigurations": {
          "description": "A list of inbound NAT pools that can be used to address specific ports on an individual compute node externally. Set as documented in the inbound_nat_pools block below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:batch/PoolNetworkConfigurationEndpointConfiguration:PoolNetworkConfigurationEndpointConfiguration"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "publicAddressProvisioningType": {
          "description": "Type of public IP address provisioning. Supported values are `BatchManaged`, `UserManaged` and `NoPublicIPAddresses`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIps": {
          "description": "A list of public ip ids that will be allocated to nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ARM resource identifier of the virtual network subnet which the compute nodes of the pool will join. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "subnetId"
      ],
      "type": "object"
    },
    "azure:batch/PoolNetworkConfigurationEndpointConfiguration:PoolNetworkConfigurationEndpointConfiguration": {
      "properties": {
        "backendPort": {
          "description": "The port number on the compute node. Acceptable values are between `1` and `65535` except for `29876`, `29877` as these are reserved. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "frontendPortRange": {
          "description": "The range of external ports that will be used to provide inbound access to the backendPort on individual compute nodes in the format of `1000-1100`. Acceptable values range between `1` and `65534` except ports from `50000` to `55000` which are reserved by the Batch service. All ranges within a pool must be distinct and cannot overlap. Values must be a range of at least `100` nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the endpoint. The name must be unique within a Batch pool, can contain letters, numbers, underscores, periods, and hyphens. Names must start with a letter or number, must end with a letter, number, or underscore, and cannot exceed 77 characters. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "networkSecurityGroupRules": {
          "description": "A list of network security group rules that will be applied to the endpoint. The maximum number of rules that can be specified across all the endpoints on a Batch pool is `25`. If no network security group rules are specified, a default rule will be created to allow inbound access to the specified backendPort. Set as documented in the network_security_group_rules block below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:batch/PoolNetworkConfigurationEndpointConfigurationNetworkSecurityGroupRule:PoolNetworkConfigurationEndpointConfigurationNetworkSecurityGroupRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "protocol": {
          "description": "The protocol of the endpoint. Acceptable values are `TCP` and `UDP`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "backendPort",
        "frontendPortRange",
        "name",
        "protocol"
      ],
      "type": "object"
    },
    "azure:batch/PoolNetworkConfigurationEndpointConfigurationNetworkSecurityGroupRule:PoolNetworkConfigurationEndpointConfigurationNetworkSecurityGroupRule": {
      "properties": {
        "access": {
          "description": "The action that should be taken for a specified IP address, subnet range or tag. Acceptable values are `Allow` and `Deny`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority for this rule. The value must be at least `150`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "sourceAddressPrefix": {
          "description": "The source address prefix or tag to match for the rule. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "access",
        "priority",
        "sourceAddressPrefix"
      ],
      "type": "object"
    },
    "azure:batch/PoolStartTask:PoolStartTask": {
      "properties": {
        "commandLine": {
          "description": "The command line executed by the start task.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "environment": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of strings (key,value) that represents the environment variables to set in the start task.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "maxTaskRetryCount": {
          "description": "The number of retry count. Defaults to `1`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "resourceFiles": {
          "description": "One or more `resource_file` blocks that describe the files to be downloaded to a compute node.\n",
          "items": {
            "$ref": "#/types/azure:batch/PoolStartTaskResourceFile:PoolStartTaskResourceFile"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "userIdentity": {
          "$ref": "#/types/azure:batch/PoolStartTaskUserIdentity:PoolStartTaskUserIdentity",
          "description": "A `user_identity` block that describes the user identity under which the start task runs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "waitForSuccess": {
          "description": "A flag that indicates if the Batch pool should wait for the start task to be completed. Default to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "commandLine",
        "userIdentity"
      ],
      "type": "object"
    },
    "azure:batch/PoolStartTaskResourceFile:PoolStartTaskResourceFile": {
      "properties": {
        "autoStorageContainerName": {
          "description": "The storage container name in the auto storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "blobPrefix": {
          "description": "The blob prefix to use when downloading blobs from an Azure Storage container. Only the blobs whose names begin with the specified prefix will be downloaded. The property is valid only when `auto_storage_container_name` or `storage_container_url` is used. This prefix can be a partial filename or a subdirectory. If a prefix is not specified, all the files in the container will be downloaded.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fileMode": {
          "description": "The file permission mode represented as a string in octal format (e.g. `\"0644\"`). This property applies only to files being downloaded to Linux compute nodes. It will be ignored if it is specified for a `resource_file` which will be downloaded to a Windows node. If this property is not specified for a Linux node, then a default value of 0770 is applied to the file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "filePath": {
          "description": "The location on the compute node to which to download the file, relative to the task's working directory. If the `http_url` property is specified, the `file_path` is required and describes the path which the file will be downloaded to, including the filename. Otherwise, if the `auto_storage_container_name` or `storage_container_url` property is specified, `file_path` is optional and is the directory to download the files to. In the case where `file_path` is used as a directory, any directory structure already associated with the input data will be retained in full and appended to the specified filePath directory. The specified relative path cannot break out of the task's working directory (for example by using '..').\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "httpUrl": {
          "description": "The URL of the file to download. If the URL is Azure Blob Storage, it must be readable using anonymous access; that is, the Batch service does not present any credentials when downloading the blob. There are two ways to get such a URL for a blob in Azure storage: include a Shared Access Signature (SAS) granting read permissions on the blob, or set the ACL for the blob or its container to allow public access.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageContainerUrl": {
          "description": "The URL of the blob container within Azure Blob Storage. This URL must be readable and listable using anonymous access; that is, the Batch service does not present any credentials when downloading the blob. There are two ways to get such a URL for a blob in Azure storage: include a Shared Access Signature (SAS) granting read and list permissions on the blob, or set the ACL for the blob or its container to allow public access.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:batch/PoolStartTaskUserIdentity:PoolStartTaskUserIdentity": {
      "properties": {
        "autoUser": {
          "$ref": "#/types/azure:batch/PoolStartTaskUserIdentityAutoUser:PoolStartTaskUserIdentityAutoUser",
          "description": "A `auto_user` block that describes the user identity under which the start task runs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "userName": {
          "description": "The username to be used by the Batch pool start task.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:batch/PoolStartTaskUserIdentityAutoUser:PoolStartTaskUserIdentityAutoUser": {
      "properties": {
        "elevationLevel": {
          "description": "The elevation level of the user identity under which the start task runs. Possible values are `Admin` or `NonAdmin`. Defaults to `NonAdmin`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scope": {
          "description": "The scope of the user identity under which the start task runs. Possible values are `Task` or `Pool`. Defaults to `Task`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:batch/PoolStorageImageReference:PoolStorageImageReference": {
      "properties": {
        "id": {
          "description": "Specifies the ID of the Custom Image which the virtual machines should be created from. Changing this forces a new resource to be created. See [official documentation](https://docs.microsoft.com/en-us/azure/batch/batch-custom-images) for more details.\n---\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "offer": {
          "description": "Specifies the offer of the image used to create the virtual machines. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "Specifies the publisher of the image used to create the virtual machines. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sku": {
          "description": "Specifies the SKU of the image used to create the virtual machines. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "Specifies the version of the image used to create the virtual machines. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:batch/getAccountKeyVaultReference:getAccountKeyVaultReference": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "id": {
          "description": "The Azure identifier of the Azure KeyVault reference.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "url": {
          "description": "The HTTPS URL of the Azure KeyVault reference.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "id",
        "url"
      ],
      "type": "object"
    },
    "azure:batch/getPoolAutoScale:getPoolAutoScale": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "evaluationInterval": {
          "description": "The interval to wait before evaluating if the pool needs to be scaled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "formula": {
          "description": "The autoscale formula that needs to be used for scaling the Batch pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "evaluationInterval",
        "formula"
      ],
      "type": "object"
    },
    "azure:batch/getPoolCertificate:getPoolCertificate": {
      "properties": {
        "id": {
          "description": "The fully qualified ID of the certificate installed on the pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storeLocation": {
          "description": "The location of the certificate store on the compute node into which the certificate is installed, either `CurrentUser` or `LocalMachine`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storeName": {
          "description": "The name of the certificate store on the compute node into which the certificate is installed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "visibilities": {
          "description": "Which user accounts on the compute node have access to the private data of the certificate.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "id",
        "storeLocation"
      ],
      "type": "object"
    },
    "azure:batch/getPoolContainerConfiguration:getPoolContainerConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "containerImageNames": {
          "description": "A list of container image names to use, as would be specified by `docker pull`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "containerRegistries": {
          "description": "Additional container registries from which container images can be pulled by the pool's VMs.\n",
          "items": {
            "$ref": "#/types/azure:batch/getPoolContainerConfigurationContainerRegistry:getPoolContainerConfigurationContainerRegistry"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "type": {
          "description": "The type of container configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "containerImageNames",
        "containerRegistries",
        "type"
      ],
      "type": "object"
    },
    "azure:batch/getPoolContainerConfigurationContainerRegistry:getPoolContainerConfigurationContainerRegistry": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "password": {
          "description": "The password to log into the registry server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "registryServer": {
          "description": "The container registry URL. The default is \"docker.io\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "userName": {
          "description": "The user name to log into the registry server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "registryServer",
        "userName"
      ],
      "type": "object"
    },
    "azure:batch/getPoolFixedScale:getPoolFixedScale": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "resizeTimeout": {
          "description": "The timeout for resize operations.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetDedicatedNodes": {
          "description": "The number of nodes in the Batch pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "targetLowPriorityNodes": {
          "description": "The number of low priority nodes in the Batch pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "resizeTimeout",
        "targetDedicatedNodes",
        "targetLowPriorityNodes"
      ],
      "type": "object"
    },
    "azure:batch/getPoolNetworkConfiguration:getPoolNetworkConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "endpointConfiguration": {
          "$ref": "#/types/azure:batch/getPoolNetworkConfigurationEndpointConfiguration:getPoolNetworkConfigurationEndpointConfiguration",
          "description": "The inbound NAT pools that are used to address specific ports on the individual compute node externally.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "description": "The ARM resource identifier of the virtual network subnet which the compute nodes of the pool are joined too.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "endpointConfiguration",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:batch/getPoolNetworkConfigurationEndpointConfiguration:getPoolNetworkConfigurationEndpointConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "backendPort": {
          "description": "The port number on the compute node.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "frontendPortRange": {
          "description": "The range of external ports that are used to provide inbound access to the backendPort on the individual compute nodes in the format of `1000-1100`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "networkSecurityGroupRules": {
          "description": "The list of network security group rules that are applied to the endpoint.\n",
          "items": {
            "$ref": "#/types/azure:batch/getPoolNetworkConfigurationEndpointConfigurationNetworkSecurityGroupRule:getPoolNetworkConfigurationEndpointConfigurationNetworkSecurityGroupRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "protocol": {
          "description": "The protocol of the endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "backendPort",
        "frontendPortRange",
        "name",
        "networkSecurityGroupRules",
        "protocol"
      ],
      "type": "object"
    },
    "azure:batch/getPoolNetworkConfigurationEndpointConfigurationNetworkSecurityGroupRule:getPoolNetworkConfigurationEndpointConfigurationNetworkSecurityGroupRule": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "access": {
          "description": "The action that should be taken for a specified IP address, subnet range or tag.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority for this rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "sourceAddressPrefix": {
          "description": "The source address prefix or tag to match for the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "access",
        "priority",
        "sourceAddressPrefix"
      ],
      "type": "object"
    },
    "azure:batch/getPoolStartTask:getPoolStartTask": {
      "language": {
        "nodejs": {
          "requiredInputs": [
            "commandLine"
          ]
        }
      },
      "properties": {
        "commandLine": {
          "description": "The command line executed by the start task.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "environment": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of strings (key,value) that represents the environment variables to set in the start task.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "maxTaskRetryCount": {
          "description": "The number of retry count.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "resourceFiles": {
          "description": "One or more `resource_file` blocks that describe the files to be downloaded to a compute node.\n",
          "items": {
            "$ref": "#/types/azure:batch/getPoolStartTaskResourceFile:getPoolStartTaskResourceFile"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "userIdentities": {
          "description": "A `user_identity` block that describes the user identity under which the start task runs.\n",
          "items": {
            "$ref": "#/types/azure:batch/getPoolStartTaskUserIdentity:getPoolStartTaskUserIdentity"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "waitForSuccess": {
          "description": "A flag that indicates if the Batch pool should wait for the start task to be completed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "commandLine",
        "resourceFiles",
        "userIdentities"
      ],
      "type": "object"
    },
    "azure:batch/getPoolStartTaskResourceFile:getPoolStartTaskResourceFile": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "autoStorageContainerName": {
          "description": "The storage container name in the auto storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "blobPrefix": {
          "description": "The blob prefix used when downloading blobs from an Azure Storage container.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fileMode": {
          "description": "The file permission mode attribute represented as a string in octal format (e.g. `\"0644\"`).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "filePath": {
          "description": "The location on the compute node to which to download the file, relative to the task's working directory. If the `http_url` property is specified, the `file_path` is required and describes the path which the file will be downloaded to, including the filename. Otherwise, if the `auto_storage_container_name` or `storage_container_url` property is specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "httpUrl": {
          "description": "The URL of the file to download. If the URL is Azure Blob Storage, it must be readable using anonymous access.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageContainerUrl": {
          "description": "The URL of the blob container within Azure Blob Storage.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "autoStorageContainerName",
        "blobPrefix",
        "fileMode",
        "filePath",
        "httpUrl",
        "storageContainerUrl"
      ],
      "type": "object"
    },
    "azure:batch/getPoolStartTaskUserIdentity:getPoolStartTaskUserIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "autoUsers": {
          "description": "A `auto_user` block that describes the user identity under which the start task runs.\n",
          "items": {
            "$ref": "#/types/azure:batch/getPoolStartTaskUserIdentityAutoUser:getPoolStartTaskUserIdentityAutoUser"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "userName": {
          "description": "The user name to log into the registry server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "autoUsers",
        "userName"
      ],
      "type": "object"
    },
    "azure:batch/getPoolStartTaskUserIdentityAutoUser:getPoolStartTaskUserIdentityAutoUser": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "elevationLevel": {
          "description": "The elevation level of the user identity under which the start task runs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scope": {
          "description": "The scope of the user identity under which the start task runs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "elevationLevel",
        "scope"
      ],
      "type": "object"
    },
    "azure:batch/getPoolStorageImageReference:getPoolStorageImageReference": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "id": {
          "description": "The fully qualified ID of the certificate installed on the pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "offer": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sku": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "id",
        "offer",
        "publisher",
        "sku",
        "version"
      ],
      "type": "object"
    },
    "azure:blueprint/AssignmentIdentity:AssignmentIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "identityIds",
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Identity type for the Managed Service Identity. Currently only `UserAssigned` is supported.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "identityIds",
        "type"
      ],
      "type": "object"
    },
    "azure:bot/ChannelDirectLineSite:ChannelDirectLineSite": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "key",
            "key2",
            "name"
          ]
        }
      },
      "properties": {
        "enabled": {
          "description": "Enables/Disables this site. Enabled by default\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enhancedAuthenticationEnabled": {
          "description": "Enables additional security measures for this site, see [Enhanced Directline Authentication Features](https://blog.botframework.com/2018/09/25/enhanced-direct-line-authentication-features). Disabled by default.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "id": {
          "description": "Id for the site\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "key": {
          "description": "Primary key for accessing this site\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "key2": {
          "description": "Secondary key for accessing this site\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the site\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "trustedOrigins": {
          "description": "This field is required when `is_secure_site_enabled` is enabled. Determines which origins can establish a Directline conversation for this site.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "v1Allowed": {
          "description": "Enables v1 of the Directline protocol for this site. Enabled by default\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "v3Allowed": {
          "description": "Enables v3 of the Directline protocol for this site. Enabled by default\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:bot/ChannelFacebookPage:ChannelFacebookPage": {
      "properties": {
        "accessToken": {
          "description": "The Facebook Page Access Token for the Facebook Channel.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The Facebook Page ID for the Facebook Channel.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "accessToken",
        "id"
      ],
      "type": "object"
    },
    "azure:bot/ChannelLineLineChannel:ChannelLineLineChannel": {
      "properties": {
        "accessToken": {
          "description": "The access token which is used to call the Line Channel API.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secret": {
          "description": "The secret which is used to access the Line Channel.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "accessToken",
        "secret"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRule:EndpointDeliveryRule": {
      "properties": {
        "cacheExpirationAction": {
          "$ref": "#/types/azure:cdn/EndpointDeliveryRuleCacheExpirationAction:EndpointDeliveryRuleCacheExpirationAction",
          "description": "A `cache_expiration_action` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cacheKeyQueryStringAction": {
          "$ref": "#/types/azure:cdn/EndpointDeliveryRuleCacheKeyQueryStringAction:EndpointDeliveryRuleCacheKeyQueryStringAction",
          "description": "A `cache_key_query_string_action` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cookiesConditions": {
          "description": "A `cookies_condition` block as defined above.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRuleCookiesCondition:EndpointDeliveryRuleCookiesCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "deviceCondition": {
          "$ref": "#/types/azure:cdn/EndpointDeliveryRuleDeviceCondition:EndpointDeliveryRuleDeviceCondition",
          "description": "A `device_condition` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpVersionConditions": {
          "description": "A `http_version_condition` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRuleHttpVersionCondition:EndpointDeliveryRuleHttpVersionCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "modifyRequestHeaderActions": {
          "description": "A `modify_request_header_action` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRuleModifyRequestHeaderAction:EndpointDeliveryRuleModifyRequestHeaderAction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "modifyResponseHeaderActions": {
          "description": "A `modify_response_header_action` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRuleModifyResponseHeaderAction:EndpointDeliveryRuleModifyResponseHeaderAction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The Name which should be used for this Delivery Rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "order": {
          "description": "The order used for this rule, which must be larger than 1.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "postArgConditions": {
          "description": "A `post_arg_condition` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRulePostArgCondition:EndpointDeliveryRulePostArgCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "queryStringConditions": {
          "description": "A `query_string_condition` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRuleQueryStringCondition:EndpointDeliveryRuleQueryStringCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "remoteAddressConditions": {
          "description": "A `remote_address_condition` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRuleRemoteAddressCondition:EndpointDeliveryRuleRemoteAddressCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "requestBodyConditions": {
          "description": "A `request_body_condition` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRuleRequestBodyCondition:EndpointDeliveryRuleRequestBodyCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "requestHeaderConditions": {
          "description": "A `request_header_condition` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRuleRequestHeaderCondition:EndpointDeliveryRuleRequestHeaderCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "requestMethodCondition": {
          "$ref": "#/types/azure:cdn/EndpointDeliveryRuleRequestMethodCondition:EndpointDeliveryRuleRequestMethodCondition",
          "description": "A `request_method_condition` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "requestSchemeCondition": {
          "$ref": "#/types/azure:cdn/EndpointDeliveryRuleRequestSchemeCondition:EndpointDeliveryRuleRequestSchemeCondition",
          "description": "A `request_scheme_condition` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "requestUriConditions": {
          "description": "A `request_uri_condition` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRuleRequestUriCondition:EndpointDeliveryRuleRequestUriCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "urlFileExtensionConditions": {
          "description": "A `url_file_extension_condition` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRuleUrlFileExtensionCondition:EndpointDeliveryRuleUrlFileExtensionCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "urlFileNameConditions": {
          "description": "A `url_file_name_condition` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRuleUrlFileNameCondition:EndpointDeliveryRuleUrlFileNameCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "urlPathConditions": {
          "description": "A `url_path_condition` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointDeliveryRuleUrlPathCondition:EndpointDeliveryRuleUrlPathCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "urlRedirectAction": {
          "$ref": "#/types/azure:cdn/EndpointDeliveryRuleUrlRedirectAction:EndpointDeliveryRuleUrlRedirectAction",
          "description": "A `url_redirect_action` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "urlRewriteAction": {
          "$ref": "#/types/azure:cdn/EndpointDeliveryRuleUrlRewriteAction:EndpointDeliveryRuleUrlRewriteAction",
          "description": "A `url_rewrite_action` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "name",
        "order"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleCacheExpirationAction:EndpointDeliveryRuleCacheExpirationAction": {
      "properties": {
        "behavior": {
          "description": "The behavior of the cache. Valid values are `BypassCache`, `Override` and `SetIfMissing`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "duration": {
          "description": "Duration of the cache. Only allowed when `behavior` is set to `Override` or `SetIfMissing`. Format: `[d.]hh:mm:ss`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "behavior"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleCacheKeyQueryStringAction:EndpointDeliveryRuleCacheKeyQueryStringAction": {
      "properties": {
        "behavior": {
          "description": "The behavior of the cache key for query strings. Valid values are `Exclude`, `ExcludeAll`, `Include` and `IncludeAll`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "description": "Comma separated list of parameter values.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "behavior"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleCookiesCondition:EndpointDeliveryRuleCookiesCondition": {
      "properties": {
        "matchValues": {
          "description": "List of values for the cookie. This is required if `operator` is not `Any`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negateCondition": {
          "description": "Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Valid values are `Any`, `BeginsWith`, `Contains`, `EndsWith`, `Equal`, `GreaterThan`, `GreaterThanOrEqual`, `LessThan` and `LessThanOrEqual`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "selector": {
          "description": "Name of the cookie.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "transforms": {
          "description": "Valid values are `Lowercase` and `Uppercase`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "selector"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleDeviceCondition:EndpointDeliveryRuleDeviceCondition": {
      "properties": {
        "matchValues": {
          "description": "Valid values are `Desktop` and `Mobile`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negateCondition": {
          "description": "Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Valid values are `Equal`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "matchValues"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleHttpVersionCondition:EndpointDeliveryRuleHttpVersionCondition": {
      "properties": {
        "matchValues": {
          "description": "Valid values are `0.9`, `1.0`, `1.1` and `2.0`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negateCondition": {
          "description": "Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Valid values are `Equal`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "matchValues"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleModifyRequestHeaderAction:EndpointDeliveryRuleModifyRequestHeaderAction": {
      "properties": {
        "action": {
          "description": "Action to be executed on a header value. Valid values are `Append`, `Delete` and `Overwrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The header name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value of the header. Only needed when `action` is set to `Append` or `overwrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "name"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleModifyResponseHeaderAction:EndpointDeliveryRuleModifyResponseHeaderAction": {
      "properties": {
        "action": {
          "description": "Action to be executed on a header value. Valid values are `Append`, `Delete` and `Overwrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The header name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value of the header. Only needed when `action` is set to `Append` or `overwrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "name"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRulePostArgCondition:EndpointDeliveryRulePostArgCondition": {
      "properties": {
        "matchValues": {
          "description": "List of string values. This is required if `operator` is not `Any`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negateCondition": {
          "description": "Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Valid values are `Any`, `BeginsWith`, `Contains`, `EndsWith`, `Equal`, `GreaterThan`, `GreaterThanOrEqual`, `LessThan` and `LessThanOrEqual`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "selector": {
          "description": "Name of the post arg.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "transforms": {
          "description": "Valid values are `Lowercase` and `Uppercase`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "selector"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleQueryStringCondition:EndpointDeliveryRuleQueryStringCondition": {
      "properties": {
        "matchValues": {
          "description": "List of string values. This is required if `operator` is not `Any`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negateCondition": {
          "description": "Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Valid values are `Any`, `BeginsWith`, `Contains`, `EndsWith`, `Equal`, `GreaterThan`, `GreaterThanOrEqual`, `LessThan` and `LessThanOrEqual`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "transforms": {
          "description": "Valid values are `Lowercase` and `Uppercase`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleRemoteAddressCondition:EndpointDeliveryRuleRemoteAddressCondition": {
      "properties": {
        "matchValues": {
          "description": "List of string values. For `GeoMatch` `operator` this should be a list of country codes (e.g. `US` or `DE`). List of IP address if `operator` equals to `IPMatch`. This is required if `operator` is not `Any`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negateCondition": {
          "description": "Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Valid values are `Any`, `GeoMatch` and `IPMatch`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "operator"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleRequestBodyCondition:EndpointDeliveryRuleRequestBodyCondition": {
      "properties": {
        "matchValues": {
          "description": "List of string values. This is required if `operator` is not `Any`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negateCondition": {
          "description": "Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Valid values are `Any`, `BeginsWith`, `Contains`, `EndsWith`, `Equal`, `GreaterThan`, `GreaterThanOrEqual`, `LessThan` and `LessThanOrEqual`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "transforms": {
          "description": "Valid values are `Lowercase` and `Uppercase`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleRequestHeaderCondition:EndpointDeliveryRuleRequestHeaderCondition": {
      "properties": {
        "matchValues": {
          "description": "List of header values. This is required if `operator` is not `Any`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negateCondition": {
          "description": "Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Valid values are `Any`, `BeginsWith`, `Contains`, `EndsWith`, `Equal`, `GreaterThan`, `GreaterThanOrEqual`, `LessThan` and `LessThanOrEqual`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "selector": {
          "description": "Header name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "transforms": {
          "description": "Valid values are `Lowercase` and `Uppercase`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "selector"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleRequestMethodCondition:EndpointDeliveryRuleRequestMethodCondition": {
      "properties": {
        "matchValues": {
          "description": "Valid values are `DELETE`, `GET`, `HEAD`, `OPTIONS`, `POST` and `PUT`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negateCondition": {
          "description": "Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Valid values are `Equal`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "matchValues"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleRequestSchemeCondition:EndpointDeliveryRuleRequestSchemeCondition": {
      "properties": {
        "matchValues": {
          "description": "Valid values are `HTTP` and `HTTPS`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negateCondition": {
          "description": "Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Valid values are `Equal`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "matchValues"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleRequestUriCondition:EndpointDeliveryRuleRequestUriCondition": {
      "properties": {
        "matchValues": {
          "description": "List of string values. This is required if `operator` is not `Any`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negateCondition": {
          "description": "Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Valid values are `Any`, `BeginsWith`, `Contains`, `EndsWith`, `Equal`, `GreaterThan`, `GreaterThanOrEqual`, `LessThan` and `LessThanOrEqual`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "transforms": {
          "description": "Valid values are `Lowercase` and `Uppercase`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleUrlFileExtensionCondition:EndpointDeliveryRuleUrlFileExtensionCondition": {
      "properties": {
        "matchValues": {
          "description": "List of string values. This is required if `operator` is not `Any`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negateCondition": {
          "description": "Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Valid values are `Any`, `BeginsWith`, `Contains`, `EndsWith`, `Equal`, `GreaterThan`, `GreaterThanOrEqual`, `LessThan` and `LessThanOrEqual`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "transforms": {
          "description": "Valid values are `Lowercase` and `Uppercase`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleUrlFileNameCondition:EndpointDeliveryRuleUrlFileNameCondition": {
      "properties": {
        "matchValues": {
          "description": "List of string values. This is required if `operator` is not `Any`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negateCondition": {
          "description": "Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Valid values are `Any`, `BeginsWith`, `Contains`, `EndsWith`, `Equal`, `GreaterThan`, `GreaterThanOrEqual`, `LessThan` and `LessThanOrEqual`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "transforms": {
          "description": "Valid values are `Lowercase` and `Uppercase`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleUrlPathCondition:EndpointDeliveryRuleUrlPathCondition": {
      "properties": {
        "matchValues": {
          "description": "List of string values. This is required if `operator` is not `Any`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negateCondition": {
          "description": "Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Valid values are `Any`, `BeginsWith`, `Contains`, `EndsWith`, `Equal`, `GreaterThan`, `GreaterThanOrEqual`, `LessThan` and `LessThanOrEqual`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "transforms": {
          "description": "Valid values are `Lowercase` and `Uppercase`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleUrlRedirectAction:EndpointDeliveryRuleUrlRedirectAction": {
      "properties": {
        "fragment": {
          "description": "Specifies the fragment part of the URL. This value must not start with a `#`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostname": {
          "description": "Specifies the hostname part of the URL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "Specifies the path part of the URL. This value must begin with a `/`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocol": {
          "description": "Specifies the protocol part of the URL. Valid values are `Http` and `Https`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "queryString": {
          "description": "Specifies the query string part of the URL. This value must not start with a `?` or `\u0026` and must be in `\u003ckey\u003e=\u003cvalue\u003e` format separated by `\u0026`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "redirectType": {
          "description": "Type of the redirect. Valid values are `Found`, `Moved`, `PermanentRedirect` and `TemporaryRedirect`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "redirectType"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointDeliveryRuleUrlRewriteAction:EndpointDeliveryRuleUrlRewriteAction": {
      "properties": {
        "destination": {
          "description": "This value must start with a `/` and can't be longer than 260 characters.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "preserveUnmatchedPath": {
          "description": "Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sourcePattern": {
          "description": "This value must start with a `/` and can't be longer than 260 characters.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "destination",
        "sourcePattern"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointGeoFilter:EndpointGeoFilter": {
      "properties": {
        "action": {
          "description": "The Action of the Geo Filter. Possible values include `Allow` and `Block`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "countryCodes": {
          "description": "A List of two letter country codes (e.g. `US`, `GB`) to be associated with this Geo Filter.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "relativePath": {
          "description": "The relative path applicable to geo filter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "countryCodes",
        "relativePath"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointGlobalDeliveryRule:EndpointGlobalDeliveryRule": {
      "properties": {
        "cacheExpirationAction": {
          "$ref": "#/types/azure:cdn/EndpointGlobalDeliveryRuleCacheExpirationAction:EndpointGlobalDeliveryRuleCacheExpirationAction",
          "description": "A `cache_expiration_action` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cacheKeyQueryStringAction": {
          "$ref": "#/types/azure:cdn/EndpointGlobalDeliveryRuleCacheKeyQueryStringAction:EndpointGlobalDeliveryRuleCacheKeyQueryStringAction",
          "description": "A `cache_key_query_string_action` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "modifyRequestHeaderActions": {
          "description": "A `modify_request_header_action` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointGlobalDeliveryRuleModifyRequestHeaderAction:EndpointGlobalDeliveryRuleModifyRequestHeaderAction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "modifyResponseHeaderActions": {
          "description": "A `modify_response_header_action` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cdn/EndpointGlobalDeliveryRuleModifyResponseHeaderAction:EndpointGlobalDeliveryRuleModifyResponseHeaderAction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "urlRedirectAction": {
          "$ref": "#/types/azure:cdn/EndpointGlobalDeliveryRuleUrlRedirectAction:EndpointGlobalDeliveryRuleUrlRedirectAction",
          "description": "A `url_redirect_action` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "urlRewriteAction": {
          "$ref": "#/types/azure:cdn/EndpointGlobalDeliveryRuleUrlRewriteAction:EndpointGlobalDeliveryRuleUrlRewriteAction",
          "description": "A `url_rewrite_action` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:cdn/EndpointGlobalDeliveryRuleCacheExpirationAction:EndpointGlobalDeliveryRuleCacheExpirationAction": {
      "properties": {
        "behavior": {
          "description": "The behavior of the cache. Valid values are `BypassCache`, `Override` and `SetIfMissing`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "duration": {
          "description": "Duration of the cache. Only allowed when `behavior` is set to `Override` or `SetIfMissing`. Format: `[d.]hh:mm:ss`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "behavior"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointGlobalDeliveryRuleCacheKeyQueryStringAction:EndpointGlobalDeliveryRuleCacheKeyQueryStringAction": {
      "properties": {
        "behavior": {
          "description": "The behavior of the cache key for query strings. Valid values are `Exclude`, `ExcludeAll`, `Include` and `IncludeAll`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "description": "Comma separated list of parameter values.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "behavior"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointGlobalDeliveryRuleModifyRequestHeaderAction:EndpointGlobalDeliveryRuleModifyRequestHeaderAction": {
      "properties": {
        "action": {
          "description": "Action to be executed on a header value. Valid values are `Append`, `Delete` and `Overwrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The header name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value of the header. Only needed when `action` is set to `Append` or `overwrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "name"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointGlobalDeliveryRuleModifyResponseHeaderAction:EndpointGlobalDeliveryRuleModifyResponseHeaderAction": {
      "properties": {
        "action": {
          "description": "Action to be executed on a header value. Valid values are `Append`, `Delete` and `Overwrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The header name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value of the header. Only needed when `action` is set to `Append` or `overwrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "name"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointGlobalDeliveryRuleUrlRedirectAction:EndpointGlobalDeliveryRuleUrlRedirectAction": {
      "properties": {
        "fragment": {
          "description": "Specifies the fragment part of the URL. This value must not start with a `#`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostname": {
          "description": "Specifies the hostname part of the URL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "Specifies the path part of the URL. This value must begin with a `/`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocol": {
          "description": "Specifies the protocol part of the URL. Valid values are `Http` and `Https`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "queryString": {
          "description": "Specifies the query string part of the URL. This value must not start with a `?` or `\u0026` and must be in `\u003ckey\u003e=\u003cvalue\u003e` format separated by `\u0026`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "redirectType": {
          "description": "Type of the redirect. Valid values are `Found`, `Moved`, `PermanentRedirect` and `TemporaryRedirect`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "redirectType"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointGlobalDeliveryRuleUrlRewriteAction:EndpointGlobalDeliveryRuleUrlRewriteAction": {
      "properties": {
        "destination": {
          "description": "This value must start with a `/` and can't be longer than 260 characters.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "preserveUnmatchedPath": {
          "description": "Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sourcePattern": {
          "description": "This value must start with a `/` and can't be longer than 260 characters.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "destination",
        "sourcePattern"
      ],
      "type": "object"
    },
    "azure:cdn/EndpointOrigin:EndpointOrigin": {
      "properties": {
        "hostName": {
          "description": "A string that determines the hostname/IP address of the origin server. This string can be a domain name, Storage Account endpoint, Web App endpoint, IPv4 address or IPv6 address. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "httpPort": {
          "description": "The HTTP port of the origin. Defaults to `80`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "httpsPort": {
          "description": "The HTTPS port of the origin. Defaults to `443`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "The name of the origin. This is an arbitrary value. However, this value needs to be unique under the endpoint. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "hostName",
        "name"
      ],
      "type": "object"
    },
    "azure:cognitive/AccountIdentity:AccountIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "A list of IDs for User Assigned Managed Identity resources to be assigned.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the type of Managed Service Identity that should be configured on the Cognitive Account. Possible values are `SystemAssigned`, `UserAssigned`, `SystemAssigned, UserAssigned` (to enable both).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:cognitive/AccountNetworkAcls:AccountNetworkAcls": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "defaultAction",
            "virtualNetworkRules",
            "virtualNetworkSubnetIds"
          ]
        }
      },
      "properties": {
        "defaultAction": {
          "description": "The Default Action to use when no rules match from `ip_rules` / `virtual_network_subnet_ids`. Possible values are `Allow` and `Deny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipRules": {
          "description": "One or more IP Addresses, or CIDR Blocks which should be able to access the Cognitive Account.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "virtualNetworkRules": {
          "description": "A `virtual_network_rules` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cognitive/AccountNetworkAclsVirtualNetworkRule:AccountNetworkAclsVirtualNetworkRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "virtualNetworkSubnetIds": {
          "deprecationMessage": "Deprecated in favour of `virtual_network_rules`",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "defaultAction"
      ],
      "type": "object"
    },
    "azure:cognitive/AccountNetworkAclsVirtualNetworkRule:AccountNetworkAclsVirtualNetworkRule": {
      "properties": {
        "ignoreMissingVnetServiceEndpoint": {
          "description": "Whether ignore missing vnet service endpoint or not. Default to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "subnetId": {
          "description": "The ID of the subnet which should be able to access this Cognitive Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "subnetId"
      ],
      "type": "object"
    },
    "azure:cognitive/AccountStorage:AccountStorage": {
      "properties": {
        "identityClientId": {
          "description": "The client ID of the managed identity associated with the storage resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountId": {
          "description": "Full resource id of a Microsoft.Storage resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "storageAccountId"
      ],
      "type": "object"
    },
    "azure:compute/BastionHostIpConfiguration:BastionHostIpConfiguration": {
      "properties": {
        "name": {
          "description": "The name of the IP configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpAddressId": {
          "description": "Reference to a Public IP Address to associate with this Bastion Host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "Reference to a subnet in which this Bastion Host has been created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "publicIpAddressId",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:compute/ConfigurationPolicyAssignmentConfiguration:ConfigurationPolicyAssignmentConfiguration": {
      "properties": {
        "name": {
          "description": "The name of the Guest Configuration that will be assigned in this Guest Configuration Assignment.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "description": "One or more `parameter` blocks which define what configuration parameters and values against.\n",
          "items": {
            "$ref": "#/types/azure:compute/ConfigurationPolicyAssignmentConfigurationParameter:ConfigurationPolicyAssignmentConfigurationParameter"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "version": {
          "description": "The version of the Guest Configuration that will be assigned in this Guest Configuration Assignment.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:compute/ConfigurationPolicyAssignmentConfigurationParameter:ConfigurationPolicyAssignmentConfigurationParameter": {
      "properties": {
        "name": {
          "description": "The name of the configuration parameter to check.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value to check the configuration parameter with.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "type": "object"
    },
    "azure:compute/DiskEncryptionSetIdentity:DiskEncryptionSetIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The (Client) ID of the Service Principal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant the Service Principal is assigned in.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Identity which should be used for this Disk Encryption Set. At this time the only possible value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:compute/ImageDataDisk:ImageDataDisk": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "blobUri",
            "sizeGb"
          ]
        }
      },
      "properties": {
        "blobUri": {
          "description": "Specifies the URI in Azure storage of the blob that you want to use to create the image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "caching": {
          "description": "Specifies the caching mode as `ReadWrite`, `ReadOnly`, or `None`. The default is `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "lun": {
          "description": "Specifies the logical unit number of the data disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "managedDiskId": {
          "description": "Specifies the ID of the managed disk resource that you want to use to create the image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sizeGb": {
          "description": "Specifies the size of the image to be created. The target size can't be smaller than the source size.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:compute/ImageOsDisk:ImageOsDisk": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "blobUri",
            "managedDiskId",
            "sizeGb"
          ]
        }
      },
      "properties": {
        "blobUri": {
          "description": "Specifies the URI in Azure storage of the blob that you want to use to create the image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "caching": {
          "description": "Specifies the caching mode as `ReadWrite`, `ReadOnly`, or `None`. The default is `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "managedDiskId": {
          "description": "Specifies the ID of the managed disk resource that you want to use to create the image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "osState": {
          "description": "Specifies the state of the operating system contained in the blob. Currently, the only value is Generalized.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "osType": {
          "description": "Specifies the type of operating system contained in the virtual machine image. Possible values are: Windows or Linux.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sizeGb": {
          "description": "Specifies the size of the image to be created. The target size can't be smaller than the source size.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineAdditionalCapabilities:LinuxVirtualMachineAdditionalCapabilities": {
      "properties": {
        "ultraSsdEnabled": {
          "description": "Should the capacity to enable Data Disks of the `UltraSSD_LRS` storage account type be supported on this Virtual Machine? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineAdminSshKey:LinuxVirtualMachineAdminSshKey": {
      "properties": {
        "publicKey": {
          "description": "The Public Key which should be used for authentication, which needs to be at least 2048-bit and in `ssh-rsa` format. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username for which this Public SSH Key should be configured. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "publicKey",
        "username"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineBootDiagnostics:LinuxVirtualMachineBootDiagnostics": {
      "properties": {
        "storageAccountUri": {
          "description": "The Primary/Secondary Endpoint for the Azure Storage Account which should be used to store Boot Diagnostics, including Console Output and Screenshots from the Hypervisor.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineIdentity:LinuxVirtualMachineIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "A list of User Managed Identity ID's which should be assigned to the Linux Virtual Machine.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The ID of the System Managed Service Principal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant the System Managed Service Principal is assigned in.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of Managed Identity which should be assigned to the Linux Virtual Machine. Possible values are `SystemAssigned`, `UserAssigned` and `SystemAssigned, UserAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineOsDisk:LinuxVirtualMachineOsDisk": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "caching",
            "diskSizeGb",
            "name",
            "storageAccountType"
          ]
        }
      },
      "properties": {
        "caching": {
          "description": "The Type of Caching which should be used for the Internal OS Disk. Possible values are `None`, `ReadOnly` and `ReadWrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diffDiskSettings": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineOsDiskDiffDiskSettings:LinuxVirtualMachineOsDiskDiffDiskSettings",
          "description": "A `diff_disk_settings` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskEncryptionSetId": {
          "description": "The ID of the Disk Encryption Set which should be used to Encrypt this OS Disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diskSizeGb": {
          "description": "The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine is sourced from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "The name which should be used for the Internal OS Disk. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountType": {
          "description": "The Type of Storage Account which should back this the Internal OS Disk. Possible values are `Standard_LRS`, `StandardSSD_LRS` and `Premium_LRS`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "writeAcceleratorEnabled": {
          "description": "Should Write Accelerator be Enabled for this OS Disk? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "caching",
        "storageAccountType"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineOsDiskDiffDiskSettings:LinuxVirtualMachineOsDiskDiffDiskSettings": {
      "properties": {
        "option": {
          "description": "Specifies the Ephemeral Disk Settings for the OS Disk. At this time the only possible value is `Local`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "option"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachinePlan:LinuxVirtualMachinePlan": {
      "properties": {
        "name": {
          "description": "Specifies the Name of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "product": {
          "description": "Specifies the Product of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "Specifies the Publisher of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "product",
        "publisher"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetAdditionalCapabilities:LinuxVirtualMachineScaleSetAdditionalCapabilities": {
      "properties": {
        "ultraSsdEnabled": {
          "description": "Should the capacity to enable Data Disks of the `UltraSSD_LRS` storage account type be supported on this Virtual Machine Scale Set? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetAdminSshKey:LinuxVirtualMachineScaleSetAdminSshKey": {
      "properties": {
        "publicKey": {
          "description": "The Public Key which should be used for authentication, which needs to be at least 2048-bit and in `ssh-rsa` format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username for which this Public SSH Key should be configured.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "publicKey",
        "username"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetAutomaticInstanceRepair:LinuxVirtualMachineScaleSetAutomaticInstanceRepair": {
      "properties": {
        "enabled": {
          "description": "Should the automatic instance repair be enabled on this Virtual Machine Scale Set?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "gracePeriod": {
          "description": "Amount of time (in minutes, between 30 and 90, defaults to 30 minutes) for which automatic repairs will be delayed. The grace period starts right after the VM is found unhealthy. The time duration should be specified in ISO 8601 format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy:LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy": {
      "properties": {
        "disableAutomaticRollback": {
          "description": "Should automatic rollbacks be disabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enableAutomaticOsUpgrade": {
          "description": "Should OS Upgrades automatically be applied to Scale Set instances in a rolling fashion when a newer version of the OS Image becomes available?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "disableAutomaticRollback",
        "enableAutomaticOsUpgrade"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetBootDiagnostics:LinuxVirtualMachineScaleSetBootDiagnostics": {
      "properties": {
        "storageAccountUri": {
          "description": "The Primary/Secondary Endpoint for the Azure Storage Account which should be used to store Boot Diagnostics, including Console Output and Screenshots from the Hypervisor.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetDataDisk:LinuxVirtualMachineScaleSetDataDisk": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "caching",
            "diskIopsReadWrite",
            "diskMbpsReadWrite",
            "diskSizeGb",
            "lun",
            "storageAccountType"
          ]
        }
      },
      "properties": {
        "caching": {
          "description": "The type of Caching which should be used for this Data Disk. Possible values are `None`, `ReadOnly` and `ReadWrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "createOption": {
          "description": "The create option which should be used for this Data Disk. Possible values are `Empty` and `FromImage`. Defaults to `Empty`. (`FromImage` should only be used if the source image includes data disks).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diskEncryptionSetId": {
          "description": "The ID of the Disk Encryption Set which should be used to encrypt this Data Disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diskIopsReadWrite": {
          "description": "Specifies the Read-Write IOPS for this Data Disk. Only settable for UltraSSD disks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "diskMbpsReadWrite": {
          "description": "Specifies the bandwidth in MB per second for this Data Disk. Only settable for UltraSSD disks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "diskSizeGb": {
          "description": "The size of the Data Disk which should be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "lun": {
          "description": "The Logical Unit Number of the Data Disk, which must be unique within the Virtual Machine.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountType": {
          "description": "The Type of Storage Account which should back this Data Disk. Possible values include `Standard_LRS`, `StandardSSD_LRS`, `Premium_LRS` and `UltraSSD_LRS`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "writeAcceleratorEnabled": {
          "description": "Should Write Accelerator be enabled for this Data Disk? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "caching",
        "diskSizeGb",
        "lun",
        "storageAccountType"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetExtension:LinuxVirtualMachineScaleSetExtension": {
      "properties": {
        "autoUpgradeMinorVersion": {
          "description": "Should the latest version of the Extension be used at Deployment Time, if one is available? This won't auto-update the extension on existing installation. Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "forceUpdateTag": {
          "description": "A value which, when different to the previous value can be used to force-run the Extension even if the Extension Configuration hasn't changed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name for the Virtual Machine Scale Set Extension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protectedSettings": {
          "description": "A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "provisionAfterExtensions": {
          "description": "An ordered list of Extension names which this should be provisioned after.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "publisher": {
          "description": "Specifies the Publisher of the Extension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "settings": {
          "description": "A JSON String which specifies Settings for the Extension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the Type of the Extension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "typeHandlerVersion": {
          "description": "Specifies the version of the extension to use, available versions can be found using the Azure CLI.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "publisher",
        "type",
        "typeHandlerVersion"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetIdentity:LinuxVirtualMachineScaleSetIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "A list of User Managed Identity ID's which should be assigned to the Linux Virtual Machine Scale Set.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The ID of the System Managed Service Principal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of Managed Identity which should be assigned to the Linux Virtual Machine Scale Set. Possible values are `SystemAssigned`, `UserAssigned` and `SystemAssigned, UserAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetNetworkInterface:LinuxVirtualMachineScaleSetNetworkInterface": {
      "properties": {
        "dnsServers": {
          "description": "A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enableAcceleratedNetworking": {
          "description": "Does this Network Interface support Accelerated Networking? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enableIpForwarding": {
          "description": "Does this Network Interface support IP Forwarding? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "ipConfigurations": {
          "description": "One or more `ip_configuration` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration:LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The Name which should be used for this Network Interface. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "networkSecurityGroupId": {
          "description": "The ID of a Network Security Group which should be assigned to this Network Interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primary": {
          "description": "Is this the Primary IP Configuration?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "ipConfigurations",
        "name"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration:LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration": {
      "properties": {
        "applicationGatewayBackendAddressPoolIds": {
          "description": "A list of Backend Address Pools ID's from a Application Gateway which this Virtual Machine Scale Set should be connected to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "applicationSecurityGroupIds": {
          "description": "A list of Application Security Group ID's which this Virtual Machine Scale Set should be connected to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "loadBalancerBackendAddressPoolIds": {
          "description": "A list of Backend Address Pools ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "loadBalancerInboundNatRulesIds": {
          "description": "A list of NAT Rule ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The Name which should be used for this IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primary": {
          "description": "Is this the Primary IP Configuration for this Network Interface? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "publicIpAddresses": {
          "description": "A `public_ip_address` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress:LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet which this IP Configuration should be connected to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "The Internet Protocol Version which should be used for this IP Configuration. Possible values are `IPv4` and `IPv6`. Defaults to `IPv4`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress:LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "idleTimeoutInMinutes",
            "name"
          ]
        }
      },
      "properties": {
        "domainNameLabel": {
          "description": "The Prefix which should be used for the Domain Name Label for each Virtual Machine Instance. Azure concatenates the Domain Name Label and Virtual Machine Index to create a unique Domain Name Label for each Virtual Machine.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "idleTimeoutInMinutes": {
          "description": "The Idle Timeout in Minutes for the Public IP Address. Possible values are in the range `4` to `32`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "ipTags": {
          "description": "One or more `ip_tag` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag:LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The Name of the Public IP Address Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpPrefixId": {
          "description": "The ID of the Public IP Address Prefix from where Public IP Addresses should be allocated. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag:LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag": {
      "properties": {
        "tag": {
          "description": "The IP Tag associated with the Public IP, such as `SQL` or `Storage`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of IP Tag, such as `FirstPartyUsage`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "tag",
        "type"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetOsDisk:LinuxVirtualMachineScaleSetOsDisk": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "caching",
            "diskSizeGb",
            "storageAccountType"
          ]
        }
      },
      "properties": {
        "caching": {
          "description": "The Type of Caching which should be used for the Internal OS Disk. Possible values are `None`, `ReadOnly` and `ReadWrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diffDiskSettings": {
          "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetOsDiskDiffDiskSettings:LinuxVirtualMachineScaleSetOsDiskDiffDiskSettings",
          "description": "A `diff_disk_settings` block as defined above. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskEncryptionSetId": {
          "description": "The ID of the Disk Encryption Set which should be used to encrypt this OS Disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diskSizeGb": {
          "description": "The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine Scale Set is sourced from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountType": {
          "description": "The Type of Storage Account which should back this the Internal OS Disk. Possible values include `Standard_LRS`, `StandardSSD_LRS` and `Premium_LRS`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "writeAcceleratorEnabled": {
          "description": "Should Write Accelerator be Enabled for this OS Disk? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "caching",
        "storageAccountType"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetOsDiskDiffDiskSettings:LinuxVirtualMachineScaleSetOsDiskDiffDiskSettings": {
      "properties": {
        "option": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "option"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetPlan:LinuxVirtualMachineScaleSetPlan": {
      "properties": {
        "name": {
          "description": "Specifies the name of the image from the marketplace. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "product": {
          "description": "Specifies the product of the image from the marketplace. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "Specifies the publisher of the image. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "product",
        "publisher"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetRollingUpgradePolicy:LinuxVirtualMachineScaleSetRollingUpgradePolicy": {
      "properties": {
        "maxBatchInstancePercent": {
          "description": "The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxUnhealthyInstancePercent": {
          "description": "The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxUnhealthyUpgradedInstancePercent": {
          "description": "The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "pauseTimeBetweenBatches": {
          "description": "The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "maxBatchInstancePercent",
        "maxUnhealthyInstancePercent",
        "maxUnhealthyUpgradedInstancePercent",
        "pauseTimeBetweenBatches"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetSecret:LinuxVirtualMachineScaleSetSecret": {
      "properties": {
        "certificates": {
          "description": "One or more `certificate` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineScaleSetSecretCertificate:LinuxVirtualMachineScaleSetSecretCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault from which all Secrets should be sourced.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "certificates",
        "keyVaultId"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetSecretCertificate:LinuxVirtualMachineScaleSetSecretCertificate": {
      "properties": {
        "url": {
          "description": "The Secret URL of a Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "url"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetSourceImageReference:LinuxVirtualMachineScaleSetSourceImageReference": {
      "properties": {
        "offer": {
          "description": "Specifies the offer of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "Specifies the publisher of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sku": {
          "description": "Specifies the SKU of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "Specifies the version of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "offer",
        "publisher",
        "sku",
        "version"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineScaleSetTerminateNotification:LinuxVirtualMachineScaleSetTerminateNotification": {
      "properties": {
        "enabled": {
          "description": "Should the terminate notification be enabled on this Virtual Machine Scale Set? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "timeout": {
          "description": "Length of time (in minutes, between 5 and 15) a notification to be sent to the VM on the instance metadata server till the VM gets deleted. The time duration should be specified in ISO 8601 format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineSecret:LinuxVirtualMachineSecret": {
      "properties": {
        "certificates": {
          "description": "One or more `certificate` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:compute/LinuxVirtualMachineSecretCertificate:LinuxVirtualMachineSecretCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault from which all Secrets should be sourced.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "certificates",
        "keyVaultId"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineSecretCertificate:LinuxVirtualMachineSecretCertificate": {
      "properties": {
        "url": {
          "description": "The Secret URL of a Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "url"
      ],
      "type": "object"
    },
    "azure:compute/LinuxVirtualMachineSourceImageReference:LinuxVirtualMachineSourceImageReference": {
      "properties": {
        "offer": {
          "description": "Specifies the offer of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "Specifies the publisher of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sku": {
          "description": "Specifies the SKU of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "Specifies the version of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "offer",
        "publisher",
        "sku",
        "version"
      ],
      "type": "object"
    },
    "azure:compute/ManagedDiskEncryptionSettings:ManagedDiskEncryptionSettings": {
      "properties": {
        "diskEncryptionKey": {
          "$ref": "#/types/azure:compute/ManagedDiskEncryptionSettingsDiskEncryptionKey:ManagedDiskEncryptionSettingsDiskEncryptionKey",
          "description": "A `disk_encryption_key` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enabled": {
          "description": "Is Encryption enabled on this Managed Disk? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "keyEncryptionKey": {
          "$ref": "#/types/azure:compute/ManagedDiskEncryptionSettingsKeyEncryptionKey:ManagedDiskEncryptionSettingsKeyEncryptionKey",
          "description": "A `key_encryption_key` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:compute/ManagedDiskEncryptionSettingsDiskEncryptionKey:ManagedDiskEncryptionSettingsDiskEncryptionKey": {
      "properties": {
        "secretUrl": {
          "description": "The URL to the Key Vault Secret used as the Disk Encryption Key. This can be found as `id` on the `azure.keyvault.Secret` resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceVaultId": {
          "description": "The ID of the source Key Vault.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "secretUrl",
        "sourceVaultId"
      ],
      "type": "object"
    },
    "azure:compute/ManagedDiskEncryptionSettingsKeyEncryptionKey:ManagedDiskEncryptionSettingsKeyEncryptionKey": {
      "properties": {
        "keyUrl": {
          "description": "The URL to the Key Vault Key used as the Key Encryption Key. This can be found as `id` on the `azure.keyvault.Key` resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceVaultId": {
          "description": "The ID of the source Key Vault.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "keyUrl",
        "sourceVaultId"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetBootDiagnostics:ScaleSetBootDiagnostics": {
      "properties": {
        "enabled": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "storageUri": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "storageUri"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetExtension:ScaleSetExtension": {
      "properties": {
        "autoUpgradeMinorVersion": {
          "description": "Specifies whether or not to use the latest minor version available.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the extension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protectedSettings": {
          "description": "The protected_settings passed to the extension, like settings, these are specified as a JSON object in a string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "provisionAfterExtensions": {
          "description": "Specifies a dependency array of extensions required to be executed before, the array stores the name of each extension.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "publisher": {
          "description": "The publisher of the extension, available publishers can be found by using the Azure CLI.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "settings": {
          "description": "The settings passed to the extension, these are specified as a JSON object in a string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of extension, available types for a publisher can be found using the Azure CLI.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "typeHandlerVersion": {
          "description": "Specifies the version of the extension to use, available versions can be found using the Azure CLI.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "publisher",
        "type",
        "typeHandlerVersion"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetIdentity:ScaleSetIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "Specifies a list of user managed identity ids to be assigned to the VMSS. Required if `type` is `UserAssigned`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type to be assigned to the scale set. Allowable values are `SystemAssigned` and `UserAssigned`. For the `SystemAssigned` identity the scale set's Service Principal ID (SPN) can be retrieved after the scale set has been created. See [documentation](https://docs.microsoft.com/en-us/azure/active-directory/managed-service-identity/overview) for more information.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetNetworkProfile:ScaleSetNetworkProfile": {
      "properties": {
        "acceleratedNetworking": {
          "description": "Specifies whether to enable accelerated networking or not. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "dnsSettings": {
          "$ref": "#/types/azure:compute/ScaleSetNetworkProfileDnsSettings:ScaleSetNetworkProfileDnsSettings",
          "description": "A dns_settings block as documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ipConfigurations": {
          "description": "An ip_configuration block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:compute/ScaleSetNetworkProfileIpConfiguration:ScaleSetNetworkProfileIpConfiguration"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ipForwarding": {
          "description": "Whether IP forwarding is enabled on this NIC. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the network interface configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "networkSecurityGroupId": {
          "description": "Specifies the identifier for the network security group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primary": {
          "description": "Indicates whether network interfaces created from the network interface configuration will be the primary NIC of the VM.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "ipConfigurations",
        "name",
        "primary"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetNetworkProfileDnsSettings:ScaleSetNetworkProfileDnsSettings": {
      "properties": {
        "dnsServers": {
          "description": "Specifies an array of dns servers.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "dnsServers"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetNetworkProfileIpConfiguration:ScaleSetNetworkProfileIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "loadBalancerInboundNatRulesIds",
            "name",
            "primary",
            "subnetId"
          ]
        }
      },
      "properties": {
        "applicationGatewayBackendAddressPoolIds": {
          "description": "Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "applicationSecurityGroupIds": {
          "description": "Specifies up to `20` application security group IDs.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "loadBalancerBackendAddressPoolIds": {
          "description": "Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "loadBalancerInboundNatRulesIds": {
          "description": "Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies name of the IP configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primary": {
          "description": "Specifies if this ip_configuration is the primary one.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "publicIpAddressConfiguration": {
          "$ref": "#/types/azure:compute/ScaleSetNetworkProfileIpConfigurationPublicIpAddressConfiguration:ScaleSetNetworkProfileIpConfigurationPublicIpAddressConfiguration",
          "description": "Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. The public_ip_address_configuration is documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "subnetId": {
          "description": "Specifies the identifier of the subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "primary",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetNetworkProfileIpConfigurationPublicIpAddressConfiguration:ScaleSetNetworkProfileIpConfigurationPublicIpAddressConfiguration": {
      "properties": {
        "domainNameLabel": {
          "description": "The domain name label for the dns settings.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "idleTimeout": {
          "description": "The idle timeout in minutes. This value must be between 4 and 30.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "The name of the public ip address configuration\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "domainNameLabel",
        "idleTimeout",
        "name"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetOsProfile:ScaleSetOsProfile": {
      "properties": {
        "adminPassword": {
          "description": "Specifies the administrator password to use for all the instances of virtual machines in a scale set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "adminUsername": {
          "description": "Specifies the administrator account name to use for all the instances of virtual machines in the scale set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "computerNamePrefix": {
          "description": "Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 9 characters long for windows images and 1 - 58 for linux. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "customData": {
          "description": "Specifies custom data to supply to the machine. On linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "adminUsername",
        "computerNamePrefix"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetOsProfileLinuxConfig:ScaleSetOsProfileLinuxConfig": {
      "properties": {
        "disablePasswordAuthentication": {
          "description": "Specifies whether password authentication should be disabled. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sshKeys": {
          "description": "Specifies a collection of `path` and `key_data` to be placed on the virtual machine.\n",
          "items": {
            "$ref": "#/types/azure:compute/ScaleSetOsProfileLinuxConfigSshKey:ScaleSetOsProfileLinuxConfigSshKey"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:compute/ScaleSetOsProfileLinuxConfigSshKey:ScaleSetOsProfileLinuxConfigSshKey": {
      "properties": {
        "keyData": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "path"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetOsProfileSecret:ScaleSetOsProfileSecret": {
      "properties": {
        "sourceVaultId": {
          "description": "Specifies the key vault to use.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vaultCertificates": {
          "description": "A collection of Vault Certificates as documented below\n",
          "items": {
            "$ref": "#/types/azure:compute/ScaleSetOsProfileSecretVaultCertificate:ScaleSetOsProfileSecretVaultCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "sourceVaultId"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetOsProfileSecretVaultCertificate:ScaleSetOsProfileSecretVaultCertificate": {
      "properties": {
        "certificateStore": {
          "description": "Specifies the certificate store on the Virtual Machine where the certificate should be added to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificateUrl": {
          "description": "It is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be `data`, `dataType` and `password`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "certificateUrl"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetOsProfileWindowsConfig:ScaleSetOsProfileWindowsConfig": {
      "properties": {
        "additionalUnattendConfigs": {
          "description": "An Additional Unattended Config block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:compute/ScaleSetOsProfileWindowsConfigAdditionalUnattendConfig:ScaleSetOsProfileWindowsConfigAdditionalUnattendConfig"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enableAutomaticUpgrades": {
          "description": "Indicates whether virtual machines in the scale set are enabled for automatic updates.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "provisionVmAgent": {
          "description": "Indicates whether virtual machine agent should be provisioned on the virtual machines in the scale set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "winrms": {
          "description": "A collection of WinRM configuration blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:compute/ScaleSetOsProfileWindowsConfigWinrm:ScaleSetOsProfileWindowsConfigWinrm"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:compute/ScaleSetOsProfileWindowsConfigAdditionalUnattendConfig:ScaleSetOsProfileWindowsConfigAdditionalUnattendConfig": {
      "properties": {
        "component": {
          "description": "Specifies the name of the component to configure with the added content. The only allowable value is `Microsoft-Windows-Shell-Setup`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "content": {
          "description": "Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pass": {
          "description": "Specifies the name of the pass that the content applies to. The only allowable value is `oobeSystem`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "settingName": {
          "description": "Specifies the name of the setting to which the content applies. Possible values are: `FirstLogonCommands` and `AutoLogon`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "component",
        "content",
        "pass",
        "settingName"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetOsProfileWindowsConfigWinrm:ScaleSetOsProfileWindowsConfigWinrm": {
      "properties": {
        "certificateUrl": {
          "description": "Specifies URL of the certificate with which new Virtual Machines is provisioned.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocol": {
          "description": "Specifies the protocol of listener\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "protocol"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetPlan:ScaleSetPlan": {
      "properties": {
        "name": {
          "description": "Specifies the name of the image from the marketplace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "product": {
          "description": "Specifies the product of the image from the marketplace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "Specifies the publisher of the image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "product",
        "publisher"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetRollingUpgradePolicy:ScaleSetRollingUpgradePolicy": {
      "properties": {
        "maxBatchInstancePercent": {
          "description": "The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. Defaults to `20`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxUnhealthyInstancePercent": {
          "description": "The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. Defaults to `20`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxUnhealthyUpgradedInstancePercent": {
          "description": "The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. Defaults to `20`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "pauseTimeBetweenBatches": {
          "description": "The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format for duration (https://en.wikipedia.org/wiki/ISO_8601#Durations). Defaults to `0` seconds represented as `PT0S`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:compute/ScaleSetSku:ScaleSetSku": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "capacity",
            "name",
            "tier"
          ]
        }
      },
      "properties": {
        "capacity": {
          "description": "Specifies the number of virtual machines in the scale set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "Specifies the size of virtual machines in a scale set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tier": {
          "description": "Specifies the tier of virtual machines in a scale set. Possible values, `standard` or `basic`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "capacity",
        "name"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetStorageProfileDataDisk:ScaleSetStorageProfileDataDisk": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "caching",
            "createOption",
            "diskSizeGb",
            "lun",
            "managedDiskType"
          ]
        }
      },
      "properties": {
        "caching": {
          "description": "Specifies the caching requirements. Possible values include: `None` (default), `ReadOnly`, `ReadWrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "createOption": {
          "description": "Specifies how the data disk should be created. The only possible options are `FromImage` and `Empty`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diskSizeGb": {
          "description": "Specifies the size of the disk in GB. This element is required when creating an empty disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "lun": {
          "description": "Specifies the Logical Unit Number of the disk in each virtual machine in the scale set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "managedDiskType": {
          "description": "Specifies the type of managed disk to create. Value must be either `Standard_LRS`, `StandardSSD_LRS` or `Premium_LRS`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "createOption",
        "lun"
      ],
      "type": "object"
    },
    "azure:compute/ScaleSetStorageProfileImageReference:ScaleSetStorageProfileImageReference": {
      "properties": {
        "id": {
          "description": "Specifies the ID of the (custom) image to use to create the virtual\nmachine scale set, as in the example below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "offer": {
          "description": "Specifies the offer of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "Specifies the publisher of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sku": {
          "description": "Specifies the SKU of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "Specifies the version of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:compute/ScaleSetStorageProfileOsDisk:ScaleSetStorageProfileOsDisk": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "caching",
            "createOption",
            "managedDiskType"
          ]
        }
      },
      "properties": {
        "caching": {
          "description": "Specifies the caching requirements. Possible values include: `None` (default), `ReadOnly`, `ReadWrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "createOption": {
          "description": "Specifies how the virtual machine should be created. The only possible option is `FromImage`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "image": {
          "description": "Specifies the blob uri for user image. A virtual machine scale set creates an os disk in the same container as the user image.\nUpdating the osDisk image causes the existing disk to be deleted and a new one created with the new image. If the VM scale set is in Manual upgrade mode then the virtual machines are not updated until they have manualUpgrade applied to them.\nWhen setting this field `os_type` needs to be specified. Cannot be used when `vhd_containers`, `managed_disk_type` or `storage_profile_image_reference` are specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "managedDiskType": {
          "description": "Specifies the type of managed disk to create. Value you must be either `Standard_LRS`, `StandardSSD_LRS` or `Premium_LRS`. Cannot be used when `vhd_containers` or `image` is specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the disk name. Must be specified when using unmanaged disk ('managed_disk_type' property not set).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "osType": {
          "description": "Specifies the operating system Type, valid values are windows, linux.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vhdContainers": {
          "description": "Specifies the vhd uri. Cannot be used when `image` or `managed_disk_type` is specified.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "createOption"
      ],
      "type": "object"
    },
    "azure:compute/SharedImageIdentifier:SharedImageIdentifier": {
      "properties": {
        "offer": {
          "description": "The Offer Name for this Shared Image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "The Publisher Name for this Gallery Image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sku": {
          "description": "The Name of the SKU for this Gallery Image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "offer",
        "publisher",
        "sku"
      ],
      "type": "object"
    },
    "azure:compute/SharedImagePurchasePlan:SharedImagePurchasePlan": {
      "properties": {
        "name": {
          "description": "The Purchase Plan Name for this Shared Image. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "product": {
          "description": "The Purchase Plan Product for this Gallery Image. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "The Purchase Plan Publisher for this Gallery Image. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:compute/SharedImageVersionTargetRegion:SharedImageVersionTargetRegion": {
      "properties": {
        "name": {
          "description": "The Azure Region in which this Image Version should exist.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "regionalReplicaCount": {
          "description": "The number of replicas of the Image Version to be created per region.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountType": {
          "description": "The storage account type for the image version. Possible values are `Standard_LRS` and `Standard_ZRS`. Defaults to `Standard_LRS`. You can store all of your image version replicas in Zone Redundant Storage by specifying `Standard_ZRS`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "regionalReplicaCount"
      ],
      "type": "object"
    },
    "azure:compute/SnapshotEncryptionSettings:SnapshotEncryptionSettings": {
      "properties": {
        "diskEncryptionKey": {
          "$ref": "#/types/azure:compute/SnapshotEncryptionSettingsDiskEncryptionKey:SnapshotEncryptionSettingsDiskEncryptionKey",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enabled": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "keyEncryptionKey": {
          "$ref": "#/types/azure:compute/SnapshotEncryptionSettingsKeyEncryptionKey:SnapshotEncryptionSettingsKeyEncryptionKey",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:compute/SnapshotEncryptionSettingsDiskEncryptionKey:SnapshotEncryptionSettingsDiskEncryptionKey": {
      "properties": {
        "secretUrl": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceVaultId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "secretUrl",
        "sourceVaultId"
      ],
      "type": "object"
    },
    "azure:compute/SnapshotEncryptionSettingsKeyEncryptionKey:SnapshotEncryptionSettingsKeyEncryptionKey": {
      "properties": {
        "keyUrl": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceVaultId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "keyUrl",
        "sourceVaultId"
      ],
      "type": "object"
    },
    "azure:compute/VirtualMachineAdditionalCapabilities:VirtualMachineAdditionalCapabilities": {
      "properties": {
        "ultraSsdEnabled": {
          "description": "Should Ultra SSD disk be enabled for this Virtual Machine?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "ultraSsdEnabled"
      ],
      "type": "object"
    },
    "azure:compute/VirtualMachineBootDiagnostics:VirtualMachineBootDiagnostics": {
      "properties": {
        "enabled": {
          "description": "Should Boot Diagnostics be enabled for this Virtual Machine?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "storageUri": {
          "description": "The Storage Account's Blob Endpoint which should hold the virtual machine's diagnostic files.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "storageUri"
      ],
      "type": "object"
    },
    "azure:compute/VirtualMachineIdentity:VirtualMachineIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "Specifies a list of user managed identity ids to be assigned to the VM. Required if `type` is `UserAssigned`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this Virtual Machine.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Managed Service Identity Type of this Virtual Machine. Possible values are `SystemAssigned` (where Azure will generate a Service Principal for you), `UserAssigned` (where you can specify the Service Principal ID's) to be used by this Virtual Machine using the `identity_ids` field, and `SystemAssigned, UserAssigned` which assigns both a system managed identity as well as the specified user assigned identities.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:compute/VirtualMachineOsProfile:VirtualMachineOsProfile": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "adminUsername",
            "computerName",
            "customData"
          ]
        }
      },
      "properties": {
        "adminPassword": {
          "description": "The password associated with the local administrator account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "adminUsername": {
          "description": "Specifies the name of the local administrator account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "computerName": {
          "description": "Specifies the name of the Virtual Machine.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "customData": {
          "description": "Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "adminUsername",
        "computerName"
      ],
      "type": "object"
    },
    "azure:compute/VirtualMachineOsProfileLinuxConfig:VirtualMachineOsProfileLinuxConfig": {
      "properties": {
        "disablePasswordAuthentication": {
          "description": "Specifies whether password authentication should be disabled. If set to `false`, an `admin_password` must be specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sshKeys": {
          "description": "One or more `ssh_keys` blocks. This field is required if `disable_password_authentication` is set to `true`.\n",
          "items": {
            "$ref": "#/types/azure:compute/VirtualMachineOsProfileLinuxConfigSshKey:VirtualMachineOsProfileLinuxConfigSshKey"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "disablePasswordAuthentication"
      ],
      "type": "object"
    },
    "azure:compute/VirtualMachineOsProfileLinuxConfigSshKey:VirtualMachineOsProfileLinuxConfigSshKey": {
      "properties": {
        "keyData": {
          "description": "The Public SSH Key which should be written to the `path` defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The path of the destination file on the virtual machine\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "keyData",
        "path"
      ],
      "type": "object"
    },
    "azure:compute/VirtualMachineOsProfileSecret:VirtualMachineOsProfileSecret": {
      "properties": {
        "sourceVaultId": {
          "description": "Specifies the ID of the Key Vault to use.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vaultCertificates": {
          "description": "One or more `vault_certificates` blocks.\n",
          "items": {
            "$ref": "#/types/azure:compute/VirtualMachineOsProfileSecretVaultCertificate:VirtualMachineOsProfileSecretVaultCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "sourceVaultId"
      ],
      "type": "object"
    },
    "azure:compute/VirtualMachineOsProfileSecretVaultCertificate:VirtualMachineOsProfileSecretVaultCertificate": {
      "properties": {
        "certificateStore": {
          "description": "Specifies the certificate store on the Virtual Machine where the certificate should be added to, such as `My`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificateUrl": {
          "description": "The ID of the Key Vault Secret. Stored secret is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be:\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "certificateUrl"
      ],
      "type": "object"
    },
    "azure:compute/VirtualMachineOsProfileWindowsConfig:VirtualMachineOsProfileWindowsConfig": {
      "properties": {
        "additionalUnattendConfigs": {
          "description": "A `additional_unattend_config` block.\n",
          "items": {
            "$ref": "#/types/azure:compute/VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig:VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enableAutomaticUpgrades": {
          "description": "Are automatic updates enabled on this Virtual Machine? Defaults to `false.`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "provisionVmAgent": {
          "description": "Should the Azure Virtual Machine Guest Agent be installed on this Virtual Machine? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "timezone": {
          "description": "Specifies the time zone of the virtual machine, [the possible values are defined here](http://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "winrms": {
          "description": "One or more `winrm` block.\n",
          "items": {
            "$ref": "#/types/azure:compute/VirtualMachineOsProfileWindowsConfigWinrm:VirtualMachineOsProfileWindowsConfigWinrm"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:compute/VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig:VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig": {
      "properties": {
        "component": {
          "description": "Specifies the name of the component to configure with the added content. The only allowable value is `Microsoft-Windows-Shell-Setup`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "content": {
          "description": "Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pass": {
          "description": "Specifies the name of the pass that the content applies to. The only allowable value is `oobeSystem`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "settingName": {
          "description": "Specifies the name of the setting to which the content applies. Possible values are: `FirstLogonCommands` and `AutoLogon`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "component",
        "content",
        "pass",
        "settingName"
      ],
      "type": "object"
    },
    "azure:compute/VirtualMachineOsProfileWindowsConfigWinrm:VirtualMachineOsProfileWindowsConfigWinrm": {
      "properties": {
        "certificateUrl": {
          "description": "The ID of the Key Vault Secret which contains the encrypted Certificate which should be installed on the Virtual Machine. This certificate must also be specified in the `vault_certificates` block within the `os_profile_secrets` block.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocol": {
          "description": "Specifies the protocol of listener. Possible values are `HTTP` or `HTTPS`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "protocol"
      ],
      "type": "object"
    },
    "azure:compute/VirtualMachinePlan:VirtualMachinePlan": {
      "properties": {
        "name": {
          "description": "Specifies the name of the image from the marketplace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "product": {
          "description": "Specifies the product of the image from the marketplace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "Specifies the publisher of the image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "product",
        "publisher"
      ],
      "type": "object"
    },
    "azure:compute/VirtualMachineStorageDataDisk:VirtualMachineStorageDataDisk": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "caching",
            "createOption",
            "diskSizeGb",
            "lun",
            "managedDiskId",
            "managedDiskType",
            "name"
          ]
        }
      },
      "properties": {
        "caching": {
          "description": "Specifies the caching requirements for the Data Disk. Possible values include `None`, `ReadOnly` and `ReadWrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "createOption": {
          "description": "Specifies how the data disk should be created. Possible values are `Attach`, `FromImage` and `Empty`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diskSizeGb": {
          "description": "Specifies the size of the data disk in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "lun": {
          "description": "Specifies the logical unit number of the data disk. This needs to be unique within all the Data Disks on the Virtual Machine.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "managedDiskId": {
          "description": "Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set `create_option` must be set to `Attach`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "managedDiskType": {
          "description": "Specifies the type of managed disk to create. Possible values are either `Standard_LRS`, `StandardSSD_LRS`, `Premium_LRS` or `UltraSSD_LRS`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Data Disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vhdUri": {
          "description": "Specifies the URI of the VHD file backing this Unmanaged Data Disk. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "writeAcceleratorEnabled": {
          "description": "Specifies if Write Accelerator is enabled on the disk. This can only be enabled on `Premium_LRS` managed disks with no caching and [M-Series VMs](https://docs.microsoft.com/en-us/azure/virtual-machines/workloads/sap/how-to-enable-write-accelerator). Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "createOption",
        "lun",
        "name"
      ],
      "type": "object"
    },
    "azure:compute/VirtualMachineStorageImageReference:VirtualMachineStorageImageReference": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "version"
          ]
        }
      },
      "properties": {
        "id": {
          "description": "Specifies the ID of the Custom Image which the Virtual Machine should be created from. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "offer": {
          "description": "Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sku": {
          "description": "Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "Specifies the version of the image used to create the virtual machine. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:compute/VirtualMachineStorageOsDisk:VirtualMachineStorageOsDisk": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "caching",
            "createOption",
            "diskSizeGb",
            "managedDiskId",
            "managedDiskType",
            "name",
            "osType"
          ]
        }
      },
      "properties": {
        "caching": {
          "description": "Specifies the caching requirements for the OS Disk. Possible values include `None`, `ReadOnly` and `ReadWrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "createOption": {
          "description": "Specifies how the OS Disk should be created. Possible values are `Attach` (managed disks only) and `FromImage`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diskSizeGb": {
          "description": "Specifies the size of the OS Disk in gigabytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "imageUri": {
          "description": "Specifies the Image URI in the format `publisherName:offer:skus:version`. This field can also specify the [VHD uri](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-cli-deploy-templates/#create-a-custom-vm-image) of a custom VM image to clone. When cloning a Custom (Unmanaged) Disk Image the `os_type` field must be set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "managedDiskId": {
          "description": "Specifies the ID of an existing Managed Disk which should be attached as the OS Disk of this Virtual Machine. If this is set then the `create_option` must be set to `Attach`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "managedDiskType": {
          "description": "Specifies the type of Managed Disk which should be created. Possible values are `Standard_LRS`, `StandardSSD_LRS` or `Premium_LRS`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the OS Disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "osType": {
          "description": "Specifies the Operating System on the OS Disk. Possible values are `Linux` and `Windows`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vhdUri": {
          "description": "Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "writeAcceleratorEnabled": {
          "description": "Specifies if Write Accelerator is enabled on the disk. This can only be enabled on `Premium_LRS` managed disks with no caching and [M-Series VMs](https://docs.microsoft.com/en-us/azure/virtual-machines/workloads/sap/how-to-enable-write-accelerator). Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "createOption",
        "name"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineAdditionalCapabilities:WindowsVirtualMachineAdditionalCapabilities": {
      "properties": {
        "ultraSsdEnabled": {
          "description": "Should the capacity to enable Data Disks of the `UltraSSD_LRS` storage account type be supported on this Virtual Machine? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineAdditionalUnattendContent:WindowsVirtualMachineAdditionalUnattendContent": {
      "properties": {
        "content": {
          "description": "The XML formatted content that is added to the unattend.xml file for the specified path and component. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "setting": {
          "description": "The name of the setting to which the content applies. Possible values are `AutoLogon` and `FirstLogonCommands`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "content",
        "setting"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineBootDiagnostics:WindowsVirtualMachineBootDiagnostics": {
      "properties": {
        "storageAccountUri": {
          "description": "The Primary/Secondary Endpoint for the Azure Storage Account which should be used to store Boot Diagnostics, including Console Output and Screenshots from the Hypervisor.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineIdentity:WindowsVirtualMachineIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "A list of User Managed Identity ID's which should be assigned to the Windows Virtual Machine.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The ID of the System Managed Service Principal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant the System Managed Service Principal is assigned in.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of Managed Identity which should be assigned to the Windows Virtual Machine. Possible values are `SystemAssigned`, `UserAssigned` and `SystemAssigned, UserAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineOsDisk:WindowsVirtualMachineOsDisk": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "caching",
            "diskSizeGb",
            "name",
            "storageAccountType"
          ]
        }
      },
      "properties": {
        "caching": {
          "description": "The Type of Caching which should be used for the Internal OS Disk. Possible values are `None`, `ReadOnly` and `ReadWrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diffDiskSettings": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineOsDiskDiffDiskSettings:WindowsVirtualMachineOsDiskDiffDiskSettings",
          "description": "A `diff_disk_settings` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskEncryptionSetId": {
          "description": "The ID of the Disk Encryption Set which should be used to Encrypt this OS Disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diskSizeGb": {
          "description": "The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine is sourced from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "The name which should be used for the Internal OS Disk. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountType": {
          "description": "The Type of Storage Account which should back this the Internal OS Disk. Possible values are `Standard_LRS`, `StandardSSD_LRS` and `Premium_LRS`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "writeAcceleratorEnabled": {
          "description": "Should Write Accelerator be Enabled for this OS Disk? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "caching",
        "storageAccountType"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineOsDiskDiffDiskSettings:WindowsVirtualMachineOsDiskDiffDiskSettings": {
      "properties": {
        "option": {
          "description": "Specifies the Ephemeral Disk Settings for the OS Disk. At this time the only possible value is `Local`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "option"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachinePlan:WindowsVirtualMachinePlan": {
      "properties": {
        "name": {
          "description": "Specifies the Name of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "product": {
          "description": "Specifies the Product of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "Specifies the Publisher of the Marketplace Image this Virtual Machine should be created from. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "product",
        "publisher"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetAdditionalCapabilities:WindowsVirtualMachineScaleSetAdditionalCapabilities": {
      "properties": {
        "ultraSsdEnabled": {
          "description": "Should the capacity to enable Data Disks of the `UltraSSD_LRS` storage account type be supported on this Virtual Machine Scale Set? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetAdditionalUnattendContent:WindowsVirtualMachineScaleSetAdditionalUnattendContent": {
      "properties": {
        "content": {
          "description": "The XML formatted content that is added to the unattend.xml file for the specified path and component. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "setting": {
          "description": "The name of the setting to which the content applies. Possible values are `AutoLogon` and `FirstLogonCommands`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "content",
        "setting"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetAutomaticInstanceRepair:WindowsVirtualMachineScaleSetAutomaticInstanceRepair": {
      "properties": {
        "enabled": {
          "description": "Should the automatic instance repair be enabled on this Virtual Machine Scale Set?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "gracePeriod": {
          "description": "Amount of time (in minutes, between 30 and 90, defaults to 30 minutes) for which automatic repairs will be delayed. The grace period starts right after the VM is found unhealthy. The time duration should be specified in ISO 8601 format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetAutomaticOsUpgradePolicy:WindowsVirtualMachineScaleSetAutomaticOsUpgradePolicy": {
      "properties": {
        "disableAutomaticRollback": {
          "description": "Should automatic rollbacks be disabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enableAutomaticOsUpgrade": {
          "description": "Should OS Upgrades automatically be applied to Scale Set instances in a rolling fashion when a newer version of the OS Image becomes available?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "disableAutomaticRollback",
        "enableAutomaticOsUpgrade"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetBootDiagnostics:WindowsVirtualMachineScaleSetBootDiagnostics": {
      "properties": {
        "storageAccountUri": {
          "description": "The Primary/Secondary Endpoint for the Azure Storage Account which should be used to store Boot Diagnostics, including Console Output and Screenshots from the Hypervisor.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetDataDisk:WindowsVirtualMachineScaleSetDataDisk": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "caching",
            "diskIopsReadWrite",
            "diskMbpsReadWrite",
            "diskSizeGb",
            "lun",
            "storageAccountType"
          ]
        }
      },
      "properties": {
        "caching": {
          "description": "The type of Caching which should be used for this Data Disk. Possible values are `None`, `ReadOnly` and `ReadWrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "createOption": {
          "description": "The create option which should be used for this Data Disk. Possible values are `Empty` and `FromImage`. Defaults to `Empty`. (`FromImage` should only be used if the source image includes data disks).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diskEncryptionSetId": {
          "description": "The ID of the Disk Encryption Set which should be used to encrypt this Data Disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diskIopsReadWrite": {
          "description": "Specifies the Read-Write IOPS for this Data Disk. Only settable for UltraSSD disks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "diskMbpsReadWrite": {
          "description": "Specifies the bandwidth in MB per second for this Data Disk. Only settable for UltraSSD disks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "diskSizeGb": {
          "description": "The size of the Data Disk which should be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "lun": {
          "description": "The Logical Unit Number of the Data Disk, which must be unique within the Virtual Machine.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountType": {
          "description": "The Type of Storage Account which should back this Data Disk. Possible values include `Standard_LRS`, `StandardSSD_LRS`, `Premium_LRS` and `UltraSSD_LRS`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "writeAcceleratorEnabled": {
          "description": "Should Write Accelerator be enabled for this Data Disk? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "caching",
        "diskSizeGb",
        "lun",
        "storageAccountType"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetExtension:WindowsVirtualMachineScaleSetExtension": {
      "properties": {
        "autoUpgradeMinorVersion": {
          "description": "Should the latest version of the Extension be used at Deployment Time, if one is available? This won't auto-update the extension on existing installation. Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "forceUpdateTag": {
          "description": "A value which, when different to the previous value can be used to force-run the Extension even if the Extension Configuration hasn't changed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name for the Virtual Machine Scale Set Extension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protectedSettings": {
          "description": "A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "provisionAfterExtensions": {
          "description": "An ordered list of Extension names which this should be provisioned after.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "publisher": {
          "description": "Specifies the Publisher of the Extension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "settings": {
          "description": "A JSON String which specifies Settings for the Extension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the Type of the Extension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "typeHandlerVersion": {
          "description": "Specifies the version of the extension to use, available versions can be found using the Azure CLI.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "publisher",
        "type",
        "typeHandlerVersion"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetIdentity:WindowsVirtualMachineScaleSetIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "A list of User Managed Identity ID's which should be assigned to the Windows Virtual Machine Scale Set.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The ID of the System Managed Service Principal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of Managed Identity which should be assigned to the Windows Virtual Machine Scale Set. Possible values are `SystemAssigned`, `UserAssigned` and `SystemAssigned, UserAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetNetworkInterface:WindowsVirtualMachineScaleSetNetworkInterface": {
      "properties": {
        "dnsServers": {
          "description": "A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enableAcceleratedNetworking": {
          "description": "Does this Network Interface support Accelerated Networking? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enableIpForwarding": {
          "description": "Does this Network Interface support IP Forwarding? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "ipConfigurations": {
          "description": "One or more `ip_configuration` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetNetworkInterfaceIpConfiguration:WindowsVirtualMachineScaleSetNetworkInterfaceIpConfiguration"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The Name which should be used for this Network Interface. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "networkSecurityGroupId": {
          "description": "The ID of a Network Security Group which should be assigned to this Network Interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primary": {
          "description": "Is this the Primary IP Configuration?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "ipConfigurations",
        "name"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetNetworkInterfaceIpConfiguration:WindowsVirtualMachineScaleSetNetworkInterfaceIpConfiguration": {
      "properties": {
        "applicationGatewayBackendAddressPoolIds": {
          "description": "A list of Backend Address Pools ID's from a Application Gateway which this Virtual Machine Scale Set should be connected to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "applicationSecurityGroupIds": {
          "description": "A list of Application Security Group ID's which this Virtual Machine Scale Set should be connected to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "loadBalancerBackendAddressPoolIds": {
          "description": "A list of Backend Address Pools ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "loadBalancerInboundNatRulesIds": {
          "description": "A list of NAT Rule ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The Name which should be used for this IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primary": {
          "description": "Is this the Primary IP Configuration for this Network Interface? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "publicIpAddresses": {
          "description": "A `public_ip_address` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress:WindowsVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet which this IP Configuration should be connected to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "The Internet Protocol Version which should be used for this IP Configuration. Possible values are `IPv4` and `IPv6`. Defaults to `IPv4`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress:WindowsVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "idleTimeoutInMinutes",
            "name"
          ]
        }
      },
      "properties": {
        "domainNameLabel": {
          "description": "The Prefix which should be used for the Domain Name Label for each Virtual Machine Instance. Azure concatenates the Domain Name Label and Virtual Machine Index to create a unique Domain Name Label for each Virtual Machine.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "idleTimeoutInMinutes": {
          "description": "The Idle Timeout in Minutes for the Public IP Address. Possible values are in the range `4` to `32`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "ipTags": {
          "description": "One or more `ip_tag` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag:WindowsVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The Name of the Public IP Address Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpPrefixId": {
          "description": "The ID of the Public IP Address Prefix from where Public IP Addresses should be allocated. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag:WindowsVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag": {
      "properties": {
        "tag": {
          "description": "The IP Tag associated with the Public IP, such as `SQL` or `Storage`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of IP Tag, such as `FirstPartyUsage`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "tag",
        "type"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetOsDisk:WindowsVirtualMachineScaleSetOsDisk": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "caching",
            "diskSizeGb",
            "storageAccountType"
          ]
        }
      },
      "properties": {
        "caching": {
          "description": "The Type of Caching which should be used for the Internal OS Disk. Possible values are `None`, `ReadOnly` and `ReadWrite`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diffDiskSettings": {
          "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetOsDiskDiffDiskSettings:WindowsVirtualMachineScaleSetOsDiskDiffDiskSettings",
          "description": "A `diff_disk_settings` block as defined above. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskEncryptionSetId": {
          "description": "The ID of the Disk Encryption Set which should be used to encrypt this OS Disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "diskSizeGb": {
          "description": "The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine Scale Set is sourced from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountType": {
          "description": "The Type of Storage Account which should back this the Internal OS Disk. Possible values include `Standard_LRS`, `StandardSSD_LRS` and `Premium_LRS`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "writeAcceleratorEnabled": {
          "description": "Should Write Accelerator be Enabled for this OS Disk? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "caching",
        "storageAccountType"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetOsDiskDiffDiskSettings:WindowsVirtualMachineScaleSetOsDiskDiffDiskSettings": {
      "properties": {
        "option": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "option"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetPlan:WindowsVirtualMachineScaleSetPlan": {
      "properties": {
        "name": {
          "description": "Specifies the name of the image from the marketplace. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "product": {
          "description": "Specifies the product of the image from the marketplace. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "Specifies the publisher of the image. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "product",
        "publisher"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetRollingUpgradePolicy:WindowsVirtualMachineScaleSetRollingUpgradePolicy": {
      "properties": {
        "maxBatchInstancePercent": {
          "description": "The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxUnhealthyInstancePercent": {
          "description": "The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxUnhealthyUpgradedInstancePercent": {
          "description": "The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "pauseTimeBetweenBatches": {
          "description": "The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "maxBatchInstancePercent",
        "maxUnhealthyInstancePercent",
        "maxUnhealthyUpgradedInstancePercent",
        "pauseTimeBetweenBatches"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetSecret:WindowsVirtualMachineScaleSetSecret": {
      "properties": {
        "certificates": {
          "description": "One or more `certificate` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineScaleSetSecretCertificate:WindowsVirtualMachineScaleSetSecretCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault from which all Secrets should be sourced.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "certificates",
        "keyVaultId"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetSecretCertificate:WindowsVirtualMachineScaleSetSecretCertificate": {
      "properties": {
        "store": {
          "description": "The certificate store on the Virtual Machine where the certificate should be added.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "url": {
          "description": "The Secret URL of a Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "store",
        "url"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetSourceImageReference:WindowsVirtualMachineScaleSetSourceImageReference": {
      "properties": {
        "offer": {
          "description": "Specifies the offer of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "Specifies the publisher of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sku": {
          "description": "Specifies the SKU of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "Specifies the version of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "offer",
        "publisher",
        "sku",
        "version"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetTerminateNotification:WindowsVirtualMachineScaleSetTerminateNotification": {
      "properties": {
        "enabled": {
          "description": "Should the terminate notification be enabled on this Virtual Machine Scale Set? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "timeout": {
          "description": "Length of time (in minutes, between 5 and 15) a notification to be sent to the VM on the instance metadata server till the VM gets deleted. The time duration should be specified in ISO 8601 format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineScaleSetWinrmListener:WindowsVirtualMachineScaleSetWinrmListener": {
      "properties": {
        "certificateUrl": {
          "description": "The Secret URL of a Key Vault Certificate, which must be specified when `protocol` is set to `Https`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocol": {
          "description": "The Protocol of the WinRM Listener. Possible values are `Http` and `Https`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "protocol"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineSecret:WindowsVirtualMachineSecret": {
      "properties": {
        "certificates": {
          "description": "One or more `certificate` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:compute/WindowsVirtualMachineSecretCertificate:WindowsVirtualMachineSecretCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault from which all Secrets should be sourced.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "certificates",
        "keyVaultId"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineSecretCertificate:WindowsVirtualMachineSecretCertificate": {
      "properties": {
        "store": {
          "description": "The certificate store on the Virtual Machine where the certificate should be added.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "url": {
          "description": "The Secret URL of a Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "store",
        "url"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineSourceImageReference:WindowsVirtualMachineSourceImageReference": {
      "properties": {
        "offer": {
          "description": "Specifies the offer of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "Specifies the publisher of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sku": {
          "description": "Specifies the SKU of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "Specifies the version of the image used to create the virtual machines.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "offer",
        "publisher",
        "sku",
        "version"
      ],
      "type": "object"
    },
    "azure:compute/WindowsVirtualMachineWinrmListener:WindowsVirtualMachineWinrmListener": {
      "properties": {
        "certificateUrl": {
          "description": "The Secret URL of a Key Vault Certificate, which must be specified when `protocol` is set to `Https`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocol": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "protocol"
      ],
      "type": "object"
    },
    "azure:compute/getImageDataDisk:getImageDataDisk": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "blobUri": {
          "description": "the URI in Azure storage of the blob used to create the image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "caching": {
          "description": "the caching mode for the Data Disk, such as `ReadWrite`, `ReadOnly`, or `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "lun": {
          "description": "the logical unit number of the data disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "managedDiskId": {
          "description": "the ID of the Managed Disk used as the Data Disk Image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sizeGb": {
          "description": "the size of this Data Disk in GB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "blobUri",
        "caching",
        "lun",
        "managedDiskId",
        "sizeGb"
      ],
      "type": "object"
    },
    "azure:compute/getImageOsDisk:getImageOsDisk": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "blobUri": {
          "description": "the URI in Azure storage of the blob used to create the image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "caching": {
          "description": "the caching mode for the Data Disk, such as `ReadWrite`, `ReadOnly`, or `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "managedDiskId": {
          "description": "the ID of the Managed Disk used as the Data Disk Image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "osState": {
          "description": "the State of the OS used in the Image, such as `Generalized`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "osType": {
          "description": "the type of Operating System used on the OS Disk. such as `Linux` or `Windows`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sizeGb": {
          "description": "the size of this Data Disk in GB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "blobUri",
        "caching",
        "managedDiskId",
        "osState",
        "osType",
        "sizeGb"
      ],
      "type": "object"
    },
    "azure:compute/getImagesImage:getImagesImage": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "dataDisks": {
          "description": "One or more `data_disk` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/getImagesImageDataDisk:getImagesImageDataDisk"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "location": {
          "description": "The supported Azure location where the Image exists.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "osDisks": {
          "description": "An `os_disk` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:compute/getImagesImageOsDisk:getImagesImageOsDisk"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the Image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "zoneResilient": {
          "description": "Is zone resiliency enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "dataDisks",
        "location",
        "name",
        "osDisks",
        "tags",
        "zoneResilient"
      ],
      "type": "object"
    },
    "azure:compute/getImagesImageDataDisk:getImagesImageDataDisk": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "blobUri": {
          "description": "the URI in Azure storage of the blob used to create the image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "caching": {
          "description": "the caching mode for the Data Disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "lun": {
          "description": "the logical unit number of the data disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "managedDiskId": {
          "description": "the ID of the Managed Disk used as the Data Disk Image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sizeGb": {
          "description": "the size of this Data Disk in GB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "blobUri",
        "caching",
        "lun",
        "managedDiskId",
        "sizeGb"
      ],
      "type": "object"
    },
    "azure:compute/getImagesImageOsDisk:getImagesImageOsDisk": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "blobUri": {
          "description": "the URI in Azure storage of the blob used to create the image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "caching": {
          "description": "the caching mode for the Data Disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "managedDiskId": {
          "description": "the ID of the Managed Disk used as the Data Disk Image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "osState": {
          "description": "the State of the OS used in the Image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "osType": {
          "description": "the type of Operating System used on the OS Disk.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sizeGb": {
          "description": "the size of this Data Disk in GB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "blobUri",
        "caching",
        "managedDiskId",
        "osState",
        "osType",
        "sizeGb"
      ],
      "type": "object"
    },
    "azure:compute/getSharedImageIdentifier:getSharedImageIdentifier": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "offer": {
          "description": "The Offer Name for this Shared Image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "The Publisher Name for this Gallery Image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sku": {
          "description": "The Name of the SKU for this Gallery Image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "offer",
        "publisher",
        "sku"
      ],
      "type": "object"
    },
    "azure:compute/getSharedImageVersionTargetRegion:getSharedImageVersionTargetRegion": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "The name of the Image Version.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "regionalReplicaCount": {
          "description": "The number of replicas of the Image Version to be created per region.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountType": {
          "description": "The storage account type for the image version.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "regionalReplicaCount",
        "storageAccountType"
      ],
      "type": "object"
    },
    "azure:compute/getSharedImageVersionsImage:getSharedImageVersionsImage": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "excludeFromLatest": {
          "description": "Is this Image Version excluded from the `latest` filter?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "location": {
          "description": "The supported Azure location where the Shared Image Gallery exists.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "managedImageId": {
          "description": "The ID of the Managed Image which was the source of this Shared Image Version.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Azure Region in which this Image Version exists.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the Shared Image.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "targetRegions": {
          "description": "One or more `target_region` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:compute/getSharedImageVersionsImageTargetRegion:getSharedImageVersionsImageTargetRegion"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "excludeFromLatest",
        "location",
        "managedImageId",
        "name",
        "tags",
        "targetRegions"
      ],
      "type": "object"
    },
    "azure:compute/getSharedImageVersionsImageTargetRegion:getSharedImageVersionsImageTargetRegion": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "The Azure Region in which this Image Version exists.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "regionalReplicaCount": {
          "description": "The number of replicas of the Image Version to be created per region.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountType": {
          "description": "The storage account type for the image version.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "regionalReplicaCount",
        "storageAccountType"
      ],
      "type": "object"
    },
    "azure:compute/getSnapshotEncryptionSetting:getSnapshotEncryptionSetting": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "diskEncryptionKeys": {
          "items": {
            "$ref": "#/types/azure:compute/getSnapshotEncryptionSettingDiskEncryptionKey:getSnapshotEncryptionSettingDiskEncryptionKey"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enabled": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "keyEncryptionKeys": {
          "items": {
            "$ref": "#/types/azure:compute/getSnapshotEncryptionSettingKeyEncryptionKey:getSnapshotEncryptionSettingKeyEncryptionKey"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "diskEncryptionKeys",
        "enabled",
        "keyEncryptionKeys"
      ],
      "type": "object"
    },
    "azure:compute/getSnapshotEncryptionSettingDiskEncryptionKey:getSnapshotEncryptionSettingDiskEncryptionKey": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "secretUrl": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceVaultId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "secretUrl",
        "sourceVaultId"
      ],
      "type": "object"
    },
    "azure:compute/getSnapshotEncryptionSettingKeyEncryptionKey:getSnapshotEncryptionSettingKeyEncryptionKey": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "keyUrl": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceVaultId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "keyUrl",
        "sourceVaultId"
      ],
      "type": "object"
    },
    "azure:compute/getVirtualMachineIdentity:getVirtualMachineIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "identityIds": {
          "description": "The list of User Managed Identity ID's which are assigned to the Virtual Machine.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The ID of the System Managed Service Principal assigned to the Virtual Machine.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant of the System Managed Service Principal assigned to the Virtual Machine.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The identity type of the Managed Identity assigned to the Virtual Machine.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "identityIds",
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:compute/getVirtualMachineScaleSetIdentity:getVirtualMachineScaleSetIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "identityIds": {
          "description": "The list of User Managed Identity ID's which are assigned to the Virtual Machine Scale Set.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The ID of the System Managed Service Principal assigned to the Virtual Machine Scale Set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The identity type of the Managed Identity assigned to the Virtual Machine Scale Set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "identityIds",
        "principalId",
        "type"
      ],
      "type": "object"
    },
    "azure:compute/getVirtualMachineScaleSetNetworkInterface:getVirtualMachineScaleSetNetworkInterface": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "dnsServers": {
          "description": "The dns servers in use.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enableAcceleratedNetworking": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enableIpForwarding": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "ipConfigurations": {
          "description": "An ip_configuration block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:compute/getVirtualMachineScaleSetNetworkInterfaceIpConfiguration:getVirtualMachineScaleSetNetworkInterfaceIpConfiguration"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The name of this Virtual Machine Scale Set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "networkSecurityGroupId": {
          "description": "The identifier for the network security group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primary": {
          "description": "If this ip_configuration is the primary one.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "dnsServers",
        "enableAcceleratedNetworking",
        "enableIpForwarding",
        "ipConfigurations",
        "name",
        "networkSecurityGroupId",
        "primary"
      ],
      "type": "object"
    },
    "azure:compute/getVirtualMachineScaleSetNetworkInterfaceIpConfiguration:getVirtualMachineScaleSetNetworkInterfaceIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "applicationGatewayBackendAddressPoolIds": {
          "description": "An array of references to backend address pools of application gateways.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "applicationSecurityGroupIds": {
          "description": "The application security group IDs to use.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "loadBalancerBackendAddressPoolIds": {
          "description": "An array of references to backend address pools of load balancers.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "loadBalancerInboundNatRulesIds": {
          "description": "An array of references to inbound NAT pools for load balancers.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The name of this Virtual Machine Scale Set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primary": {
          "description": "If this ip_configuration is the primary one.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "publicIpAddresses": {
          "items": {
            "$ref": "#/types/azure:compute/getVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress:getVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The the identifier of the subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "applicationGatewayBackendAddressPoolIds",
        "applicationSecurityGroupIds",
        "loadBalancerBackendAddressPoolIds",
        "loadBalancerInboundNatRulesIds",
        "name",
        "primary",
        "publicIpAddresses",
        "subnetId",
        "version"
      ],
      "type": "object"
    },
    "azure:compute/getVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress:getVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "domainNameLabel": {
          "description": "The domain name label for the dns settings.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "idleTimeoutInMinutes": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "ipTags": {
          "items": {
            "$ref": "#/types/azure:compute/getVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag:getVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The name of this Virtual Machine Scale Set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpPrefixId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "domainNameLabel",
        "idleTimeoutInMinutes",
        "ipTags",
        "name",
        "publicIpPrefixId"
      ],
      "type": "object"
    },
    "azure:compute/getVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag:getVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "tag": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The identity type of the Managed Identity assigned to the Virtual Machine Scale Set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "tag",
        "type"
      ],
      "type": "object"
    },
    "azure:config/features:features": {
      "properties": {
        "cognitiveAccount": {
          "$ref": "#/types/azure:config/featuresCognitiveAccount:featuresCognitiveAccount"
        },
        "keyVault": {
          "$ref": "#/types/azure:config/featuresKeyVault:featuresKeyVault"
        },
        "logAnalyticsWorkspace": {
          "$ref": "#/types/azure:config/featuresLogAnalyticsWorkspace:featuresLogAnalyticsWorkspace"
        },
        "network": {
          "$ref": "#/types/azure:config/featuresNetwork:featuresNetwork"
        },
        "resourceGroup": {
          "$ref": "#/types/azure:config/featuresResourceGroup:featuresResourceGroup"
        },
        "templateDeployment": {
          "$ref": "#/types/azure:config/featuresTemplateDeployment:featuresTemplateDeployment"
        },
        "virtualMachine": {
          "$ref": "#/types/azure:config/featuresVirtualMachine:featuresVirtualMachine"
        },
        "virtualMachineScaleSet": {
          "$ref": "#/types/azure:config/featuresVirtualMachineScaleSet:featuresVirtualMachineScaleSet"
        }
      },
      "type": "object"
    },
    "azure:config/featuresCognitiveAccount:featuresCognitiveAccount": {
      "properties": {
        "purgeSoftDeleteOnDestroy": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:config/featuresKeyVault:featuresKeyVault": {
      "properties": {
        "purgeSoftDeleteOnDestroy": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "recoverSoftDeletedKeyVaults": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:config/featuresLogAnalyticsWorkspace:featuresLogAnalyticsWorkspace": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "permanentlyDeleteOnDestroy": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "permanentlyDeleteOnDestroy"
      ],
      "type": "object"
    },
    "azure:config/featuresNetwork:featuresNetwork": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "relaxedLocking": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "relaxedLocking"
      ],
      "type": "object"
    },
    "azure:config/featuresResourceGroup:featuresResourceGroup": {
      "properties": {
        "preventDeletionIfContainsResources": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:config/featuresTemplateDeployment:featuresTemplateDeployment": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "deleteNestedItemsDuringDeletion": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "deleteNestedItemsDuringDeletion"
      ],
      "type": "object"
    },
    "azure:config/featuresVirtualMachine:featuresVirtualMachine": {
      "properties": {
        "deleteOsDiskOnDeletion": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "gracefulShutdown": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "skipShutdownAndForceDelete": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:config/featuresVirtualMachineScaleSet:featuresVirtualMachineScaleSet": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "forceDelete": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "rollInstancesWhenRequired": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "rollInstancesWhenRequired"
      ],
      "type": "object"
    },
    "azure:consumption/BudgetResourceGroupFilter:BudgetResourceGroupFilter": {
      "properties": {
        "dimensions": {
          "description": "One or more `dimension` blocks as defined below to filter the budget on.\n",
          "items": {
            "$ref": "#/types/azure:consumption/BudgetResourceGroupFilterDimension:BudgetResourceGroupFilterDimension"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "not": {
          "$ref": "#/types/azure:consumption/BudgetResourceGroupFilterNot:BudgetResourceGroupFilterNot",
          "description": "A `not` block as defined below to filter the budget on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tags": {
          "description": "One or more `tag` blocks as defined below to filter the budget on.\n",
          "items": {
            "$ref": "#/types/azure:consumption/BudgetResourceGroupFilterTag:BudgetResourceGroupFilterTag"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:consumption/BudgetResourceGroupFilterDimension:BudgetResourceGroupFilterDimension": {
      "properties": {
        "name": {
          "description": "The name of the column to use for the filter. The allowed values are `ChargeType`, `Frequency`, `InvoiceId`, `Meter`, `MeterCategory`, `MeterSubCategory`, `PartNumber`, `PricingModel`, `Product`, `ProductOrderId`, `ProductOrderName`, `PublisherType`, `ReservationId`, `ReservationName`, `ResourceGroupName`, `ResourceGuid`, `ResourceId`, `ResourceLocation`, `ResourceType`, `ServiceFamily`, `ServiceName`, `UnitOfMeasure`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "The operator to use for comparison. The allowed values are `In`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies a list of values for the column.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "values"
      ],
      "type": "object"
    },
    "azure:consumption/BudgetResourceGroupFilterNot:BudgetResourceGroupFilterNot": {
      "properties": {
        "dimension": {
          "$ref": "#/types/azure:consumption/BudgetResourceGroupFilterNotDimension:BudgetResourceGroupFilterNotDimension",
          "description": "One `dimension` block as defined below to filter the budget on. Conflicts with `tag`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tag": {
          "$ref": "#/types/azure:consumption/BudgetResourceGroupFilterNotTag:BudgetResourceGroupFilterNotTag",
          "description": "One `tag` block as defined below to filter the budget on. Conflicts with `dimension`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:consumption/BudgetResourceGroupFilterNotDimension:BudgetResourceGroupFilterNotDimension": {
      "properties": {
        "name": {
          "description": "The name of the column to use for the filter. The allowed values are `ChargeType`, `Frequency`, `InvoiceId`, `Meter`, `MeterCategory`, `MeterSubCategory`, `PartNumber`, `PricingModel`, `Product`, `ProductOrderId`, `ProductOrderName`, `PublisherType`, `ReservationId`, `ReservationName`, `ResourceGroupName`, `ResourceGuid`, `ResourceId`, `ResourceLocation`, `ResourceType`, `ServiceFamily`, `ServiceName`, `UnitOfMeasure`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "The operator to use for comparison. The allowed values are `In`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies a list of values for the column.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "values"
      ],
      "type": "object"
    },
    "azure:consumption/BudgetResourceGroupFilterNotTag:BudgetResourceGroupFilterNotTag": {
      "properties": {
        "name": {
          "description": "The name of the tag to use for the filter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "The operator to use for comparison. The allowed values are `In`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies a list of values for the tag.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "values"
      ],
      "type": "object"
    },
    "azure:consumption/BudgetResourceGroupFilterTag:BudgetResourceGroupFilterTag": {
      "properties": {
        "name": {
          "description": "The name of the tag to use for the filter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "The operator to use for comparison. The allowed values are `In`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies a list of values for the tag.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "values"
      ],
      "type": "object"
    },
    "azure:consumption/BudgetResourceGroupNotification:BudgetResourceGroupNotification": {
      "properties": {
        "contactEmails": {
          "description": "Specifies a list of email addresses to send the budget notification to when the threshold is exceeded.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "contactGroups": {
          "description": "Specifies a list of Action Group IDs to send the budget notification to when the threshold is exceeded.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "contactRoles": {
          "description": "Specifies a list of contact roles to send the budget notification to when the threshold is exceeded.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enabled": {
          "description": "Should the notification be enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "The comparison operator for the notification. Must be one of `EqualTo`, `GreaterThan`, or `GreaterThanOrEqualTo`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "threshold": {
          "description": "Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "operator",
        "threshold"
      ],
      "type": "object"
    },
    "azure:consumption/BudgetResourceGroupTimePeriod:BudgetResourceGroupTimePeriod": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "endDate",
            "startDate"
          ]
        }
      },
      "properties": {
        "endDate": {
          "description": "The end date for the budget. If not set this will be 10 years after the start date.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "startDate": {
          "description": "The start date for the budget. The start date must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period. Changing this forces a new Resource Group Consumption Budget to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "startDate"
      ],
      "type": "object"
    },
    "azure:consumption/BudgetSubscriptionFilter:BudgetSubscriptionFilter": {
      "properties": {
        "dimensions": {
          "description": "One or more `dimension` blocks as defined below to filter the budget on.\n",
          "items": {
            "$ref": "#/types/azure:consumption/BudgetSubscriptionFilterDimension:BudgetSubscriptionFilterDimension"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "not": {
          "$ref": "#/types/azure:consumption/BudgetSubscriptionFilterNot:BudgetSubscriptionFilterNot",
          "description": "A `not` block as defined below to filter the budget on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tags": {
          "description": "One or more `tag` blocks as defined below to filter the budget on.\n",
          "items": {
            "$ref": "#/types/azure:consumption/BudgetSubscriptionFilterTag:BudgetSubscriptionFilterTag"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:consumption/BudgetSubscriptionFilterDimension:BudgetSubscriptionFilterDimension": {
      "properties": {
        "name": {
          "description": "The name of the column to use for the filter. The allowed values are `ChargeType`, `Frequency`, `InvoiceId`, `Meter`, `MeterCategory`, `MeterSubCategory`, `PartNumber`, `PricingModel`, `Product`, `ProductOrderId`, `ProductOrderName`, `PublisherType`, `ReservationId`, `ReservationName`, `ResourceGroupName`, `ResourceGuid`, `ResourceId`, `ResourceLocation`, `ResourceType`, `ServiceFamily`, `ServiceName`, `UnitOfMeasure`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "The operator to use for comparison. The allowed values are `In`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies a list of values for the column.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "values"
      ],
      "type": "object"
    },
    "azure:consumption/BudgetSubscriptionFilterNot:BudgetSubscriptionFilterNot": {
      "properties": {
        "dimension": {
          "$ref": "#/types/azure:consumption/BudgetSubscriptionFilterNotDimension:BudgetSubscriptionFilterNotDimension",
          "description": "One `dimension` block as defined below to filter the budget on. Conflicts with `tag`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tag": {
          "$ref": "#/types/azure:consumption/BudgetSubscriptionFilterNotTag:BudgetSubscriptionFilterNotTag",
          "description": "One `tag` block as defined below to filter the budget on. Conflicts with `dimension`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:consumption/BudgetSubscriptionFilterNotDimension:BudgetSubscriptionFilterNotDimension": {
      "properties": {
        "name": {
          "description": "The name of the column to use for the filter. The allowed values are `ChargeType`, `Frequency`, `InvoiceId`, `Meter`, `MeterCategory`, `MeterSubCategory`, `PartNumber`, `PricingModel`, `Product`, `ProductOrderId`, `ProductOrderName`, `PublisherType`, `ReservationId`, `ReservationName`, `ResourceGroupName`, `ResourceGuid`, `ResourceId`, `ResourceLocation`, `ResourceType`, `ServiceFamily`, `ServiceName`, `UnitOfMeasure`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "The operator to use for comparison. The allowed values are `In`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies a list of values for the column.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "values"
      ],
      "type": "object"
    },
    "azure:consumption/BudgetSubscriptionFilterNotTag:BudgetSubscriptionFilterNotTag": {
      "properties": {
        "name": {
          "description": "The name of the tag to use for the filter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "The operator to use for comparison. The allowed values are `In`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies a list of values for the tag.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "values"
      ],
      "type": "object"
    },
    "azure:consumption/BudgetSubscriptionFilterTag:BudgetSubscriptionFilterTag": {
      "properties": {
        "name": {
          "description": "The name of the tag to use for the filter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "The operator to use for comparison. The allowed values are `In`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies a list of values for the tag.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "values"
      ],
      "type": "object"
    },
    "azure:consumption/BudgetSubscriptionNotification:BudgetSubscriptionNotification": {
      "properties": {
        "contactEmails": {
          "description": "Specifies a list of email addresses to send the budget notification to when the threshold is exceeded.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "contactGroups": {
          "description": "Specifies a list of Action Group IDs to send the budget notification to when the threshold is exceeded.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "contactRoles": {
          "description": "Specifies a list of contact roles to send the budget notification to when the threshold is exceeded.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enabled": {
          "description": "Should the notification be enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "The comparison operator for the notification. Must be one of `EqualTo`, `GreaterThan`, or `GreaterThanOrEqualTo`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "threshold": {
          "description": "Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "operator",
        "threshold"
      ],
      "type": "object"
    },
    "azure:consumption/BudgetSubscriptionTimePeriod:BudgetSubscriptionTimePeriod": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "endDate",
            "startDate"
          ]
        }
      },
      "properties": {
        "endDate": {
          "description": "The end date for the budget. If not set this will be 10 years after the start date.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "startDate": {
          "description": "The start date for the budget. The start date must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period. Changing this forces a new Subscription Consumption Budget to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "startDate"
      ],
      "type": "object"
    },
    "azure:containerservice/GroupContainer:GroupContainer": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "commands",
            "cpu",
            "image",
            "memory",
            "name"
          ]
        }
      },
      "properties": {
        "commands": {
          "description": "A list of commands which should be run on the container. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "cpu": {
          "description": "The required number of CPU cores of the containers. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        },
        "environmentVariables": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A list of environment variables to be set on the container. Specified as a map of name/value pairs. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "gpu": {
          "$ref": "#/types/azure:containerservice/GroupContainerGpu:GroupContainerGpu",
          "description": "A `gpu` block as defined below. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "image": {
          "description": "The container image name. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "livenessProbe": {
          "$ref": "#/types/azure:containerservice/GroupContainerLivenessProbe:GroupContainerLivenessProbe",
          "description": "The definition of a readiness probe for this container as documented in the `liveness_probe` block below. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "memory": {
          "description": "The required memory of the containers in GB. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        },
        "name": {
          "description": "Specifies the name of the Container Group. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ports": {
          "description": "A set of public ports for the container. Changing this forces a new resource to be created. Set as documented in the `ports` block below.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/GroupContainerPort:GroupContainerPort"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "readinessProbe": {
          "$ref": "#/types/azure:containerservice/GroupContainerReadinessProbe:GroupContainerReadinessProbe",
          "description": "The definition of a readiness probe for this container as documented in the `readiness_probe` block below. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "secureEnvironmentVariables": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A list of sensitive environment variables to be set on the container. Specified as a map of name/value pairs. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "volumes": {
          "description": "The definition of a volume mount for this container as documented in the `volume` block below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/GroupContainerVolume:GroupContainerVolume"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "cpu",
        "image",
        "memory",
        "name"
      ],
      "type": "object"
    },
    "azure:containerservice/GroupContainerGpu:GroupContainerGpu": {
      "properties": {
        "count": {
          "description": "The number of GPUs which should be assigned to this container. Allowed values are `1`, `2`, or `4`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "sku": {
          "description": "The Sku which should be used for the GPU. Possible values are `K80`, `P100`, or `V100`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/GroupContainerLivenessProbe:GroupContainerLivenessProbe": {
      "properties": {
        "execs": {
          "description": "Commands to be run to validate container readiness. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "failureThreshold": {
          "description": "How many times to try the probe before restarting the container (liveness probe) or marking the container as unhealthy (readiness probe). The default value is `3` and the minimum value is `1`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "httpGets": {
          "description": "The definition of the http_get for this container as documented in the `http_get` block below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/GroupContainerLivenessProbeHttpGet:GroupContainerLivenessProbeHttpGet"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "initialDelaySeconds": {
          "description": "Number of seconds after the container has started before liveness or readiness probes are initiated. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "periodSeconds": {
          "description": "How often (in seconds) to perform the probe. The default value is `10` and the minimum value is `1`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "successThreshold": {
          "description": "Minimum consecutive successes for the probe to be considered successful after having failed. The default value is `1` and the minimum value is `1`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "timeoutSeconds": {
          "description": "Number of seconds after which the probe times out. The default value is `1` and the minimum value is `1`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:containerservice/GroupContainerLivenessProbeHttpGet:GroupContainerLivenessProbeHttpGet": {
      "properties": {
        "path": {
          "description": "Path to access on the HTTP server. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "port": {
          "description": "The port number the container will expose. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "scheme": {
          "description": "Scheme to use for connecting to the host. Possible values are `Http` and `Https`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/GroupContainerPort:GroupContainerPort": {
      "properties": {
        "port": {
          "description": "The port number the container will expose. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "protocol": {
          "description": "The network protocol associated with port. Possible values are `TCP` \u0026 `UDP`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/GroupContainerReadinessProbe:GroupContainerReadinessProbe": {
      "properties": {
        "execs": {
          "description": "Commands to be run to validate container readiness. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "failureThreshold": {
          "description": "How many times to try the probe before restarting the container (liveness probe) or marking the container as unhealthy (readiness probe). The default value is `3` and the minimum value is `1`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "httpGets": {
          "description": "The definition of the http_get for this container as documented in the `http_get` block below. Changing this forces a new resource to be created.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/GroupContainerReadinessProbeHttpGet:GroupContainerReadinessProbeHttpGet"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "initialDelaySeconds": {
          "description": "Number of seconds after the container has started before liveness or readiness probes are initiated. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "periodSeconds": {
          "description": "How often (in seconds) to perform the probe. The default value is `10` and the minimum value is `1`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "successThreshold": {
          "description": "Minimum consecutive successes for the probe to be considered successful after having failed. The default value is `1` and the minimum value is `1`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "timeoutSeconds": {
          "description": "Number of seconds after which the probe times out. The default value is `1` and the minimum value is `1`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:containerservice/GroupContainerReadinessProbeHttpGet:GroupContainerReadinessProbeHttpGet": {
      "properties": {
        "path": {
          "description": "Path to access on the HTTP server. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "port": {
          "description": "The port number the container will expose. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "scheme": {
          "description": "Scheme to use for connecting to the host. Possible values are `Http` and `Https`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/GroupContainerVolume:GroupContainerVolume": {
      "properties": {
        "emptyDir": {
          "description": "Boolean as to whether the mounted volume should be an empty directory. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "gitRepo": {
          "$ref": "#/types/azure:containerservice/GroupContainerVolumeGitRepo:GroupContainerVolumeGitRepo",
          "description": "A `git_repo` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "mountPath": {
          "description": "The path on which this volume is to be mounted. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Container Group. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "readOnly": {
          "description": "Specify if the volume is to be mounted as read only or not. The default value is `false`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "secret": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of secrets that will be mounted as files in the volume. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "shareName": {
          "description": "The Azure storage share that is to be mounted as a volume. This must be created on the storage account specified as above. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountKey": {
          "description": "The access key for the Azure Storage account specified as above. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountName": {
          "description": "The Azure storage account from which the volume is to be mounted. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mountPath",
        "name"
      ],
      "type": "object"
    },
    "azure:containerservice/GroupContainerVolumeGitRepo:GroupContainerVolumeGitRepo": {
      "properties": {
        "directory": {
          "description": "Specifies the directory into which the repository should be cloned. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "revision": {
          "description": "Specifies the commit hash of the revision to be cloned. If unspecified, the HEAD revision is cloned. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "url": {
          "description": "Specifies the Git repository to be cloned. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "url"
      ],
      "type": "object"
    },
    "azure:containerservice/GroupDiagnostics:GroupDiagnostics": {
      "properties": {
        "logAnalytics": {
          "$ref": "#/types/azure:containerservice/GroupDiagnosticsLogAnalytics:GroupDiagnosticsLogAnalytics",
          "description": "A `log_analytics` block as defined below. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "logAnalytics"
      ],
      "type": "object"
    },
    "azure:containerservice/GroupDiagnosticsLogAnalytics:GroupDiagnosticsLogAnalytics": {
      "properties": {
        "logType": {
          "description": "The log type which should be used. Possible values are `ContainerInsights` and `ContainerInstanceLogs`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Any metadata required for Log Analytics. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "workspaceId": {
          "description": "The Workspace ID of the Log Analytics Workspace. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "workspaceKey": {
          "description": "The Workspace Key of the Log Analytics Workspace. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "workspaceId",
        "workspaceKey"
      ],
      "type": "object"
    },
    "azure:containerservice/GroupDnsConfig:GroupDnsConfig": {
      "properties": {
        "nameservers": {
          "description": "A list of nameservers the containers will search out to resolve requests.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "options": {
          "description": "A list of [resolver configuration options](https://man7.org/linux/man-pages/man5/resolv.conf.5.html).\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "searchDomains": {
          "description": "A list of search domains that DNS requests will search along.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "nameservers",
        "options",
        "searchDomains"
      ],
      "type": "object"
    },
    "azure:containerservice/GroupExposedPort:GroupExposedPort": {
      "properties": {
        "port": {
          "description": "The port number the container will expose. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "protocol": {
          "description": "The network protocol associated with port. Possible values are `TCP` \u0026 `UDP`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/GroupIdentity:GroupIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "Specifies a list of user managed identity ids to be assigned. Required if `type` is `UserAssigned`. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Managed Service Identity Type of this container group. Possible values are `SystemAssigned` (where Azure will generate a Service Principal for you), `UserAssigned` where you can specify the Service Principal IDs in the `identity_ids` field, and `SystemAssigned, UserAssigned` which assigns both a system managed identity as well as the specified user assigned identities. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:containerservice/GroupImageRegistryCredential:GroupImageRegistryCredential": {
      "properties": {
        "password": {
          "description": "The password with which to connect to the registry. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The address to use to connect to the registry without protocol (\"https\"/\"http\"). For example: \"myacr.acr.io\". Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username with which to connect to the registry. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterAddonProfile:KubernetesClusterAddonProfile": {
      "properties": {
        "aciConnectorLinux": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterAddonProfileAciConnectorLinux:KubernetesClusterAddonProfileAciConnectorLinux",
          "description": "A `aci_connector_linux` block. For more details, please visit [Create and configure an AKS cluster to use virtual nodes](https://docs.microsoft.com/en-us/azure/aks/virtual-nodes-portal).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "azurePolicy": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterAddonProfileAzurePolicy:KubernetesClusterAddonProfileAzurePolicy",
          "description": "A `azure_policy` block as defined below. For more details please visit [Understand Azure Policy for Azure Kubernetes Service](https://docs.microsoft.com/en-ie/azure/governance/policy/concepts/rego-for-aks)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpApplicationRouting": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterAddonProfileHttpApplicationRouting:KubernetesClusterAddonProfileHttpApplicationRouting",
          "description": "A `http_application_routing` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "ingressApplicationGateway": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterAddonProfileIngressApplicationGateway:KubernetesClusterAddonProfileIngressApplicationGateway",
          "description": "An `ingress_application_gateway` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "kubeDashboard": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterAddonProfileKubeDashboard:KubernetesClusterAddonProfileKubeDashboard",
          "description": "A `kube_dashboard` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "omsAgent": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterAddonProfileOmsAgent:KubernetesClusterAddonProfileOmsAgent",
          "description": "A `oms_agent` block as defined below. For more details, please visit [How to onboard Azure Monitor for containers](https://docs.microsoft.com/en-us/azure/monitoring/monitoring-container-insights-onboard).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterAddonProfileAciConnectorLinux:KubernetesClusterAddonProfileAciConnectorLinux": {
      "properties": {
        "enabled": {
          "description": "Is the virtual node addon enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "subnetName": {
          "description": "The subnet name for the virtual nodes to run. This is required when `aci_connector_linux` `enabled` argument is set to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterAddonProfileAzurePolicy:KubernetesClusterAddonProfileAzurePolicy": {
      "properties": {
        "enabled": {
          "description": "Is the Azure Policy for Kubernetes Add On enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterAddonProfileHttpApplicationRouting:KubernetesClusterAddonProfileHttpApplicationRouting": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "enabled",
            "httpApplicationRoutingZoneName"
          ]
        }
      },
      "properties": {
        "enabled": {
          "description": "Is HTTP Application Routing Enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "httpApplicationRoutingZoneName": {
          "description": "The Zone Name of the HTTP Application Routing.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterAddonProfileIngressApplicationGateway:KubernetesClusterAddonProfileIngressApplicationGateway": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "effectiveGatewayId",
            "enabled",
            "ingressApplicationGatewayIdentities"
          ]
        }
      },
      "properties": {
        "effectiveGatewayId": {
          "description": "The ID of the Application Gateway associated with the ingress controller deployed to this Kubernetes Cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Whether to deploy the Application Gateway ingress controller to this Kubernetes Cluster?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "gatewayId": {
          "description": "The ID of the Application Gateway to integrate with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/en-us/azure/application-gateway/tutorial-ingress-controller-add-on-existing) page for further details.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "gatewayName": {
          "description": "The name of the Application Gateway to be used or created in the Nodepool Resource Group, which in turn will be integrated with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/en-us/azure/application-gateway/tutorial-ingress-controller-add-on-new) page for further details.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ingressApplicationGatewayIdentities": {
          "description": "An `ingress_application_gateway_identity` block is exported. The exported attributes are defined below.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterAddonProfileIngressApplicationGatewayIngressApplicationGatewayIdentity:KubernetesClusterAddonProfileIngressApplicationGatewayIngressApplicationGatewayIdentity"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetCidr": {
          "description": "The subnet CIDR to be used to create an Application Gateway, which in turn will be integrated with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/en-us/azure/application-gateway/tutorial-ingress-controller-add-on-new) page for further details.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet on which to create an Application Gateway, which in turn will be integrated with the ingress controller of this Kubernetes Cluster. See [this](https://docs.microsoft.com/en-us/azure/application-gateway/tutorial-ingress-controller-add-on-new) page for further details.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterAddonProfileIngressApplicationGatewayIngressApplicationGatewayIdentity:KubernetesClusterAddonProfileIngressApplicationGatewayIngressApplicationGatewayIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "clientId",
            "objectId",
            "userAssignedIdentityId"
          ]
        }
      },
      "properties": {
        "clientId": {
          "description": "The Client ID of the user-defined Managed Identity to be assigned to the Kubelets. If not specified a Managed Identity is created automatically.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "objectId": {
          "description": "The Object ID of the user-defined Managed Identity assigned to the Kubelets.If not specified a Managed Identity is created automatically.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "userAssignedIdentityId": {
          "description": "The ID of a user assigned identity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterAddonProfileKubeDashboard:KubernetesClusterAddonProfileKubeDashboard": {
      "properties": {
        "enabled": {
          "description": "Is the Kubernetes Dashboard enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterAddonProfileOmsAgent:KubernetesClusterAddonProfileOmsAgent": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "enabled",
            "omsAgentIdentities"
          ]
        }
      },
      "properties": {
        "enabled": {
          "description": "Is the OMS Agent Enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace which the OMS Agent should send data to. Must be present if `enabled` is `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "omsAgentIdentities": {
          "description": "An `oms_agent_identity` block is exported. The exported attributes are defined below.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterAddonProfileOmsAgentOmsAgentIdentity:KubernetesClusterAddonProfileOmsAgentOmsAgentIdentity"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterAddonProfileOmsAgentOmsAgentIdentity:KubernetesClusterAddonProfileOmsAgentOmsAgentIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "clientId",
            "objectId",
            "userAssignedIdentityId"
          ]
        }
      },
      "properties": {
        "clientId": {
          "description": "The Client ID of the user-defined Managed Identity to be assigned to the Kubelets. If not specified a Managed Identity is created automatically.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "objectId": {
          "description": "The Object ID of the user-defined Managed Identity assigned to the Kubelets.If not specified a Managed Identity is created automatically.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "userAssignedIdentityId": {
          "description": "The ID of a user assigned identity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterAutoScalerProfile:KubernetesClusterAutoScalerProfile": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "emptyBulkDeleteMax",
            "expander",
            "maxGracefulTerminationSec",
            "newPodScaleUpDelay",
            "scaleDownDelayAfterAdd",
            "scaleDownDelayAfterDelete",
            "scaleDownDelayAfterFailure",
            "scaleDownUnneeded",
            "scaleDownUnready",
            "scaleDownUtilizationThreshold",
            "scanInterval"
          ]
        }
      },
      "properties": {
        "balanceSimilarNodeGroups": {
          "description": "Detect similar node groups and balance the number of nodes between them. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "emptyBulkDeleteMax": {
          "description": "Maximum number of empty nodes that can be deleted at the same time. Defaults to `10`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expander": {
          "description": "Expander to use. Possible values are `least-waste`, `priority`, `most-pods` and `random`. Defaults to `random`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxGracefulTerminationSec": {
          "description": "Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node. Defaults to `600`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxNodeProvisioningTime": {
          "description": "Maximum time the autoscaler waits for a node to be provisioned. Defaults to `15m`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxUnreadyNodes": {
          "description": "Maximum Number of allowed unready nodes. Defaults to `3`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxUnreadyPercentage": {
          "description": "Maximum percentage of unready nodes the cluster autoscaler will stop if the percentage is exceeded. Defaults to `45`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        },
        "newPodScaleUpDelay": {
          "description": "For scenarios like burst/batch scale where you don't want CA to act before the kubernetes scheduler could schedule all the pods, you can tell CA to ignore unscheduled pods before they're a certain age. Defaults to `10s`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scaleDownDelayAfterAdd": {
          "description": "How long after the scale up of AKS nodes the scale down evaluation resumes. Defaults to `10m`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scaleDownDelayAfterDelete": {
          "description": "How long after node deletion that scale down evaluation resumes. Defaults to the value used for `scan_interval`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scaleDownDelayAfterFailure": {
          "description": "How long after scale down failure that scale down evaluation resumes. Defaults to `3m`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scaleDownUnneeded": {
          "description": "How long a node should be unneeded before it is eligible for scale down. Defaults to `10m`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scaleDownUnready": {
          "description": "How long an unready node should be unneeded before it is eligible for scale down. Defaults to `20m`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scaleDownUtilizationThreshold": {
          "description": "Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down. Defaults to `0.5`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scanInterval": {
          "description": "How often the AKS Cluster should be re-evaluated for scale up/down. Defaults to `10s`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "skipNodesWithLocalStorage": {
          "description": "If `true` cluster autoscaler will never delete nodes with pods with local storage, for example, EmptyDir or HostPath. Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "skipNodesWithSystemPods": {
          "description": "If `true` cluster autoscaler will never delete nodes with pods from kube-system (except for DaemonSet or mirror pods). Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterDefaultNodePool:KubernetesClusterDefaultNodePool": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "kubeletDiskType",
            "maxPods",
            "name",
            "nodeCount",
            "nodeLabels",
            "orchestratorVersion",
            "osDiskSizeGb",
            "vmSize"
          ]
        }
      },
      "properties": {
        "availabilityZones": {
          "description": "A list of Availability Zones across which the Node Pool should be spread. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enableAutoScaling": {
          "description": "Should [the Kubernetes Auto Scaler](https://docs.microsoft.com/en-us/azure/aks/cluster-autoscaler) be enabled for this Node Pool? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enableHostEncryption": {
          "description": "Should the nodes in the Default Node Pool have host encryption enabled? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enableNodePublicIp": {
          "description": "Should nodes in this Node Pool have a Public IP Address? Defaults to `false`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "fipsEnabled": {
          "description": "Should the nodes in this Node Pool have Federal Information Processing Standard enabled? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "kubeletConfig": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterDefaultNodePoolKubeletConfig:KubernetesClusterDefaultNodePoolKubeletConfig",
          "description": "A `kubelet_config` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "kubeletDiskType": {
          "description": "The type of disk used by kubelet. At this time the only possible value is `OS`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "linuxOsConfig": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterDefaultNodePoolLinuxOsConfig:KubernetesClusterDefaultNodePoolLinuxOsConfig",
          "description": "A `linux_os_config` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "maxCount": {
          "description": "The maximum number of nodes which should exist in this Node Pool. If specified this must be between `1` and `1000`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxPods": {
          "description": "The maximum number of pods that can run on each agent. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "minCount": {
          "description": "The minimum number of nodes which should exist in this Node Pool. If specified this must be between `1` and `1000`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "The name which should be used for the default Kubernetes Node Pool. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "nodeCount": {
          "description": "The initial number of nodes which should exist in this Node Pool. If specified this must be between `1` and `1000` and between `min_count` and `max_count`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "nodeLabels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of Kubernetes labels which should be applied to nodes in the Default Node Pool. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "nodePublicIpPrefixId": {
          "description": "Resource ID for the Public IP Addresses Prefix for the nodes in this Node Pool. `enable_node_public_ip` should be `true`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "nodeTaints": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "onlyCriticalAddonsEnabled": {
          "description": "Enabling this option will taint default node pool with `CriticalAddonsOnly=true:NoSchedule` taint. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "orchestratorVersion": {
          "description": "Version of Kubernetes used for the Agents. If not specified, the latest recommended version will be used at provisioning time (but won't auto-upgrade)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "osDiskSizeGb": {
          "description": "The size of the OS Disk which should be used for each agent in the Node Pool. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "osDiskType": {
          "description": "The type of disk which should be used for the Operating System. Possible values are `Ephemeral` and `Managed`. Defaults to `Managed`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "osSku": {
          "description": "OsSKU to be used to specify Linux OSType. Not applicable to Windows OSType. Possible values include: `Ubuntu`, `CBLMariner`. Defaults to `Ubuntu`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "podSubnetId": {
          "description": "The ID of the Subnet where the pods in the default Node Pool should exist. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "proximityPlacementGroupId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Node Pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "type": {
          "description": "The type of Node Pool which should be created. Possible values are `AvailabilitySet` and `VirtualMachineScaleSets`. Defaults to `VirtualMachineScaleSets`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ultraSsdEnabled": {
          "description": "Used to specify whether the UltraSSD is enabled in the Default Node Pool. Defaults to `false`. See [the documentation](https://docs.microsoft.com/en-us/azure/aks/use-ultra-disks) for more information.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "upgradeSettings": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterDefaultNodePoolUpgradeSettings:KubernetesClusterDefaultNodePoolUpgradeSettings",
          "description": "A `upgrade_settings` block as documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vmSize": {
          "description": "The size of the Virtual Machine, such as `Standard_DS2_v2`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vnetSubnetId": {
          "description": "The ID of a Subnet where the Kubernetes Node Pool should exist. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterDefaultNodePoolKubeletConfig:KubernetesClusterDefaultNodePoolKubeletConfig": {
      "properties": {
        "allowedUnsafeSysctls": {
          "description": "Specifies the allow list of unsafe sysctls command or patterns (ending in `*`). Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "containerLogMaxLine": {
          "description": "Specifies the maximum number of container log files that can be present for a container. must be at least 2. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "containerLogMaxSizeMb": {
          "description": "Specifies the maximum size (e.g. 10MB) of container log file before it is rotated. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "cpuCfsQuotaEnabled": {
          "description": "Is CPU CFS quota enforcement for containers enabled? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "cpuCfsQuotaPeriod": {
          "description": "Specifies the CPU CFS quota period value. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "cpuManagerPolicy": {
          "description": "Specifies the CPU Manager policy to use. Possible values are `none` and `static`, Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "imageGcHighThreshold": {
          "description": "Specifies the percent of disk usage above which image garbage collection is always run. Must be between `0` and `100`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "imageGcLowThreshold": {
          "description": "Specifies the percent of disk usage lower than which image garbage collection is never run. Must be between `0` and `100`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "podMaxPid": {
          "description": "Specifies the maximum number of processes per pod. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "topologyManagerPolicy": {
          "description": "Specifies the Topology Manager policy to use. Possible values are `none`, `best-effort`, `restricted` or `single-numa-node`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterDefaultNodePoolLinuxOsConfig:KubernetesClusterDefaultNodePoolLinuxOsConfig": {
      "properties": {
        "swapFileSizeMb": {
          "description": "Specifies the size of swap file on each node in MB. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "sysctlConfig": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterDefaultNodePoolLinuxOsConfigSysctlConfig:KubernetesClusterDefaultNodePoolLinuxOsConfigSysctlConfig",
          "description": "A `sysctl_config` block as defined below. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "transparentHugePageDefrag": {
          "description": "specifies the defrag configuration for Transparent Huge Page. Possible values are `always`, `defer`, `defer+madvise`, `madvise` and `never`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "transparentHugePageEnabled": {
          "description": "Specifies the Transparent Huge Page enabled configuration. Possible values are `always`, `madvise` and `never`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterDefaultNodePoolLinuxOsConfigSysctlConfig:KubernetesClusterDefaultNodePoolLinuxOsConfigSysctlConfig": {
      "properties": {
        "fsAioMaxNr": {
          "description": "The sysctl setting fs.aio-max-nr. Must be between `65536` and `6553500`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "fsFileMax": {
          "description": "The sysctl setting fs.file-max. Must be between `8192` and `12000500`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "fsInotifyMaxUserWatches": {
          "description": "The sysctl setting fs.inotify.max_user_watches. Must be between `781250` and `2097152`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "fsNrOpen": {
          "description": "The sysctl setting fs.nr_open. Must be between `8192` and `20000500`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "kernelThreadsMax": {
          "description": "The sysctl setting kernel.threads-max. Must be between `20` and `513785`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netCoreNetdevMaxBacklog": {
          "description": "The sysctl setting net.core.netdev_max_backlog. Must be between `1000` and `3240000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netCoreOptmemMax": {
          "description": "The sysctl setting net.core.optmem_max. Must be between `20480` and `4194304`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netCoreRmemDefault": {
          "description": "The sysctl setting net.core.rmem_default. Must be between `212992` and `134217728`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netCoreRmemMax": {
          "description": "The sysctl setting net.core.rmem_max. Must be between `212992` and `134217728`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netCoreSomaxconn": {
          "description": "The sysctl setting net.core.somaxconn. Must be between `4096` and `3240000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netCoreWmemDefault": {
          "description": "The sysctl setting net.core.wmem_default. Must be between `212992` and `134217728`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netCoreWmemMax": {
          "description": "The sysctl setting net.core.wmem_max. Must be between `212992` and `134217728`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4IpLocalPortRangeMax": {
          "description": "The sysctl setting net.ipv4.ip_local_port_range max value. Must be between `1024` and `60999`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4IpLocalPortRangeMin": {
          "description": "The sysctl setting net.ipv4.ip_local_port_range min value. Must be between `1024` and `60999`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4NeighDefaultGcThresh1": {
          "description": "The sysctl setting net.ipv4.neigh.default.gc_thresh1. Must be between `128` and `80000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4NeighDefaultGcThresh2": {
          "description": "The sysctl setting net.ipv4.neigh.default.gc_thresh2. Must be between `512` and `90000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4NeighDefaultGcThresh3": {
          "description": "The sysctl setting net.ipv4.neigh.default.gc_thresh3. Must be between `1024` and `100000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4TcpFinTimeout": {
          "description": "The sysctl setting net.ipv4.tcp_fin_timeout. Must be between `5` and `120`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4TcpKeepaliveIntvl": {
          "description": "The sysctl setting net.ipv4.tcp_keepalive_intvl. Must be between `10` and `75`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4TcpKeepaliveProbes": {
          "description": "The sysctl setting net.ipv4.tcp_keepalive_probes. Must be between `1` and `15`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4TcpKeepaliveTime": {
          "description": "The sysctl setting net.ipv4.tcp_keepalive_time. Must be between `30` and `432000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4TcpMaxSynBacklog": {
          "description": "The sysctl setting net.ipv4.tcp_max_syn_backlog. Must be between `128` and `3240000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4TcpMaxTwBuckets": {
          "description": "The sysctl setting net.ipv4.tcp_max_tw_buckets. Must be between `8000` and `1440000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4TcpTwReuse": {
          "description": "The sysctl setting net.ipv4.tcp_tw_reuse. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "netNetfilterNfConntrackBuckets": {
          "description": "The sysctl setting net.netfilter.nf_conntrack_buckets. Must be between `65536` and `147456`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netNetfilterNfConntrackMax": {
          "description": "The sysctl setting net.netfilter.nf_conntrack_max. Must be between `131072` and `589824`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "vmMaxMapCount": {
          "description": "The sysctl setting vm.max_map_count. Must be between `65530` and `262144`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "vmSwappiness": {
          "description": "The sysctl setting vm.swappiness. Must be between `0` and `100`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "vmVfsCachePressure": {
          "description": "The sysctl setting vm.vfs_cache_pressure. Must be between `0` and `100`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterDefaultNodePoolUpgradeSettings:KubernetesClusterDefaultNodePoolUpgradeSettings": {
      "properties": {
        "maxSurge": {
          "description": "The maximum number or percentage of nodes which will be added to the Node Pool size during an upgrade.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "maxSurge"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterIdentity:KubernetesClusterIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The principal id of the system assigned identity which is used by main components.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID used for Azure Active Directory Application. If this isn't specified the Tenant ID of the current Subscription is used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of identity used for the managed cluster. Possible values are `SystemAssigned` and `UserAssigned`. If `UserAssigned` is set, a `user_assigned_identity_id` must be set as well.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "userAssignedIdentityId": {
          "description": "The ID of a user assigned identity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterKubeAdminConfig:KubernetesClusterKubeAdminConfig": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "clientCertificate",
            "clientKey",
            "clusterCaCertificate",
            "host",
            "password",
            "username"
          ]
        }
      },
      "properties": {
        "clientCertificate": {
          "description": "Base64 encoded public certificate used by clients to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientKey": {
          "description": "Base64 encoded private key used by clients to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clusterCaCertificate": {
          "description": "Base64 encoded public CA certificate used as the root of trust for the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "host": {
          "description": "The Kubernetes cluster server host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "A password or token used to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "A username used to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterKubeConfig:KubernetesClusterKubeConfig": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "clientCertificate",
            "clientKey",
            "clusterCaCertificate",
            "host",
            "password",
            "username"
          ]
        }
      },
      "properties": {
        "clientCertificate": {
          "description": "Base64 encoded public certificate used by clients to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientKey": {
          "description": "Base64 encoded private key used by clients to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clusterCaCertificate": {
          "description": "Base64 encoded public CA certificate used as the root of trust for the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "host": {
          "description": "The Kubernetes cluster server host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "A password or token used to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "A username used to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterKubeletIdentity:KubernetesClusterKubeletIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "clientId",
            "objectId",
            "userAssignedIdentityId"
          ]
        }
      },
      "properties": {
        "clientId": {
          "description": "The Client ID of the user-defined Managed Identity to be assigned to the Kubelets. If not specified a Managed Identity is created automatically.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "objectId": {
          "description": "The Object ID of the user-defined Managed Identity assigned to the Kubelets.If not specified a Managed Identity is created automatically.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "userAssignedIdentityId": {
          "description": "The ID of the User Assigned Identity assigned to the Kubelets. If not specified a Managed Identity is created automatically.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterLinuxProfile:KubernetesClusterLinuxProfile": {
      "properties": {
        "adminUsername": {
          "description": "The Admin Username for the Cluster. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKey": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterLinuxProfileSshKey:KubernetesClusterLinuxProfileSshKey",
          "description": "An `ssh_key` block. Only one is currently allowed. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "adminUsername",
        "sshKey"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterLinuxProfileSshKey:KubernetesClusterLinuxProfileSshKey": {
      "properties": {
        "keyData": {
          "description": "The Public SSH Key used to access the cluster. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "keyData"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterMaintenanceWindow:KubernetesClusterMaintenanceWindow": {
      "properties": {
        "alloweds": {
          "description": "One or more `allowed` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterMaintenanceWindowAllowed:KubernetesClusterMaintenanceWindowAllowed"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "notAlloweds": {
          "description": "One or more `not_allowed` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/KubernetesClusterMaintenanceWindowNotAllowed:KubernetesClusterMaintenanceWindowNotAllowed"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterMaintenanceWindowAllowed:KubernetesClusterMaintenanceWindowAllowed": {
      "properties": {
        "day": {
          "description": "A day in a week. Possible values are `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` and `Saturday`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hours": {
          "description": "An array of hour slots in a day. Possible values are between `0` and `23`.\n",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "day",
        "hours"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterMaintenanceWindowNotAllowed:KubernetesClusterMaintenanceWindowNotAllowed": {
      "properties": {
        "end": {
          "description": "The end of a time span, formatted as an RFC3339 string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "start": {
          "description": "The start of a time span, formatted as an RFC3339 string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "end",
        "start"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterNetworkProfile:KubernetesClusterNetworkProfile": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dnsServiceIp",
            "dockerBridgeCidr",
            "loadBalancerProfile",
            "networkMode",
            "networkPlugin",
            "networkPolicy",
            "podCidr",
            "serviceCidr"
          ]
        }
      },
      "properties": {
        "dnsServiceIp": {
          "description": "IP address within the Kubernetes service address range that will be used by cluster service discovery (kube-dns). Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "dockerBridgeCidr": {
          "description": "IP address (in CIDR notation) used as the Docker bridge IP address on nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "loadBalancerProfile": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterNetworkProfileLoadBalancerProfile:KubernetesClusterNetworkProfileLoadBalancerProfile",
          "description": "A `load_balancer_profile` block. This can only be specified when `load_balancer_sku` is set to `Standard`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "loadBalancerSku": {
          "description": "Specifies the SKU of the Load Balancer used for this Kubernetes Cluster. Possible values are `Basic` and `Standard`. Defaults to `Standard`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "networkMode": {
          "description": "Network mode to be used with Azure CNI. Possible values are `bridge` and `transparent`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "networkPlugin": {
          "description": "Network plugin to use for networking. Currently supported values are `azure` and `kubenet`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "networkPolicy": {
          "description": "Sets up network policy to be used with Azure CNI. [Network policy allows us to control the traffic flow between pods](https://docs.microsoft.com/en-us/azure/aks/use-network-policies). Currently supported values are `calico` and `azure`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "outboundType": {
          "description": "The outbound (egress) routing method which should be used for this Kubernetes Cluster. Possible values are `loadBalancer` and `userDefinedRouting`. Defaults to `loadBalancer`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "podCidr": {
          "description": "The CIDR to use for pod IP addresses. This field can only be set when `network_plugin` is set to `kubenet`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serviceCidr": {
          "description": "The Network Range used by the Kubernetes service. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "networkPlugin"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterNetworkProfileLoadBalancerProfile:KubernetesClusterNetworkProfileLoadBalancerProfile": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "effectiveOutboundIps",
            "managedOutboundIpCount",
            "outboundIpAddressIds",
            "outboundIpPrefixIds"
          ]
        }
      },
      "properties": {
        "effectiveOutboundIps": {
          "description": "The outcome (resource IDs) of the specified arguments.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "idleTimeoutInMinutes": {
          "description": "Desired outbound flow idle timeout in minutes for the cluster load balancer. Must be between `4` and `120` inclusive. Defaults to `30`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "managedOutboundIpCount": {
          "description": "Count of desired managed outbound IPs for the cluster load balancer. Must be between `1` and `100` inclusive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "outboundIpAddressIds": {
          "description": "The ID of the Public IP Addresses which should be used for outbound communication for the cluster load balancer.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "outboundIpPrefixIds": {
          "description": "The ID of the outbound Public IP Address Prefixes which should be used for the cluster load balancer.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "outboundPortsAllocated": {
          "description": "Number of desired SNAT port for each VM in the clusters load balancer. Must be between `0` and `64000` inclusive. Defaults to `0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterNodePoolKubeletConfig:KubernetesClusterNodePoolKubeletConfig": {
      "properties": {
        "allowedUnsafeSysctls": {
          "description": "Specifies the allow list of unsafe sysctls command or patterns (ending in `*`). Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "containerLogMaxLine": {
          "description": "Specifies the maximum number of container log files that can be present for a container. must be at least 2. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "containerLogMaxSizeMb": {
          "description": "Specifies the maximum size (e.g. 10MB) of container log file before it is rotated. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "cpuCfsQuotaEnabled": {
          "description": "Is CPU CFS quota enforcement for containers enabled? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "cpuCfsQuotaPeriod": {
          "description": "Specifies the CPU CFS quota period value. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "cpuManagerPolicy": {
          "description": "Specifies the CPU Manager policy to use. Possible values are `none` and `static`, Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "imageGcHighThreshold": {
          "description": "Specifies the percent of disk usage above which image garbage collection is always run. Must be between `0` and `100`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "imageGcLowThreshold": {
          "description": "Specifies the percent of disk usage lower than which image garbage collection is never run. Must be between `0` and `100`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "podMaxPid": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "topologyManagerPolicy": {
          "description": "Specifies the Topology Manager policy to use. Possible values are `none`, `best-effort`, `restricted` or `single-numa-node`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterNodePoolLinuxOsConfig:KubernetesClusterNodePoolLinuxOsConfig": {
      "properties": {
        "swapFileSizeMb": {
          "description": "Specifies the size of swap file on each node in MB. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "sysctlConfig": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterNodePoolLinuxOsConfigSysctlConfig:KubernetesClusterNodePoolLinuxOsConfigSysctlConfig",
          "description": "A `sysctl_config` block as defined below. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "transparentHugePageDefrag": {
          "description": "specifies the defrag configuration for Transparent Huge Page. Possible values are `always`, `defer`, `defer+madvise`, `madvise` and `never`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "transparentHugePageEnabled": {
          "description": "Specifies the Transparent Huge Page enabled configuration. Possible values are `always`, `madvise` and `never`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterNodePoolLinuxOsConfigSysctlConfig:KubernetesClusterNodePoolLinuxOsConfigSysctlConfig": {
      "properties": {
        "fsAioMaxNr": {
          "description": "The sysctl setting fs.aio-max-nr. Must be between `65536` and `6553500`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "fsFileMax": {
          "description": "The sysctl setting fs.file-max. Must be between `8192` and `12000500`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "fsInotifyMaxUserWatches": {
          "description": "The sysctl setting fs.inotify.max_user_watches. Must be between `781250` and `2097152`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "fsNrOpen": {
          "description": "The sysctl setting fs.nr_open. Must be between `8192` and `20000500`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "kernelThreadsMax": {
          "description": "The sysctl setting kernel.threads-max. Must be between `20` and `513785`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netCoreNetdevMaxBacklog": {
          "description": "The sysctl setting net.core.netdev_max_backlog. Must be between `1000` and `3240000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netCoreOptmemMax": {
          "description": "The sysctl setting net.core.optmem_max. Must be between `20480` and `4194304`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netCoreRmemDefault": {
          "description": "The sysctl setting net.core.rmem_default. Must be between `212992` and `134217728`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netCoreRmemMax": {
          "description": "The sysctl setting net.core.rmem_max. Must be between `212992` and `134217728`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netCoreSomaxconn": {
          "description": "The sysctl setting net.core.somaxconn. Must be between `4096` and `3240000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netCoreWmemDefault": {
          "description": "The sysctl setting net.core.wmem_default. Must be between `212992` and `134217728`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netCoreWmemMax": {
          "description": "The sysctl setting net.core.wmem_max. Must be between `212992` and `134217728`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4IpLocalPortRangeMax": {
          "description": "The sysctl setting net.ipv4.ip_local_port_range max value. Must be between `1024` and `60999`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4IpLocalPortRangeMin": {
          "description": "The sysctl setting net.ipv4.ip_local_port_range min value. Must be between `1024` and `60999`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4NeighDefaultGcThresh1": {
          "description": "The sysctl setting net.ipv4.neigh.default.gc_thresh1. Must be between `128` and `80000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4NeighDefaultGcThresh2": {
          "description": "The sysctl setting net.ipv4.neigh.default.gc_thresh2. Must be between `512` and `90000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4NeighDefaultGcThresh3": {
          "description": "The sysctl setting net.ipv4.neigh.default.gc_thresh3. Must be between `1024` and `100000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4TcpFinTimeout": {
          "description": "The sysctl setting net.ipv4.tcp_fin_timeout. Must be between `5` and `120`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4TcpKeepaliveIntvl": {
          "description": "The sysctl setting net.ipv4.tcp_keepalive_intvl. Must be between `10` and `75`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4TcpKeepaliveProbes": {
          "description": "The sysctl setting net.ipv4.tcp_keepalive_probes. Must be between `1` and `15`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4TcpKeepaliveTime": {
          "description": "The sysctl setting net.ipv4.tcp_keepalive_time. Must be between `30` and `432000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4TcpMaxSynBacklog": {
          "description": "The sysctl setting net.ipv4.tcp_max_syn_backlog. Must be between `128` and `3240000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4TcpMaxTwBuckets": {
          "description": "The sysctl setting net.ipv4.tcp_max_tw_buckets. Must be between `8000` and `1440000`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netIpv4TcpTwReuse": {
          "description": "Is sysctl setting net.ipv4.tcp_tw_reuse enabled? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "netNetfilterNfConntrackBuckets": {
          "description": "The sysctl setting net.netfilter.nf_conntrack_buckets. Must be between `65536` and `147456`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "netNetfilterNfConntrackMax": {
          "description": "The sysctl setting net.netfilter.nf_conntrack_max. Must be between `131072` and `589824`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "vmMaxMapCount": {
          "description": "The sysctl setting vm.max_map_count. Must be between `65530` and `262144`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "vmSwappiness": {
          "description": "The sysctl setting vm.swappiness. Must be between `0` and `100`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "vmVfsCachePressure": {
          "description": "The sysctl setting vm.vfs_cache_pressure. Must be between `0` and `100`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterNodePoolUpgradeSettings:KubernetesClusterNodePoolUpgradeSettings": {
      "properties": {
        "maxSurge": {
          "description": "The maximum number or percentage of nodes which will be added to the Node Pool size during an upgrade.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "maxSurge"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterRoleBasedAccessControl:KubernetesClusterRoleBasedAccessControl": {
      "properties": {
        "azureActiveDirectory": {
          "$ref": "#/types/azure:containerservice/KubernetesClusterRoleBasedAccessControlAzureActiveDirectory:KubernetesClusterRoleBasedAccessControlAzureActiveDirectory",
          "description": "An `azure_active_directory` block.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enabled": {
          "description": "Is Role Based Access Control Enabled? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterRoleBasedAccessControlAzureActiveDirectory:KubernetesClusterRoleBasedAccessControlAzureActiveDirectory": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "tenantId"
          ]
        }
      },
      "properties": {
        "adminGroupObjectIds": {
          "description": "A list of Object IDs of Azure Active Directory Groups which should have Admin Role on the Cluster.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "azureRbacEnabled": {
          "description": "Is Role Based Access Control based on Azure AD enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "clientAppId": {
          "description": "The Client ID of an Azure Active Directory Application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "managed": {
          "description": "Is the Azure Active Directory integration Managed, meaning that Azure will create/manage the Service Principal used for integration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "serverAppId": {
          "description": "The Server ID of an Azure Active Directory Application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serverAppSecret": {
          "description": "The Server Secret of an Azure Active Directory Application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID used for Azure Active Directory Application. If this isn't specified the Tenant ID of the current Subscription is used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterServicePrincipal:KubernetesClusterServicePrincipal": {
      "properties": {
        "clientId": {
          "description": "The Client ID for the Service Principal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientSecret": {
          "description": "The Client Secret for the Service Principal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "clientId",
        "clientSecret"
      ],
      "type": "object"
    },
    "azure:containerservice/KubernetesClusterWindowsProfile:KubernetesClusterWindowsProfile": {
      "properties": {
        "adminPassword": {
          "description": "The Admin Password for Windows VMs. Length must be between 14 and 123 characters.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "adminUsername": {
          "description": "The Admin Username for Windows VMs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "license": {
          "description": "Specifies the type of on-premise license which should be used for Node Pool Windows Virtual Machine. At this time the only possible value is `Windows_Server`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "adminUsername"
      ],
      "type": "object"
    },
    "azure:containerservice/RegistryEncryption:RegistryEncryption": {
      "properties": {
        "enabled": {
          "description": "Boolean value that indicates whether encryption is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "identityClientId": {
          "description": "The client ID of the managed identity associated with the encryption key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultKeyId": {
          "description": "The ID of the Key Vault Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "identityClientId",
        "keyVaultKeyId"
      ],
      "type": "object"
    },
    "azure:containerservice/RegistryGeoreplication:RegistryGeoreplication": {
      "properties": {
        "location": {
          "description": "A location where the container registry should be geo-replicated.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to this replication location.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "zoneRedundancyEnabled": {
          "description": "Whether zone redundancy is enabled for this replication location? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "location"
      ],
      "type": "object"
    },
    "azure:containerservice/RegistryIdentity:RegistryIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "A list of User Managed Identity ID's which should be assigned to the Container Registry.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this Container Registry.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Managed Service Identity of this Container Registry.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of Managed Identity which should be assigned to the Container Registry. Possible values are `SystemAssigned`, `UserAssigned` and `SystemAssigned, UserAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:containerservice/RegistryNetworkRuleSet:RegistryNetworkRuleSet": {
      "properties": {
        "defaultAction": {
          "description": "The behaviour for requests matching no rules. Either `Allow` or `Deny`. Defaults to `Allow`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipRules": {
          "description": "One or more `ip_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/RegistryNetworkRuleSetIpRule:RegistryNetworkRuleSetIpRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "virtualNetworks": {
          "description": "One or more `virtual_network` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/RegistryNetworkRuleSetVirtualNetwork:RegistryNetworkRuleSetVirtualNetwork"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:containerservice/RegistryNetworkRuleSetIpRule:RegistryNetworkRuleSetIpRule": {
      "properties": {
        "action": {
          "description": "The behaviour for requests matching this rule. At this time the only supported value is `Allow`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipRange": {
          "description": "The CIDR block from which requests will match the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "ipRange"
      ],
      "type": "object"
    },
    "azure:containerservice/RegistryNetworkRuleSetVirtualNetwork:RegistryNetworkRuleSetVirtualNetwork": {
      "properties": {
        "action": {
          "description": "The behaviour for requests matching this rule. At this time the only supported value is `Allow`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The subnet id from which requests will match the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:containerservice/RegistryRetentionPolicy:RegistryRetentionPolicy": {
      "properties": {
        "days": {
          "description": "The number of days to retain an untagged manifest after which it gets purged. Default is `7`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "enabled": {
          "description": "Boolean value that indicates whether the policy is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:containerservice/RegistryTrustPolicy:RegistryTrustPolicy": {
      "properties": {
        "enabled": {
          "description": "Boolean value that indicates whether the policy is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:containerservice/getClusterNodePoolUpgradeSetting:getClusterNodePoolUpgradeSetting": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "maxSurge": {
          "description": "The maximum number or percentage of nodes which will be added to the Node Pool size during an upgrade.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "maxSurge"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterAddonProfile:getKubernetesClusterAddonProfile": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "azurePolicies": {
          "description": "A `azure_policy` block.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/getKubernetesClusterAddonProfileAzurePolicy:getKubernetesClusterAddonProfileAzurePolicy"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "httpApplicationRoutings": {
          "description": "A `http_application_routing` block.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/getKubernetesClusterAddonProfileHttpApplicationRouting:getKubernetesClusterAddonProfileHttpApplicationRouting"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ingressApplicationGateways": {
          "description": "An `ingress_application_gateway` block.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/getKubernetesClusterAddonProfileIngressApplicationGateway:getKubernetesClusterAddonProfileIngressApplicationGateway"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "kubeDashboards": {
          "description": "A `kube_dashboard` block.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/getKubernetesClusterAddonProfileKubeDashboard:getKubernetesClusterAddonProfileKubeDashboard"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "omsAgents": {
          "description": "A `oms_agent` block.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/getKubernetesClusterAddonProfileOmsAgent:getKubernetesClusterAddonProfileOmsAgent"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "azurePolicies",
        "httpApplicationRoutings",
        "ingressApplicationGateways",
        "kubeDashboards",
        "omsAgents"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterAddonProfileAzurePolicy:getKubernetesClusterAddonProfileAzurePolicy": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "enabled": {
          "description": "Is Role Based Access Control enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterAddonProfileHttpApplicationRouting:getKubernetesClusterAddonProfileHttpApplicationRouting": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "enabled": {
          "description": "Is Role Based Access Control enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "httpApplicationRoutingZoneName": {
          "description": "The Zone Name of the HTTP Application Routing.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "httpApplicationRoutingZoneName"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterAddonProfileIngressApplicationGateway:getKubernetesClusterAddonProfileIngressApplicationGateway": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "effectiveGatewayId": {
          "description": "The ID of the Application Gateway associated with the ingress controller deployed to this Kubernetes Cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Is Role Based Access Control enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "gatewayId": {
          "description": "The ID of the Application Gateway integrated with the ingress controller of this Kubernetes Cluster. This attribute is only set when gateway_id is specified when configuring the `ingress_application_gateway` addon.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ingressApplicationGatewayIdentities": {
          "description": "An `ingress_application_gateway_identity` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/getKubernetesClusterAddonProfileIngressApplicationGatewayIngressApplicationGatewayIdentity:getKubernetesClusterAddonProfileIngressApplicationGatewayIngressApplicationGatewayIdentity"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetCidr": {
          "description": "The subnet CIDR used to create an Application Gateway, which in turn will be integrated with the ingress controller of this Kubernetes Cluster. This attribute is only set when `subnet_cidr` is specified when configuring the `ingress_application_gateway` addon.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet on which to create an Application Gateway, which in turn will be integrated with the ingress controller of this Kubernetes Cluster. This attribute is only set when `subnet_id` is specified when configuring the `ingress_application_gateway` addon.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "effectiveGatewayId",
        "enabled",
        "gatewayId",
        "ingressApplicationGatewayIdentities",
        "subnetCidr",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterAddonProfileIngressApplicationGatewayIngressApplicationGatewayIdentity:getKubernetesClusterAddonProfileIngressApplicationGatewayIngressApplicationGatewayIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "clientId": {
          "description": "The Client ID of the user-defined Managed Identity assigned to the Kubelets.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "objectId": {
          "description": "The Object ID of the user-defined Managed Identity assigned to the Kubelets.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "userAssignedIdentityId": {
          "description": "The ID of the User Assigned Identity assigned to the Kubelets.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "clientId",
        "objectId",
        "userAssignedIdentityId"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterAddonProfileKubeDashboard:getKubernetesClusterAddonProfileKubeDashboard": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "enabled": {
          "description": "Is Role Based Access Control enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterAddonProfileOmsAgent:getKubernetesClusterAddonProfileOmsAgent": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "enabled": {
          "description": "Is Role Based Access Control enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "logAnalyticsWorkspaceId": {
          "description": "The ID of the Log Analytics Workspace which the OMS Agent should send data to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "omsAgentIdentities": {
          "description": "An `oms_agent_identity` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/getKubernetesClusterAddonProfileOmsAgentOmsAgentIdentity:getKubernetesClusterAddonProfileOmsAgentOmsAgentIdentity"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "enabled",
        "logAnalyticsWorkspaceId",
        "omsAgentIdentities"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterAddonProfileOmsAgentOmsAgentIdentity:getKubernetesClusterAddonProfileOmsAgentOmsAgentIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "clientId": {
          "description": "The Client ID of the user-defined Managed Identity assigned to the Kubelets.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "objectId": {
          "description": "The Object ID of the user-defined Managed Identity assigned to the Kubelets.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "userAssignedIdentityId": {
          "description": "The ID of the User Assigned Identity assigned to the Kubelets.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "clientId",
        "objectId",
        "userAssignedIdentityId"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterAgentPoolProfile:getKubernetesClusterAgentPoolProfile": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "availabilityZones": {
          "description": "The availability zones used for the nodes.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "count": {
          "description": "The number of Agents (VM's) in the Pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "enableAutoScaling": {
          "description": "If the auto-scaler is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "enableNodePublicIp": {
          "description": "If the Public IPs for the nodes in this Agent Pool are enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "maxCount": {
          "description": "Maximum number of nodes for auto-scaling\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxPods": {
          "description": "The maximum number of pods that can run on each agent.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "minCount": {
          "description": "Minimum number of nodes for auto-scaling\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "The name of the managed Kubernetes Cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "nodeLabels": {
          "additionalProperties": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "nodePublicIpPrefixId": {
          "description": "Resource ID for the Public IP Addresses Prefix for the nodes in this Agent Pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "nodeTaints": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "orchestratorVersion": {
          "description": "Kubernetes version used for the Agents.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "osDiskSizeGb": {
          "description": "The size of the Agent VM's Operating System Disk in GB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "osType": {
          "description": "The Operating System used for the Agents.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "type": {
          "description": "The type of identity used for the managed cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "upgradeSettings": {
          "description": "A `upgrade_settings` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/getKubernetesClusterAgentPoolProfileUpgradeSetting:getKubernetesClusterAgentPoolProfileUpgradeSetting"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "vmSize": {
          "description": "The size of each VM in the Agent Pool (e.g. `Standard_F1`).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vnetSubnetId": {
          "description": "The ID of the Subnet where the Agents in the Pool are provisioned.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "availabilityZones",
        "count",
        "enableAutoScaling",
        "enableNodePublicIp",
        "maxCount",
        "maxPods",
        "minCount",
        "name",
        "nodeLabels",
        "nodePublicIpPrefixId",
        "nodeTaints",
        "orchestratorVersion",
        "osDiskSizeGb",
        "osType",
        "tags",
        "type",
        "upgradeSettings",
        "vmSize",
        "vnetSubnetId"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterAgentPoolProfileUpgradeSetting:getKubernetesClusterAgentPoolProfileUpgradeSetting": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "maxSurge": {
          "description": "The maximum number or percentage of nodes which will be added to the Node Pool size during an upgrade.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "maxSurge"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterIdentity:getKubernetesClusterIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "principalId": {
          "description": "The principal id of the system assigned identity which is used by primary components.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The tenant id of the system assigned identity which is used by primary components.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of identity used for the managed cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "userAssignedIdentityId": {
          "description": "The ID of the User Assigned Identity assigned to the Kubelets.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "tenantId",
        "type",
        "userAssignedIdentityId"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterKubeAdminConfig:getKubernetesClusterKubeAdminConfig": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "clientCertificate": {
          "description": "Base64 encoded public certificate used by clients to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientKey": {
          "description": "Base64 encoded private key used by clients to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clusterCaCertificate": {
          "description": "Base64 encoded public CA certificate used as the root of trust for the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "host": {
          "description": "The Kubernetes cluster server host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "A password or token used to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "A username used to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "clientCertificate",
        "clientKey",
        "clusterCaCertificate",
        "host",
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterKubeConfig:getKubernetesClusterKubeConfig": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "clientCertificate": {
          "description": "Base64 encoded public certificate used by clients to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientKey": {
          "description": "Base64 encoded private key used by clients to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clusterCaCertificate": {
          "description": "Base64 encoded public CA certificate used as the root of trust for the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "host": {
          "description": "The Kubernetes cluster server host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "A password or token used to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "A username used to authenticate to the Kubernetes cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "clientCertificate",
        "clientKey",
        "clusterCaCertificate",
        "host",
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterKubeletIdentity:getKubernetesClusterKubeletIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "clientId": {
          "description": "The Client ID of the user-defined Managed Identity assigned to the Kubelets.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "objectId": {
          "description": "The Object ID of the user-defined Managed Identity assigned to the Kubelets.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "userAssignedIdentityId": {
          "description": "The ID of the User Assigned Identity assigned to the Kubelets.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "clientId",
        "objectId",
        "userAssignedIdentityId"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterLinuxProfile:getKubernetesClusterLinuxProfile": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "adminUsername": {
          "description": "The username associated with the administrator account of the Windows VMs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "An `ssh_key` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/getKubernetesClusterLinuxProfileSshKey:getKubernetesClusterLinuxProfileSshKey"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "adminUsername",
        "sshKeys"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterLinuxProfileSshKey:getKubernetesClusterLinuxProfileSshKey": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "keyData": {
          "description": "The Public SSH Key used to access the cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "keyData"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterNetworkProfile:getKubernetesClusterNetworkProfile": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "dnsServiceIp": {
          "description": "IP address within the Kubernetes service address range used by cluster service discovery (kube-dns).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "dockerBridgeCidr": {
          "description": "IP address (in CIDR notation) used as the Docker bridge IP address on nodes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "loadBalancerSku": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "networkPlugin": {
          "description": "Network plugin used such as `azure` or `kubenet`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "networkPolicy": {
          "description": "Network policy to be used with Azure CNI. Eg: `calico` or `azure`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "podCidr": {
          "description": "The CIDR used for pod IP addresses.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serviceCidr": {
          "description": "Network range used by the Kubernetes service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "dnsServiceIp",
        "dockerBridgeCidr",
        "loadBalancerSku",
        "networkPlugin",
        "networkPolicy",
        "podCidr",
        "serviceCidr"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterRoleBasedAccessControl:getKubernetesClusterRoleBasedAccessControl": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "azureActiveDirectories": {
          "description": "A `azure_active_directory` block as documented above.\n",
          "items": {
            "$ref": "#/types/azure:containerservice/getKubernetesClusterRoleBasedAccessControlAzureActiveDirectory:getKubernetesClusterRoleBasedAccessControlAzureActiveDirectory"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enabled": {
          "description": "Is Role Based Access Control enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "azureActiveDirectories",
        "enabled"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterRoleBasedAccessControlAzureActiveDirectory:getKubernetesClusterRoleBasedAccessControlAzureActiveDirectory": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "adminGroupObjectIds": {
          "description": "The list of Object IDs of Azure Active Directory Groups which have Admin Role on the Cluster (when using a Managed integration).\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "clientAppId": {
          "description": "The Client ID of an Azure Active Directory Application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "managed": {
          "description": "Is the Azure Active Directory Integration managed (also known as AAD Integration V2)?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "serverAppId": {
          "description": "The Server ID of an Azure Active Directory Application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The tenant id of the system assigned identity which is used by primary components.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "adminGroupObjectIds",
        "clientAppId",
        "managed",
        "serverAppId",
        "tenantId"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterServicePrincipal:getKubernetesClusterServicePrincipal": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "clientId": {
          "description": "The Client ID of the user-defined Managed Identity assigned to the Kubelets.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "clientId"
      ],
      "type": "object"
    },
    "azure:containerservice/getKubernetesClusterWindowsProfile:getKubernetesClusterWindowsProfile": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "adminUsername": {
          "description": "The username associated with the administrator account of the Windows VMs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "adminUsername"
      ],
      "type": "object"
    },
    "azure:core/CustomProviderAction:CustomProviderAction": {
      "properties": {
        "endpoint": {
          "description": "Specifies the endpoint of the action.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the action.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "endpoint",
        "name"
      ],
      "type": "object"
    },
    "azure:core/CustomProviderResourceType:CustomProviderResourceType": {
      "properties": {
        "endpoint": {
          "description": "Specifies the endpoint of the route definition.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the route definition.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "routingType": {
          "description": "The routing type that is supported for the resource request. Valid values are `ResourceTypeRoutingProxy` or `ResourceTypeRoutingProxyCache`. This value defaults to `ResourceTypeRoutingProxy`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "endpoint",
        "name"
      ],
      "type": "object"
    },
    "azure:core/CustomProviderValidation:CustomProviderValidation": {
      "properties": {
        "specification": {
          "description": "The endpoint where the validation specification is located.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "specification"
      ],
      "type": "object"
    },
    "azure:core/ResourceGroupPolicyAssignmentIdentity:ResourceGroupPolicyAssignmentIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID of the Policy Assignment for this Resource Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID of the Policy Assignment for this Resource Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Managed Identity which should be added to this Policy Definition. The only possible value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:core/ResourcePolicyAssignmentIdentity:ResourcePolicyAssignmentIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID of the Policy Assignment for this Resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID of the Policy Assignment for this Resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Managed Identity which should be added to this Policy Definition. The only possible value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:core/SubscriptionPolicyAssignmentIdentity:SubscriptionPolicyAssignmentIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID of the Policy Assignment for this Subscription.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID of the Policy Assignment for this Subscription.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Managed Identity which should be added to this Policy Definition. The only possible value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:core/getResourcesResource:getResourcesResource": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "id": {
          "description": "The ID of this Resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "location": {
          "description": "The Azure Region in which this Resource exists.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of tags assigned to this Resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "type": {
          "description": "The Resource Type of the Resources you want to list (e.g. `Microsoft.Network/virtualNetworks`). A full list of available Resource Types can be found [here](https://docs.microsoft.com/en-us/azure/azure-resource-manager/azure-services-resource-providers).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "id",
        "location",
        "name",
        "tags",
        "type"
      ],
      "type": "object"
    },
    "azure:core/getSubscriptionsSubscription:getSubscriptionsSubscription": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "displayName": {
          "description": "The subscription display name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of this subscription.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "locationPlacementId": {
          "description": "The subscription location placement ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "quotaId": {
          "description": "The subscription quota ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "spendingLimit": {
          "description": "The subscription spending limit.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "state": {
          "description": "The subscription state. Possible values are Enabled, Warned, PastDue, Disabled, and Deleted.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subscriptionId": {
          "description": "The subscription GUID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags assigned to the resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "tenantId": {
          "description": "The subscription tenant ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "displayName",
        "id",
        "locationPlacementId",
        "quotaId",
        "spendingLimit",
        "state",
        "subscriptionId",
        "tags",
        "tenantId"
      ],
      "type": "object"
    },
    "azure:cosmosdb/AccountBackup:AccountBackup": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "intervalInMinutes",
            "retentionInHours",
            "type"
          ]
        }
      },
      "properties": {
        "intervalInMinutes": {
          "description": "The interval in minutes between two backups. This is configurable only when `type` is `Periodic`. Possible values are between 60 and 1440.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "retentionInHours": {
          "description": "The time in hours that each backup is retained. This is configurable only when `type` is `Periodic`. Possible values are between 8 and 720.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "type": {
          "description": "The type of the `backup`. Possible values are `Continuous` and `Periodic`. Defaults to `Periodic`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:cosmosdb/AccountCapability:AccountCapability": {
      "properties": {
        "name": {
          "description": "Specifies the name of the CosmosDB Account. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:cosmosdb/AccountConsistencyPolicy:AccountConsistencyPolicy": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "consistencyLevel",
            "maxIntervalInSeconds",
            "maxStalenessPrefix"
          ]
        }
      },
      "properties": {
        "consistencyLevel": {
          "description": "The Consistency Level to use for this CosmosDB Account - can be either `BoundedStaleness`, `Eventual`, `Session`, `Strong` or `ConsistentPrefix`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxIntervalInSeconds": {
          "description": "When used with the Bounded Staleness consistency level, this value represents the time amount of staleness (in seconds) tolerated. Accepted range for this value is `5` - `86400` (1 day). Defaults to `5`. Required when `consistency_level` is set to `BoundedStaleness`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxStalenessPrefix": {
          "description": "When used with the Bounded Staleness consistency level, this value represents the number of stale requests tolerated. Accepted range for this value is `10` – `2147483647`. Defaults to `100`. Required when `consistency_level` is set to `BoundedStaleness`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "consistencyLevel"
      ],
      "type": "object"
    },
    "azure:cosmosdb/AccountCorsRule:AccountCorsRule": {
      "properties": {
        "allowedHeaders": {
          "description": "A list of headers that are allowed to be a part of the cross-origin request.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "allowedMethods": {
          "description": "A list of http headers that are allowed to be executed by the origin. Valid options are  `DELETE`, `GET`, `HEAD`, `MERGE`, `POST`, `OPTIONS`, `PUT` or `PATCH`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "allowedOrigins": {
          "description": "A list of origin domains that will be allowed by CORS.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "exposedHeaders": {
          "description": "A list of response headers that are exposed to CORS clients.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "maxAgeInSeconds": {
          "description": "The number of seconds the client should cache a preflight response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "allowedHeaders",
        "allowedMethods",
        "allowedOrigins",
        "exposedHeaders",
        "maxAgeInSeconds"
      ],
      "type": "object"
    },
    "azure:cosmosdb/AccountGeoLocation:AccountGeoLocation": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "failoverPriority",
            "id",
            "location"
          ]
        }
      },
      "properties": {
        "failoverPriority": {
          "description": "The failover priority of the region. A failover priority of `0` indicates a write region. The maximum value for a failover priority = (total number of regions - 1). Failover priority values must be unique for each of the regions in which the database account exists. Changing this causes the location to be re-provisioned and cannot be changed for the location with failover priority `0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "id": {
          "description": "The ID of the virtual network subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "location": {
          "description": "The name of the Azure region to host replicated data.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "prefix": {
          "deprecationMessage": "This is deprecated because the service no longer accepts this as an input since Apr 25, 2019",
          "description": "The string used to generate the document endpoints for this region. If not specified it defaults to `${cosmosdb_account.name}-${location}`. Changing this causes the location to be deleted and re-provisioned and cannot be changed for the location with failover priority `0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "zoneRedundant": {
          "description": "Should zone redundancy be enabled for this region? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "failoverPriority",
        "location"
      ],
      "type": "object"
    },
    "azure:cosmosdb/AccountIdentity:AccountIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID associated with this Managed Service Identity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID associated with this Managed Service Identity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the type of Managed Service Identity that should be configured on this Cosmos Account. Possible value is only `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:cosmosdb/AccountVirtualNetworkRule:AccountVirtualNetworkRule": {
      "properties": {
        "id": {
          "description": "The ID of the virtual network subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ignoreMissingVnetServiceEndpoint": {
          "description": "If set to true, the specified subnet will be added as a virtual network rule even if its CosmosDB service endpoint is not active. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "azure:cosmosdb/CassandraKeyspaceAutoscaleSettings:CassandraKeyspaceAutoscaleSettings": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "maxThroughput"
          ]
        }
      },
      "properties": {
        "maxThroughput": {
          "description": "The maximum throughput of the Cassandra KeySpace (RU/s). Must be between `4,000` and `1,000,000`. Must be set in increments of `1,000`. Conflicts with `throughput`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:cosmosdb/CassandraTableAutoscaleSettings:CassandraTableAutoscaleSettings": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "maxThroughput"
          ]
        }
      },
      "properties": {
        "maxThroughput": {
          "description": "The maximum throughput of the Cassandra Table (RU/s). Must be between `4,000` and `1,000,000`. Must be set in increments of `1,000`. Conflicts with `throughput`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:cosmosdb/CassandraTableSchema:CassandraTableSchema": {
      "properties": {
        "clusterKeys": {
          "description": "One or more `cluster_key` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/CassandraTableSchemaClusterKey:CassandraTableSchemaClusterKey"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "columns": {
          "description": "One or more `column` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/CassandraTableSchemaColumn:CassandraTableSchemaColumn"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "partitionKeys": {
          "description": "One or more `partition_key` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/CassandraTableSchemaPartitionKey:CassandraTableSchemaPartitionKey"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "columns",
        "partitionKeys"
      ],
      "type": "object"
    },
    "azure:cosmosdb/CassandraTableSchemaClusterKey:CassandraTableSchemaClusterKey": {
      "properties": {
        "name": {
          "description": "Name of the cluster key to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "orderBy": {
          "description": "Order of the key. Currently supported values are `Asc` and `Desc`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "orderBy"
      ],
      "type": "object"
    },
    "azure:cosmosdb/CassandraTableSchemaColumn:CassandraTableSchemaColumn": {
      "properties": {
        "name": {
          "description": "Name of the column to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Type of the column to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "type"
      ],
      "type": "object"
    },
    "azure:cosmosdb/CassandraTableSchemaPartitionKey:CassandraTableSchemaPartitionKey": {
      "properties": {
        "name": {
          "description": "Name of the column to partition by.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:cosmosdb/GremlinDatabaseAutoscaleSettings:GremlinDatabaseAutoscaleSettings": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "maxThroughput"
          ]
        }
      },
      "properties": {
        "maxThroughput": {
          "description": "The maximum throughput of the Gremlin database (RU/s). Must be between `4,000` and `1,000,000`. Must be set in increments of `1,000`. Conflicts with `throughput`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:cosmosdb/GremlinGraphAutoscaleSettings:GremlinGraphAutoscaleSettings": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "maxThroughput"
          ]
        }
      },
      "properties": {
        "maxThroughput": {
          "description": "The maximum throughput of the Gremlin graph (RU/s). Must be between `4,000` and `1,000,000`. Must be set in increments of `1,000`. Conflicts with `throughput`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:cosmosdb/GremlinGraphConflictResolutionPolicy:GremlinGraphConflictResolutionPolicy": {
      "properties": {
        "conflictResolutionPath": {
          "description": "The conflict resolution path in the case of LastWriterWins mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "conflictResolutionProcedure": {
          "description": "The procedure to resolve conflicts in the case of custom mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "mode": {
          "description": "Indicates the conflict resolution mode. Possible values include: `LastWriterWins`, `Custom`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode"
      ],
      "type": "object"
    },
    "azure:cosmosdb/GremlinGraphIndexPolicy:GremlinGraphIndexPolicy": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "excludedPaths",
            "includedPaths",
            "indexingMode"
          ]
        }
      },
      "properties": {
        "automatic": {
          "description": "Indicates if the indexing policy is automatic. Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "compositeIndices": {
          "description": "One or more `composite_index` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/GremlinGraphIndexPolicyCompositeIndex:GremlinGraphIndexPolicyCompositeIndex"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "excludedPaths": {
          "description": "List of paths to exclude from indexing. Required if `indexing_mode` is `Consistent` or `Lazy`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "includedPaths": {
          "description": "List of paths to include in the indexing. Required if `indexing_mode` is `Consistent` or `Lazy`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "indexingMode": {
          "description": "Indicates the indexing mode. Possible values include: `Consistent`, `Lazy`, `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "spatialIndices": {
          "description": "One or more `spatial_index` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/GremlinGraphIndexPolicySpatialIndex:GremlinGraphIndexPolicySpatialIndex"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "indexingMode"
      ],
      "type": "object"
    },
    "azure:cosmosdb/GremlinGraphIndexPolicyCompositeIndex:GremlinGraphIndexPolicyCompositeIndex": {
      "properties": {
        "indices": {
          "description": "One or more `index` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/GremlinGraphIndexPolicyCompositeIndexIndex:GremlinGraphIndexPolicyCompositeIndexIndex"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "indices"
      ],
      "type": "object"
    },
    "azure:cosmosdb/GremlinGraphIndexPolicyCompositeIndexIndex:GremlinGraphIndexPolicyCompositeIndexIndex": {
      "properties": {
        "order": {
          "description": "Order of the index. Possible values are `Ascending` or `Descending`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "Path for which the indexing behaviour applies to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "order",
        "path"
      ],
      "type": "object"
    },
    "azure:cosmosdb/GremlinGraphIndexPolicySpatialIndex:GremlinGraphIndexPolicySpatialIndex": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "path",
            "types"
          ]
        }
      },
      "properties": {
        "path": {
          "description": "Path for which the indexing behaviour applies to. According to the service design, all spatial types including `LineString`, `MultiPolygon`, `Point`, and `Polygon` will be applied to the path.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "types": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "path"
      ],
      "type": "object"
    },
    "azure:cosmosdb/GremlinGraphUniqueKey:GremlinGraphUniqueKey": {
      "properties": {
        "paths": {
          "description": "A list of paths to use for this unique key.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "paths"
      ],
      "type": "object"
    },
    "azure:cosmosdb/MongoCollectionAutoscaleSettings:MongoCollectionAutoscaleSettings": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "maxThroughput"
          ]
        }
      },
      "properties": {
        "maxThroughput": {
          "description": "The maximum throughput of the MongoDB collection (RU/s). Must be between `4,000` and `1,000,000`. Must be set in increments of `1,000`. Conflicts with `throughput`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:cosmosdb/MongoCollectionIndex:MongoCollectionIndex": {
      "properties": {
        "keys": {
          "description": "Specifies the list of user settable keys for each Cosmos DB Mongo Collection.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "unique": {
          "description": "Is the index unique or not? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "keys"
      ],
      "type": "object"
    },
    "azure:cosmosdb/MongoCollectionSystemIndex:MongoCollectionSystemIndex": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "keys",
            "unique"
          ]
        }
      },
      "properties": {
        "keys": {
          "description": "Specifies the list of user settable keys for each Cosmos DB Mongo Collection.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "unique": {
          "description": "Is the index unique or not? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:cosmosdb/MongoDatabaseAutoscaleSettings:MongoDatabaseAutoscaleSettings": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "maxThroughput"
          ]
        }
      },
      "properties": {
        "maxThroughput": {
          "description": "The maximum throughput of the MongoDB database (RU/s). Must be between `4,000` and `1,000,000`. Must be set in increments of `1,000`. Conflicts with `throughput`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:cosmosdb/SqlContainerAutoscaleSettings:SqlContainerAutoscaleSettings": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "maxThroughput"
          ]
        }
      },
      "properties": {
        "maxThroughput": {
          "description": "The maximum throughput of the SQL container (RU/s). Must be between `4,000` and `1,000,000`. Must be set in increments of `1,000`. Conflicts with `throughput`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:cosmosdb/SqlContainerConflictResolutionPolicy:SqlContainerConflictResolutionPolicy": {
      "properties": {
        "conflictResolutionPath": {
          "description": "The conflict resolution path in the case of `LastWriterWins` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "conflictResolutionProcedure": {
          "description": "The procedure to resolve conflicts in the case of `Custom` mode.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "mode": {
          "description": "Indicates the conflict resolution mode. Possible values include: `LastWriterWins`, `Custom`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode"
      ],
      "type": "object"
    },
    "azure:cosmosdb/SqlContainerIndexingPolicy:SqlContainerIndexingPolicy": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "excludedPaths",
            "includedPaths"
          ]
        }
      },
      "properties": {
        "compositeIndices": {
          "description": "One or more `composite_index` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/SqlContainerIndexingPolicyCompositeIndex:SqlContainerIndexingPolicyCompositeIndex"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "excludedPaths": {
          "description": "One or more `excluded_path` blocks as defined below. Either `included_path` or `excluded_path` must contain the `path` `/*`\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/SqlContainerIndexingPolicyExcludedPath:SqlContainerIndexingPolicyExcludedPath"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "includedPaths": {
          "description": "One or more `included_path` blocks as defined below. Either `included_path` or `excluded_path` must contain the `path` `/*`\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/SqlContainerIndexingPolicyIncludedPath:SqlContainerIndexingPolicyIncludedPath"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "indexingMode": {
          "description": "Indicates the indexing mode. Possible values include: `Consistent` and `None`. Defaults to `Consistent`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "spatialIndices": {
          "description": "One or more `spatial_index` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/SqlContainerIndexingPolicySpatialIndex:SqlContainerIndexingPolicySpatialIndex"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:cosmosdb/SqlContainerIndexingPolicyCompositeIndex:SqlContainerIndexingPolicyCompositeIndex": {
      "properties": {
        "indices": {
          "description": "One or more `index` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:cosmosdb/SqlContainerIndexingPolicyCompositeIndexIndex:SqlContainerIndexingPolicyCompositeIndexIndex"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "indices"
      ],
      "type": "object"
    },
    "azure:cosmosdb/SqlContainerIndexingPolicyCompositeIndexIndex:SqlContainerIndexingPolicyCompositeIndexIndex": {
      "properties": {
        "order": {
          "description": "Order of the index. Possible values are `Ascending` or `Descending`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "Path for which the indexing behaviour applies to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "order",
        "path"
      ],
      "type": "object"
    },
    "azure:cosmosdb/SqlContainerIndexingPolicyExcludedPath:SqlContainerIndexingPolicyExcludedPath": {
      "properties": {
        "path": {
          "description": "Path that is excluded from indexing.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "path"
      ],
      "type": "object"
    },
    "azure:cosmosdb/SqlContainerIndexingPolicyIncludedPath:SqlContainerIndexingPolicyIncludedPath": {
      "properties": {
        "path": {
          "description": "Path for which the indexing behaviour applies to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "path"
      ],
      "type": "object"
    },
    "azure:cosmosdb/SqlContainerIndexingPolicySpatialIndex:SqlContainerIndexingPolicySpatialIndex": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "path",
            "types"
          ]
        }
      },
      "properties": {
        "path": {
          "description": "Path for which the indexing behaviour applies to. According to the service design, all spatial types including `LineString`, `MultiPolygon`, `Point`, and `Polygon` will be applied to the path.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "types": {
          "description": "A set of spatial types of the path.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "path"
      ],
      "type": "object"
    },
    "azure:cosmosdb/SqlContainerUniqueKey:SqlContainerUniqueKey": {
      "properties": {
        "paths": {
          "description": "A list of paths to use for this unique key.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "paths"
      ],
      "type": "object"
    },
    "azure:cosmosdb/SqlDatabaseAutoscaleSettings:SqlDatabaseAutoscaleSettings": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "maxThroughput"
          ]
        }
      },
      "properties": {
        "maxThroughput": {
          "description": "The maximum throughput of the SQL database (RU/s). Must be between `4,000` and `1,000,000`. Must be set in increments of `1,000`. Conflicts with `throughput`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:cosmosdb/TableAutoscaleSettings:TableAutoscaleSettings": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "maxThroughput"
          ]
        }
      },
      "properties": {
        "maxThroughput": {
          "description": "The maximum throughput of the Table (RU/s). Must be between `4,000` and `1,000,000`. Must be set in increments of `1,000`. Conflicts with `throughput`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:cosmosdb/getAccountCapability:getAccountCapability": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the CosmosDB Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:cosmosdb/getAccountConsistencyPolicy:getAccountConsistencyPolicy": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "consistencyLevel": {
          "description": "The Consistency Level used by this CosmosDB Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxIntervalInSeconds": {
          "description": "The amount of staleness (in seconds) tolerated when the consistency level is Bounded Staleness.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxStalenessPrefix": {
          "description": "The number of stale requests tolerated when the consistency level is Bounded Staleness.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "consistencyLevel",
        "maxIntervalInSeconds",
        "maxStalenessPrefix"
      ],
      "type": "object"
    },
    "azure:cosmosdb/getAccountGeoLocation:getAccountGeoLocation": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "failoverPriority": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "id": {
          "description": "The ID of the virtual network subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "location": {
          "description": "The name of the Azure region hosting replicated data.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "failoverPriority",
        "id",
        "location"
      ],
      "type": "object"
    },
    "azure:cosmosdb/getAccountVirtualNetworkRule:getAccountVirtualNetworkRule": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "id": {
          "description": "The ID of the virtual network subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "azure:costmanagement/ResourceGroupExportDeliveryInfo:ResourceGroupExportDeliveryInfo": {
      "properties": {
        "containerName": {
          "description": "The name of the container where exports will be uploaded.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rootFolderPath": {
          "description": "The path of the directory where exports will be uploaded.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountId": {
          "description": "The storage account id where exports will be delivered.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "containerName",
        "rootFolderPath",
        "storageAccountId"
      ],
      "type": "object"
    },
    "azure:costmanagement/ResourceGroupExportQuery:ResourceGroupExportQuery": {
      "properties": {
        "timeFrame": {
          "description": "The time frame for pulling data for the query. If custom, then a specific time period must be provided. Possible values include: `WeekToDate`, `MonthToDate`, `YearToDate`, `TheLastWeek`, `TheLastMonth`, `TheLastYear`, `Custom`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of the query.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "timeFrame",
        "type"
      ],
      "type": "object"
    },
    "azure:databoxedge/DeviceDeviceProperty:DeviceDeviceProperty": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "capacity",
            "configuredRoleTypes",
            "culture",
            "hcsVersion",
            "model",
            "nodeCount",
            "serialNumber",
            "softwareVersion",
            "status",
            "timeZone",
            "type"
          ]
        }
      },
      "properties": {
        "capacity": {
          "description": "The Data Box Edge/Gateway device local capacity in MB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "configuredRoleTypes": {
          "description": "Type of compute roles configured.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "culture": {
          "description": "The Data Box Edge/Gateway device culture.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hcsVersion": {
          "description": "The device software version number of the device (eg: 1.2.18105.6).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "model": {
          "description": "The Data Box Edge/Gateway device model.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "nodeCount": {
          "description": "The number of nodes in the cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serialNumber": {
          "description": "The Serial Number of Data Box Edge/Gateway device.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "softwareVersion": {
          "description": "The Data Box Edge/Gateway device software version.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "status": {
          "description": "The status of the Data Box Edge/Gateway device.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "timeZone": {
          "description": "The Data Box Edge/Gateway device timezone.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of the Data Box Edge/Gateway device.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:databoxedge/OrderContact:OrderContact": {
      "properties": {
        "companyName": {
          "description": "The name of the company. Changing this forces a new Databox Edge Order to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "emails": {
          "description": "A list of email address to send order notification to. Changing this forces a new Databox Edge Order to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The contact person name. Changing this forces a new Databox Edge Order to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "phoneNumber": {
          "description": "The phone number. Changing this forces a new Databox Edge Order to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "companyName",
        "emails",
        "name",
        "phoneNumber"
      ],
      "type": "object"
    },
    "azure:databoxedge/OrderReturnTracking:OrderReturnTracking": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "carrierName",
            "serialNumber",
            "trackingId",
            "trackingUrl"
          ]
        }
      },
      "properties": {
        "carrierName": {
          "description": "Name of the carrier used in the delivery.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serialNumber": {
          "description": "Serial number of the device being tracked.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "trackingId": {
          "description": "The ID of the tracking.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "trackingUrl": {
          "description": "Tracking URL of the shipment.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:databoxedge/OrderShipmentAddress:OrderShipmentAddress": {
      "properties": {
        "addresses": {
          "description": "The list of upto 3 lines for address information. Changing this forces a new Databox Edge Order to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "city": {
          "description": "The city name. Changing this forces a new Databox Edge Order to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "country": {
          "description": "The name of the country to ship the Databox Edge Device to. Valid values are \"Algeria\", \"Argentina\", \"Australia\", \"Austria\", \"Bahamas\", \"Bahrain\", \"Bangladesh\", \"Barbados\", \"Belgium\", \"Bermuda\", \"Bolivia\", \"Bosnia and Herzegovina\", \"Brazil\", \"Bulgaria\", \"Canada\", \"Cayman Islands\", \"Chile\", \"Colombia\", \"Costa Rica\", \"Croatia\", \"Cyprus\", \"Czechia\", \"CÃ´te D'ivoire\", \"Denmark\", \"Dominican Republic\", \"Ecuador\", \"Egypt\", \"El Salvador\", \"Estonia\", \"Ethiopia\", \"Finland\", \"France\", \"Georgia\", \"Germany\", \"Ghana\", \"Greece\", \"Guatemala\", \"Honduras\", \"Hong Kong SAR\", \"Hungary\", \"Iceland\", \"India\", \"Indonesia\", \"Ireland\", \"Israel\", \"Italy\", \"Jamaica\", \"Japan\", \"Jordan\", \"Kazakhstan\", \"Kenya\", \"Kuwait\", \"Kyrgyzstan\", \"Latvia\", \"Libya\", \"Liechtenstein\", \"Lithuania\", \"Luxembourg\", \"Macao SAR\", \"Malaysia\", \"Malta\", \"Mauritius\", \"Mexico\", \"Moldova\", \"Monaco\", \"Mongolia\", \"Montenegro\", \"Morocco\", \"Namibia\", \"Nepal\", \"Netherlands\", \"New Zealand\", \"Nicaragua\", \"Nigeria\", \"Norway\", \"Oman\", \"Pakistan\", \"Palestinian Authority\", \"Panama\", \"Paraguay\", \"Peru\", \"Philippines\", \"Poland\", \"Portugal\", \"Puerto Rico\", \"Qatar\", \"Republic of Korea\", \"Romania\", \"Russia\", \"Rwanda\", \"Saint Kitts And Nevis\", \"Saudi Arabia\", \"Senegal\", \"Serbia\", \"Singapore\", \"Slovakia\", \"Slovenia\", \"South Africa\", \"Spain\", \"Sri Lanka\", \"Sweden\", \"Switzerland\", \"Taiwan\", \"Tajikistan\", \"Tanzania\", \"Thailand\", \"Trinidad And Tobago\", \"Tunisia\", \"Turkey\", \"Turkmenistan\", \"U.S. Virgin Islands\", \"Uganda\", \"Ukraine\", \"United Arab Emirates\", \"United Kingdom\", \"United States\", \"Uruguay\", \"Uzbekistan\", \"Venezuela\", \"Vietnam\", \"Yemen\", \"Zambia\" or \"Zimbabwe\". Changing this forces a new Databox Edge Order to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "postalCode": {
          "description": "The postal code. Changing this forces a new Databox Edge Order to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "state": {
          "description": "The name of the state to ship the Databox Edge Device to. Changing this forces a new Databox Edge Order to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "addresses",
        "city",
        "country",
        "postalCode",
        "state"
      ],
      "type": "object"
    },
    "azure:databoxedge/OrderShipmentHistory:OrderShipmentHistory": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "additionalDetails",
            "comments",
            "lastUpdate"
          ]
        }
      },
      "properties": {
        "additionalDetails": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Dictionary to hold generic information which is not stored by the already existing properties.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "comments": {
          "description": "Comments related to this status change.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "lastUpdate": {
          "description": "Time of status update.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:databoxedge/OrderShipmentTracking:OrderShipmentTracking": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "carrierName",
            "serialNumber",
            "trackingId",
            "trackingUrl"
          ]
        }
      },
      "properties": {
        "carrierName": {
          "description": "Name of the carrier used in the delivery.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serialNumber": {
          "description": "Serial number of the device being tracked.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "trackingId": {
          "description": "The ID of the tracking.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "trackingUrl": {
          "description": "Tracking URL of the shipment.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:databoxedge/OrderStatus:OrderStatus": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "additionalDetails",
            "comments",
            "info",
            "lastUpdate"
          ]
        }
      },
      "properties": {
        "additionalDetails": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Dictionary to hold generic information which is not stored by the already existing properties.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "comments": {
          "description": "Comments related to this status change.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "info": {
          "description": "The current status of the order. Possible values include `Untracked`, `AwaitingFulfilment`, `AwaitingPreparation`, `AwaitingShipment`, `Shipped`, `Arriving`, `Delivered`, `ReplacementRequested`, `LostDevice`, `Declined`, `ReturnInitiated`, `AwaitingReturnShipment`, `ShippedBack` or `CollectedAtMicrosoft`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "lastUpdate": {
          "description": "Time of status update.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:databricks/WorkspaceCustomParameters:WorkspaceCustomParameters": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "natGatewayName",
            "noPublicIp",
            "publicIpName",
            "storageAccountName",
            "storageAccountSkuName",
            "vnetAddressPrefix"
          ]
        }
      },
      "properties": {
        "machineLearningWorkspaceId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "natGatewayName": {
          "description": "Name of the NAT gateway for Secure Cluster Connectivity (No Public IP) workspace subnets. Defaults to `nat-gateway`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "noPublicIp": {
          "description": "Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "privateSubnetName": {
          "description": "The name of the Private Subnet within the Virtual Network. Required if `virtual_network_id` is set. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateSubnetNetworkSecurityGroupAssociationId": {
          "description": "The resource ID of the `azure.network.SubnetNetworkSecurityGroupAssociation` resource which is referred to by the `private_subnet_name` field. Required if `virtual_network_id` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpName": {
          "description": "Name of the Public IP for No Public IP workspace with managed vNet. Defaults to `nat-gw-public-ip`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicSubnetName": {
          "description": "The name of the Public Subnet within the Virtual Network. Required if `virtual_network_id` is set. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicSubnetNetworkSecurityGroupAssociationId": {
          "description": "The resource ID of the `azure.network.SubnetNetworkSecurityGroupAssociation` resource which is referred to by the `public_subnet_name` field. Required if `virtual_network_id` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountName": {
          "description": "Default Databricks File Storage account name. Defaults to a randomized name(e.g. `dbstoragel6mfeghoe5kxu`). Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountSkuName": {
          "description": "Storage account SKU name. Possible values inclued`Standard_LRS`, `Standard_GRS`, `Standard_RAGRS`, `Standard_GZRS`, `Standard_RAGZRS`, `Standard_ZRS`, `Premium_LRS` or `Premium_ZRS`. Defaults to `Standard_GRS`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of a Virtual Network where this Databricks Cluster should be created. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vnetAddressPrefix": {
          "description": "Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:databricks/WorkspaceStorageAccountIdentity:WorkspaceStorageAccountIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The principal UUID for the internal databricks storage account needed to provide access to the workspace for enabling Customer Managed Keys.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The UUID of the tenant where the internal databricks storage account was created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of the internal databricks storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:databricks/getWorkspacePrivateEndpointConnectionConnection:getWorkspacePrivateEndpointConnectionConnection": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "actionRequired": {
          "description": "Actions required for a private endpoint connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "description": {
          "description": "The description for the current state of a private endpoint connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Databricks Workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "status": {
          "description": "The status of a private endpoint connection. Possible values are `Pending`, `Approved`, `Rejected` or `Disconnected`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "workspacePrivateEndpointId": {
          "description": "The Databricks Workspace resource ID for the private link endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "actionRequired",
        "description",
        "name",
        "status",
        "workspacePrivateEndpointId"
      ],
      "type": "object"
    },
    "azure:datafactory/CustomDatasetLinkedService:CustomDatasetLinkedService": {
      "properties": {
        "name": {
          "description": "The name of the Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DataFlowSink:DataFlowSink": {
      "properties": {
        "dataset": {
          "$ref": "#/types/azure:datafactory/DataFlowSinkDataset:DataFlowSinkDataset",
          "description": "A `dataset` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "description": {
          "description": "The description for the Data Flow Source.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "linkedService": {
          "$ref": "#/types/azure:datafactory/DataFlowSinkLinkedService:DataFlowSinkLinkedService",
          "description": "A `linked_service` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "description": "The name for the Data Flow Source.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "schemaLinkedService": {
          "$ref": "#/types/azure:datafactory/DataFlowSinkSchemaLinkedService:DataFlowSinkSchemaLinkedService",
          "description": "A `schema_linked_service` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DataFlowSinkDataset:DataFlowSinkDataset": {
      "properties": {
        "name": {
          "description": "The name for the Data Factory Dataset.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory dataset.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DataFlowSinkLinkedService:DataFlowSinkLinkedService": {
      "properties": {
        "name": {
          "description": "The name for the Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DataFlowSinkSchemaLinkedService:DataFlowSinkSchemaLinkedService": {
      "properties": {
        "name": {
          "description": "The name for the Data Factory Linked Service with schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DataFlowSource:DataFlowSource": {
      "properties": {
        "dataset": {
          "$ref": "#/types/azure:datafactory/DataFlowSourceDataset:DataFlowSourceDataset",
          "description": "A `dataset` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "description": {
          "description": "The description for the Data Flow Source.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "linkedService": {
          "$ref": "#/types/azure:datafactory/DataFlowSourceLinkedService:DataFlowSourceLinkedService",
          "description": "A `linked_service` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "description": "The name for the Data Flow Source.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "schemaLinkedService": {
          "$ref": "#/types/azure:datafactory/DataFlowSourceSchemaLinkedService:DataFlowSourceSchemaLinkedService",
          "description": "A `schema_linked_service` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DataFlowSourceDataset:DataFlowSourceDataset": {
      "properties": {
        "name": {
          "description": "The name for the Data Factory Dataset.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory dataset.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DataFlowSourceLinkedService:DataFlowSourceLinkedService": {
      "properties": {
        "name": {
          "description": "The name for the Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DataFlowSourceSchemaLinkedService:DataFlowSourceSchemaLinkedService": {
      "properties": {
        "name": {
          "description": "The name for the Data Factory Linked Service with schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DataFlowTransformation:DataFlowTransformation": {
      "properties": {
        "description": {
          "description": "The description for the Data Flow transformation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name for the Data Flow transformation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetAzureBlobSchemaColumn:DatasetAzureBlobSchemaColumn": {
      "properties": {
        "description": {
          "description": "The description of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Type of the column. Valid values are `Byte`, `Byte[]`, `Boolean`, `Date`, `DateTime`,`DateTimeOffset`, `Decimal`, `Double`, `Guid`, `Int16`, `Int32`, `Int64`, `Single`, `String`, `TimeSpan`. Please note these values are case sensitive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetBinaryAzureBlobStorageLocation:DatasetBinaryAzureBlobStorageLocation": {
      "properties": {
        "container": {
          "description": "The container on the Azure Blob Storage Account hosting the file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "dynamicFilenameEnabled": {
          "description": "Is the `filename` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "dynamicPathEnabled": {
          "description": "Is the `path` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "filename": {
          "description": "The filename of the file in the blob container.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The folder path to the file in the blob container.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "container"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetBinaryCompression:DatasetBinaryCompression": {
      "properties": {
        "level": {
          "description": "The level of compression. Possible values are `Fastest` and `Optimal`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of compression used during transport.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetBinaryHttpServerLocation:DatasetBinaryHttpServerLocation": {
      "properties": {
        "dynamicFilenameEnabled": {
          "description": "Is the `filename` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "dynamicPathEnabled": {
          "description": "Is the `path` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "filename": {
          "description": "The filename of the file on the web server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The folder path to the file on the web server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "relativeUrl": {
          "description": "The base URL to the web server hosting the file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "filename",
        "path",
        "relativeUrl"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetBinarySftpServerLocation:DatasetBinarySftpServerLocation": {
      "properties": {
        "dynamicFilenameEnabled": {
          "description": "Is the `filename` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "dynamicPathEnabled": {
          "description": "Is the `path` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "filename": {
          "description": "The filename of the file on the SFTP server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The folder path to the file on the SFTP server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "filename",
        "path"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetCosmosDBApiSchemaColumn:DatasetCosmosDBApiSchemaColumn": {
      "properties": {
        "description": {
          "description": "The description of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Type of the column. Valid values are `Byte`, `Byte[]`, `Boolean`, `Date`, `DateTime`,`DateTimeOffset`, `Decimal`, `Double`, `Guid`, `Int16`, `Int32`, `Int64`, `Single`, `String`, `TimeSpan`. Please note these values are case sensitive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetDelimitedTextAzureBlobFsLocation:DatasetDelimitedTextAzureBlobFsLocation": {
      "properties": {
        "fileSystem": {
          "description": "The storage data lake gen2 file system on the Azure Blob Storage Account hosting the file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "filename": {
          "description": "The filename of the file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The folder path to the file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "fileSystem"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetDelimitedTextAzureBlobStorageLocation:DatasetDelimitedTextAzureBlobStorageLocation": {
      "properties": {
        "container": {
          "description": "The container on the Azure Blob Storage Account hosting the file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "dynamicFilenameEnabled": {
          "description": "Is the `filename` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "dynamicPathEnabled": {
          "description": "Is the `path` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "filename": {
          "description": "The filename of the file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The folder path to the file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "container"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetDelimitedTextHttpServerLocation:DatasetDelimitedTextHttpServerLocation": {
      "properties": {
        "dynamicFilenameEnabled": {
          "description": "Is the `filename` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "dynamicPathEnabled": {
          "description": "Is the `path` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "filename": {
          "description": "The filename of the file on the web server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The folder path to the file on the web server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "relativeUrl": {
          "description": "The base URL to the web server hosting the file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "filename",
        "path",
        "relativeUrl"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetDelimitedTextSchemaColumn:DatasetDelimitedTextSchemaColumn": {
      "properties": {
        "description": {
          "description": "The description of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Type of the column. Valid values are `Byte`, `Byte[]`, `Boolean`, `Date`, `DateTime`,`DateTimeOffset`, `Decimal`, `Double`, `Guid`, `Int16`, `Int32`, `Int64`, `Single`, `String`, `TimeSpan`. Please note these values are case sensitive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetHttpSchemaColumn:DatasetHttpSchemaColumn": {
      "properties": {
        "description": {
          "description": "The description of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Type of the column. Valid values are `Byte`, `Byte[]`, `Boolean`, `Date`, `DateTime`,`DateTimeOffset`, `Decimal`, `Double`, `Guid`, `Int16`, `Int32`, `Int64`, `Single`, `String`, `TimeSpan`. Please note these values are case sensitive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetJsonAzureBlobStorageLocation:DatasetJsonAzureBlobStorageLocation": {
      "properties": {
        "container": {
          "description": "The container on the Azure Blob Storage Account hosting the file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "dynamicFilenameEnabled": {
          "description": "Is the `filename` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "dynamicPathEnabled": {
          "description": "Is the `path` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "filename": {
          "description": "The filename of the file on the web server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The folder path to the file on the web server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "container",
        "filename",
        "path"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetJsonHttpServerLocation:DatasetJsonHttpServerLocation": {
      "properties": {
        "dynamicFilenameEnabled": {
          "description": "Is the `filename` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "dynamicPathEnabled": {
          "description": "Is the `path` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "filename": {
          "description": "The filename of the file on the web server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The folder path to the file on the web server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "relativeUrl": {
          "description": "The base URL to the web server hosting the file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "filename",
        "path",
        "relativeUrl"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetJsonSchemaColumn:DatasetJsonSchemaColumn": {
      "properties": {
        "description": {
          "description": "The description of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Type of the column. Valid values are `Byte`, `Byte[]`, `Boolean`, `Date`, `DateTime`,`DateTimeOffset`, `Decimal`, `Double`, `Guid`, `Int16`, `Int32`, `Int64`, `Single`, `String`, `TimeSpan`. Please note these values are case sensitive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetMysqlSchemaColumn:DatasetMysqlSchemaColumn": {
      "properties": {
        "description": {
          "description": "The description of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Type of the column. Valid values are `Byte`, `Byte[]`, `Boolean`, `Date`, `DateTime`,`DateTimeOffset`, `Decimal`, `Double`, `Guid`, `Int16`, `Int32`, `Int64`, `Single`, `String`, `TimeSpan`. Please note these values are case sensitive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetParquetAzureBlobStorageLocation:DatasetParquetAzureBlobStorageLocation": {
      "properties": {
        "container": {
          "description": "The container on the Azure Blob Storage Account hosting the file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "dynamicFilenameEnabled": {
          "description": "Is the `filename` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "dynamicPathEnabled": {
          "description": "Is the `path` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "filename": {
          "description": "The filename of the file on the web server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The folder path to the file on the web server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "container",
        "path"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetParquetHttpServerLocation:DatasetParquetHttpServerLocation": {
      "properties": {
        "dynamicFilenameEnabled": {
          "description": "Is the `filename` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "dynamicPathEnabled": {
          "description": "Is the `path` using dynamic expression, function or system variables? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "filename": {
          "description": "The filename of the file on the web server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The folder path to the file on the web server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "relativeUrl": {
          "description": "The base URL to the web server hosting the file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "filename",
        "path",
        "relativeUrl"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetParquetSchemaColumn:DatasetParquetSchemaColumn": {
      "properties": {
        "description": {
          "description": "The description of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Type of the column. Valid values are `Byte`, `Byte[]`, `Boolean`, `Date`, `DateTime`,`DateTimeOffset`, `Decimal`, `Double`, `Guid`, `Int16`, `Int32`, `Int64`, `Single`, `String`, `TimeSpan`. Please note these values are case sensitive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetPostgresqlSchemaColumn:DatasetPostgresqlSchemaColumn": {
      "properties": {
        "description": {
          "description": "The description of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Type of the column. Valid values are `Byte`, `Byte[]`, `Boolean`, `Date`, `DateTime`,`DateTimeOffset`, `Decimal`, `Double`, `Guid`, `Int16`, `Int32`, `Int64`, `Single`, `String`, `TimeSpan`. Please note these values are case sensitive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetSnowflakeSchemaColumn:DatasetSnowflakeSchemaColumn": {
      "properties": {
        "description": {
          "description": "The description of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Type of the column. Valid values are `Byte`, `Byte[]`, `Boolean`, `Date`, `DateTime`,`DateTimeOffset`, `Decimal`, `Double`, `Guid`, `Int16`, `Int32`, `Int64`, `Single`, `String`, `TimeSpan`. Please note these values are case sensitive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/DatasetSqlServerTableSchemaColumn:DatasetSqlServerTableSchemaColumn": {
      "properties": {
        "description": {
          "description": "The description of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Type of the column. Valid values are `Byte`, `Byte[]`, `Boolean`, `Date`, `DateTime`,`DateTimeOffset`, `Decimal`, `Double`, `Guid`, `Int16`, `Int32`, `Int64`, `Single`, `String`, `TimeSpan`. Please note these values are case sensitive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/FactoryGithubConfiguration:FactoryGithubConfiguration": {
      "properties": {
        "accountName": {
          "description": "Specifies the GitHub account name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "branchName": {
          "description": "Specifies the branch of the repository to get code from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "gitUrl": {
          "description": "Specifies the GitHub Enterprise host name. For example: https://github.mydomain.com. Use https://github.com for open source repositories.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "repositoryName": {
          "description": "Specifies the name of the git repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rootFolder": {
          "description": "Specifies the root folder within the repository. Set to `/` for the top level.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "branchName",
        "gitUrl",
        "repositoryName",
        "rootFolder"
      ],
      "type": "object"
    },
    "azure:datafactory/FactoryGlobalParameter:FactoryGlobalParameter": {
      "properties": {
        "name": {
          "description": "Specifies the global parameter name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the global parameter type. Possible Values are `Array`, `Bool`, `Float`, `Int`, `Object` or `String`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies the global parameter value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "type",
        "value"
      ],
      "type": "object"
    },
    "azure:datafactory/FactoryIdentity:FactoryIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "Specifies the IDs of user assigned identities. Requiered if `UserAssigned` type is used.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The ID of the Principal (Client) in Azure Active Directory\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "Specifies the Tenant ID associated with the VSTS account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of the Data Factory. Possible values are `SystemAssigned` and `UserAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:datafactory/FactoryVstsConfiguration:FactoryVstsConfiguration": {
      "properties": {
        "accountName": {
          "description": "Specifies the VSTS account name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "branchName": {
          "description": "Specifies the branch of the repository to get code from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "projectName": {
          "description": "Specifies the name of the VSTS project.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "repositoryName": {
          "description": "Specifies the name of the git repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rootFolder": {
          "description": "Specifies the root folder within the repository. Set to `/` for the top level.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "Specifies the Tenant ID associated with the VSTS account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "branchName",
        "projectName",
        "repositoryName",
        "rootFolder",
        "tenantId"
      ],
      "type": "object"
    },
    "azure:datafactory/IntegrationRuntimeManagedCatalogInfo:IntegrationRuntimeManagedCatalogInfo": {
      "properties": {
        "administratorLogin": {
          "description": "Administrator login name for the SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "administratorPassword": {
          "description": "Administrator login password for the SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pricingTier": {
          "description": "Pricing tier for the database that will be created for the SSIS catalog. Valid values are: `Basic`, `Standard`, `Premium` and `PremiumRS`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serverEndpoint": {
          "description": "The endpoint of an Azure SQL Server that will be used to host the SSIS catalog.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "serverEndpoint"
      ],
      "type": "object"
    },
    "azure:datafactory/IntegrationRuntimeManagedCustomSetupScript:IntegrationRuntimeManagedCustomSetupScript": {
      "properties": {
        "blobContainerUri": {
          "description": "The blob endpoint for the container which contains a custom setup script that will be run on every node on startup. See [https://docs.microsoft.com/en-us/azure/data-factory/how-to-configure-azure-ssis-ir-custom-setup](https://docs.microsoft.com/en-us/azure/data-factory/how-to-configure-azure-ssis-ir-custom-setup) for more information.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sasToken": {
          "description": "A container SAS token that gives access to the files. See [https://docs.microsoft.com/en-us/azure/data-factory/how-to-configure-azure-ssis-ir-custom-setup](https://docs.microsoft.com/en-us/azure/data-factory/how-to-configure-azure-ssis-ir-custom-setup) for more information.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "blobContainerUri",
        "sasToken"
      ],
      "type": "object"
    },
    "azure:datafactory/IntegrationRuntimeManagedVnetIntegration:IntegrationRuntimeManagedVnetIntegration": {
      "properties": {
        "subnetName": {
          "description": "Name of the subnet to which the nodes of the Managed Integration Runtime will be added.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vnetId": {
          "description": "ID of the virtual network to which the nodes of the Managed Integration Runtime will be added.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "subnetName",
        "vnetId"
      ],
      "type": "object"
    },
    "azure:datafactory/IntegrationRuntimeSelfHostedRbacAuthorization:IntegrationRuntimeSelfHostedRbacAuthorization": {
      "properties": {
        "resourceId": {
          "description": "The resource identifier of the integration runtime to be shared. Changing this forces a new Data Factory to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "resourceId"
      ],
      "type": "object"
    },
    "azure:datafactory/IntegrationRuntimeSsisCatalogInfo:IntegrationRuntimeSsisCatalogInfo": {
      "properties": {
        "administratorLogin": {
          "description": "Administrator login name for the SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "administratorPassword": {
          "description": "Administrator login password for the SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "dualStandbyPairName": {
          "description": "The dual standby Azure-SSIS Integration Runtime pair with SSISDB failover.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pricingTier": {
          "description": "Pricing tier for the database that will be created for the SSIS catalog. Valid values are: `Basic`, `Standard`, `Premium` and `PremiumRS`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serverEndpoint": {
          "description": "The endpoint of an Azure SQL Server that will be used to host the SSIS catalog.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "serverEndpoint"
      ],
      "type": "object"
    },
    "azure:datafactory/IntegrationRuntimeSsisCustomSetupScript:IntegrationRuntimeSsisCustomSetupScript": {
      "properties": {
        "blobContainerUri": {
          "description": "The blob endpoint for the container which contains a custom setup script that will be run on every node on startup. See [https://docs.microsoft.com/en-us/azure/data-factory/how-to-configure-azure-ssis-ir-custom-setup](https://docs.microsoft.com/en-us/azure/data-factory/how-to-configure-azure-ssis-ir-custom-setup) for more information.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sasToken": {
          "description": "A container SAS token that gives access to the files. See [https://docs.microsoft.com/en-us/azure/data-factory/how-to-configure-azure-ssis-ir-custom-setup](https://docs.microsoft.com/en-us/azure/data-factory/how-to-configure-azure-ssis-ir-custom-setup) for more information.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "blobContainerUri",
        "sasToken"
      ],
      "type": "object"
    },
    "azure:datafactory/IntegrationRuntimeSsisExpressCustomSetup:IntegrationRuntimeSsisExpressCustomSetup": {
      "properties": {
        "commandKeys": {
          "description": "One or more `command_key` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisExpressCustomSetupCommandKey:IntegrationRuntimeSsisExpressCustomSetupCommandKey"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "components": {
          "description": "One or more `component` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisExpressCustomSetupComponent:IntegrationRuntimeSsisExpressCustomSetupComponent"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "environment": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The Environment Variables for the Azure-SSIS Integration Runtime.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "powershellVersion": {
          "description": "The version of Azure Powershell installed for the Azure-SSIS Integration Runtime.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:datafactory/IntegrationRuntimeSsisExpressCustomSetupCommandKey:IntegrationRuntimeSsisExpressCustomSetupCommandKey": {
      "properties": {
        "keyVaultPassword": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisExpressCustomSetupCommandKeyKeyVaultPassword:IntegrationRuntimeSsisExpressCustomSetupCommandKeyKeyVaultPassword",
          "description": "A `key_vault_secret_reference` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "password": {
          "description": "The password for the target device.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetName": {
          "description": "The target computer or domain name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "userName": {
          "description": "The username for the target device.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "targetName",
        "userName"
      ],
      "type": "object"
    },
    "azure:datafactory/IntegrationRuntimeSsisExpressCustomSetupCommandKeyKeyVaultPassword:IntegrationRuntimeSsisExpressCustomSetupCommandKeyKeyVaultPassword": {
      "properties": {
        "linkedServiceName": {
          "description": "Specifies the name of an existing Key Vault Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Key Vault Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "secretName": {
          "description": "Specifies the secret name in Azure Key Vault.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretVersion": {
          "description": "Specifies the secret version in Azure Key Vault.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "linkedServiceName",
        "secretName"
      ],
      "type": "object"
    },
    "azure:datafactory/IntegrationRuntimeSsisExpressCustomSetupComponent:IntegrationRuntimeSsisExpressCustomSetupComponent": {
      "properties": {
        "keyVaultLicense": {
          "$ref": "#/types/azure:datafactory/IntegrationRuntimeSsisExpressCustomSetupComponentKeyVaultLicense:IntegrationRuntimeSsisExpressCustomSetupComponentKeyVaultLicense",
          "description": "A `key_vault_secret_reference` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "license": {
          "description": "The license used for the Component.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Component Name installed for the Azure-SSIS Integration Runtime.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/IntegrationRuntimeSsisExpressCustomSetupComponentKeyVaultLicense:IntegrationRuntimeSsisExpressCustomSetupComponentKeyVaultLicense": {
      "properties": {
        "linkedServiceName": {
          "description": "Specifies the name of an existing Key Vault Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the Key Vault Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "secretName": {
          "description": "Specifies the secret name in Azure Key Vault.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretVersion": {
          "description": "Specifies the secret version in Azure Key Vault.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "linkedServiceName",
        "secretName"
      ],
      "type": "object"
    },
    "azure:datafactory/IntegrationRuntimeSsisPackageStore:IntegrationRuntimeSsisPackageStore": {
      "properties": {
        "linkedServiceName": {
          "description": "Name of the Linked Service to associate with the packages.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Name of the package store.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "linkedServiceName",
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/IntegrationRuntimeSsisProxy:IntegrationRuntimeSsisProxy": {
      "properties": {
        "path": {
          "description": "The path in the data store to be used when moving data between Self-Hosted and Azure-SSIS Integration Runtimes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "selfHostedIntegrationRuntimeName": {
          "description": "Name of Self Hosted Integration Runtime as a proxy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "stagingStorageLinkedServiceName": {
          "description": "Name of Azure Blob Storage linked service to reference the staging data store to be used when moving data between self-hosted and Azure-SSIS integration runtimes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "selfHostedIntegrationRuntimeName",
        "stagingStorageLinkedServiceName"
      ],
      "type": "object"
    },
    "azure:datafactory/IntegrationRuntimeSsisVnetIntegration:IntegrationRuntimeSsisVnetIntegration": {
      "properties": {
        "publicIps": {
          "description": "Static public IP addresses for the Azure-SSIS Integration Runtime. The size must be 2.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "id of the subnet to which the nodes of the Azure-SSIS Integration Runtime will be added.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetName": {
          "description": "Name of the subnet to which the nodes of the Azure-SSIS Integration Runtime will be added.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vnetId": {
          "description": "ID of the virtual network to which the nodes of the Azure-SSIS Integration Runtime will be added.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:datafactory/LinkedCustomServiceIntegrationRuntime:LinkedCustomServiceIntegrationRuntime": {
      "properties": {
        "name": {
          "description": "The integration runtime reference to associate with the Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of parameters to associate with the integration runtime.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/LinkedServiceAzureBlobStorageKeyVaultSasToken:LinkedServiceAzureBlobStorageKeyVaultSasToken": {
      "properties": {
        "linkedServiceName": {
          "description": "Specifies the name of an existing Key Vault Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretName": {
          "description": "Specifies the secret name in Azure Key Vault that stores the sas token.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "linkedServiceName",
        "secretName"
      ],
      "type": "object"
    },
    "azure:datafactory/LinkedServiceAzureDatabricksInstancePool:LinkedServiceAzureDatabricksInstancePool": {
      "properties": {
        "clusterVersion": {
          "description": "Spark version of a the cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "instancePoolId": {
          "description": "Identifier of the instance pool within the linked ADB instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxNumberOfWorkers": {
          "description": "The max number of worker nodes. Set this value if you want to enable autoscaling between the `min_number_of_workers` and this value. Omit this value to use a fixed number of workers defined in the `min_number_of_workers` property.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "minNumberOfWorkers": {
          "description": "The minimum number of worker nodes. Defaults to 1.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "clusterVersion",
        "instancePoolId"
      ],
      "type": "object"
    },
    "azure:datafactory/LinkedServiceAzureDatabricksKeyVaultPassword:LinkedServiceAzureDatabricksKeyVaultPassword": {
      "properties": {
        "linkedServiceName": {
          "description": "Specifies the name of an existing Key Vault Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretName": {
          "description": "Specifies the secret name in Azure Key Vault that stores ADB access token.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "linkedServiceName",
        "secretName"
      ],
      "type": "object"
    },
    "azure:datafactory/LinkedServiceAzureDatabricksNewClusterConfig:LinkedServiceAzureDatabricksNewClusterConfig": {
      "properties": {
        "clusterVersion": {
          "description": "Spark version of a the cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "customTags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags for the cluster resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "driverNodeType": {
          "description": "Driver node type for the cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "initScripts": {
          "description": "User defined initialization scripts for the cluster.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "logDestination": {
          "description": "Location to deliver Spark driver, worker, and event logs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxNumberOfWorkers": {
          "description": "The max number of worker nodes. Set this value if you want to enable autoscaling between the `min_number_of_workers` and this value. Omit this value to use a fixed number of workers defined in the `min_number_of_workers` property.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "minNumberOfWorkers": {
          "description": "The minimum number of worker nodes. Defaults to 1.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "nodeType": {
          "description": "Node type for the new cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sparkConfig": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "User-specified Spark configuration variables key-value pairs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "sparkEnvironmentVariables": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "User-specified Spark environment variables key-value pairs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "clusterVersion",
        "nodeType"
      ],
      "type": "object"
    },
    "azure:datafactory/LinkedServiceAzureFileStorageKeyVaultPassword:LinkedServiceAzureFileStorageKeyVaultPassword": {
      "properties": {
        "linkedServiceName": {
          "description": "Specifies the name of an existing Key Vault Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretName": {
          "description": "Specifies the secret name in Azure Key Vault that stores Azure File Storage password.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "linkedServiceName",
        "secretName"
      ],
      "type": "object"
    },
    "azure:datafactory/LinkedServiceAzureFunctionKeyVaultKey:LinkedServiceAzureFunctionKeyVaultKey": {
      "properties": {
        "linkedServiceName": {
          "description": "Specifies the name of an existing Key Vault Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretName": {
          "description": "Specifies the secret name in Azure Key Vault that stores the system key of the Azure Function.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "linkedServiceName",
        "secretName"
      ],
      "type": "object"
    },
    "azure:datafactory/LinkedServiceAzureSqlDatabaseKeyVaultConnectionString:LinkedServiceAzureSqlDatabaseKeyVaultConnectionString": {
      "properties": {
        "linkedServiceName": {
          "description": "Specifies the name of an existing Key Vault Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretName": {
          "description": "Specifies the secret name in Azure Key Vault that stores SQL Server connection string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "linkedServiceName",
        "secretName"
      ],
      "type": "object"
    },
    "azure:datafactory/LinkedServiceAzureSqlDatabaseKeyVaultPassword:LinkedServiceAzureSqlDatabaseKeyVaultPassword": {
      "properties": {
        "linkedServiceName": {
          "description": "Specifies the name of an existing Key Vault Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretName": {
          "description": "Specifies the secret name in Azure Key Vault that stores SQL Server password.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "linkedServiceName",
        "secretName"
      ],
      "type": "object"
    },
    "azure:datafactory/LinkedServiceOdataBasicAuthentication:LinkedServiceOdataBasicAuthentication": {
      "properties": {
        "password": {
          "description": "The password associated with the username, which can be used to authenticate to the OData endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username which can be used to authenticate to the OData endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:datafactory/LinkedServiceSnowflakeKeyVaultPassword:LinkedServiceSnowflakeKeyVaultPassword": {
      "properties": {
        "linkedServiceName": {
          "description": "Specifies the name of an existing Key Vault Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretName": {
          "description": "Specifies the secret name in Azure Key Vault that stores Snowflake password.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "linkedServiceName",
        "secretName"
      ],
      "type": "object"
    },
    "azure:datafactory/LinkedServiceSqlServerKeyVaultConnectionString:LinkedServiceSqlServerKeyVaultConnectionString": {
      "properties": {
        "linkedServiceName": {
          "description": "Specifies the name of an existing Key Vault Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretName": {
          "description": "Specifies the secret name in Azure Key Vault that stores SQL Server connection string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "linkedServiceName",
        "secretName"
      ],
      "type": "object"
    },
    "azure:datafactory/LinkedServiceSqlServerKeyVaultPassword:LinkedServiceSqlServerKeyVaultPassword": {
      "properties": {
        "linkedServiceName": {
          "description": "Specifies the name of an existing Key Vault Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretName": {
          "description": "Specifies the secret name in Azure Key Vault that stores SQL Server password.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "linkedServiceName",
        "secretName"
      ],
      "type": "object"
    },
    "azure:datafactory/LinkedServiceSynapseKeyVaultPassword:LinkedServiceSynapseKeyVaultPassword": {
      "properties": {
        "linkedServiceName": {
          "description": "Specifies the name of an existing Key Vault Data Factory Linked Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretName": {
          "description": "Specifies the secret name in Azure Key Vault that stores Synapse password.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "linkedServiceName",
        "secretName"
      ],
      "type": "object"
    },
    "azure:datafactory/TriggerBlobEventPipeline:TriggerBlobEventPipeline": {
      "properties": {
        "name": {
          "description": "The Data Factory Pipeline name that the trigger will act on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The Data Factory Pipeline parameters that the trigger will act on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/TriggerCustomEventPipeline:TriggerCustomEventPipeline": {
      "properties": {
        "name": {
          "description": "The Data Factory Pipeline name that the trigger will act on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The Data Factory Pipeline parameters that the trigger will act on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/TriggerScheduleSchedule:TriggerScheduleSchedule": {
      "properties": {
        "daysOfMonths": {
          "description": "Day(s) of the month on which the trigger is scheduled. This value can be specified with a monthly frequency only.\n",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "daysOfWeeks": {
          "description": "Days of the week on which the trigger is scheduled. This value can be specified only with a weekly frequency.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "hours": {
          "description": "Hours of the day on which the trigger is scheduled.\n",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "minutes": {
          "description": "Minutes of the hour on which the trigger is scheduled.\n",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "monthlies": {
          "description": "A `monthly` block as documented below, which specifies the days of the month on which the trigger is scheduled. The value can be specified only with a monthly frequency.\n",
          "items": {
            "$ref": "#/types/azure:datafactory/TriggerScheduleScheduleMonthly:TriggerScheduleScheduleMonthly"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:datafactory/TriggerScheduleScheduleMonthly:TriggerScheduleScheduleMonthly": {
      "properties": {
        "week": {
          "description": "The occurrence of the specified day during the month. For example, a `monthly` property with `weekday` and `week` values of `Sunday, -1` means the last Sunday of the month.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "weekday": {
          "description": "The day of the week on which the trigger runs. For example, a `monthly` property with a `weekday` value of `Sunday` means every Sunday of the month.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "weekday"
      ],
      "type": "object"
    },
    "azure:datafactory/TriggerTumblingWindowPipeline:TriggerTumblingWindowPipeline": {
      "properties": {
        "name": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:datafactory/TriggerTumblingWindowRetry:TriggerTumblingWindowRetry": {
      "properties": {
        "count": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "interval": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "count"
      ],
      "type": "object"
    },
    "azure:datafactory/TriggerTumblingWindowTriggerDependency:TriggerTumblingWindowTriggerDependency": {
      "properties": {
        "offset": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "size": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "triggerName": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:datafactory/getFactoryGithubConfiguration:getFactoryGithubConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "accountName": {
          "description": "The VSTS account name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "branchName": {
          "description": "The branch of the repository to get code from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "gitUrl": {
          "description": "The GitHub Enterprise host name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "repositoryName": {
          "description": "The name of the git repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rootFolder": {
          "description": "The root folder within the repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "branchName",
        "gitUrl",
        "repositoryName",
        "rootFolder"
      ],
      "type": "object"
    },
    "azure:datafactory/getFactoryIdentity:getFactoryIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "identityIds": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The ID of the Principal (Client) in Azure Active Directory.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID associated with the VSTS account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The identity type of the Data Factory.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "identityIds",
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:datafactory/getFactoryVstsConfiguration:getFactoryVstsConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "accountName": {
          "description": "The VSTS account name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "branchName": {
          "description": "The branch of the repository to get code from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "projectName": {
          "description": "The name of the VSTS project.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "repositoryName": {
          "description": "The name of the git repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rootFolder": {
          "description": "The root folder within the repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID associated with the VSTS account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "branchName",
        "projectName",
        "repositoryName",
        "rootFolder",
        "tenantId"
      ],
      "type": "object"
    },
    "azure:datalake/StoreIdentity:StoreIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Identity which should be used for this Data Lake Store Account. At this time the only possible value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:dataprotection/BackupPolicyDiskRetentionRule:BackupPolicyDiskRetentionRule": {
      "properties": {
        "criteria": {
          "$ref": "#/types/azure:dataprotection/BackupPolicyDiskRetentionRuleCriteria:BackupPolicyDiskRetentionRuleCriteria",
          "description": "A `criteria` block as defined below. Changing this forces a new Backup Policy Disk to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "duration": {
          "description": "Duration of deletion after given timespan. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy Disk to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this retention rule. Changing this forces a new Backup Policy Disk to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "Retention Tag priority. Changing this forces a new Backup Policy Disk to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "criteria",
        "duration",
        "name",
        "priority"
      ],
      "type": "object"
    },
    "azure:dataprotection/BackupPolicyDiskRetentionRuleCriteria:BackupPolicyDiskRetentionRuleCriteria": {
      "properties": {
        "absoluteCriteria": {
          "description": "Possible values are `FirstOfDay` and `FirstOfWeek`. Changing this forces a new Backup Policy Disk to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:dataprotection/BackupPolicyPostgresqlRetentionRule:BackupPolicyPostgresqlRetentionRule": {
      "properties": {
        "criteria": {
          "$ref": "#/types/azure:dataprotection/BackupPolicyPostgresqlRetentionRuleCriteria:BackupPolicyPostgresqlRetentionRuleCriteria",
          "description": "A `criteria` block as defined below. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "duration": {
          "description": "Duration after which the backup is deleted. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this retention rule. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "Specifies the priority of the rule. The priority number must be unique for each rule. The lower the priority number, the higher the priority of the rule. Changing this forces a new Backup Policy Postgre Sql to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "criteria",
        "duration",
        "name",
        "priority"
      ],
      "type": "object"
    },
    "azure:dataprotection/BackupPolicyPostgresqlRetentionRuleCriteria:BackupPolicyPostgresqlRetentionRuleCriteria": {
      "properties": {
        "absoluteCriteria": {
          "description": "Possible values are `AllBackup`, `FirstOfDay`, `FirstOfWeek`, `FirstOfMonth` and `FirstOfYear`. These values mean the first successful backup of the day/week/month/year. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "daysOfWeeks": {
          "description": "Possible values are `Monday`, `Tuesday`, `Thursday`, `Friday`, `Saturday` and `Sunday`. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "monthsOfYears": {
          "description": "Possible values are `January`, `February`, `March`, `April`, `May`, `June`, `July`, `August`, `September`, `October`, `November` and `December`. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "scheduledBackupTimes": {
          "description": "Specifies a list of backup times for backup in the `RFC3339` format. Changing this forces a new Backup Policy Postgre Sql to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "weeksOfMonths": {
          "description": "Possible values are `First`, `Second`, `Third`, `Fourth` and `Last`. Changing this forces a new Backup Policy PostgreSQL to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:dataprotection/BackupVaultIdentity:BackupVaultIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Identity of this Backup Vault.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Identity of this Backup Vault.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of the Backup Vault. Possible value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:dataprotection/getBackupVaultIdentity:getBackupVaultIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Identity of this Backup Vault.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Identity of this Backup Vault.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of the Backup Vault.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:datashare/AccountIdentity:AccountIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Identity of this Data Share Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Identity of this Data Share Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of the Data Share Account. At this time the only allowed value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:datashare/DatasetBlobStorageStorageAccount:DatasetBlobStorageStorageAccount": {
      "properties": {
        "name": {
          "description": "The name of the storage account to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The resource group name of the storage account to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subscriptionId": {
          "description": "The subscription id of the storage account to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "subscriptionId"
      ],
      "type": "object"
    },
    "azure:datashare/ShareSnapshotSchedule:ShareSnapshotSchedule": {
      "properties": {
        "name": {
          "description": "The name of the snapshot schedule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "recurrence": {
          "description": "The interval of the synchronization with the source data. Possible values are `Hour` and `Day`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "startTime": {
          "description": "The synchronization with the source data's start time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "recurrence",
        "startTime"
      ],
      "type": "object"
    },
    "azure:datashare/getAccountIdentity:getAccountIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "principalId": {
          "description": "The ID of the Principal (Client) in Azure Active Directory.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Azure Active Directory Tenant.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The identity type of the Data Share Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:datashare/getDatasetBlobStorageStorageAccount:getDatasetBlobStorageStorageAccount": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "The name of this Data Share Blob Storage Dataset.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The resource group name of the storage account to be shared with the receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subscriptionId": {
          "description": "The subscription id of the storage account to be shared with the receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "resourceGroupName",
        "subscriptionId"
      ],
      "type": "object"
    },
    "azure:datashare/getShareSnapshotSchedule:getShareSnapshotSchedule": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "The name of this Data Share.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "recurrence": {
          "description": "The interval of the synchronization with the source data.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "startTime": {
          "description": "The synchronization with the source data's start time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "recurrence",
        "startTime"
      ],
      "type": "object"
    },
    "azure:desktopvirtualization/HostPoolRegistrationInfo:HostPoolRegistrationInfo": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "expirationDate",
            "resetToken",
            "token"
          ]
        }
      },
      "properties": {
        "expirationDate": {
          "description": "A valid `RFC3339Time` for the expiration of the token.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resetToken": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "token": {
          "description": "The registration token generated by the Virtual Desktop Host Pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "expirationDate"
      ],
      "type": "object"
    },
    "azure:devtest/GlobalVMShutdownScheduleNotificationSettings:GlobalVMShutdownScheduleNotificationSettings": {
      "properties": {
        "email": {
          "description": "E-mail address to which the notification will be sent.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Whether to enable pre-shutdown notifications. Possible values are `true` and `false`. Defaults to `false`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "timeInMinutes": {
          "description": "Time in minutes between 15 and 120 before a shutdown event at which a notification will be sent. Defaults to `30`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "webhookUrl": {
          "description": "The webhook URL to which the notification will be sent. Required if `enabled` is `true`. Optional otherwise.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:devtest/LinuxVirtualMachineGalleryImageReference:LinuxVirtualMachineGalleryImageReference": {
      "properties": {
        "offer": {
          "description": "The Offer of the Gallery Image. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "The Publisher of the Gallery Image. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sku": {
          "description": "The SKU of the Gallery Image. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "The Version of the Gallery Image. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "offer",
        "publisher",
        "sku",
        "version"
      ],
      "type": "object"
    },
    "azure:devtest/LinuxVirtualMachineInboundNatRule:LinuxVirtualMachineInboundNatRule": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "backendPort",
            "frontendPort",
            "protocol"
          ]
        }
      },
      "properties": {
        "backendPort": {
          "description": "The Backend Port associated with this NAT Rule. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "frontendPort": {
          "description": "The frontend port associated with this Inbound NAT Rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "protocol": {
          "description": "The Protocol used for this NAT Rule. Possible values are `Tcp` and `Udp`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "backendPort",
        "protocol"
      ],
      "type": "object"
    },
    "azure:devtest/ScheduleDailyRecurrence:ScheduleDailyRecurrence": {
      "properties": {
        "time": {
          "description": "The time each day when the schedule takes effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "time"
      ],
      "type": "object"
    },
    "azure:devtest/ScheduleHourlyRecurrence:ScheduleHourlyRecurrence": {
      "properties": {
        "minute": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "minute"
      ],
      "type": "object"
    },
    "azure:devtest/ScheduleNotificationSettings:ScheduleNotificationSettings": {
      "properties": {
        "status": {
          "description": "The status of the notification. Possible values are `Enabled` and `Disabled`. Defaults to `Disabled`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "timeInMinutes": {
          "description": "Time in minutes before event at which notification will be sent.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "webhookUrl": {
          "description": "The webhook URL to which the notification will be sent.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:devtest/ScheduleWeeklyRecurrence:ScheduleWeeklyRecurrence": {
      "properties": {
        "time": {
          "description": "The time when the schedule takes effect.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "weekDays": {
          "description": "A list of days that this schedule takes effect . Possible values include `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday` and `Sunday`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "time"
      ],
      "type": "object"
    },
    "azure:devtest/VirtualNetworkSubnet:VirtualNetworkSubnet": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name"
          ]
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the Dev Test Virtual Network. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useInVirtualMachineCreation": {
          "description": "Can this subnet be used for creating Virtual Machines? Possible values are `Allow`, `Default` and `Deny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "usePublicIpAddress": {
          "description": "Can Virtual Machines in this Subnet use Public IP Addresses? Possible values are `Allow`, `Default` and `Deny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:devtest/WindowsVirtualMachineGalleryImageReference:WindowsVirtualMachineGalleryImageReference": {
      "properties": {
        "offer": {
          "description": "The Offer of the Gallery Image. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "The Publisher of the Gallery Image. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sku": {
          "description": "The SKU of the Gallery Image. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "The Version of the Gallery Image. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "offer",
        "publisher",
        "sku",
        "version"
      ],
      "type": "object"
    },
    "azure:devtest/WindowsVirtualMachineInboundNatRule:WindowsVirtualMachineInboundNatRule": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "backendPort",
            "frontendPort",
            "protocol"
          ]
        }
      },
      "properties": {
        "backendPort": {
          "description": "The Backend Port associated with this NAT Rule. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "frontendPort": {
          "description": "The frontend port associated with this Inbound NAT Rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "protocol": {
          "description": "The Protocol used for this NAT Rule. Possible values are `Tcp` and `Udp`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "backendPort",
        "protocol"
      ],
      "type": "object"
    },
    "azure:devtest/getVirtualNetworkAllowedSubnet:getVirtualNetworkAllowedSubnet": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "allowPublicIp": {
          "description": "Indicates if this subnet allows public IP addresses. Possible values are `Allow`, `Default` and `Deny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "labSubnetName": {
          "description": "The name of the subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resourceId": {
          "description": "The resource identifier for the subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "allowPublicIp",
        "labSubnetName",
        "resourceId"
      ],
      "type": "object"
    },
    "azure:devtest/getVirtualNetworkSubnetOverride:getVirtualNetworkSubnetOverride": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "labSubnetName": {
          "description": "The name of the subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resourceId": {
          "description": "The resource identifier for the subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useInVmCreationPermission": {
          "description": "Indicates if the subnet can be used for VM creation.  Possible values are `Allow`, `Default` and `Deny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "usePublicIpAddressPermission": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkPoolName": {
          "description": "The virtual network pool associated with this subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "labSubnetName",
        "resourceId",
        "useInVmCreationPermission",
        "usePublicIpAddressPermission",
        "virtualNetworkPoolName"
      ],
      "type": "object"
    },
    "azure:dns/CaaRecordRecord:CaaRecordRecord": {
      "properties": {
        "flags": {
          "description": "Extensible CAA flags, currently only 1 is implemented to set the issuer critical flag.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "tag": {
          "description": "A property tag, options are issue, issuewild and iodef.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "A property value such as a registrar domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "flags",
        "tag",
        "value"
      ],
      "type": "object"
    },
    "azure:dns/MxRecordRecord:MxRecordRecord": {
      "properties": {
        "exchange": {
          "description": "The mail server responsible for the domain covered by the MX record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "preference": {
          "description": "String representing the \"preference” value of the MX records. Records with lower preference value take priority.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "exchange",
        "preference"
      ],
      "type": "object"
    },
    "azure:dns/SrvRecordRecord:SrvRecordRecord": {
      "properties": {
        "port": {
          "description": "Port the service is listening on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "priority": {
          "description": "Priority of the SRV record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "target": {
          "description": "FQDN of the service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "weight": {
          "description": "Weight of the SRV record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "port",
        "priority",
        "target",
        "weight"
      ],
      "type": "object"
    },
    "azure:dns/TxtRecordRecord:TxtRecordRecord": {
      "properties": {
        "value": {
          "description": "The value of the record. Max length: 1024 characters\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "value"
      ],
      "type": "object"
    },
    "azure:dns/ZoneSoaRecord:ZoneSoaRecord": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "email",
            "fqdn",
            "hostName"
          ]
        }
      },
      "properties": {
        "email": {
          "description": "The email contact for the SOA record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expireTime": {
          "description": "The expire time for the SOA record. Defaults to `2419200`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "fqdn": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostName": {
          "description": "The domain name of the authoritative name server for the SOA record. Defaults to `ns1-03.azure-dns.com.`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "minimumTtl": {
          "description": "The minimum Time To Live for the SOA record. By convention, it is used to determine the negative caching duration. Defaults to `300`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "refreshTime": {
          "description": "The refresh time for the SOA record. Defaults to `3600`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "retryTime": {
          "description": "The retry time for the SOA record. Defaults to `300`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serialNumber": {
          "description": "The serial number for the SOA record. Defaults to `1`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Record Set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live of the SOA Record in seconds. Defaults to `3600`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "email",
        "hostName"
      ],
      "type": "object"
    },
    "azure:domainservices/ServiceInitialReplicaSet:ServiceInitialReplicaSet": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "domainControllerIpAddresses",
            "externalAccessIpAddress",
            "id",
            "location",
            "serviceStatus",
            "subnetId"
          ]
        }
      },
      "properties": {
        "domainControllerIpAddresses": {
          "description": "A list of subnet IP addresses for the domain controllers in the initial replica set, typically two.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "externalAccessIpAddress": {
          "description": "The publicly routable IP address for the domain controllers in the initial replica set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Domain Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "location": {
          "description": "The Azure location where the Domain Service exists. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serviceStatus": {
          "description": "The current service status for the initial replica set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet in which to place the initial replica set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "subnetId"
      ],
      "type": "object"
    },
    "azure:domainservices/ServiceNotifications:ServiceNotifications": {
      "properties": {
        "additionalRecipients": {
          "description": "A list of additional email addresses to notify when there are alerts in the managed domain.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "notifyDcAdmins": {
          "description": "Whether to notify members of the _AAD DC Administrators_ group when there are alerts in the managed domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "notifyGlobalAdmins": {
          "description": "Whether to notify all Global Administrators when there are alerts in the managed domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:domainservices/ServiceSecureLdap:ServiceSecureLdap": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "certificateExpiry",
            "certificateThumbprint",
            "enabled",
            "pfxCertificate",
            "pfxCertificatePassword",
            "publicCertificate"
          ]
        }
      },
      "properties": {
        "certificateExpiry": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificateThumbprint": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Whether to enable secure LDAP for the managed domain. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "externalAccessEnabled": {
          "description": "Whether to enable external access to LDAPS over the Internet. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "pfxCertificate": {
          "description": "The certificate/private key to use for LDAPS, as a base64-encoded TripleDES-SHA1 encrypted PKCS#12 bundle (PFX file).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pfxCertificatePassword": {
          "description": "The password to use for decrypting the PKCS#12 bundle (PFX file).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicCertificate": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "pfxCertificate",
        "pfxCertificatePassword"
      ],
      "type": "object"
    },
    "azure:domainservices/ServiceSecurity:ServiceSecurity": {
      "properties": {
        "ntlmV1Enabled": {
          "description": "Whether to enable legacy NTLM v1 support. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "syncKerberosPasswords": {
          "description": "Whether to synchronize Kerberos password hashes to the managed domain. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "syncNtlmPasswords": {
          "description": "Whether to synchronize NTLM password hashes to the managed domain. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "syncOnPremPasswords": {
          "description": "Whether to synchronize on-premises password hashes to the managed domain. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "tlsV1Enabled": {
          "description": "Whether to enable legacy TLS v1 support. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:domainservices/getServiceNotification:getServiceNotification": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "additionalRecipients": {
          "description": "A list of additional email addresses to notify when there are alerts in the managed domain.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "notifyDcAdmins": {
          "description": "Whethermembers of the _AAD DC Administrators_ group are notified when there are alerts in the managed domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "notifyGlobalAdmins": {
          "description": "Whether all Global Administrators are notified when there are alerts in the managed domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "additionalRecipients",
        "notifyDcAdmins",
        "notifyGlobalAdmins"
      ],
      "type": "object"
    },
    "azure:domainservices/getServiceReplicaSet:getServiceReplicaSet": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "domainControllerIpAddresses": {
          "description": "A list of subnet IP addresses for the domain controllers in the replica set, typically two.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "externalAccessIpAddress": {
          "description": "The publicly routable IP address for the domain controllers in the replica set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Domain Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "location": {
          "description": "The Azure location in which the replica set resides.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serviceStatus": {
          "description": "The current service status for the replica set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet in which the replica set resides.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "domainControllerIpAddresses",
        "externalAccessIpAddress",
        "id",
        "location",
        "serviceStatus",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:domainservices/getServiceSecureLdap:getServiceSecureLdap": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "certificateExpiry": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificateThumbprint": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Whether secure LDAP is enabled for the managed domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "externalAccessEnabled": {
          "description": "Whether external access to LDAPS over the Internet, is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "publicCertificate": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "certificateExpiry",
        "certificateThumbprint",
        "enabled",
        "externalAccessEnabled",
        "publicCertificate"
      ],
      "type": "object"
    },
    "azure:domainservices/getServiceSecurity:getServiceSecurity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "ntlmV1Enabled": {
          "description": "Whether legacy NTLM v1 support is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "syncKerberosPasswords": {
          "description": "Whether Kerberos password hashes are synchronized to the managed domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "syncNtlmPasswords": {
          "description": "Whether NTLM password hashes are synchronized to the managed domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "syncOnPremPasswords": {
          "description": "Whether on-premises password hashes are synchronized to the managed domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "tlsV1Enabled": {
          "description": "Whether legacy TLS v1 support is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "ntlmV1Enabled",
        "syncKerberosPasswords",
        "syncNtlmPasswords",
        "syncOnPremPasswords",
        "tlsV1Enabled"
      ],
      "type": "object"
    },
    "azure:eventgrid/DomainIdentity:DomainIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "Specifies a list of user managed identity ids to be assigned. Required if `type` is `UserAssigned`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "Specifies the Principal ID of the System Assigned Managed Service Identity that is configured on this Event Grid Domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "Specifies the Tenant ID of the System Assigned Managed Service Identity that is configured on this Event Grid Domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of Event Grid Domain. Possible values are `SystemAssigned` (where Azure will generate a Principal for you) or `UserAssigned` where you can specify the User Assigned Managed Identity IDs in the `identity_ids` field.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:eventgrid/DomainInboundIpRule:DomainInboundIpRule": {
      "properties": {
        "action": {
          "description": "The action to take when the rule is matched. Possible values are `Allow`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipMask": {
          "description": "The ip mask (CIDR) to match on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "ipMask"
      ],
      "type": "object"
    },
    "azure:eventgrid/DomainInputMappingDefaultValues:DomainInputMappingDefaultValues": {
      "properties": {
        "dataVersion": {
          "description": "Specifies the default data version of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventType": {
          "description": "Specifies the default event type of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "Specifies the default subject of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventgrid/DomainInputMappingFields:DomainInputMappingFields": {
      "properties": {
        "dataVersion": {
          "description": "Specifies the data version of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventTime": {
          "description": "Specifies the event time of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventType": {
          "description": "Specifies the event type of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "Specifies the id of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "Specifies the subject of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "topic": {
          "description": "Specifies the topic of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilter:EventSubscriptionAdvancedFilter": {
      "properties": {
        "boolEquals": {
          "description": "Compares a value of an event using a single boolean value.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterBoolEqual:EventSubscriptionAdvancedFilterBoolEqual"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "isNotNulls": {
          "description": "Evaluates if a value of an event isn't NULL or undefined.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterIsNotNull:EventSubscriptionAdvancedFilterIsNotNull"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "isNullOrUndefineds": {
          "description": "Evaluates if a value of an event is NULL or undefined.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterIsNullOrUndefined:EventSubscriptionAdvancedFilterIsNullOrUndefined"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberGreaterThanOrEquals": {
          "description": "Compares a value of an event using a single floating point number.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterNumberGreaterThanOrEqual:EventSubscriptionAdvancedFilterNumberGreaterThanOrEqual"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberGreaterThans": {
          "description": "Compares a value of an event using a single floating point number.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterNumberGreaterThan:EventSubscriptionAdvancedFilterNumberGreaterThan"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberInRanges": {
          "description": "Compares a value of an event using multiple floating point number ranges.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterNumberInRange:EventSubscriptionAdvancedFilterNumberInRange"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberIns": {
          "description": "Compares a value of an event using multiple floating point numbers.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterNumberIn:EventSubscriptionAdvancedFilterNumberIn"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberLessThanOrEquals": {
          "description": "Compares a value of an event using a single floating point number.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterNumberLessThanOrEqual:EventSubscriptionAdvancedFilterNumberLessThanOrEqual"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberLessThans": {
          "description": "Compares a value of an event using a single floating point number.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterNumberLessThan:EventSubscriptionAdvancedFilterNumberLessThan"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberNotInRanges": {
          "description": "Compares a value of an event using multiple floating point number ranges.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterNumberNotInRange:EventSubscriptionAdvancedFilterNumberNotInRange"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberNotIns": {
          "description": "Compares a value of an event using multiple floating point numbers.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterNumberNotIn:EventSubscriptionAdvancedFilterNumberNotIn"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringBeginsWiths": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterStringBeginsWith:EventSubscriptionAdvancedFilterStringBeginsWith"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringContains": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterStringContain:EventSubscriptionAdvancedFilterStringContain"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringEndsWiths": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterStringEndsWith:EventSubscriptionAdvancedFilterStringEndsWith"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringIns": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterStringIn:EventSubscriptionAdvancedFilterStringIn"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringNotBeginsWiths": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterStringNotBeginsWith:EventSubscriptionAdvancedFilterStringNotBeginsWith"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringNotContains": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterStringNotContain:EventSubscriptionAdvancedFilterStringNotContain"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringNotEndsWiths": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterStringNotEndsWith:EventSubscriptionAdvancedFilterStringNotEndsWith"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringNotIns": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/EventSubscriptionAdvancedFilterStringNotIn:EventSubscriptionAdvancedFilterStringNotIn"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterBoolEqual:EventSubscriptionAdvancedFilterBoolEqual": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterIsNotNull:EventSubscriptionAdvancedFilterIsNotNull": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "key"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterIsNullOrUndefined:EventSubscriptionAdvancedFilterIsNullOrUndefined": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "key"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterNumberGreaterThan:EventSubscriptionAdvancedFilterNumberGreaterThan": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterNumberGreaterThanOrEqual:EventSubscriptionAdvancedFilterNumberGreaterThanOrEqual": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterNumberIn:EventSubscriptionAdvancedFilterNumberIn": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "number"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterNumberInRange:EventSubscriptionAdvancedFilterNumberInRange": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "items": {
              "type": "number"
            },
            "type": "array"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterNumberLessThan:EventSubscriptionAdvancedFilterNumberLessThan": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterNumberLessThanOrEqual:EventSubscriptionAdvancedFilterNumberLessThanOrEqual": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterNumberNotIn:EventSubscriptionAdvancedFilterNumberNotIn": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "number"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterNumberNotInRange:EventSubscriptionAdvancedFilterNumberNotInRange": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "items": {
              "type": "number"
            },
            "type": "array"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterStringBeginsWith:EventSubscriptionAdvancedFilterStringBeginsWith": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterStringContain:EventSubscriptionAdvancedFilterStringContain": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterStringEndsWith:EventSubscriptionAdvancedFilterStringEndsWith": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterStringIn:EventSubscriptionAdvancedFilterStringIn": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterStringNotBeginsWith:EventSubscriptionAdvancedFilterStringNotBeginsWith": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterStringNotContain:EventSubscriptionAdvancedFilterStringNotContain": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterStringNotEndsWith:EventSubscriptionAdvancedFilterStringNotEndsWith": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAdvancedFilterStringNotIn:EventSubscriptionAdvancedFilterStringNotIn": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionAzureFunctionEndpoint:EventSubscriptionAzureFunctionEndpoint": {
      "properties": {
        "functionId": {
          "description": "Specifies the ID of the Function where the Event Subscription will receive events. This must be the functions ID in format {function_app.id}/functions/{name}.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxEventsPerBatch": {
          "description": "Maximum number of events per batch.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "preferredBatchSizeInKilobytes": {
          "description": "Preferred batch size in Kilobytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "functionId"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionDeadLetterIdentity:EventSubscriptionDeadLetterIdentity": {
      "properties": {
        "type": {
          "description": "Specifies the type of Managed Service Identity that is used for dead lettering. Allowed value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionDeliveryIdentity:EventSubscriptionDeliveryIdentity": {
      "properties": {
        "type": {
          "description": "Specifies the type of Managed Service Identity that is used for event delivery. Allowed value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionEventhubEndpoint:EventSubscriptionEventhubEndpoint": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "eventhubId"
          ]
        }
      },
      "properties": {
        "eventhubId": {
          "description": "Specifies the id of the eventhub where the Event Subscription will receive events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionHybridConnectionEndpoint:EventSubscriptionHybridConnectionEndpoint": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "hybridConnectionId"
          ]
        }
      },
      "properties": {
        "hybridConnectionId": {
          "description": "Specifies the id of the hybrid connection where the Event Subscription will receive events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionRetryPolicy:EventSubscriptionRetryPolicy": {
      "properties": {
        "eventTimeToLive": {
          "description": "Specifies the time to live (in minutes) for events. Supported range is `1` to `1440`. Defaults to `1440`. See [official documentation](https://docs.microsoft.com/en-us/azure/event-grid/manage-event-delivery#set-retry-policy) for more details.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxDeliveryAttempts": {
          "description": "Specifies the maximum number of delivery retry attempts for events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "eventTimeToLive",
        "maxDeliveryAttempts"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionStorageBlobDeadLetterDestination:EventSubscriptionStorageBlobDeadLetterDestination": {
      "properties": {
        "storageAccountId": {
          "description": "Specifies the id of the storage account id where the storage blob is located.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageBlobContainerName": {
          "description": "Specifies the name of the Storage blob container that is the destination of the deadletter events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "storageAccountId",
        "storageBlobContainerName"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionStorageQueueEndpoint:EventSubscriptionStorageQueueEndpoint": {
      "properties": {
        "queueName": {
          "description": "Specifies the name of the storage queue where the Event Subscription will receive events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountId": {
          "description": "Specifies the id of the storage account id where the storage queue is located.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "queueName",
        "storageAccountId"
      ],
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionSubjectFilter:EventSubscriptionSubjectFilter": {
      "properties": {
        "caseSensitive": {
          "description": "Specifies if `subject_begins_with` and `subject_ends_with` case sensitive. This value defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "subjectBeginsWith": {
          "description": "A string to filter events for an event subscription based on a resource path prefix.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subjectEndsWith": {
          "description": "A string to filter events for an event subscription based on a resource path suffix.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventgrid/EventSubscriptionWebhookEndpoint:EventSubscriptionWebhookEndpoint": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "baseUrl",
            "url"
          ]
        }
      },
      "properties": {
        "activeDirectoryAppIdOrUri": {
          "description": "The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in delivery requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "activeDirectoryTenantId": {
          "description": "The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "baseUrl": {
          "description": "The base url of the webhook where the Event Subscription will receive events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxEventsPerBatch": {
          "description": "Maximum number of events per batch.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "preferredBatchSizeInKilobytes": {
          "description": "Preferred batch size in Kilobytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "url": {
          "description": "Specifies the url of the webhook where the Event Subscription will receive events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "url"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilter:SystemTopicEventSubscriptionAdvancedFilter": {
      "properties": {
        "boolEquals": {
          "description": "Compares a value of an event using a single boolean value.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterBoolEqual:SystemTopicEventSubscriptionAdvancedFilterBoolEqual"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "isNotNulls": {
          "description": "Evaluates if a value of an event isn't NULL or undefined.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterIsNotNull:SystemTopicEventSubscriptionAdvancedFilterIsNotNull"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "isNullOrUndefineds": {
          "description": "Evaluates if a value of an event is NULL or undefined.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterIsNullOrUndefined:SystemTopicEventSubscriptionAdvancedFilterIsNullOrUndefined"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberGreaterThanOrEquals": {
          "description": "Compares a value of an event using a single floating point number.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberGreaterThanOrEqual:SystemTopicEventSubscriptionAdvancedFilterNumberGreaterThanOrEqual"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberGreaterThans": {
          "description": "Compares a value of an event using a single floating point number.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberGreaterThan:SystemTopicEventSubscriptionAdvancedFilterNumberGreaterThan"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberInRanges": {
          "description": "Compares a value of an event using multiple floating point number ranges.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberInRange:SystemTopicEventSubscriptionAdvancedFilterNumberInRange"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberIns": {
          "description": "Compares a value of an event using multiple floating point numbers.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberIn:SystemTopicEventSubscriptionAdvancedFilterNumberIn"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberLessThanOrEquals": {
          "description": "Compares a value of an event using a single floating point number.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberLessThanOrEqual:SystemTopicEventSubscriptionAdvancedFilterNumberLessThanOrEqual"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberLessThans": {
          "description": "Compares a value of an event using a single floating point number.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberLessThan:SystemTopicEventSubscriptionAdvancedFilterNumberLessThan"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberNotInRanges": {
          "description": "Compares a value of an event using multiple floating point number ranges.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberNotInRange:SystemTopicEventSubscriptionAdvancedFilterNumberNotInRange"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberNotIns": {
          "description": "Compares a value of an event using multiple floating point numbers.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberNotIn:SystemTopicEventSubscriptionAdvancedFilterNumberNotIn"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringBeginsWiths": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringBeginsWith:SystemTopicEventSubscriptionAdvancedFilterStringBeginsWith"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringContains": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringContain:SystemTopicEventSubscriptionAdvancedFilterStringContain"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringEndsWiths": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringEndsWith:SystemTopicEventSubscriptionAdvancedFilterStringEndsWith"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringIns": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringIn:SystemTopicEventSubscriptionAdvancedFilterStringIn"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringNotBeginsWiths": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringNotBeginsWith:SystemTopicEventSubscriptionAdvancedFilterStringNotBeginsWith"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringNotContains": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringNotContain:SystemTopicEventSubscriptionAdvancedFilterStringNotContain"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringNotEndsWiths": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringNotEndsWith:SystemTopicEventSubscriptionAdvancedFilterStringNotEndsWith"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringNotIns": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringNotIn:SystemTopicEventSubscriptionAdvancedFilterStringNotIn"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterBoolEqual:SystemTopicEventSubscriptionAdvancedFilterBoolEqual": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterIsNotNull:SystemTopicEventSubscriptionAdvancedFilterIsNotNull": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "key"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterIsNullOrUndefined:SystemTopicEventSubscriptionAdvancedFilterIsNullOrUndefined": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "key"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberGreaterThan:SystemTopicEventSubscriptionAdvancedFilterNumberGreaterThan": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberGreaterThanOrEqual:SystemTopicEventSubscriptionAdvancedFilterNumberGreaterThanOrEqual": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberIn:SystemTopicEventSubscriptionAdvancedFilterNumberIn": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "number"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberInRange:SystemTopicEventSubscriptionAdvancedFilterNumberInRange": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "items": {
              "type": "number"
            },
            "type": "array"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberLessThan:SystemTopicEventSubscriptionAdvancedFilterNumberLessThan": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberLessThanOrEqual:SystemTopicEventSubscriptionAdvancedFilterNumberLessThanOrEqual": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberNotIn:SystemTopicEventSubscriptionAdvancedFilterNumberNotIn": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "number"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterNumberNotInRange:SystemTopicEventSubscriptionAdvancedFilterNumberNotInRange": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "items": {
              "type": "number"
            },
            "type": "array"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringBeginsWith:SystemTopicEventSubscriptionAdvancedFilterStringBeginsWith": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringContain:SystemTopicEventSubscriptionAdvancedFilterStringContain": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringEndsWith:SystemTopicEventSubscriptionAdvancedFilterStringEndsWith": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringIn:SystemTopicEventSubscriptionAdvancedFilterStringIn": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringNotBeginsWith:SystemTopicEventSubscriptionAdvancedFilterStringNotBeginsWith": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringNotContain:SystemTopicEventSubscriptionAdvancedFilterStringNotContain": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringNotEndsWith:SystemTopicEventSubscriptionAdvancedFilterStringNotEndsWith": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAdvancedFilterStringNotIn:SystemTopicEventSubscriptionAdvancedFilterStringNotIn": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionAzureFunctionEndpoint:SystemTopicEventSubscriptionAzureFunctionEndpoint": {
      "properties": {
        "functionId": {
          "description": "Specifies the ID of the Function where the Event Subscription will receive events. This must be the functions ID in format {function_app.id}/functions/{name}.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxEventsPerBatch": {
          "description": "Maximum number of events per batch.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "preferredBatchSizeInKilobytes": {
          "description": "Preferred batch size in Kilobytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "functionId"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionDeadLetterIdentity:SystemTopicEventSubscriptionDeadLetterIdentity": {
      "properties": {
        "type": {
          "description": "Specifies the type of Managed Service Identity that is used for dead lettering. Allowed value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionDeliveryIdentity:SystemTopicEventSubscriptionDeliveryIdentity": {
      "properties": {
        "type": {
          "description": "Specifies the type of Managed Service Identity that is used for event delivery. Allowed value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionRetryPolicy:SystemTopicEventSubscriptionRetryPolicy": {
      "properties": {
        "eventTimeToLive": {
          "description": "Specifies the time to live (in minutes) for events. Supported range is `1` to `1440`. Defaults to `1440`. See [official documentation](https://docs.microsoft.com/en-us/azure/event-grid/manage-event-delivery#set-retry-policy) for more details.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxDeliveryAttempts": {
          "description": "Specifies the maximum number of delivery retry attempts for events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "eventTimeToLive",
        "maxDeliveryAttempts"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionStorageBlobDeadLetterDestination:SystemTopicEventSubscriptionStorageBlobDeadLetterDestination": {
      "properties": {
        "storageAccountId": {
          "description": "Specifies the id of the storage account id where the storage blob is located.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageBlobContainerName": {
          "description": "Specifies the name of the Storage blob container that is the destination of the deadletter events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "storageAccountId",
        "storageBlobContainerName"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionStorageQueueEndpoint:SystemTopicEventSubscriptionStorageQueueEndpoint": {
      "properties": {
        "queueName": {
          "description": "Specifies the name of the storage queue where the Event Subscription will receive events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountId": {
          "description": "Specifies the id of the storage account id where the storage queue is located.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "queueName",
        "storageAccountId"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionSubjectFilter:SystemTopicEventSubscriptionSubjectFilter": {
      "properties": {
        "caseSensitive": {
          "description": "Specifies if `subject_begins_with` and `subject_ends_with` case sensitive. This value defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "subjectBeginsWith": {
          "description": "A string to filter events for an event subscription based on a resource path prefix.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subjectEndsWith": {
          "description": "A string to filter events for an event subscription based on a resource path suffix.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventgrid/SystemTopicEventSubscriptionWebhookEndpoint:SystemTopicEventSubscriptionWebhookEndpoint": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "baseUrl",
            "url"
          ]
        }
      },
      "properties": {
        "activeDirectoryAppIdOrUri": {
          "description": "The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in delivery requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "activeDirectoryTenantId": {
          "description": "The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "baseUrl": {
          "description": "The base url of the webhook where the Event Subscription will receive events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxEventsPerBatch": {
          "description": "Maximum number of events per batch.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "preferredBatchSizeInKilobytes": {
          "description": "Preferred batch size in Kilobytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "url": {
          "description": "Specifies the url of the webhook where the Event Subscription will receive events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "url"
      ],
      "type": "object"
    },
    "azure:eventgrid/SystemTopicIdentity:SystemTopicIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "Specifies a list of user managed identity ids to be assigned. Required if `type` is `UserAssigned`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "Specifies the Principal ID of the System Assigned Managed Service Identity that is configured on this Event Grid System Topic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "Specifies the Tenant ID of the System Assigned Managed Service Identity that is configured on this Event Grid System Topic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of Event Grid System Topic. Possible values are `SystemAssigned` (where Azure will generate a Principal for you) or `UserAssigned` where you can specify the User Assigned Managed Identity IDs in the `identity_ids` field.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:eventgrid/TopicIdentity:TopicIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "Specifies a list of user managed identity ids to be assigned. Required if `type` is `UserAssigned`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "Specifies the Principal ID of the System Assigned Managed Service Identity that is configured on this Event Grid Topic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "Specifies the Tenant ID of the System Assigned Managed Service Identity that is configured on this Event Grid Topic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of Event Grid Topic. Possible values are `SystemAssigned` (where Azure will generate a Principal for you) or `UserAssigned` where you can specify the User Assigned Managed Identity IDs in the `identity_ids` field.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:eventgrid/TopicInboundIpRule:TopicInboundIpRule": {
      "properties": {
        "action": {
          "description": "The action to take when the rule is matched. Possible values are `Allow`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipMask": {
          "description": "The ip mask (CIDR) to match on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "ipMask"
      ],
      "type": "object"
    },
    "azure:eventgrid/TopicInputMappingDefaultValues:TopicInputMappingDefaultValues": {
      "properties": {
        "dataVersion": {
          "description": "Specifies the default data version of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventType": {
          "description": "Specifies the default event type of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "Specifies the default subject of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventgrid/TopicInputMappingFields:TopicInputMappingFields": {
      "properties": {
        "dataVersion": {
          "description": "Specifies the data version of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventTime": {
          "description": "Specifies the event time of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventType": {
          "description": "Specifies the event type of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "Specifies the id of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "Specifies the subject of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "topic": {
          "description": "Specifies the topic of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventgrid/getDomainInboundIpRule:getDomainInboundIpRule": {
      "properties": {
        "action": {
          "description": "The action to take when the rule is matched. Possible values are `Allow`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipMask": {
          "description": "The ip mask (CIDR) to match on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "ipMask"
      ],
      "type": "object"
    },
    "azure:eventgrid/getDomainInputMappingDefaultValue:getDomainInputMappingDefaultValue": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "dataVersion": {
          "description": "Specifies the default data version of the EventGrid Event associated with the domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventType": {
          "description": "Specifies the default event type of the EventGrid Event associated with the domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "Specifies the default subject of the EventGrid Event associated with the domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "dataVersion",
        "eventType",
        "subject"
      ],
      "type": "object"
    },
    "azure:eventgrid/getDomainInputMappingField:getDomainInputMappingField": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "dataVersion": {
          "description": "Specifies the default data version of the EventGrid Event associated with the domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventTime": {
          "description": "Specifies the event time of the EventGrid Event associated with the domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventType": {
          "description": "Specifies the default event type of the EventGrid Event associated with the domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "Specifies the id of the EventGrid Event associated with the domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "Specifies the default subject of the EventGrid Event associated with the domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "topic": {
          "description": "Specifies the topic of the EventGrid Event associated with the domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "dataVersion",
        "eventTime",
        "eventType",
        "id",
        "subject",
        "topic"
      ],
      "type": "object"
    },
    "azure:eventgrid/getSystemTopicIdentity:getSystemTopicIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "Specifies a list of user managed identity ids to be assigned. Required if `type` is `UserAssigned`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "Specifies the Principal ID of the System Assigned Managed Service Identity that is configured on this Event Grid System Topic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "Specifies the Tenant ID of the System Assigned Managed Service Identity that is configured on this Event Grid System Topic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of Event Grid System Topic. Possible values are `SystemAssigned` (where Azure will generate a Principal for you) or `UserAssigned` where you can specify the User Assigned Managed Identity IDs in the `identity_ids` field.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:eventhub/DomainIdentity:DomainIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "Specifies a list of user managed identity ids to be assigned. Required if `type` is `UserAssigned`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "Specifies the Principal ID of the System Assigned Managed Service Identity that is configured on this Event Grid Domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "Specifies the Tenant ID of the System Assigned Managed Service Identity that is configured on this Event Grid Domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of Event Grid Domain. Possible values are `SystemAssigned` (where Azure will generate a Principal for you) or `UserAssigned` where you can specify the User Assigned Managed Identity IDs in the `identity_ids` field.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:eventhub/DomainInboundIpRule:DomainInboundIpRule": {
      "properties": {
        "action": {
          "description": "The action to take when the rule is matched. Possible values are `Allow`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipMask": {
          "description": "The ip mask (CIDR) to match on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "ipMask"
      ],
      "type": "object"
    },
    "azure:eventhub/DomainInputMappingDefaultValues:DomainInputMappingDefaultValues": {
      "properties": {
        "dataVersion": {
          "description": "Specifies the default data version of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventType": {
          "description": "Specifies the default event type of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "Specifies the default subject of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventhub/DomainInputMappingFields:DomainInputMappingFields": {
      "properties": {
        "dataVersion": {
          "description": "Specifies the data version of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventTime": {
          "description": "Specifies the event time of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventType": {
          "description": "Specifies the event type of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "Specifies the id of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "Specifies the subject of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "topic": {
          "description": "Specifies the topic of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventhub/EventGridTopicIdentity:EventGridTopicIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "Specifies a list of user managed identity ids to be assigned. Required if `type` is `UserAssigned`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "Specifies the Principal ID of the System Assigned Managed Service Identity that is configured on this Event Grid Topic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "Specifies the Tenant ID of the System Assigned Managed Service Identity that is configured on this Event Grid Topic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of Event Grid Topic. Possible values are `SystemAssigned` (where Azure will generate a Principal for you) or `UserAssigned` where you can specify the User Assigned Managed Identity IDs in the `identity_ids` field.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:eventhub/EventGridTopicInboundIpRule:EventGridTopicInboundIpRule": {
      "properties": {
        "action": {
          "description": "The action to take when the rule is matched. Possible values are `Allow`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipMask": {
          "description": "The ip mask (CIDR) to match on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "ipMask"
      ],
      "type": "object"
    },
    "azure:eventhub/EventGridTopicInputMappingDefaultValues:EventGridTopicInputMappingDefaultValues": {
      "properties": {
        "dataVersion": {
          "description": "Specifies the default data version of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventType": {
          "description": "Specifies the default event type of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "Specifies the default subject of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventhub/EventGridTopicInputMappingFields:EventGridTopicInputMappingFields": {
      "properties": {
        "dataVersion": {
          "description": "Specifies the data version of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventTime": {
          "description": "Specifies the event time of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "eventType": {
          "description": "Specifies the event type of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "Specifies the id of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subject": {
          "description": "Specifies the subject of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "topic": {
          "description": "Specifies the topic of the EventGrid Event to associate with the domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventhub/EventHubCaptureDescription:EventHubCaptureDescription": {
      "properties": {
        "destination": {
          "$ref": "#/types/azure:eventhub/EventHubCaptureDescriptionDestination:EventHubCaptureDescriptionDestination",
          "description": "A `destination` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enabled": {
          "description": "Specifies if the Capture Description is Enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "encoding": {
          "description": "Specifies the Encoding used for the Capture Description. Possible values are `Avro` and `AvroDeflate`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "intervalInSeconds": {
          "description": "Specifies the time interval in seconds at which the capture will happen. Values can be between `60` and `900` seconds. Defaults to `300` seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "sizeLimitInBytes": {
          "description": "Specifies the amount of data built up in your EventHub before a Capture Operation occurs. Value should be between `10485760` and `524288000`  bytes. Defaults to `314572800` bytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "skipEmptyArchives": {
          "description": "Specifies if empty files should not be emitted if no events occur during the Capture time window.  Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "destination",
        "enabled",
        "encoding"
      ],
      "type": "object"
    },
    "azure:eventhub/EventHubCaptureDescriptionDestination:EventHubCaptureDescriptionDestination": {
      "properties": {
        "archiveNameFormat": {
          "description": "The Blob naming convention for archiving. e.g. `{Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}`. Here all the parameters (Namespace,EventHub .. etc) are mandatory irrespective of order\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "blobContainerName": {
          "description": "The name of the Container within the Blob Storage Account where messages should be archived.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of the Destination where the capture should take place. At this time the only supported value is `EventHubArchive.AzureBlockBlob`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the Blob Storage Account where messages should be archived.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "archiveNameFormat",
        "blobContainerName",
        "name",
        "storageAccountId"
      ],
      "type": "object"
    },
    "azure:eventhub/EventHubNamespaceIdentity:EventHubNamespaceIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Client ID of the Service Principal assigned to this EventHub Namespace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant the Service Principal is assigned in.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Identity which should be used for this EventHub Namespace. At this time the only possible value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventhub/EventHubNamespaceNetworkRulesets:EventHubNamespaceNetworkRulesets": {
      "properties": {
        "defaultAction": {
          "description": "The default action to take when a rule is not matched. Possible values are `Allow` and `Deny`. Defaults to `Deny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipRules": {
          "description": "One or more `ip_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventHubNamespaceNetworkRulesetsIpRule:EventHubNamespaceNetworkRulesetsIpRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "trustedServiceAccessEnabled": {
          "description": "Whether Trusted Microsoft Services are allowed to bypass firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "virtualNetworkRules": {
          "description": "One or more `virtual_network_rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventHubNamespaceNetworkRulesetsVirtualNetworkRule:EventHubNamespaceNetworkRulesetsVirtualNetworkRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "defaultAction"
      ],
      "type": "object"
    },
    "azure:eventhub/EventHubNamespaceNetworkRulesetsIpRule:EventHubNamespaceNetworkRulesetsIpRule": {
      "properties": {
        "action": {
          "description": "The action to take when the rule is matched. Possible values are `Allow`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipMask": {
          "description": "The ip mask to match on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "ipMask"
      ],
      "type": "object"
    },
    "azure:eventhub/EventHubNamespaceNetworkRulesetsVirtualNetworkRule:EventHubNamespaceNetworkRulesetsVirtualNetworkRule": {
      "properties": {
        "ignoreMissingVirtualNetworkServiceEndpoint": {
          "description": "Are missing virtual network service endpoints ignored? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "subnetId": {
          "description": "The id of the subnet to match on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "subnetId"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilter:EventSubscriptionAdvancedFilter": {
      "properties": {
        "boolEquals": {
          "description": "Compares a value of an event using a single boolean value.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterBoolEqual:EventSubscriptionAdvancedFilterBoolEqual"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "isNotNulls": {
          "description": "Evaluates if a value of an event isn't NULL or undefined.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterIsNotNull:EventSubscriptionAdvancedFilterIsNotNull"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "isNullOrUndefineds": {
          "description": "Evaluates if a value of an event is NULL or undefined.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterIsNullOrUndefined:EventSubscriptionAdvancedFilterIsNullOrUndefined"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberGreaterThanOrEquals": {
          "description": "Compares a value of an event using a single floating point number.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterNumberGreaterThanOrEqual:EventSubscriptionAdvancedFilterNumberGreaterThanOrEqual"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberGreaterThans": {
          "description": "Compares a value of an event using a single floating point number.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterNumberGreaterThan:EventSubscriptionAdvancedFilterNumberGreaterThan"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberInRanges": {
          "description": "Compares a value of an event using multiple floating point number ranges.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterNumberInRange:EventSubscriptionAdvancedFilterNumberInRange"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberIns": {
          "description": "Compares a value of an event using multiple floating point numbers.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterNumberIn:EventSubscriptionAdvancedFilterNumberIn"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberLessThanOrEquals": {
          "description": "Compares a value of an event using a single floating point number.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterNumberLessThanOrEqual:EventSubscriptionAdvancedFilterNumberLessThanOrEqual"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberLessThans": {
          "description": "Compares a value of an event using a single floating point number.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterNumberLessThan:EventSubscriptionAdvancedFilterNumberLessThan"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberNotInRanges": {
          "description": "Compares a value of an event using multiple floating point number ranges.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterNumberNotInRange:EventSubscriptionAdvancedFilterNumberNotInRange"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "numberNotIns": {
          "description": "Compares a value of an event using multiple floating point numbers.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterNumberNotIn:EventSubscriptionAdvancedFilterNumberNotIn"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringBeginsWiths": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterStringBeginsWith:EventSubscriptionAdvancedFilterStringBeginsWith"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringContains": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterStringContain:EventSubscriptionAdvancedFilterStringContain"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringEndsWiths": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterStringEndsWith:EventSubscriptionAdvancedFilterStringEndsWith"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringIns": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterStringIn:EventSubscriptionAdvancedFilterStringIn"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringNotBeginsWiths": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterStringNotBeginsWith:EventSubscriptionAdvancedFilterStringNotBeginsWith"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringNotContains": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterStringNotContain:EventSubscriptionAdvancedFilterStringNotContain"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringNotEndsWiths": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterStringNotEndsWith:EventSubscriptionAdvancedFilterStringNotEndsWith"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "stringNotIns": {
          "description": "Compares a value of an event using multiple string values.\n",
          "items": {
            "$ref": "#/types/azure:eventhub/EventSubscriptionAdvancedFilterStringNotIn:EventSubscriptionAdvancedFilterStringNotIn"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterBoolEqual:EventSubscriptionAdvancedFilterBoolEqual": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterIsNotNull:EventSubscriptionAdvancedFilterIsNotNull": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "key"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterIsNullOrUndefined:EventSubscriptionAdvancedFilterIsNullOrUndefined": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "key"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterNumberGreaterThan:EventSubscriptionAdvancedFilterNumberGreaterThan": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterNumberGreaterThanOrEqual:EventSubscriptionAdvancedFilterNumberGreaterThanOrEqual": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterNumberIn:EventSubscriptionAdvancedFilterNumberIn": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "number"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterNumberInRange:EventSubscriptionAdvancedFilterNumberInRange": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "items": {
              "type": "number"
            },
            "type": "array"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterNumberLessThan:EventSubscriptionAdvancedFilterNumberLessThan": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterNumberLessThanOrEqual:EventSubscriptionAdvancedFilterNumberLessThanOrEqual": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Specifies a single value to compare to when using a single value operator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterNumberNotIn:EventSubscriptionAdvancedFilterNumberNotIn": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "number"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterNumberNotInRange:EventSubscriptionAdvancedFilterNumberNotInRange": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "items": {
              "type": "number"
            },
            "type": "array"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterStringBeginsWith:EventSubscriptionAdvancedFilterStringBeginsWith": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterStringContain:EventSubscriptionAdvancedFilterStringContain": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterStringEndsWith:EventSubscriptionAdvancedFilterStringEndsWith": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterStringIn:EventSubscriptionAdvancedFilterStringIn": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterStringNotBeginsWith:EventSubscriptionAdvancedFilterStringNotBeginsWith": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterStringNotContain:EventSubscriptionAdvancedFilterStringNotContain": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterStringNotEndsWith:EventSubscriptionAdvancedFilterStringNotEndsWith": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAdvancedFilterStringNotIn:EventSubscriptionAdvancedFilterStringNotIn": {
      "properties": {
        "key": {
          "description": "Specifies the field within the event data that you want to use for filtering. Type of the field can be a number, boolean, or string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "Specifies an array of values to compare to when using a multiple values operator.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "key",
        "values"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionAzureFunctionEndpoint:EventSubscriptionAzureFunctionEndpoint": {
      "properties": {
        "functionId": {
          "description": "Specifies the ID of the Function where the Event Subscription will receive events. This must be the functions ID in format {function_app.id}/functions/{name}.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxEventsPerBatch": {
          "description": "Maximum number of events per batch.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "preferredBatchSizeInKilobytes": {
          "description": "Preferred batch size in Kilobytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "functionId"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionDeadLetterIdentity:EventSubscriptionDeadLetterIdentity": {
      "properties": {
        "type": {
          "description": "Specifies the type of Managed Service Identity that is used for dead lettering. Allowed value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionDeliveryIdentity:EventSubscriptionDeliveryIdentity": {
      "properties": {
        "type": {
          "description": "Specifies the type of Managed Service Identity that is used for event delivery. Allowed value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionEventhubEndpoint:EventSubscriptionEventhubEndpoint": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "eventhubId"
          ]
        }
      },
      "properties": {
        "eventhubId": {
          "description": "Specifies the id of the eventhub where the Event Subscription will receive events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionHybridConnectionEndpoint:EventSubscriptionHybridConnectionEndpoint": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "hybridConnectionId"
          ]
        }
      },
      "properties": {
        "hybridConnectionId": {
          "description": "Specifies the id of the hybrid connection where the Event Subscription will receive events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionRetryPolicy:EventSubscriptionRetryPolicy": {
      "properties": {
        "eventTimeToLive": {
          "description": "Specifies the time to live (in minutes) for events. Supported range is `1` to `1440`. Defaults to `1440`. See [official documentation](https://docs.microsoft.com/en-us/azure/event-grid/manage-event-delivery#set-retry-policy) for more details.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxDeliveryAttempts": {
          "description": "Specifies the maximum number of delivery retry attempts for events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "eventTimeToLive",
        "maxDeliveryAttempts"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionStorageBlobDeadLetterDestination:EventSubscriptionStorageBlobDeadLetterDestination": {
      "properties": {
        "storageAccountId": {
          "description": "Specifies the id of the storage account id where the storage blob is located.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageBlobContainerName": {
          "description": "Specifies the name of the Storage blob container that is the destination of the deadletter events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "storageAccountId",
        "storageBlobContainerName"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionStorageQueueEndpoint:EventSubscriptionStorageQueueEndpoint": {
      "properties": {
        "queueName": {
          "description": "Specifies the name of the storage queue where the Event Subscription will receive events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountId": {
          "description": "Specifies the id of the storage account id where the storage queue is located.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "queueName",
        "storageAccountId"
      ],
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionSubjectFilter:EventSubscriptionSubjectFilter": {
      "properties": {
        "caseSensitive": {
          "description": "Specifies if `subject_begins_with` and `subject_ends_with` case sensitive. This value defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "subjectBeginsWith": {
          "description": "A string to filter events for an event subscription based on a resource path prefix.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subjectEndsWith": {
          "description": "A string to filter events for an event subscription based on a resource path suffix.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:eventhub/EventSubscriptionWebhookEndpoint:EventSubscriptionWebhookEndpoint": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "baseUrl",
            "url"
          ]
        }
      },
      "properties": {
        "activeDirectoryAppIdOrUri": {
          "description": "The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in delivery requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "activeDirectoryTenantId": {
          "description": "The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "baseUrl": {
          "description": "The base url of the webhook where the Event Subscription will receive events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxEventsPerBatch": {
          "description": "Maximum number of events per batch.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "preferredBatchSizeInKilobytes": {
          "description": "Preferred batch size in Kilobytes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "url": {
          "description": "Specifies the url of the webhook where the Event Subscription will receive events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "url"
      ],
      "type": "object"
    },
    "azure:eventhub/SubscriptionRuleCorrelationFilter:SubscriptionRuleCorrelationFilter": {
      "properties": {
        "contentType": {
          "description": "Content type of the message.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "correlationId": {
          "description": "Identifier of the correlation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "label": {
          "description": "Application specific label.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "messageId": {
          "description": "Identifier of the message.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "properties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A list of user defined properties to be included in the filter. Specified as a map of name/value pairs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "replyTo": {
          "description": "Address of the queue to reply to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "replyToSessionId": {
          "description": "Session identifier to reply to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sessionId": {
          "description": "Session identifier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "to": {
          "description": "Address to send to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:frontdoor/CustomHttpsConfigurationCustomHttpsConfiguration:CustomHttpsConfigurationCustomHttpsConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "minimumTlsVersion",
            "provisioningState",
            "provisioningSubstate"
          ]
        }
      },
      "properties": {
        "azureKeyVaultCertificateSecretName": {
          "description": "The name of the Key Vault secret representing the full certificate PFX.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "azureKeyVaultCertificateSecretVersion": {
          "description": "The version of the Key Vault secret representing the full certificate PFX. Defaults to `Latest`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "azureKeyVaultCertificateVaultId": {
          "description": "The ID of the Key Vault containing the SSL certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificateSource": {
          "description": "Certificate source to encrypted `HTTPS` traffic with. Allowed values are `FrontDoor` or `AzureKeyVault`. Defaults to `FrontDoor`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "minimumTlsVersion": {
          "description": "Minimum client TLS version supported.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "provisioningState": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "provisioningSubstate": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:frontdoor/FirewallPolicyCustomRule:FirewallPolicyCustomRule": {
      "properties": {
        "action": {
          "description": "The action to perform when the rule is matched. Possible values are `Allow`, `Block`, `Log`, or `Redirect`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Is the rule is enabled or disabled? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "matchConditions": {
          "description": "One or more `match_condition` block defined below. Can support up to `10` `match_condition` blocks.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FirewallPolicyCustomRuleMatchCondition:FirewallPolicyCustomRuleMatchCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "Gets name of the resource that is unique within a policy. This name can be used to access the resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority of the rule. Rules with a lower value will be evaluated before rules with a higher value. Defaults to `1`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "rateLimitDurationInMinutes": {
          "description": "The rate limit duration in minutes. Defaults to `1`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "rateLimitThreshold": {
          "description": "The rate limit threshold. Defaults to `10`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "type": {
          "description": "The type of rule. Possible values are `MatchRule` or `RateLimitRule`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "name",
        "type"
      ],
      "type": "object"
    },
    "azure:frontdoor/FirewallPolicyCustomRuleMatchCondition:FirewallPolicyCustomRuleMatchCondition": {
      "properties": {
        "matchValues": {
          "description": "Up to `600` possible values to match. Limit is in total across all `match_condition` blocks and `match_values` arguments. String value itself can be up to `256` characters long.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "matchVariable": {
          "description": "The request variable to compare with. Possible values are `Cookies`, `PostArgs`, `QueryString`, `RemoteAddr`, `RequestBody`, `RequestHeader`, `RequestMethod`, `RequestUri`, or `SocketAddr`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "negationCondition": {
          "description": "Should the result of the condition be negated.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Comparison type to use for matching with the variable value. Possible values are `Any`, `BeginsWith`, `Contains`, `EndsWith`, `Equal`, `GeoMatch`, `GreaterThan`, `GreaterThanOrEqual`, `IPMatch`, `LessThan`, `LessThanOrEqual` or `RegEx`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "selector": {
          "description": "Match against a specific key if the `match_variable` is `QueryString`, `PostArgs`, `RequestHeader` or `Cookies`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "transforms": {
          "description": "Up to `5` transforms to apply. Possible values are `Lowercase`, `RemoveNulls`, `Trim`, `Uppercase`, `URLDecode` or`URLEncode`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "matchValues",
        "matchVariable",
        "operator"
      ],
      "type": "object"
    },
    "azure:frontdoor/FirewallPolicyManagedRule:FirewallPolicyManagedRule": {
      "properties": {
        "exclusions": {
          "description": "One or more `exclusion` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FirewallPolicyManagedRuleExclusion:FirewallPolicyManagedRuleExclusion"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "overrides": {
          "description": "One or more `override` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FirewallPolicyManagedRuleOverride:FirewallPolicyManagedRuleOverride"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "type": {
          "description": "The name of the managed rule to use with this resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "The version on the managed rule to use with this resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type",
        "version"
      ],
      "type": "object"
    },
    "azure:frontdoor/FirewallPolicyManagedRuleExclusion:FirewallPolicyManagedRuleExclusion": {
      "properties": {
        "matchVariable": {
          "description": "The variable type to be excluded. Possible values are `QueryStringArgNames`, `RequestBodyPostArgNames`, `RequestCookieNames`, `RequestHeaderNames`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "Comparison operator to apply to the selector when specifying which elements in the collection this exclusion applies to. Possible values are: `Equals`, `Contains`, `StartsWith`, `EndsWith`, `EqualsAny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "selector": {
          "description": "Selector for the value in the `match_variable` attribute this exclusion applies to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "matchVariable",
        "operator",
        "selector"
      ],
      "type": "object"
    },
    "azure:frontdoor/FirewallPolicyManagedRuleOverride:FirewallPolicyManagedRuleOverride": {
      "properties": {
        "exclusions": {
          "description": "One or more `exclusion` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FirewallPolicyManagedRuleOverrideExclusion:FirewallPolicyManagedRuleOverrideExclusion"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ruleGroupName": {
          "description": "The managed rule group to override.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rules": {
          "description": "One or more `rule` blocks as defined below. If none are specified, all of the rules in the group will be disabled.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FirewallPolicyManagedRuleOverrideRule:FirewallPolicyManagedRuleOverrideRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "ruleGroupName"
      ],
      "type": "object"
    },
    "azure:frontdoor/FirewallPolicyManagedRuleOverrideExclusion:FirewallPolicyManagedRuleOverrideExclusion": {
      "properties": {
        "matchVariable": {
          "description": "The variable type to be excluded. Possible values are `QueryStringArgNames`, `RequestBodyPostArgNames`, `RequestCookieNames`, `RequestHeaderNames`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "Comparison operator to apply to the selector when specifying which elements in the collection this exclusion applies to. Possible values are: `Equals`, `Contains`, `StartsWith`, `EndsWith`, `EqualsAny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "selector": {
          "description": "Selector for the value in the `match_variable` attribute this exclusion applies to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "matchVariable",
        "operator",
        "selector"
      ],
      "type": "object"
    },
    "azure:frontdoor/FirewallPolicyManagedRuleOverrideRule:FirewallPolicyManagedRuleOverrideRule": {
      "properties": {
        "action": {
          "description": "The action to be applied when the rule matches. Possible values are `Allow`, `Block`, `Log`, or `Redirect`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Is the managed rule override enabled or disabled. Defaults to `false`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "exclusions": {
          "description": "One or more `exclusion` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FirewallPolicyManagedRuleOverrideRuleExclusion:FirewallPolicyManagedRuleOverrideRuleExclusion"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ruleId": {
          "description": "Identifier for the managed rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "ruleId"
      ],
      "type": "object"
    },
    "azure:frontdoor/FirewallPolicyManagedRuleOverrideRuleExclusion:FirewallPolicyManagedRuleOverrideRuleExclusion": {
      "properties": {
        "matchVariable": {
          "description": "The variable type to be excluded. Possible values are `QueryStringArgNames`, `RequestBodyPostArgNames`, `RequestCookieNames`, `RequestHeaderNames`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "Comparison operator to apply to the selector when specifying which elements in the collection this exclusion applies to. Possible values are: `Equals`, `Contains`, `StartsWith`, `EndsWith`, `EqualsAny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "selector": {
          "description": "Selector for the value in the `match_variable` attribute this exclusion applies to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "matchVariable",
        "operator",
        "selector"
      ],
      "type": "object"
    },
    "azure:frontdoor/FrontdoorBackendPool:FrontdoorBackendPool": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "backends",
            "healthProbeName",
            "id",
            "loadBalancingName",
            "name"
          ]
        }
      },
      "properties": {
        "backends": {
          "description": "A `backend` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:frontdoor/FrontdoorBackendPoolBackend:FrontdoorBackendPoolBackend"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "healthProbeName": {
          "description": "Specifies the name of the `backend_pool_health_probe` block within this resource to use for this `Backend Pool`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the FrontDoor.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "loadBalancingName": {
          "description": "Specifies the name of the `backend_pool_load_balancing` block within this resource to use for this `Backend Pool`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Backend Pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "backends",
        "healthProbeName",
        "loadBalancingName",
        "name"
      ],
      "type": "object"
    },
    "azure:frontdoor/FrontdoorBackendPoolBackend:FrontdoorBackendPoolBackend": {
      "properties": {
        "address": {
          "description": "Location of the backend (IP address or FQDN)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Specifies if the backend is enabled or not. Valid options are `true` or `false`. Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "hostHeader": {
          "description": "The value to use as the host header sent to the backend.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "httpPort": {
          "description": "The HTTP TCP port number. Possible values are between `1` - `65535`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "httpsPort": {
          "description": "The HTTPS TCP port number. Possible values are between `1` - `65535`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "priority": {
          "description": "Priority to use for load balancing. Higher priorities will not be used for load balancing if any lower priority backend is healthy. Defaults to `1`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "weight": {
          "description": "Weight of this endpoint for load balancing purposes. Defaults to `50`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "address",
        "hostHeader",
        "httpPort",
        "httpsPort"
      ],
      "type": "object"
    },
    "azure:frontdoor/FrontdoorBackendPoolHealthProbe:FrontdoorBackendPoolHealthProbe": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name"
          ]
        }
      },
      "properties": {
        "enabled": {
          "description": "Is this health probe enabled? Dafaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "id": {
          "description": "The ID of the FrontDoor.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "intervalInSeconds": {
          "description": "The number of seconds between each Health Probe. Defaults to `120`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "Specifies the name of the Health Probe.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The path to use for the Health Probe. Default is `/`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "probeMethod": {
          "description": "Specifies HTTP method the health probe uses when querying the backend pool instances. Possible values include: `Get` and `Head`. Defaults to `Get`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocol": {
          "description": "Protocol scheme to use for the Health Probe. Defaults to `Http`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:frontdoor/FrontdoorBackendPoolLoadBalancing:FrontdoorBackendPoolLoadBalancing": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name"
          ]
        }
      },
      "properties": {
        "additionalLatencyMilliseconds": {
          "description": "The additional latency in milliseconds for probes to fall into the lowest latency bucket. Defaults to `0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "id": {
          "description": "The ID of the FrontDoor.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Load Balancer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sampleSize": {
          "description": "The number of samples to consider for load balancing decisions. Defaults to `4`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "successfulSamplesRequired": {
          "description": "The number of samples within the sample period that must succeed. Defaults to `2`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:frontdoor/FrontdoorExplicitResourceOrder:FrontdoorExplicitResourceOrder": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "backendPoolHealthProbeIds",
            "backendPoolIds",
            "backendPoolLoadBalancingIds",
            "frontendEndpointIds",
            "routingRuleIds"
          ]
        }
      },
      "properties": {
        "backendPoolHealthProbeIds": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "backendPoolIds": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "backendPoolLoadBalancingIds": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "frontendEndpointIds": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "routingRuleIds": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:frontdoor/FrontdoorFrontendEndpoint:FrontdoorFrontendEndpoint": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "hostName",
            "id",
            "name"
          ]
        }
      },
      "properties": {
        "hostName": {
          "description": "Specifies the host name of the `frontend_endpoint`. Must be a domain name. In order to use a name.azurefd.net domain, the name value must match the Front Door name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the FrontDoor.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the `frontend_endpoint`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sessionAffinityEnabled": {
          "description": "Whether to allow session affinity on this host. Valid options are `true` or `false` Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sessionAffinityTtlSeconds": {
          "description": "The TTL to use in seconds for session affinity, if applicable. Defaults to `0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "webApplicationFirewallPolicyLinkId": {
          "description": "Defines the Web Application Firewall policy `ID` for each host.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "hostName",
        "name"
      ],
      "type": "object"
    },
    "azure:frontdoor/FrontdoorRoutingRule:FrontdoorRoutingRule": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "acceptedProtocols",
            "frontendEndpoints",
            "id",
            "name",
            "patternsToMatches"
          ]
        }
      },
      "properties": {
        "acceptedProtocols": {
          "description": "Protocol schemes to match for the Backend Routing Rule. Defaults to `Http`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enabled": {
          "description": "`Enable` or `Disable` use of this Backend Routing Rule. Permitted values are `true` or `false`. Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "forwardingConfiguration": {
          "$ref": "#/types/azure:frontdoor/FrontdoorRoutingRuleForwardingConfiguration:FrontdoorRoutingRuleForwardingConfiguration",
          "description": "A `forwarding_configuration` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "frontendEndpoints": {
          "description": "The names of the `frontend_endpoint` blocks within this resource to associate with this `routing_rule`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "id": {
          "description": "The ID of the FrontDoor.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Routing Rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "patternsToMatches": {
          "description": "The route patterns for the Backend Routing Rule. Defaults to `/*`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "redirectConfiguration": {
          "$ref": "#/types/azure:frontdoor/FrontdoorRoutingRuleRedirectConfiguration:FrontdoorRoutingRuleRedirectConfiguration",
          "description": "A `redirect_configuration` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "acceptedProtocols",
        "frontendEndpoints",
        "name",
        "patternsToMatches"
      ],
      "type": "object"
    },
    "azure:frontdoor/FrontdoorRoutingRuleForwardingConfiguration:FrontdoorRoutingRuleForwardingConfiguration": {
      "properties": {
        "backendPoolName": {
          "description": "Specifies the name of the Backend Pool to forward the incoming traffic to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "cacheDuration": {
          "description": "Specify the caching duration (in ISO8601 notation e.g. `P1DT2H` for 1 day and 2 hours). Needs to be greater than 0 and smaller than 365 days. `cache_duration` works only in combination with `cache_enabled` set to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "cacheEnabled": {
          "description": "Specifies whether to Enable caching or not. Valid options are `true` or `false`. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "cacheQueryParameterStripDirective": {
          "description": "Defines cache behaviour in relation to query string parameters. Valid options are `StripAll`, `StripAllExcept`, `StripOnly` or `StripNone`. Defaults to `StripAll`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "cacheQueryParameters": {
          "description": "Specify query parameters (array). Works only in combination with `cache_query_parameter_strip_directive` set to `StripAllExcept` or `StripOnly`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "cacheUseDynamicCompression": {
          "description": "Whether to use dynamic compression when caching. Valid options are `true` or `false`. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "customForwardingPath": {
          "description": "Path to use when constructing the request to forward to the backend. This functions as a URL Rewrite. Default behaviour preserves the URL path.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "forwardingProtocol": {
          "description": "Protocol to use when redirecting. Valid options are `HttpOnly`, `HttpsOnly`, or `MatchRequest`. Defaults to `HttpsOnly`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "backendPoolName"
      ],
      "type": "object"
    },
    "azure:frontdoor/FrontdoorRoutingRuleRedirectConfiguration:FrontdoorRoutingRuleRedirectConfiguration": {
      "properties": {
        "customFragment": {
          "description": "The destination fragment in the portion of URL after '#'. Set this to add a fragment to the redirect URL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "customHost": {
          "description": "Set this to change the URL for the redirection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "customPath": {
          "description": "The path to retain as per the incoming request, or update in the URL for the redirection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "customQueryString": {
          "description": "Replace any existing query string from the incoming request URL.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "redirectProtocol": {
          "description": "Protocol to use when redirecting. Valid options are `HttpOnly`, `HttpsOnly`, or `MatchRequest`. Defaults to `MatchRequest`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "redirectType": {
          "description": "Status code for the redirect. Valida options are `Moved`, `Found`, `TemporaryRedirect`, `PermanentRedirect`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "redirectProtocol",
        "redirectType"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterComponentVersion:HBaseClusterComponentVersion": {
      "properties": {
        "hbase": {
          "description": "The version of HBase which should be used for this HDInsight HBase Cluster. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "hbase"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterGateway:HBaseClusterGateway": {
      "properties": {
        "enabled": {
          "deprecationMessage": "HDInsight doesn't support disabling gateway anymore",
          "description": "Is the Ambari portal enabled? The HDInsight API doesn't support disabling gateway anymore.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "password": {
          "description": "The password used for the Ambari Portal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username used for the Ambari Portal. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterMetastores:HBaseClusterMetastores": {
      "properties": {
        "ambari": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterMetastoresAmbari:HBaseClusterMetastoresAmbari",
          "description": "An `ambari` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hive": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterMetastoresHive:HBaseClusterMetastoresHive",
          "description": "A `hive` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "oozie": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterMetastoresOozie:HBaseClusterMetastoresOozie",
          "description": "An `oozie` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterMetastoresAmbari:HBaseClusterMetastoresAmbari": {
      "properties": {
        "databaseName": {
          "description": "The external Hive metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Ambari metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Ambari metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Ambari metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterMetastoresHive:HBaseClusterMetastoresHive": {
      "properties": {
        "databaseName": {
          "description": "The external Hive metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Hive metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Hive metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Hive metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterMetastoresOozie:HBaseClusterMetastoresOozie": {
      "properties": {
        "databaseName": {
          "description": "The external Oozie metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Oozie metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Oozie metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Oozie metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterMonitor:HBaseClusterMonitor": {
      "properties": {
        "logAnalyticsWorkspaceId": {
          "description": "The Operations Management Suite (OMS) workspace ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primaryKey": {
          "description": "The Operations Management Suite (OMS) workspace key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "logAnalyticsWorkspaceId",
        "primaryKey"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterRoles:HBaseClusterRoles": {
      "properties": {
        "headNode": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterRolesHeadNode:HBaseClusterRolesHeadNode",
          "description": "A `head_node` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "workerNode": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterRolesWorkerNode:HBaseClusterRolesWorkerNode",
          "description": "A `worker_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zookeeperNode": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterRolesZookeeperNode:HBaseClusterRolesZookeeperNode",
          "description": "A `zookeeper_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "headNode",
        "workerNode",
        "zookeeperNode"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterRolesHeadNode:HBaseClusterRolesHeadNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Head Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterRolesWorkerNode:HBaseClusterRolesWorkerNode": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "minInstanceCount",
            "targetInstanceCount",
            "username",
            "vmSize"
          ]
        }
      },
      "properties": {
        "autoscale": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterRolesWorkerNodeAutoscale:HBaseClusterRolesWorkerNodeAutoscale",
          "description": "A `autoscale` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minInstanceCount": {
          "deprecationMessage": "this has been deprecated from the API and will be removed in version 3.0 of the provider",
          "description": "The minimum number of instances which should be run for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "password": {
          "description": "The Password associated with the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Worker Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetInstanceCount": {
          "description": "The number of instances which should be run for the Worker Nodes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "username": {
          "description": "The Username of the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "targetInstanceCount",
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterRolesWorkerNodeAutoscale:HBaseClusterRolesWorkerNodeAutoscale": {
      "properties": {
        "recurrence": {
          "$ref": "#/types/azure:hdinsight/HBaseClusterRolesWorkerNodeAutoscaleRecurrence:HBaseClusterRolesWorkerNodeAutoscaleRecurrence",
          "description": "A `recurrence` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterRolesWorkerNodeAutoscaleRecurrence:HBaseClusterRolesWorkerNodeAutoscaleRecurrence": {
      "properties": {
        "schedules": {
          "description": "A list of `schedule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/HBaseClusterRolesWorkerNodeAutoscaleRecurrenceSchedule:HBaseClusterRolesWorkerNodeAutoscaleRecurrenceSchedule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "timezone": {
          "description": "The time zone for the autoscale schedule times.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "schedules",
        "timezone"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterRolesWorkerNodeAutoscaleRecurrenceSchedule:HBaseClusterRolesWorkerNodeAutoscaleRecurrenceSchedule": {
      "properties": {
        "days": {
          "description": "The days of the week to perform autoscale.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "targetInstanceCount": {
          "description": "The number of worker nodes to autoscale at the specified time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "time": {
          "description": "The time of day to perform the autoscale in 24hour format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "days",
        "targetInstanceCount",
        "time"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterRolesZookeeperNode:HBaseClusterRolesZookeeperNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterSecurityProfile:HBaseClusterSecurityProfile": {
      "properties": {
        "aaddsResourceId": {
          "description": "The resource ID of the Azure Active Directory Domain Service. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clusterUsersGroupDns": {
          "description": "A list of the distinguished names for the cluster user groups. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "domainName": {
          "description": "The name of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "domainUserPassword": {
          "description": "The user password of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "domainUsername": {
          "description": "The username of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ldapsUrls": {
          "description": "A list of the LDAPS URLs to communicate with the Azure Active Directory. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "msiResourceId": {
          "description": "The User Assigned Identity for the HDInsight Cluster. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "aaddsResourceId",
        "domainName",
        "domainUserPassword",
        "domainUsername",
        "ldapsUrls",
        "msiResourceId"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterStorageAccount:HBaseClusterStorageAccount": {
      "properties": {
        "isDefault": {
          "description": "Is this the Default Storage Account for the HDInsight Hadoop Cluster? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "storageAccountKey": {
          "description": "The Access Key which should be used to connect to the Storage Account. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageContainerId": {
          "description": "The ID of the Storage Container. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "isDefault",
        "storageAccountKey",
        "storageContainerId"
      ],
      "type": "object"
    },
    "azure:hdinsight/HBaseClusterStorageAccountGen2:HBaseClusterStorageAccountGen2": {
      "properties": {
        "filesystemId": {
          "description": "The ID of the Gen2 Filesystem. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "isDefault": {
          "description": "Is this the Default Storage Account for the HDInsight Hadoop Cluster? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "managedIdentityResourceId": {
          "description": "The ID of Managed Identity to use for accessing the Gen2 filesystem. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageResourceId": {
          "description": "The ID of the Storage Account. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "filesystemId",
        "isDefault",
        "managedIdentityResourceId",
        "storageResourceId"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterComponentVersion:HadoopClusterComponentVersion": {
      "properties": {
        "hadoop": {
          "description": "The version of Hadoop which should be used for this HDInsight Hadoop Cluster. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "hadoop"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterGateway:HadoopClusterGateway": {
      "properties": {
        "enabled": {
          "deprecationMessage": "HDInsight doesn't support disabling gateway anymore",
          "description": "Is the Ambari portal enabled? The HDInsight API doesn't support disabling gateway anymore.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "password": {
          "description": "The password used for the Ambari Portal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username used for the Ambari Portal. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterMetastores:HadoopClusterMetastores": {
      "properties": {
        "ambari": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterMetastoresAmbari:HadoopClusterMetastoresAmbari",
          "description": "An `ambari` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hive": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterMetastoresHive:HadoopClusterMetastoresHive",
          "description": "A `hive` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "oozie": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterMetastoresOozie:HadoopClusterMetastoresOozie",
          "description": "An `oozie` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterMetastoresAmbari:HadoopClusterMetastoresAmbari": {
      "properties": {
        "databaseName": {
          "description": "The external Hive metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Ambari metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Ambari metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Ambari metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterMetastoresHive:HadoopClusterMetastoresHive": {
      "properties": {
        "databaseName": {
          "description": "The external Hive metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Hive metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Hive metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Hive metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterMetastoresOozie:HadoopClusterMetastoresOozie": {
      "properties": {
        "databaseName": {
          "description": "The external Oozie metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Oozie metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Oozie metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Oozie metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterMonitor:HadoopClusterMonitor": {
      "properties": {
        "logAnalyticsWorkspaceId": {
          "description": "The Operations Management Suite (OMS) workspace ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primaryKey": {
          "description": "The Operations Management Suite (OMS) workspace key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "logAnalyticsWorkspaceId",
        "primaryKey"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterNetwork:HadoopClusterNetwork": {
      "properties": {
        "connectionDirection": {
          "description": "The direction of the resource provider connection. Possible values include `Inbound` or `Outbound`. Defaults to `Inbound`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateLinkEnabled": {
          "description": "Is the private link enabled? Possible values include `True` or `False`. Defaults to `False`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterRoles:HadoopClusterRoles": {
      "properties": {
        "edgeNode": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterRolesEdgeNode:HadoopClusterRolesEdgeNode",
          "description": "A `edge_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "headNode": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterRolesHeadNode:HadoopClusterRolesHeadNode",
          "description": "A `head_node` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "workerNode": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterRolesWorkerNode:HadoopClusterRolesWorkerNode",
          "description": "A `worker_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zookeeperNode": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterRolesZookeeperNode:HadoopClusterRolesZookeeperNode",
          "description": "A `zookeeper_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "headNode",
        "workerNode",
        "zookeeperNode"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterRolesEdgeNode:HadoopClusterRolesEdgeNode": {
      "properties": {
        "installScriptActions": {
          "description": "A `install_script_action` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/HadoopClusterRolesEdgeNodeInstallScriptAction:HadoopClusterRolesEdgeNodeInstallScriptAction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "targetInstanceCount": {
          "description": "The number of instances which should be run for the Worker Nodes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Edge Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "installScriptActions",
        "targetInstanceCount",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterRolesEdgeNodeInstallScriptAction:HadoopClusterRolesEdgeNodeInstallScriptAction": {
      "properties": {
        "name": {
          "description": "The name of the install script action. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "uri": {
          "description": "The URI pointing to the script to run during the installation of the edge node. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "uri"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterRolesHeadNode:HadoopClusterRolesHeadNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Head Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterRolesWorkerNode:HadoopClusterRolesWorkerNode": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "minInstanceCount",
            "targetInstanceCount",
            "username",
            "vmSize"
          ]
        }
      },
      "properties": {
        "autoscale": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterRolesWorkerNodeAutoscale:HadoopClusterRolesWorkerNodeAutoscale",
          "description": "A `autoscale` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minInstanceCount": {
          "deprecationMessage": "this has been deprecated from the API and will be removed in version 3.0 of the provider",
          "description": "The minimum number of instances which should be run for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "password": {
          "description": "The Password associated with the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Worker Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetInstanceCount": {
          "description": "The number of instances which should be run for the Worker Nodes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "username": {
          "description": "The Username of the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "targetInstanceCount",
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterRolesWorkerNodeAutoscale:HadoopClusterRolesWorkerNodeAutoscale": {
      "properties": {
        "capacity": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterRolesWorkerNodeAutoscaleCapacity:HadoopClusterRolesWorkerNodeAutoscaleCapacity",
          "description": "A `capacity` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "recurrence": {
          "$ref": "#/types/azure:hdinsight/HadoopClusterRolesWorkerNodeAutoscaleRecurrence:HadoopClusterRolesWorkerNodeAutoscaleRecurrence",
          "description": "A `recurrence` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterRolesWorkerNodeAutoscaleCapacity:HadoopClusterRolesWorkerNodeAutoscaleCapacity": {
      "properties": {
        "maxInstanceCount": {
          "description": "The maximum number of worker nodes to autoscale to based on the cluster's activity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "minInstanceCount": {
          "description": "The minimum number of worker nodes to autoscale to based on the cluster's activity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "maxInstanceCount",
        "minInstanceCount"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterRolesWorkerNodeAutoscaleRecurrence:HadoopClusterRolesWorkerNodeAutoscaleRecurrence": {
      "properties": {
        "schedules": {
          "description": "A list of `schedule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/HadoopClusterRolesWorkerNodeAutoscaleRecurrenceSchedule:HadoopClusterRolesWorkerNodeAutoscaleRecurrenceSchedule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "timezone": {
          "description": "The time zone for the autoscale schedule times.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "schedules",
        "timezone"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterRolesWorkerNodeAutoscaleRecurrenceSchedule:HadoopClusterRolesWorkerNodeAutoscaleRecurrenceSchedule": {
      "properties": {
        "days": {
          "description": "The days of the week to perform autoscale.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "targetInstanceCount": {
          "description": "The number of worker nodes to autoscale at the specified time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "time": {
          "description": "The time of day to perform the autoscale in 24hour format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "days",
        "targetInstanceCount",
        "time"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterRolesZookeeperNode:HadoopClusterRolesZookeeperNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterSecurityProfile:HadoopClusterSecurityProfile": {
      "properties": {
        "aaddsResourceId": {
          "description": "The resource ID of the Azure Active Directory Domain Service. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clusterUsersGroupDns": {
          "description": "A list of the distinguished names for the cluster user groups. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "domainName": {
          "description": "The name of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "domainUserPassword": {
          "description": "The user password of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "domainUsername": {
          "description": "The username of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ldapsUrls": {
          "description": "A list of the LDAPS URLs to communicate with the Azure Active Directory. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "msiResourceId": {
          "description": "The User Assigned Identity for the HDInsight Cluster. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "aaddsResourceId",
        "domainName",
        "domainUserPassword",
        "domainUsername",
        "ldapsUrls",
        "msiResourceId"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterStorageAccount:HadoopClusterStorageAccount": {
      "properties": {
        "isDefault": {
          "description": "Is this the Default Storage Account for the HDInsight Hadoop Cluster? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "storageAccountKey": {
          "description": "The Access Key which should be used to connect to the Storage Account. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageContainerId": {
          "description": "The ID of the Storage Container. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "isDefault",
        "storageAccountKey",
        "storageContainerId"
      ],
      "type": "object"
    },
    "azure:hdinsight/HadoopClusterStorageAccountGen2:HadoopClusterStorageAccountGen2": {
      "properties": {
        "filesystemId": {
          "description": "The ID of the Gen2 Filesystem. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "isDefault": {
          "description": "Is this the Default Storage Account for the HDInsight Hadoop Cluster? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "managedIdentityResourceId": {
          "description": "The ID of Managed Identity to use for accessing the Gen2 filesystem. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageResourceId": {
          "description": "The ID of the Storage Account. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "filesystemId",
        "isDefault",
        "managedIdentityResourceId",
        "storageResourceId"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterComponentVersion:InteractiveQueryClusterComponentVersion": {
      "properties": {
        "interactiveHive": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "interactiveHive"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterGateway:InteractiveQueryClusterGateway": {
      "properties": {
        "enabled": {
          "deprecationMessage": "HDInsight doesn't support disabling gateway anymore",
          "description": "Is the Ambari portal enabled? The HDInsight API doesn't support disabling gateway anymore.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "password": {
          "description": "The password used for the Ambari Portal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username used for the Ambari Portal. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterMetastores:InteractiveQueryClusterMetastores": {
      "properties": {
        "ambari": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterMetastoresAmbari:InteractiveQueryClusterMetastoresAmbari",
          "description": "An `ambari` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hive": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterMetastoresHive:InteractiveQueryClusterMetastoresHive",
          "description": "A `hive` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "oozie": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterMetastoresOozie:InteractiveQueryClusterMetastoresOozie",
          "description": "An `oozie` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterMetastoresAmbari:InteractiveQueryClusterMetastoresAmbari": {
      "properties": {
        "databaseName": {
          "description": "The external Hive metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Ambari metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Ambari metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Ambari metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterMetastoresHive:InteractiveQueryClusterMetastoresHive": {
      "properties": {
        "databaseName": {
          "description": "The external Hive metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Hive metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Hive metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Hive metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterMetastoresOozie:InteractiveQueryClusterMetastoresOozie": {
      "properties": {
        "databaseName": {
          "description": "The external Oozie metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Oozie metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Oozie metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Oozie metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterMonitor:InteractiveQueryClusterMonitor": {
      "properties": {
        "logAnalyticsWorkspaceId": {
          "description": "The Operations Management Suite (OMS) workspace ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primaryKey": {
          "description": "The Operations Management Suite (OMS) workspace key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "logAnalyticsWorkspaceId",
        "primaryKey"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterNetwork:InteractiveQueryClusterNetwork": {
      "properties": {
        "connectionDirection": {
          "description": "The direction of the resource provider connection. Possible values include `Inbound` or `Outbound`. Defaults to `Inbound`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateLinkEnabled": {
          "description": "Is the private link enabled? Possible values include `True` or `False`. Defaults to `False`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterRoles:InteractiveQueryClusterRoles": {
      "properties": {
        "headNode": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterRolesHeadNode:InteractiveQueryClusterRolesHeadNode",
          "description": "A `head_node` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "workerNode": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterRolesWorkerNode:InteractiveQueryClusterRolesWorkerNode",
          "description": "A `worker_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zookeeperNode": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterRolesZookeeperNode:InteractiveQueryClusterRolesZookeeperNode",
          "description": "A `zookeeper_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "headNode",
        "workerNode",
        "zookeeperNode"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterRolesHeadNode:InteractiveQueryClusterRolesHeadNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Head Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterRolesWorkerNode:InteractiveQueryClusterRolesWorkerNode": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "minInstanceCount",
            "targetInstanceCount",
            "username",
            "vmSize"
          ]
        }
      },
      "properties": {
        "autoscale": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterRolesWorkerNodeAutoscale:InteractiveQueryClusterRolesWorkerNodeAutoscale",
          "description": "A `autoscale` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minInstanceCount": {
          "deprecationMessage": "this has been deprecated from the API and will be removed in version 3.0 of the provider",
          "description": "The minimum number of instances which should be run for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "password": {
          "description": "The Password associated with the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Worker Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetInstanceCount": {
          "description": "The number of instances which should be run for the Worker Nodes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "username": {
          "description": "The Username of the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "targetInstanceCount",
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterRolesWorkerNodeAutoscale:InteractiveQueryClusterRolesWorkerNodeAutoscale": {
      "properties": {
        "capacity": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterRolesWorkerNodeAutoscaleCapacity:InteractiveQueryClusterRolesWorkerNodeAutoscaleCapacity",
          "description": "A `capacity` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "recurrence": {
          "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterRolesWorkerNodeAutoscaleRecurrence:InteractiveQueryClusterRolesWorkerNodeAutoscaleRecurrence",
          "description": "A `recurrence` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterRolesWorkerNodeAutoscaleCapacity:InteractiveQueryClusterRolesWorkerNodeAutoscaleCapacity": {
      "properties": {
        "maxInstanceCount": {
          "description": "The maximum number of worker nodes to autoscale to based on the cluster's activity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "minInstanceCount": {
          "description": "The minimum number of worker nodes to autoscale to based on the cluster's activity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "maxInstanceCount",
        "minInstanceCount"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterRolesWorkerNodeAutoscaleRecurrence:InteractiveQueryClusterRolesWorkerNodeAutoscaleRecurrence": {
      "properties": {
        "schedules": {
          "description": "A list of `schedule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/InteractiveQueryClusterRolesWorkerNodeAutoscaleRecurrenceSchedule:InteractiveQueryClusterRolesWorkerNodeAutoscaleRecurrenceSchedule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "timezone": {
          "description": "The time zone for the autoscale schedule times.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "schedules",
        "timezone"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterRolesWorkerNodeAutoscaleRecurrenceSchedule:InteractiveQueryClusterRolesWorkerNodeAutoscaleRecurrenceSchedule": {
      "properties": {
        "days": {
          "description": "The days of the week to perform autoscale.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "targetInstanceCount": {
          "description": "The number of worker nodes to autoscale at the specified time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "time": {
          "description": "The time of day to perform the autoscale in 24hour format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "days",
        "targetInstanceCount",
        "time"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterRolesZookeeperNode:InteractiveQueryClusterRolesZookeeperNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterSecurityProfile:InteractiveQueryClusterSecurityProfile": {
      "properties": {
        "aaddsResourceId": {
          "description": "The resource ID of the Azure Active Directory Domain Service. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clusterUsersGroupDns": {
          "description": "A list of the distinguished names for the cluster user groups. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "domainName": {
          "description": "The name of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "domainUserPassword": {
          "description": "The user password of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "domainUsername": {
          "description": "The username of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ldapsUrls": {
          "description": "A list of the LDAPS URLs to communicate with the Azure Active Directory. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "msiResourceId": {
          "description": "The User Assigned Identity for the HDInsight Cluster. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "aaddsResourceId",
        "domainName",
        "domainUserPassword",
        "domainUsername",
        "ldapsUrls",
        "msiResourceId"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterStorageAccount:InteractiveQueryClusterStorageAccount": {
      "properties": {
        "isDefault": {
          "description": "Is this the Default Storage Account for the HDInsight Hadoop Cluster? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "storageAccountKey": {
          "description": "The Access Key which should be used to connect to the Storage Account. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageContainerId": {
          "description": "The ID of the Storage Container. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "isDefault",
        "storageAccountKey",
        "storageContainerId"
      ],
      "type": "object"
    },
    "azure:hdinsight/InteractiveQueryClusterStorageAccountGen2:InteractiveQueryClusterStorageAccountGen2": {
      "properties": {
        "filesystemId": {
          "description": "The ID of the Gen2 Filesystem. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "isDefault": {
          "description": "Is this the Default Storage Account for the HDInsight Hadoop Cluster? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "managedIdentityResourceId": {
          "description": "The ID of Managed Identity to use for accessing the Gen2 filesystem. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageResourceId": {
          "description": "The ID of the Storage Account. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "filesystemId",
        "isDefault",
        "managedIdentityResourceId",
        "storageResourceId"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterComponentVersion:KafkaClusterComponentVersion": {
      "properties": {
        "kafka": {
          "description": "The version of Kafka which should be used for this HDInsight Kafka Cluster. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "kafka"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterGateway:KafkaClusterGateway": {
      "properties": {
        "enabled": {
          "deprecationMessage": "HDInsight doesn't support disabling gateway anymore",
          "description": "Is the Ambari portal enabled? The HDInsight API doesn't support disabling gateway anymore.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "password": {
          "description": "The password used for the Ambari Portal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username used for the Ambari Portal. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterMetastores:KafkaClusterMetastores": {
      "properties": {
        "ambari": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterMetastoresAmbari:KafkaClusterMetastoresAmbari",
          "description": "An `ambari` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hive": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterMetastoresHive:KafkaClusterMetastoresHive",
          "description": "A `hive` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "oozie": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterMetastoresOozie:KafkaClusterMetastoresOozie",
          "description": "An `oozie` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterMetastoresAmbari:KafkaClusterMetastoresAmbari": {
      "properties": {
        "databaseName": {
          "description": "The external Hive metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Ambari metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Ambari metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Ambari metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterMetastoresHive:KafkaClusterMetastoresHive": {
      "properties": {
        "databaseName": {
          "description": "The external Hive metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Hive metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Hive metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Hive metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterMetastoresOozie:KafkaClusterMetastoresOozie": {
      "properties": {
        "databaseName": {
          "description": "The external Oozie metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Oozie metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Oozie metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Oozie metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterMonitor:KafkaClusterMonitor": {
      "properties": {
        "logAnalyticsWorkspaceId": {
          "description": "The Operations Management Suite (OMS) workspace ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primaryKey": {
          "description": "The Operations Management Suite (OMS) workspace key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "logAnalyticsWorkspaceId",
        "primaryKey"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterRestProxy:KafkaClusterRestProxy": {
      "properties": {
        "securityGroupId": {
          "description": "The Azure Active Directory Security Group ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "securityGroupId"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterRoles:KafkaClusterRoles": {
      "properties": {
        "headNode": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterRolesHeadNode:KafkaClusterRolesHeadNode",
          "description": "A `head_node` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "kafkaManagementNode": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterRolesKafkaManagementNode:KafkaClusterRolesKafkaManagementNode",
          "description": "A `kafka_management_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "workerNode": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterRolesWorkerNode:KafkaClusterRolesWorkerNode",
          "description": "A `worker_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zookeeperNode": {
          "$ref": "#/types/azure:hdinsight/KafkaClusterRolesZookeeperNode:KafkaClusterRolesZookeeperNode",
          "description": "A `zookeeper_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "headNode",
        "workerNode",
        "zookeeperNode"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterRolesHeadNode:KafkaClusterRolesHeadNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Head Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterRolesKafkaManagementNode:KafkaClusterRolesKafkaManagementNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Kafka Management Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Kafka Management Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Kafka Management Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Kafka Management Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Kafka Management Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Kafka Management Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterRolesWorkerNode:KafkaClusterRolesWorkerNode": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "minInstanceCount",
            "numberOfDisksPerNode",
            "targetInstanceCount",
            "username",
            "vmSize"
          ]
        }
      },
      "properties": {
        "minInstanceCount": {
          "deprecationMessage": "this has been deprecated from the API and will be removed in version 3.0 of the provider",
          "description": "The minimum number of instances which should be run for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "numberOfDisksPerNode": {
          "description": "The number of Data Disks which should be assigned to each Worker Node, which can be between 1 and 8. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "password": {
          "description": "The Password associated with the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Worker Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetInstanceCount": {
          "description": "The number of instances which should be run for the Worker Nodes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "username": {
          "description": "The Username of the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "numberOfDisksPerNode",
        "targetInstanceCount",
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterRolesZookeeperNode:KafkaClusterRolesZookeeperNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterSecurityProfile:KafkaClusterSecurityProfile": {
      "properties": {
        "aaddsResourceId": {
          "description": "The resource ID of the Azure Active Directory Domain Service. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clusterUsersGroupDns": {
          "description": "A list of the distinguished names for the cluster user groups. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "domainName": {
          "description": "The name of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "domainUserPassword": {
          "description": "The user password of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "domainUsername": {
          "description": "The username of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ldapsUrls": {
          "description": "A list of the LDAPS URLs to communicate with the Azure Active Directory. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "msiResourceId": {
          "description": "The User Assigned Identity for the HDInsight Cluster. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "aaddsResourceId",
        "domainName",
        "domainUserPassword",
        "domainUsername",
        "ldapsUrls",
        "msiResourceId"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterStorageAccount:KafkaClusterStorageAccount": {
      "properties": {
        "isDefault": {
          "description": "Is this the Default Storage Account for the HDInsight Hadoop Cluster? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "storageAccountKey": {
          "description": "The Access Key which should be used to connect to the Storage Account. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageContainerId": {
          "description": "The ID of the Storage Container. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "isDefault",
        "storageAccountKey",
        "storageContainerId"
      ],
      "type": "object"
    },
    "azure:hdinsight/KafkaClusterStorageAccountGen2:KafkaClusterStorageAccountGen2": {
      "properties": {
        "filesystemId": {
          "description": "The ID of the Gen2 Filesystem. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "isDefault": {
          "description": "Is this the Default Storage Account for the HDInsight Hadoop Cluster? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "managedIdentityResourceId": {
          "description": "The ID of Managed Identity to use for accessing the Gen2 filesystem. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageResourceId": {
          "description": "The ID of the Storage Account. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "filesystemId",
        "isDefault",
        "managedIdentityResourceId",
        "storageResourceId"
      ],
      "type": "object"
    },
    "azure:hdinsight/MLServicesClusterGateway:MLServicesClusterGateway": {
      "properties": {
        "enabled": {
          "deprecationMessage": "HDInsight doesn't support disabling gateway anymore",
          "description": "Is the Ambari portal enabled? The HDInsight API doesn't support disabling gateway anymore.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "password": {
          "description": "The password used for the Ambari Portal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username used for the Ambari Portal. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/MLServicesClusterRoles:MLServicesClusterRoles": {
      "properties": {
        "edgeNode": {
          "$ref": "#/types/azure:hdinsight/MLServicesClusterRolesEdgeNode:MLServicesClusterRolesEdgeNode",
          "description": "A `edge_node` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "headNode": {
          "$ref": "#/types/azure:hdinsight/MLServicesClusterRolesHeadNode:MLServicesClusterRolesHeadNode",
          "description": "A `head_node` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "workerNode": {
          "$ref": "#/types/azure:hdinsight/MLServicesClusterRolesWorkerNode:MLServicesClusterRolesWorkerNode",
          "description": "A `worker_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zookeeperNode": {
          "$ref": "#/types/azure:hdinsight/MLServicesClusterRolesZookeeperNode:MLServicesClusterRolesZookeeperNode",
          "description": "A `zookeeper_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "edgeNode",
        "headNode",
        "workerNode",
        "zookeeperNode"
      ],
      "type": "object"
    },
    "azure:hdinsight/MLServicesClusterRolesEdgeNode:MLServicesClusterRolesEdgeNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Edge Node. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Edge Node. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Edge Node should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Edge Node. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Edge Node should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Edge Node. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/MLServicesClusterRolesHeadNode:MLServicesClusterRolesHeadNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Head Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/MLServicesClusterRolesWorkerNode:MLServicesClusterRolesWorkerNode": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "minInstanceCount",
            "targetInstanceCount",
            "username",
            "vmSize"
          ]
        }
      },
      "properties": {
        "minInstanceCount": {
          "deprecationMessage": "this has been deprecated from the API and will be removed in version 3.0 of the provider",
          "description": "The minimum number of instances which should be run for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "password": {
          "description": "The Password associated with the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Worker Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetInstanceCount": {
          "description": "The number of instances which should be run for the Worker Nodes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "username": {
          "description": "The Username of the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "targetInstanceCount",
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/MLServicesClusterRolesZookeeperNode:MLServicesClusterRolesZookeeperNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/MLServicesClusterStorageAccount:MLServicesClusterStorageAccount": {
      "properties": {
        "isDefault": {
          "description": "Is this the Default Storage Account for the HDInsight ML Services Cluster? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "storageAccountKey": {
          "description": "The Access Key which should be used to connect to the Storage Account. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageContainerId": {
          "description": "The ID of the Storage Container. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "isDefault",
        "storageAccountKey",
        "storageContainerId"
      ],
      "type": "object"
    },
    "azure:hdinsight/RServerClusterGateway:RServerClusterGateway": {
      "properties": {
        "enabled": {
          "deprecationMessage": "HDInsight doesn't support disabling gateway anymore",
          "description": "Is the Ambari portal enabled? The HDInsight API doesn't support disabling gateway anymore.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "password": {
          "description": "The password used for the Ambari Portal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username used for the Ambari Portal. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/RServerClusterRoles:RServerClusterRoles": {
      "properties": {
        "edgeNode": {
          "$ref": "#/types/azure:hdinsight/RServerClusterRolesEdgeNode:RServerClusterRolesEdgeNode",
          "description": "A `edge_node` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "headNode": {
          "$ref": "#/types/azure:hdinsight/RServerClusterRolesHeadNode:RServerClusterRolesHeadNode",
          "description": "A `head_node` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "workerNode": {
          "$ref": "#/types/azure:hdinsight/RServerClusterRolesWorkerNode:RServerClusterRolesWorkerNode",
          "description": "A `worker_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zookeeperNode": {
          "$ref": "#/types/azure:hdinsight/RServerClusterRolesZookeeperNode:RServerClusterRolesZookeeperNode",
          "description": "A `zookeeper_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "edgeNode",
        "headNode",
        "workerNode",
        "zookeeperNode"
      ],
      "type": "object"
    },
    "azure:hdinsight/RServerClusterRolesEdgeNode:RServerClusterRolesEdgeNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Edge Node. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Edge Node. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Edge Node should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Edge Node. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Edge Node should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Edge Node. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/RServerClusterRolesHeadNode:RServerClusterRolesHeadNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Head Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/RServerClusterRolesWorkerNode:RServerClusterRolesWorkerNode": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "minInstanceCount",
            "targetInstanceCount",
            "username",
            "vmSize"
          ]
        }
      },
      "properties": {
        "minInstanceCount": {
          "deprecationMessage": "this has been deprecated from the API and will be removed in version 3.0 of the provider",
          "description": "The minimum number of instances which should be run for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "password": {
          "description": "The Password associated with the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Worker Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetInstanceCount": {
          "description": "The number of instances which should be run for the Worker Nodes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "username": {
          "description": "The Username of the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "targetInstanceCount",
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/RServerClusterRolesZookeeperNode:RServerClusterRolesZookeeperNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/RServerClusterStorageAccount:RServerClusterStorageAccount": {
      "properties": {
        "isDefault": {
          "description": "Is this the Default Storage Account for the HDInsight RServer Cluster? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "storageAccountKey": {
          "description": "The Access Key which should be used to connect to the Storage Account. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageContainerId": {
          "description": "The ID of the Storage Container. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "isDefault",
        "storageAccountKey",
        "storageContainerId"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterComponentVersion:SparkClusterComponentVersion": {
      "properties": {
        "spark": {
          "description": "The version of Spark which should be used for this HDInsight Spark Cluster. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "spark"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterGateway:SparkClusterGateway": {
      "properties": {
        "enabled": {
          "deprecationMessage": "HDInsight doesn't support disabling gateway anymore",
          "description": "Is the Ambari portal enabled? The HDInsight API doesn't support disabling gateway anymore.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "password": {
          "description": "The password used for the Ambari Portal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username used for the Ambari Portal. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterMetastores:SparkClusterMetastores": {
      "properties": {
        "ambari": {
          "$ref": "#/types/azure:hdinsight/SparkClusterMetastoresAmbari:SparkClusterMetastoresAmbari",
          "description": "An `ambari` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hive": {
          "$ref": "#/types/azure:hdinsight/SparkClusterMetastoresHive:SparkClusterMetastoresHive",
          "description": "A `hive` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "oozie": {
          "$ref": "#/types/azure:hdinsight/SparkClusterMetastoresOozie:SparkClusterMetastoresOozie",
          "description": "An `oozie` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:hdinsight/SparkClusterMetastoresAmbari:SparkClusterMetastoresAmbari": {
      "properties": {
        "databaseName": {
          "description": "The external Hive metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Ambari metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Ambari metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Ambari metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterMetastoresHive:SparkClusterMetastoresHive": {
      "properties": {
        "databaseName": {
          "description": "The external Hive metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Hive metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Hive metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Hive metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterMetastoresOozie:SparkClusterMetastoresOozie": {
      "properties": {
        "databaseName": {
          "description": "The external Oozie metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Oozie metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Oozie metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Oozie metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterMonitor:SparkClusterMonitor": {
      "properties": {
        "logAnalyticsWorkspaceId": {
          "description": "The Operations Management Suite (OMS) workspace ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primaryKey": {
          "description": "The Operations Management Suite (OMS) workspace key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "logAnalyticsWorkspaceId",
        "primaryKey"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterNetwork:SparkClusterNetwork": {
      "properties": {
        "connectionDirection": {
          "description": "The direction of the resource provider connection. Possible values include `Inbound` or `Outbound`. Defaults to `Inbound`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateLinkEnabled": {
          "description": "Is the private link enabled? Possible values include `True` or `False`. Defaults to `False`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:hdinsight/SparkClusterRoles:SparkClusterRoles": {
      "properties": {
        "headNode": {
          "$ref": "#/types/azure:hdinsight/SparkClusterRolesHeadNode:SparkClusterRolesHeadNode",
          "description": "A `head_node` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "workerNode": {
          "$ref": "#/types/azure:hdinsight/SparkClusterRolesWorkerNode:SparkClusterRolesWorkerNode",
          "description": "A `worker_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zookeeperNode": {
          "$ref": "#/types/azure:hdinsight/SparkClusterRolesZookeeperNode:SparkClusterRolesZookeeperNode",
          "description": "A `zookeeper_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "headNode",
        "workerNode",
        "zookeeperNode"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterRolesHeadNode:SparkClusterRolesHeadNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Head Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterRolesWorkerNode:SparkClusterRolesWorkerNode": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "minInstanceCount",
            "targetInstanceCount",
            "username",
            "vmSize"
          ]
        }
      },
      "properties": {
        "autoscale": {
          "$ref": "#/types/azure:hdinsight/SparkClusterRolesWorkerNodeAutoscale:SparkClusterRolesWorkerNodeAutoscale",
          "description": "A `autoscale` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minInstanceCount": {
          "deprecationMessage": "this has been deprecated from the API and will be removed in version 3.0 of the provider",
          "description": "The minimum number of instances which should be run for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "password": {
          "description": "The Password associated with the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Worker Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetInstanceCount": {
          "description": "The number of instances which should be run for the Worker Nodes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "username": {
          "description": "The Username of the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "targetInstanceCount",
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterRolesWorkerNodeAutoscale:SparkClusterRolesWorkerNodeAutoscale": {
      "properties": {
        "capacity": {
          "$ref": "#/types/azure:hdinsight/SparkClusterRolesWorkerNodeAutoscaleCapacity:SparkClusterRolesWorkerNodeAutoscaleCapacity",
          "description": "A `capacity` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "recurrence": {
          "$ref": "#/types/azure:hdinsight/SparkClusterRolesWorkerNodeAutoscaleRecurrence:SparkClusterRolesWorkerNodeAutoscaleRecurrence",
          "description": "A `recurrence` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:hdinsight/SparkClusterRolesWorkerNodeAutoscaleCapacity:SparkClusterRolesWorkerNodeAutoscaleCapacity": {
      "properties": {
        "maxInstanceCount": {
          "description": "The maximum number of worker nodes to autoscale to based on the cluster's activity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "minInstanceCount": {
          "description": "The minimum number of worker nodes to autoscale to based on the cluster's activity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "maxInstanceCount",
        "minInstanceCount"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterRolesWorkerNodeAutoscaleRecurrence:SparkClusterRolesWorkerNodeAutoscaleRecurrence": {
      "properties": {
        "schedules": {
          "description": "A list of `schedule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:hdinsight/SparkClusterRolesWorkerNodeAutoscaleRecurrenceSchedule:SparkClusterRolesWorkerNodeAutoscaleRecurrenceSchedule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "timezone": {
          "description": "The time zone for the autoscale schedule times.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "schedules",
        "timezone"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterRolesWorkerNodeAutoscaleRecurrenceSchedule:SparkClusterRolesWorkerNodeAutoscaleRecurrenceSchedule": {
      "properties": {
        "days": {
          "description": "The days of the week to perform autoscale.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "targetInstanceCount": {
          "description": "The number of worker nodes to autoscale at the specified time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "time": {
          "description": "The time of day to perform the autoscale in 24hour format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "days",
        "targetInstanceCount",
        "time"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterRolesZookeeperNode:SparkClusterRolesZookeeperNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterSecurityProfile:SparkClusterSecurityProfile": {
      "properties": {
        "aaddsResourceId": {
          "description": "The resource ID of the Azure Active Directory Domain Service. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clusterUsersGroupDns": {
          "description": "A list of the distinguished names for the cluster user groups. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "domainName": {
          "description": "The name of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "domainUserPassword": {
          "description": "The user password of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "domainUsername": {
          "description": "The username of the Azure Active Directory Domain. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ldapsUrls": {
          "description": "A list of the LDAPS URLs to communicate with the Azure Active Directory. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "msiResourceId": {
          "description": "The User Assigned Identity for the HDInsight Cluster. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "aaddsResourceId",
        "domainName",
        "domainUserPassword",
        "domainUsername",
        "ldapsUrls",
        "msiResourceId"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterStorageAccount:SparkClusterStorageAccount": {
      "properties": {
        "isDefault": {
          "description": "Is this the Default Storage Account for the HDInsight Hadoop Cluster? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "storageAccountKey": {
          "description": "The Access Key which should be used to connect to the Storage Account. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageContainerId": {
          "description": "The ID of the Storage Container. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "isDefault",
        "storageAccountKey",
        "storageContainerId"
      ],
      "type": "object"
    },
    "azure:hdinsight/SparkClusterStorageAccountGen2:SparkClusterStorageAccountGen2": {
      "properties": {
        "filesystemId": {
          "description": "The ID of the Gen2 Filesystem. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "isDefault": {
          "description": "Is this the Default Storage Account for the HDInsight Hadoop Cluster? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "managedIdentityResourceId": {
          "description": "The ID of Managed Identity to use for accessing the Gen2 filesystem. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageResourceId": {
          "description": "The ID of the Storage Account. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "filesystemId",
        "isDefault",
        "managedIdentityResourceId",
        "storageResourceId"
      ],
      "type": "object"
    },
    "azure:hdinsight/StormClusterComponentVersion:StormClusterComponentVersion": {
      "properties": {
        "storm": {
          "description": "The version of Storm which should be used for this HDInsight Storm Cluster. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "storm"
      ],
      "type": "object"
    },
    "azure:hdinsight/StormClusterGateway:StormClusterGateway": {
      "properties": {
        "enabled": {
          "deprecationMessage": "HDInsight doesn't support disabling gateway anymore",
          "description": "Is the Ambari portal enabled? The HDInsight API doesn't support disabling gateway anymore.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "password": {
          "description": "The password used for the Ambari Portal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username used for the Ambari Portal. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/StormClusterMetastores:StormClusterMetastores": {
      "properties": {
        "ambari": {
          "$ref": "#/types/azure:hdinsight/StormClusterMetastoresAmbari:StormClusterMetastoresAmbari",
          "description": "An `ambari` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "hive": {
          "$ref": "#/types/azure:hdinsight/StormClusterMetastoresHive:StormClusterMetastoresHive",
          "description": "A `hive` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "oozie": {
          "$ref": "#/types/azure:hdinsight/StormClusterMetastoresOozie:StormClusterMetastoresOozie",
          "description": "An `oozie` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:hdinsight/StormClusterMetastoresAmbari:StormClusterMetastoresAmbari": {
      "properties": {
        "databaseName": {
          "description": "The external Hive metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Ambari metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Ambari metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Ambari metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/StormClusterMetastoresHive:StormClusterMetastoresHive": {
      "properties": {
        "databaseName": {
          "description": "The external Hive metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Hive metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Hive metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Hive metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/StormClusterMetastoresOozie:StormClusterMetastoresOozie": {
      "properties": {
        "databaseName": {
          "description": "The external Oozie metastore's existing SQL database.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The external Oozie metastore's existing SQL server admin password.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "server": {
          "description": "The fully-qualified domain name (FQDN) of the SQL server to use for the external Oozie metastore.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The external Oozie metastore's existing SQL server admin username.  Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "databaseName",
        "password",
        "server",
        "username"
      ],
      "type": "object"
    },
    "azure:hdinsight/StormClusterMonitor:StormClusterMonitor": {
      "properties": {
        "logAnalyticsWorkspaceId": {
          "description": "The Operations Management Suite (OMS) workspace ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primaryKey": {
          "description": "The Operations Management Suite (OMS) workspace key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "logAnalyticsWorkspaceId",
        "primaryKey"
      ],
      "type": "object"
    },
    "azure:hdinsight/StormClusterRoles:StormClusterRoles": {
      "properties": {
        "headNode": {
          "$ref": "#/types/azure:hdinsight/StormClusterRolesHeadNode:StormClusterRolesHeadNode",
          "description": "A `head_node` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "workerNode": {
          "$ref": "#/types/azure:hdinsight/StormClusterRolesWorkerNode:StormClusterRolesWorkerNode",
          "description": "A `worker_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "zookeeperNode": {
          "$ref": "#/types/azure:hdinsight/StormClusterRolesZookeeperNode:StormClusterRolesZookeeperNode",
          "description": "A `zookeeper_node` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "headNode",
        "workerNode",
        "zookeeperNode"
      ],
      "type": "object"
    },
    "azure:hdinsight/StormClusterRolesHeadNode:StormClusterRolesHeadNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Head Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Head Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Head Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/StormClusterRolesWorkerNode:StormClusterRolesWorkerNode": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "minInstanceCount",
            "targetInstanceCount",
            "username",
            "vmSize"
          ]
        }
      },
      "properties": {
        "minInstanceCount": {
          "deprecationMessage": "this has been deprecated from the API and will be removed in version 3.0 of the provider",
          "description": "The minimum number of instances which should be run for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "password": {
          "description": "The Password associated with the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Worker Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetInstanceCount": {
          "description": "The number of instances which should be run for the Worker Nodes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "username": {
          "description": "The Username of the local administrator for the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Worker Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Worker Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "targetInstanceCount",
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/StormClusterRolesZookeeperNode:StormClusterRolesZookeeperNode": {
      "properties": {
        "password": {
          "description": "The Password associated with the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sshKeys": {
          "description": "A list of SSH Keys which should be used for the local administrator on the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the Subnet within the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of the local administrator for the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Zookeeper Nodes should be provisioned within. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vmSize": {
          "description": "The Size of the Virtual Machine which should be used as the Zookeeper Nodes. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "username",
        "vmSize"
      ],
      "type": "object"
    },
    "azure:hdinsight/StormClusterStorageAccount:StormClusterStorageAccount": {
      "properties": {
        "isDefault": {
          "description": "Is this the Default Storage Account for the HDInsight Storm Cluster? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "storageAccountKey": {
          "description": "The Access Key which should be used to connect to the Storage Account. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageContainerId": {
          "description": "The ID of the Storage Container. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "isDefault",
        "storageAccountKey",
        "storageContainerId"
      ],
      "type": "object"
    },
    "azure:hdinsight/getClusterGateway:getClusterGateway": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "enabled": {
          "description": "Is the Ambari Portal enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "password": {
          "description": "The password used for the Ambari Portal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username used for the Ambari Portal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:healthcare/ServiceAuthenticationConfiguration:ServiceAuthenticationConfiguration": {
      "properties": {
        "audience": {
          "description": "The intended audience to receive authentication tokens for the service. The default value is https://azurehealthcareapis.com\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "authority": {
          "description": "The Azure Active Directory (tenant) that serves as the authentication authority to access the service. The default authority is the Directory defined in the authentication scheme in use when running this provider.\nAuthority must be registered to Azure AD and in the following format: https://{Azure-AD-endpoint}/{tenant-id}.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "smartProxyEnabled": {
          "description": "Enables the 'SMART on FHIR' option for mobile and web implementations.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:healthcare/ServiceCorsConfiguration:ServiceCorsConfiguration": {
      "properties": {
        "allowCredentials": {
          "description": "If credentials are allowed via CORS.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "allowedHeaders": {
          "description": "A set of headers to be allowed via CORS.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "allowedMethods": {
          "description": "The methods to be allowed via CORS.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "allowedOrigins": {
          "description": "A set of origins to be allowed via CORS.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "maxAgeInSeconds": {
          "description": "The max age to be allowed via CORS.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:healthcare/getServiceAuthenticationConfiguration:getServiceAuthenticationConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "audience": {
          "description": "The intended audience to receive authentication tokens for the service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "authority": {
          "description": "The Azure Active Directory (tenant) that serves as the authentication authority to access the service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "smartProxyEnabled": {
          "description": "Is the 'SMART on FHIR' option for mobile and web implementations enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "audience",
        "authority",
        "smartProxyEnabled"
      ],
      "type": "object"
    },
    "azure:healthcare/getServiceCorsConfiguration:getServiceCorsConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "allowCredentials": {
          "description": "Are credentials are allowed via CORS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "allowedHeaders": {
          "description": "The set of headers to be allowed via CORS.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "allowedMethods": {
          "description": "The methods to be allowed via CORS.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "allowedOrigins": {
          "description": "The set of origins to be allowed via CORS.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "maxAgeInSeconds": {
          "description": "The max age to be allowed via CORS.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "allowCredentials",
        "allowedHeaders",
        "allowedMethods",
        "allowedOrigins",
        "maxAgeInSeconds"
      ],
      "type": "object"
    },
    "azure:hpc/CacheAccessPolicyAccessRule:CacheAccessPolicyAccessRule": {
      "properties": {
        "access": {
          "description": "The access level for this rule. Possible values are: `rw`, `ro`, `no`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "anonymousGid": {
          "description": "The anonymous GID used when `root_squash_enabled` is `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "anonymousUid": {
          "description": "The anonymous UID used when `root_squash_enabled` is `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "filter": {
          "description": "The filter applied to the `scope` for this rule. The filter's format depends on its scope: `default` scope matches all clients and has no filter value; `network` scope takes a CIDR format; `host` takes an IP address or fully qualified domain name. If a client does not match any filter rule and there is no default rule, access is denied.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rootSquashEnabled": {
          "description": "Whether to enable [root squash](https://docs.microsoft.com/en-us/azure/hpc-cache/access-policies#root-squash)? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "scope": {
          "description": "The scope of this rule. The `scope` and (potentially) the `filter` determine which clients match the rule. Possible values are: `default`, `network`, `host`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "submountAccessEnabled": {
          "description": "Whether allow access to subdirectories under the root export? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "suidEnabled": {
          "description": "Whether [SUID](https://docs.microsoft.com/en-us/azure/hpc-cache/access-policies#suid) is allowed? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "access",
        "scope"
      ],
      "type": "object"
    },
    "azure:hpc/CacheDefaultAccessPolicy:CacheDefaultAccessPolicy": {
      "properties": {
        "accessRules": {
          "description": "One to three `access_rule` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:hpc/CacheDefaultAccessPolicyAccessRule:CacheDefaultAccessPolicyAccessRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "accessRules"
      ],
      "type": "object"
    },
    "azure:hpc/CacheDefaultAccessPolicyAccessRule:CacheDefaultAccessPolicyAccessRule": {
      "properties": {
        "access": {
          "description": "The access level for this rule. Possible values are: `rw`, `ro`, `no`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "anonymousGid": {
          "description": "The anonymous GID used when `root_squash_enabled` is `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "anonymousUid": {
          "description": "The anonymous UID used when `root_squash_enabled` is `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "filter": {
          "description": "The filter applied to the `scope` for this rule. The filter's format depends on its scope: `default` scope matches all clients and has no filter value; `network` scope takes a CIDR format; `host` takes an IP address or fully qualified domain name. If a client does not match any filter rule and there is no default rule, access is denied.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rootSquashEnabled": {
          "description": "Whether to enable [root squash](https://docs.microsoft.com/en-us/azure/hpc-cache/access-policies#root-squash)? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "scope": {
          "description": "The scope of this rule. The `scope` and (potentially) the `filter` determine which clients match the rule. Possible values are: `default`, `network`, `host`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "submountAccessEnabled": {
          "description": "Whether allow access to subdirectories under the root export? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "suidEnabled": {
          "description": "Whether [SUID](https://docs.microsoft.com/en-us/azure/hpc-cache/access-policies#suid) is allowed? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "access",
        "scope"
      ],
      "type": "object"
    },
    "azure:hpc/CacheDirectoryActiveDirectory:CacheDirectoryActiveDirectory": {
      "properties": {
        "cacheNetbiosName": {
          "description": "The NetBIOS name to assign to the HPC Cache when it joins the Active Directory domain as a server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "dnsPrimaryIp": {
          "description": "The primary DNS IP address used to resolve the Active Directory domain controller's FQDN.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "dnsSecondaryIp": {
          "description": "The secondary DNS IP address used to resolve the Active Directory domain controller's FQDN.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "domainName": {
          "description": "The fully qualified domain name of the Active Directory domain controller.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "domainNetbiosName": {
          "description": "The Active Directory domain's NetBIOS name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The password of the Active Directory domain administrator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The username of the Active Directory domain administrator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "cacheNetbiosName",
        "dnsPrimaryIp",
        "domainName",
        "domainNetbiosName",
        "password",
        "username"
      ],
      "type": "object"
    },
    "azure:hpc/CacheDirectoryFlatFile:CacheDirectoryFlatFile": {
      "properties": {
        "groupFileUri": {
          "description": "The URI of the file containing group information (`/etc/group` file format in Unix-like OS).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "passwordFileUri": {
          "description": "The URI of the file containing user information (`/etc/passwd` file format in Unix-like OS).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "groupFileUri",
        "passwordFileUri"
      ],
      "type": "object"
    },
    "azure:hpc/CacheDirectoryLdap:CacheDirectoryLdap": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "baseDn",
            "bind",
            "server"
          ]
        }
      },
      "properties": {
        "baseDn": {
          "description": "The base distinguished name (DN) for the LDAP domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "bind": {
          "$ref": "#/types/azure:hpc/CacheDirectoryLdapBind:CacheDirectoryLdapBind",
          "description": "A `bind` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "certificateValidationUri": {
          "description": "The URI of the CA certificate to validate the LDAP secure connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "downloadCertificateAutomatically": {
          "description": "Whether the certificate should be automatically downloaded. This can be set to `true` only when `certificate_validation_uri` is provided. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "encrypted": {
          "description": "Whether the LDAP connection should be encrypted? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "server": {
          "description": "The FQDN or IP address of the LDAP server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "baseDn",
        "server"
      ],
      "type": "object"
    },
    "azure:hpc/CacheDirectoryLdapBind:CacheDirectoryLdapBind": {
      "properties": {
        "dn": {
          "description": "The Bind Distinguished Name (DN) identity to be used in the secure LDAP connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The Bind password to be used in the secure LDAP connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "dn",
        "password"
      ],
      "type": "object"
    },
    "azure:hpc/CacheDns:CacheDns": {
      "properties": {
        "searchDomain": {
          "description": "The DNS search domain for the HPC Cache.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "servers": {
          "description": "A list of DNS servers for the HPC Cache. At most three IP(s) are allowed to set.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "servers"
      ],
      "type": "object"
    },
    "azure:hpc/CacheNfsTargetNamespaceJunction:CacheNfsTargetNamespaceJunction": {
      "properties": {
        "accessPolicyName": {
          "description": "The name of the access policy applied to this target. Defaults to `default`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "namespacePath": {
          "description": "The client-facing file path of this NFS target within the HPC Cache NFS Target.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "nfsExport": {
          "description": "The NFS export of this NFS target within the HPC Cache NFS Target.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetPath": {
          "description": "The relative subdirectory path from the `nfs_export` to map to the `namespace_path`. Defaults to `\"\"`, in which case the whole `nfs_export` is exported.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "namespacePath",
        "nfsExport"
      ],
      "type": "object"
    },
    "azure:hsm/ModuleNetworkProfile:ModuleNetworkProfile": {
      "properties": {
        "networkInterfacePrivateIpAddresses": {
          "description": "The private IPv4 address of the network interface. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subnetId": {
          "description": "The ID of the subnet. Changing this forces a new Dedicated Hardware Security Module to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "networkInterfacePrivateIpAddresses",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:index/ProviderFeatures:ProviderFeatures": {
      "properties": {
        "cognitiveAccount": {
          "$ref": "#/types/azure:index/ProviderFeaturesCognitiveAccount:ProviderFeaturesCognitiveAccount",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "keyVault": {
          "$ref": "#/types/azure:index/ProviderFeaturesKeyVault:ProviderFeaturesKeyVault",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logAnalyticsWorkspace": {
          "$ref": "#/types/azure:index/ProviderFeaturesLogAnalyticsWorkspace:ProviderFeaturesLogAnalyticsWorkspace",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "network": {
          "$ref": "#/types/azure:index/ProviderFeaturesNetwork:ProviderFeaturesNetwork",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "resourceGroup": {
          "$ref": "#/types/azure:index/ProviderFeaturesResourceGroup:ProviderFeaturesResourceGroup",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "templateDeployment": {
          "$ref": "#/types/azure:index/ProviderFeaturesTemplateDeployment:ProviderFeaturesTemplateDeployment",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "virtualMachine": {
          "$ref": "#/types/azure:index/ProviderFeaturesVirtualMachine:ProviderFeaturesVirtualMachine",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "virtualMachineScaleSet": {
          "$ref": "#/types/azure:index/ProviderFeaturesVirtualMachineScaleSet:ProviderFeaturesVirtualMachineScaleSet",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:index/ProviderFeaturesCognitiveAccount:ProviderFeaturesCognitiveAccount": {
      "properties": {
        "purgeSoftDeleteOnDestroy": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:index/ProviderFeaturesKeyVault:ProviderFeaturesKeyVault": {
      "properties": {
        "purgeSoftDeleteOnDestroy": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "recoverSoftDeletedKeyVaults": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:index/ProviderFeaturesLogAnalyticsWorkspace:ProviderFeaturesLogAnalyticsWorkspace": {
      "language": {
        "nodejs": {
          "requiredOutputs": []
        }
      },
      "properties": {
        "permanentlyDeleteOnDestroy": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "permanentlyDeleteOnDestroy"
      ],
      "type": "object"
    },
    "azure:index/ProviderFeaturesNetwork:ProviderFeaturesNetwork": {
      "language": {
        "nodejs": {
          "requiredOutputs": []
        }
      },
      "properties": {
        "relaxedLocking": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "relaxedLocking"
      ],
      "type": "object"
    },
    "azure:index/ProviderFeaturesResourceGroup:ProviderFeaturesResourceGroup": {
      "properties": {
        "preventDeletionIfContainsResources": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:index/ProviderFeaturesTemplateDeployment:ProviderFeaturesTemplateDeployment": {
      "language": {
        "nodejs": {
          "requiredOutputs": []
        }
      },
      "properties": {
        "deleteNestedItemsDuringDeletion": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "deleteNestedItemsDuringDeletion"
      ],
      "type": "object"
    },
    "azure:index/ProviderFeaturesVirtualMachine:ProviderFeaturesVirtualMachine": {
      "properties": {
        "deleteOsDiskOnDeletion": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "gracefulShutdown": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "skipShutdownAndForceDelete": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:index/ProviderFeaturesVirtualMachineScaleSet:ProviderFeaturesVirtualMachineScaleSet": {
      "language": {
        "nodejs": {
          "requiredOutputs": []
        }
      },
      "properties": {
        "forceDelete": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "rollInstancesWhenRequired": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "rollInstancesWhenRequired"
      ],
      "type": "object"
    },
    "azure:iot/IoTHubEndpoint:IoTHubEndpoint": {
      "properties": {
        "batchFrequencyInSeconds": {
          "description": "Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds. This attribute is mandatory for endpoint type `AzureIotHub.StorageContainer`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "connectionString": {
          "description": "The connection string for the endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "containerName": {
          "description": "The name of storage container in the storage account. This attribute is mandatory for endpoint type `AzureIotHub.StorageContainer`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "encoding": {
          "description": "Encoding that is used to serialize messages to blobs. Supported values are 'avro' and 'avrodeflate'. Default value is 'avro'. This attribute is mandatory for endpoint type `AzureIotHub.StorageContainer`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fileNameFormat": {
          "description": "File name format for the blob. Default format is ``{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}``. All parameters are mandatory but can be reordered. This attribute is mandatory for endpoint type `AzureIotHub.StorageContainer`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxChunkSizeInBytes": {
          "description": "Maximum number of bytes for each blob written to storage. Value should be between 10485760(10MB) and 524288000(500MB). Default value is 314572800(300MB). This attribute is mandatory for endpoint type `AzureIotHub.StorageContainer`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "The name of the endpoint. The name must be unique across endpoint types. The following names are reserved:  `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resourceGroupName": {
          "description": "The resource group in which the endpoint will be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of the endpoint. Possible values are `AzureIotHub.StorageContainer`, `AzureIotHub.ServiceBusQueue`, `AzureIotHub.ServiceBusTopic` or `AzureIotHub.EventHub`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "name",
        "type"
      ],
      "type": "object"
    },
    "azure:iot/IoTHubEnrichment:IoTHubEnrichment": {
      "properties": {
        "endpointNames": {
          "description": "The list of endpoints which will be enriched.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "key": {
          "description": "The key of the enrichment.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value of the enrichment. Value can be any static string, the name of the IoT hub sending the message (use `$iothubname`) or information from the device twin (ex: `$twin.tags.latitude`)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "endpointNames",
        "key",
        "value"
      ],
      "type": "object"
    },
    "azure:iot/IoTHubFallbackRoute:IoTHubFallbackRoute": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "enabled",
            "endpointNames"
          ]
        }
      },
      "properties": {
        "condition": {
          "description": "The condition that is evaluated to apply the routing rule. If no condition is provided, it evaluates to true by default. For grammar, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-query-language.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Used to specify whether the fallback route is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "endpointNames": {
          "description": "The endpoints to which messages that satisfy the condition are routed. Currently only 1 endpoint is allowed.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "source": {
          "description": "The source that the routing rule is to be applied to, such as `DeviceMessages`. Possible values include: `RoutingSourceInvalid`, `RoutingSourceDeviceMessages`, `RoutingSourceTwinChangeEvents`, `RoutingSourceDeviceLifecycleEvents`, `RoutingSourceDeviceConnectionStateEvents`, `RoutingSourceDeviceJobLifecycleEvents`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:iot/IoTHubFileUpload:IoTHubFileUpload": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "connectionString",
            "containerName",
            "defaultTtl",
            "lockDuration",
            "sasTtl"
          ]
        }
      },
      "properties": {
        "connectionString": {
          "description": "The connection string for the Azure Storage account to which files are uploaded.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "containerName": {
          "description": "The name of the root container where you upload files. The container need not exist but should be creatable using the connection_string specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "defaultTtl": {
          "description": "The period of time for which a file upload notification message is available to consume before it is expired by the IoT hub, specified as an [ISO 8601 timespan duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). This value must be between 1 minute and 48 hours, and evaluates to 'PT1H' by default.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "lockDuration": {
          "description": "The lock duration for the file upload notifications queue, specified as an [ISO 8601 timespan duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). This value must be between 5 and 300 seconds, and evaluates to 'PT1M' by default.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxDeliveryCount": {
          "description": "The number of times the IoT hub attempts to deliver a file upload notification message. It evaluates to 10 by default.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "notifications": {
          "description": "Used to specify whether file notifications are sent to IoT Hub on upload. It evaluates to false by default.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sasTtl": {
          "description": "The period of time for which the SAS URI generated by IoT Hub for file upload is valid, specified as an [ISO 8601 timespan duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). This value must be between 1 minute and 24 hours, and evaluates to 'PT1H' by default.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "containerName"
      ],
      "type": "object"
    },
    "azure:iot/IoTHubIpFilterRule:IoTHubIpFilterRule": {
      "properties": {
        "action": {
          "description": "The desired action for requests captured by this rule. Possible values are  `Accept`, `Reject`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipMask": {
          "description": "The IP address range in CIDR notation for the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the filter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "ipMask",
        "name"
      ],
      "type": "object"
    },
    "azure:iot/IoTHubRoute:IoTHubRoute": {
      "properties": {
        "condition": {
          "description": "The condition that is evaluated to apply the routing rule. If no condition is provided, it evaluates to true by default. For grammar, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-query-language.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Used to specify whether a route is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "endpointNames": {
          "description": "The list of endpoints to which messages that satisfy the condition are routed.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the route.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "source": {
          "description": "The source that the routing rule is to be applied to, such as `DeviceMessages`. Possible values include: `RoutingSourceInvalid`, `RoutingSourceDeviceMessages`, `RoutingSourceTwinChangeEvents`, `RoutingSourceDeviceLifecycleEvents`, `RoutingSourceDeviceConnectionStateEvents`, `RoutingSourceDeviceJobLifecycleEvents`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "endpointNames",
        "name",
        "source"
      ],
      "type": "object"
    },
    "azure:iot/IoTHubSharedAccessPolicy:IoTHubSharedAccessPolicy": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "keyName",
            "permissions",
            "primaryKey",
            "secondaryKey"
          ]
        }
      },
      "properties": {
        "keyName": {
          "description": "The name of the shared access policy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "permissions": {
          "description": "The permissions assigned to the shared access policy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primaryKey": {
          "description": "The primary key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secondaryKey": {
          "description": "The secondary key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:iot/IoTHubSku:IoTHubSku": {
      "properties": {
        "capacity": {
          "description": "The number of provisioned IoT Hub units.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "The name of the sku. Possible values are `B1`, `B2`, `B3`, `F1`, `S1`, `S2`, and `S3`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "capacity",
        "name"
      ],
      "type": "object"
    },
    "azure:iot/IotHubDpsLinkedHub:IotHubDpsLinkedHub": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "connectionString",
            "hostname",
            "location"
          ]
        }
      },
      "properties": {
        "allocationWeight": {
          "description": "The weight applied to the IoT Hub. Defaults to 0.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "applyAllocationPolicy": {
          "description": "Determines whether to apply allocation policies to the IoT Hub. Defaults to false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "connectionString": {
          "description": "The connection string to connect to the IoT Hub. Changing this forces a new resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostname": {
          "description": "The IoT Hub hostname.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "location": {
          "description": "The location of the IoT hub. Changing this forces a new resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "connectionString",
        "location"
      ],
      "type": "object"
    },
    "azure:iot/IotHubDpsSku:IotHubDpsSku": {
      "properties": {
        "capacity": {
          "description": "The number of provisioned IoT Device Provisioning Service units.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "The name of the sku. Currently can only be set to `S1`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "capacity",
        "name"
      ],
      "type": "object"
    },
    "azure:iot/SecurityDeviceGroupAllowRule:SecurityDeviceGroupAllowRule": {
      "properties": {
        "connectionToIpNotAlloweds": {
          "description": "Specifies which Ip is not allowed to be connected to in current device group.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "localUserNotAlloweds": {
          "description": "Specifies which local user is not allowed to Login in current device group.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "processNotAlloweds": {
          "description": "Specifies which process is not allowed to be executed in current device group.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:iot/SecurityDeviceGroupRangeRule:SecurityDeviceGroupRangeRule": {
      "properties": {
        "duration": {
          "description": "Specifies the time range. represented in ISO 8601 duration format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "max": {
          "description": "The maximum threshold in the given time window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "min": {
          "description": "The minimum threshold in the given time window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "type": {
          "description": "The type of supported rule type. Possible Values are `ActiveConnectionsNotInAllowedRange`, `AmqpC2DMessagesNotInAllowedRange`, `MqttC2DMessagesNotInAllowedRange`, `HttpC2DMessagesNotInAllowedRange`, `AmqpC2DRejectedMessagesNotInAllowedRange`, `MqttC2DRejectedMessagesNotInAllowedRange`, `HttpC2DRejectedMessagesNotInAllowedRange`, `AmqpD2CMessagesNotInAllowedRange`, `MqttD2CMessagesNotInAllowedRange`, `HttpD2CMessagesNotInAllowedRange`, `DirectMethodInvokesNotInAllowedRange`, `FailedLocalLoginsNotInAllowedRange`, `FileUploadsNotInAllowedRange`, `QueuePurgesNotInAllowedRange`, `TwinUpdatesNotInAllowedRange` and `UnauthorizedOperationsNotInAllowedRange`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "duration",
        "max",
        "min",
        "type"
      ],
      "type": "object"
    },
    "azure:iot/SecuritySolutionRecommendationsEnabled:SecuritySolutionRecommendationsEnabled": {
      "properties": {
        "acrAuthentication": {
          "description": "Is Principal Authentication enabled for the ACR repository? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "agentSendUnutilizedMsg": {
          "description": "Is Agent send underutilized messages enabled? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "baseline": {
          "description": "Is Security related system configuration issues identified? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "edgeHubMemOptimize": {
          "description": "Is IoT Edge Hub memory optimized? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "edgeLoggingOption": {
          "description": "Is logging configured for IoT Edge module? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "inconsistentModuleSettings": {
          "description": "Is inconsistent module settings enabled for SecurityGroup? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "installAgent": {
          "description": "is Azure IoT Security agent installed? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "ipFilterDenyAll": {
          "description": "Is Default IP filter policy denied? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "ipFilterPermissiveRule": {
          "description": "Is IP filter rule source allowable IP range too large? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "openPorts": {
          "description": "Is any ports open on the device? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "permissiveFirewallPolicy": {
          "description": "Does firewall policy exist which allow necessary communication to/from the device? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "permissiveInputFirewallRules": {
          "description": "Is only necessary addresses or ports are permitted in? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "permissiveOutputFirewallRules": {
          "description": "Is only necessary addresses or ports are permitted out? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "privilegedDockerOptions": {
          "description": "Is high level permissions are needed for the module? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sharedCredentials": {
          "description": "Is any credentials shared among devices? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "vulnerableTlsCipherSuite": {
          "description": "Does TLS cipher suite need to be updated? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:iot/TimeSeriesInsightsGen2EnvironmentStorage:TimeSeriesInsightsGen2EnvironmentStorage": {
      "properties": {
        "key": {
          "description": "Access key of storage account for Azure IoT Time Series Insights Gen2 Environment\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Name of storage account for Azure IoT Time Series Insights Gen2 Environment\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "key",
        "name"
      ],
      "type": "object"
    },
    "azure:iot/TimeSeriesInsightsReferenceDataSetKeyProperty:TimeSeriesInsightsReferenceDataSetKeyProperty": {
      "properties": {
        "name": {
          "description": "The name of the key property. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The data type of the key property. Valid values include `Bool`, `DateTime`, `Double`, `String`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "type"
      ],
      "type": "object"
    },
    "azure:keyvault/CertifiateCertificate:CertifiateCertificate": {
      "properties": {
        "contents": {
          "description": "The base64-encoded certificate contents. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The password associated with the certificate. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "contents"
      ],
      "type": "object"
    },
    "azure:keyvault/CertifiateCertificateAttribute:CertifiateCertificateAttribute": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "created",
            "enabled",
            "expires",
            "notBefore",
            "recoveryLevel",
            "updated"
          ]
        }
      },
      "properties": {
        "created": {
          "description": "The create time of the Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "whether the Key Vault Certificate is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "expires": {
          "description": "The expires time of the Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "notBefore": {
          "description": "The not before valid time of the Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "recoveryLevel": {
          "description": "The deletion recovery level of the Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "updated": {
          "description": "The recent update time of the Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:keyvault/CertifiateCertificatePolicy:CertifiateCertificatePolicy": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "issuerParameters",
            "keyProperties",
            "secretProperties",
            "x509CertificateProperties"
          ]
        }
      },
      "properties": {
        "issuerParameters": {
          "$ref": "#/types/azure:keyvault/CertifiateCertificatePolicyIssuerParameters:CertifiateCertificatePolicyIssuerParameters",
          "description": "A `issuer_parameters` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "keyProperties": {
          "$ref": "#/types/azure:keyvault/CertifiateCertificatePolicyKeyProperties:CertifiateCertificatePolicyKeyProperties",
          "description": "A `key_properties` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "lifetimeActions": {
          "description": "A `lifetime_action` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/CertifiateCertificatePolicyLifetimeAction:CertifiateCertificatePolicyLifetimeAction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "secretProperties": {
          "$ref": "#/types/azure:keyvault/CertifiateCertificatePolicySecretProperties:CertifiateCertificatePolicySecretProperties",
          "description": "A `secret_properties` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "x509CertificateProperties": {
          "$ref": "#/types/azure:keyvault/CertifiateCertificatePolicyX509CertificateProperties:CertifiateCertificatePolicyX509CertificateProperties",
          "description": "A `x509_certificate_properties` block as defined below. Required when `certificate` block is not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "issuerParameters",
        "keyProperties",
        "secretProperties"
      ],
      "type": "object"
    },
    "azure:keyvault/CertifiateCertificatePolicyIssuerParameters:CertifiateCertificatePolicyIssuerParameters": {
      "properties": {
        "name": {
          "description": "The name of the Certificate Issuer. Possible values include `Self` (for self-signed certificate), or `Unknown` (for a certificate issuing authority like `Let's Encrypt` and Azure direct supported ones). Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:keyvault/CertifiateCertificatePolicyKeyProperties:CertifiateCertificatePolicyKeyProperties": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "curve",
            "exportable",
            "keySize",
            "keyType",
            "reuseKey"
          ]
        }
      },
      "properties": {
        "curve": {
          "description": "Specifies the curve to use when creating an `EC` key. Possible values are `P-256`, `P-256K`, `P-384`, and `P-521`. This field will be required in a future release if `key_type` is `EC` or `EC-HSM`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "exportable": {
          "description": "Is this certificate exportable? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "keySize": {
          "description": "The size of the key used in the certificate. Possible values include `2048`, `3072`, and `4096` for `RSA` keys, or `256`, `384`, and `521` for `EC` keys. This property is required when using RSA keys. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "keyType": {
          "description": "Specifies the type of key, such as `RSA` or `EC`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "reuseKey": {
          "description": "Is the key reusable? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "exportable",
        "keyType",
        "reuseKey"
      ],
      "type": "object"
    },
    "azure:keyvault/CertifiateCertificatePolicyLifetimeAction:CertifiateCertificatePolicyLifetimeAction": {
      "properties": {
        "action": {
          "$ref": "#/types/azure:keyvault/CertifiateCertificatePolicyLifetimeActionAction:CertifiateCertificatePolicyLifetimeActionAction",
          "description": "A `action` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "trigger": {
          "$ref": "#/types/azure:keyvault/CertifiateCertificatePolicyLifetimeActionTrigger:CertifiateCertificatePolicyLifetimeActionTrigger",
          "description": "A `trigger` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "action",
        "trigger"
      ],
      "type": "object"
    },
    "azure:keyvault/CertifiateCertificatePolicyLifetimeActionAction:CertifiateCertificatePolicyLifetimeActionAction": {
      "properties": {
        "actionType": {
          "description": "The Type of action to be performed when the lifetime trigger is triggerec. Possible values include `AutoRenew` and `EmailContacts`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "actionType"
      ],
      "type": "object"
    },
    "azure:keyvault/CertifiateCertificatePolicyLifetimeActionTrigger:CertifiateCertificatePolicyLifetimeActionTrigger": {
      "properties": {
        "daysBeforeExpiry": {
          "description": "The number of days before the Certificate expires that the action associated with this Trigger should run. Changing this forces a new resource to be created. Conflicts with `lifetime_percentage`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "lifetimePercentage": {
          "description": "The percentage at which during the Certificates Lifetime the action associated with this Trigger should run. Changing this forces a new resource to be created. Conflicts with `days_before_expiry`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:keyvault/CertifiateCertificatePolicySecretProperties:CertifiateCertificatePolicySecretProperties": {
      "properties": {
        "contentType": {
          "description": "The Content-Type of the Certificate, such as `application/x-pkcs12` for a PFX or `application/x-pem-file` for a PEM. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "contentType"
      ],
      "type": "object"
    },
    "azure:keyvault/CertifiateCertificatePolicyX509CertificateProperties:CertifiateCertificatePolicyX509CertificateProperties": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "extendedKeyUsages",
            "keyUsages",
            "subject",
            "subjectAlternativeNames",
            "validityInMonths"
          ]
        }
      },
      "properties": {
        "extendedKeyUsages": {
          "description": "A list of Extended/Enhanced Key Usages. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "keyUsages": {
          "description": "A list of uses associated with this Key. Possible values include `cRLSign`, `dataEncipherment`, `decipherOnly`, `digitalSignature`, `encipherOnly`, `keyAgreement`, `keyCertSign`, `keyEncipherment` and `nonRepudiation` and are case-sensitive. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subject": {
          "description": "The Certificate's Subject. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subjectAlternativeNames": {
          "$ref": "#/types/azure:keyvault/CertifiateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNames:CertifiateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNames",
          "description": "A `subject_alternative_names` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "validityInMonths": {
          "description": "The Certificates Validity Period in Months. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "keyUsages",
        "subject",
        "validityInMonths"
      ],
      "type": "object"
    },
    "azure:keyvault/CertifiateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNames:CertifiateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNames": {
      "properties": {
        "dnsNames": {
          "description": "A list of alternative DNS names (FQDNs) identified by the Certificate. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "emails": {
          "description": "A list of email addresses identified by this Certificate. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "upns": {
          "description": "A list of User Principal Names identified by the Certificate. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:keyvault/CertificateCertificate:CertificateCertificate": {
      "properties": {
        "contents": {
          "description": "The base64-encoded certificate contents. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The password associated with the certificate. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "contents"
      ],
      "type": "object"
    },
    "azure:keyvault/CertificateCertificateAttribute:CertificateCertificateAttribute": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "created",
            "enabled",
            "expires",
            "notBefore",
            "recoveryLevel",
            "updated"
          ]
        }
      },
      "properties": {
        "created": {
          "description": "The create time of the Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "whether the Key Vault Certificate is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "expires": {
          "description": "The expires time of the Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "notBefore": {
          "description": "The not before valid time of the Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "recoveryLevel": {
          "description": "The deletion recovery level of the Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "updated": {
          "description": "The recent update time of the Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:keyvault/CertificateCertificatePolicy:CertificateCertificatePolicy": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "issuerParameters",
            "keyProperties",
            "secretProperties",
            "x509CertificateProperties"
          ]
        }
      },
      "properties": {
        "issuerParameters": {
          "$ref": "#/types/azure:keyvault/CertificateCertificatePolicyIssuerParameters:CertificateCertificatePolicyIssuerParameters",
          "description": "A `issuer_parameters` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "keyProperties": {
          "$ref": "#/types/azure:keyvault/CertificateCertificatePolicyKeyProperties:CertificateCertificatePolicyKeyProperties",
          "description": "A `key_properties` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "lifetimeActions": {
          "description": "A `lifetime_action` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/CertificateCertificatePolicyLifetimeAction:CertificateCertificatePolicyLifetimeAction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "secretProperties": {
          "$ref": "#/types/azure:keyvault/CertificateCertificatePolicySecretProperties:CertificateCertificatePolicySecretProperties",
          "description": "A `secret_properties` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "x509CertificateProperties": {
          "$ref": "#/types/azure:keyvault/CertificateCertificatePolicyX509CertificateProperties:CertificateCertificatePolicyX509CertificateProperties",
          "description": "A `x509_certificate_properties` block as defined below. Required when `certificate` block is not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "issuerParameters",
        "keyProperties",
        "secretProperties"
      ],
      "type": "object"
    },
    "azure:keyvault/CertificateCertificatePolicyIssuerParameters:CertificateCertificatePolicyIssuerParameters": {
      "properties": {
        "name": {
          "description": "The name of the Certificate Issuer. Possible values include `Self` (for self-signed certificate), or `Unknown` (for a certificate issuing authority like `Let's Encrypt` and Azure direct supported ones). Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:keyvault/CertificateCertificatePolicyKeyProperties:CertificateCertificatePolicyKeyProperties": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "curve",
            "exportable",
            "keySize",
            "keyType",
            "reuseKey"
          ]
        }
      },
      "properties": {
        "curve": {
          "description": "Specifies the curve to use when creating an `EC` key. Possible values are `P-256`, `P-256K`, `P-384`, and `P-521`. This field will be required in a future release if `key_type` is `EC` or `EC-HSM`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "exportable": {
          "description": "Is this certificate exportable? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "keySize": {
          "description": "The size of the key used in the certificate. Possible values include `2048`, `3072`, and `4096` for `RSA` keys, or `256`, `384`, and `521` for `EC` keys. This property is required when using RSA keys. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "keyType": {
          "description": "Specifies the type of key, such as `RSA` or `EC`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "reuseKey": {
          "description": "Is the key reusable? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "exportable",
        "keyType",
        "reuseKey"
      ],
      "type": "object"
    },
    "azure:keyvault/CertificateCertificatePolicyLifetimeAction:CertificateCertificatePolicyLifetimeAction": {
      "properties": {
        "action": {
          "$ref": "#/types/azure:keyvault/CertificateCertificatePolicyLifetimeActionAction:CertificateCertificatePolicyLifetimeActionAction",
          "description": "A `action` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "trigger": {
          "$ref": "#/types/azure:keyvault/CertificateCertificatePolicyLifetimeActionTrigger:CertificateCertificatePolicyLifetimeActionTrigger",
          "description": "A `trigger` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "action",
        "trigger"
      ],
      "type": "object"
    },
    "azure:keyvault/CertificateCertificatePolicyLifetimeActionAction:CertificateCertificatePolicyLifetimeActionAction": {
      "properties": {
        "actionType": {
          "description": "The Type of action to be performed when the lifetime trigger is triggerec. Possible values include `AutoRenew` and `EmailContacts`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "actionType"
      ],
      "type": "object"
    },
    "azure:keyvault/CertificateCertificatePolicyLifetimeActionTrigger:CertificateCertificatePolicyLifetimeActionTrigger": {
      "properties": {
        "daysBeforeExpiry": {
          "description": "The number of days before the Certificate expires that the action associated with this Trigger should run. Changing this forces a new resource to be created. Conflicts with `lifetime_percentage`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "lifetimePercentage": {
          "description": "The percentage at which during the Certificates Lifetime the action associated with this Trigger should run. Changing this forces a new resource to be created. Conflicts with `days_before_expiry`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:keyvault/CertificateCertificatePolicySecretProperties:CertificateCertificatePolicySecretProperties": {
      "properties": {
        "contentType": {
          "description": "The Content-Type of the Certificate, such as `application/x-pkcs12` for a PFX or `application/x-pem-file` for a PEM. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "contentType"
      ],
      "type": "object"
    },
    "azure:keyvault/CertificateCertificatePolicyX509CertificateProperties:CertificateCertificatePolicyX509CertificateProperties": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "extendedKeyUsages",
            "keyUsages",
            "subject",
            "subjectAlternativeNames",
            "validityInMonths"
          ]
        }
      },
      "properties": {
        "extendedKeyUsages": {
          "description": "A list of Extended/Enhanced Key Usages. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "keyUsages": {
          "description": "A list of uses associated with this Key. Possible values include `cRLSign`, `dataEncipherment`, `decipherOnly`, `digitalSignature`, `encipherOnly`, `keyAgreement`, `keyCertSign`, `keyEncipherment` and `nonRepudiation` and are case-sensitive. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subject": {
          "description": "The Certificate's Subject. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subjectAlternativeNames": {
          "$ref": "#/types/azure:keyvault/CertificateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNames:CertificateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNames",
          "description": "A `subject_alternative_names` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "validityInMonths": {
          "description": "The Certificates Validity Period in Months. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "keyUsages",
        "subject",
        "validityInMonths"
      ],
      "type": "object"
    },
    "azure:keyvault/CertificateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNames:CertificateCertificatePolicyX509CertificatePropertiesSubjectAlternativeNames": {
      "properties": {
        "dnsNames": {
          "description": "A list of alternative DNS names (FQDNs) identified by the Certificate. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "emails": {
          "description": "A list of email addresses identified by this Certificate. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "upns": {
          "description": "A list of User Principal Names identified by the Certificate. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:keyvault/CertificateIssuerAdmin:CertificateIssuerAdmin": {
      "properties": {
        "emailAddress": {
          "description": "E-mail address of the admin.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "firstName": {
          "description": "First name of the admin.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "lastName": {
          "description": "Last name of the admin.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "phone": {
          "description": "Phone number of the admin.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "emailAddress"
      ],
      "type": "object"
    },
    "azure:keyvault/KeyVaultAccessPolicy:KeyVaultAccessPolicy": {
      "properties": {
        "applicationId": {
          "description": "The object ID of an Application in Azure Active Directory.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificatePermissions": {
          "description": "List of certificate permissions, must be one or more from the following: `Backup`, `Create`, `Delete`, `DeleteIssuers`, `Get`, `GetIssuers`, `Import`, `List`, `ListIssuers`, `ManageContacts`, `ManageIssuers`, `Purge`, `Recover`, `Restore`, `SetIssuers` and `Update`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "keyPermissions": {
          "description": "List of key permissions, must be one or more from the following: `Backup`, `Create`, `Decrypt`, `Delete`, `Encrypt`, `Get`, `Import`, `List`, `Purge`, `Recover`, `Restore`, `Sign`, `UnwrapKey`, `Update`, `Verify` and `WrapKey`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "objectId": {
          "description": "The object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretPermissions": {
          "description": "List of secret permissions, must be one or more from the following: `Backup`, `Delete`, `Get`, `List`, `Purge`, `Recover`, `Restore` and `Set`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "storagePermissions": {
          "description": "List of storage permissions, must be one or more from the following: `Backup`, `Delete`, `DeleteSAS`, `Get`, `GetSAS`, `List`, `ListSAS`, `Purge`, `Recover`, `RegenerateKey`, `Restore`, `Set`, `SetSAS` and `Update`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "tenantId": {
          "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Must match the `tenant_id` used above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "objectId",
        "tenantId"
      ],
      "type": "object"
    },
    "azure:keyvault/KeyVaultContact:KeyVaultContact": {
      "properties": {
        "email": {
          "description": "E-mail address of the contact.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Name of the contact.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "phone": {
          "description": "Phone number of the contact.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "email"
      ],
      "type": "object"
    },
    "azure:keyvault/KeyVaultNetworkAcls:KeyVaultNetworkAcls": {
      "properties": {
        "bypass": {
          "description": "Specifies which traffic can bypass the network rules. Possible values are `AzureServices` and `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "defaultAction": {
          "description": "The Default Action to use when no rules match from `ip_rules` / `virtual_network_subnet_ids`. Possible values are `Allow` and `Deny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipRules": {
          "description": "One or more IP Addresses, or CIDR Blocks which should be able to access the Key Vault.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "virtualNetworkSubnetIds": {
          "description": "One or more Subnet ID's which should be able to access this Key Vault.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "bypass",
        "defaultAction"
      ],
      "type": "object"
    },
    "azure:keyvault/getCertificateCertificatePolicy:getCertificateCertificatePolicy": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "issuerParameters": {
          "description": "A `issuer_parameters` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/getCertificateCertificatePolicyIssuerParameter:getCertificateCertificatePolicyIssuerParameter"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "keyProperties": {
          "description": "A `key_properties` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/getCertificateCertificatePolicyKeyProperty:getCertificateCertificatePolicyKeyProperty"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "lifetimeActions": {
          "description": "A `lifetime_action` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/getCertificateCertificatePolicyLifetimeAction:getCertificateCertificatePolicyLifetimeAction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "secretProperties": {
          "description": "A `secret_properties` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/getCertificateCertificatePolicySecretProperty:getCertificateCertificatePolicySecretProperty"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "x509CertificateProperties": {
          "description": "An `x509_certificate_properties` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/getCertificateCertificatePolicyX509CertificateProperty:getCertificateCertificatePolicyX509CertificateProperty"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "issuerParameters",
        "keyProperties",
        "lifetimeActions",
        "secretProperties",
        "x509CertificateProperties"
      ],
      "type": "object"
    },
    "azure:keyvault/getCertificateCertificatePolicyIssuerParameter:getCertificateCertificatePolicyIssuerParameter": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the Key Vault Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:keyvault/getCertificateCertificatePolicyKeyProperty:getCertificateCertificatePolicyKeyProperty": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "curve": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "exportable": {
          "description": "Is this Certificate Exportable?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "keySize": {
          "description": "The size of the Key used in the Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "keyType": {
          "description": "Specifies the Type of Key, for example `RSA`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "reuseKey": {
          "description": "Is the key reusable?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "curve",
        "exportable",
        "keySize",
        "keyType",
        "reuseKey"
      ],
      "type": "object"
    },
    "azure:keyvault/getCertificateCertificatePolicyLifetimeAction:getCertificateCertificatePolicyLifetimeAction": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "actions": {
          "description": "A `action` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/getCertificateCertificatePolicyLifetimeActionAction:getCertificateCertificatePolicyLifetimeActionAction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "triggers": {
          "description": "A `trigger` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/getCertificateCertificatePolicyLifetimeActionTrigger:getCertificateCertificatePolicyLifetimeActionTrigger"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "actions",
        "triggers"
      ],
      "type": "object"
    },
    "azure:keyvault/getCertificateCertificatePolicyLifetimeActionAction:getCertificateCertificatePolicyLifetimeActionAction": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "actionType": {
          "description": "The Type of action to be performed when the lifetime trigger is triggerec.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "actionType"
      ],
      "type": "object"
    },
    "azure:keyvault/getCertificateCertificatePolicyLifetimeActionTrigger:getCertificateCertificatePolicyLifetimeActionTrigger": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "daysBeforeExpiry": {
          "description": "The number of days before the Certificate expires that the action associated with this Trigger should run.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "lifetimePercentage": {
          "description": "The percentage at which during the Certificates Lifetime the action associated with this Trigger should run.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "daysBeforeExpiry",
        "lifetimePercentage"
      ],
      "type": "object"
    },
    "azure:keyvault/getCertificateCertificatePolicySecretProperty:getCertificateCertificatePolicySecretProperty": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "contentType": {
          "description": "The Content-Type of the Certificate, for example `application/x-pkcs12` for a PFX or `application/x-pem-file` for a PEM.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "contentType"
      ],
      "type": "object"
    },
    "azure:keyvault/getCertificateCertificatePolicyX509CertificateProperty:getCertificateCertificatePolicyX509CertificateProperty": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "extendedKeyUsages": {
          "description": "A list of Extended/Enhanced Key Usages.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "keyUsages": {
          "description": "A list of uses associated with this Key.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "subject": {
          "description": "The Certificate's Subject.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subjectAlternativeNames": {
          "description": "A `subject_alternative_names` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:keyvault/getCertificateCertificatePolicyX509CertificatePropertySubjectAlternativeName:getCertificateCertificatePolicyX509CertificatePropertySubjectAlternativeName"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "validityInMonths": {
          "description": "The Certificates Validity Period in Months.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "extendedKeyUsages",
        "keyUsages",
        "subject",
        "subjectAlternativeNames",
        "validityInMonths"
      ],
      "type": "object"
    },
    "azure:keyvault/getCertificateCertificatePolicyX509CertificatePropertySubjectAlternativeName:getCertificateCertificatePolicyX509CertificatePropertySubjectAlternativeName": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "dnsNames": {
          "description": "A list of alternative DNS names (FQDNs) identified by the Certificate.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "emails": {
          "description": "A list of email addresses identified by this Certificate.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "upns": {
          "description": "A list of User Principal Names identified by the Certificate.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "dnsNames",
        "emails",
        "upns"
      ],
      "type": "object"
    },
    "azure:keyvault/getCertificateIssuerAdmin:getCertificateIssuerAdmin": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "emailAddress": {
          "description": "E-mail address of the admin.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "firstName": {
          "description": "First name of the admin.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "lastName": {
          "description": "Last name of the admin.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "phone": {
          "description": "Phone number of the admin.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "emailAddress",
        "firstName",
        "lastName",
        "phone"
      ],
      "type": "object"
    },
    "azure:keyvault/getKeyVaultAccessPolicy:getKeyVaultAccessPolicy": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "applicationId": {
          "description": "The Object ID of a Azure Active Directory Application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificatePermissions": {
          "description": "A list of certificate permissions applicable to this Access Policy.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "keyPermissions": {
          "description": "A list of key permissions applicable to this Access Policy.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "objectId": {
          "description": "An Object ID of a User, Service Principal or Security Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secretPermissions": {
          "description": "A list of secret permissions applicable to this Access Policy.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "storagePermissions": {
          "description": "A list of storage permissions applicable to this Access Policy.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "tenantId": {
          "description": "The Azure Active Directory Tenant ID used to authenticate requests for this Key Vault.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "applicationId",
        "certificatePermissions",
        "keyPermissions",
        "objectId",
        "secretPermissions",
        "storagePermissions",
        "tenantId"
      ],
      "type": "object"
    },
    "azure:keyvault/getKeyVaultNetworkAcl:getKeyVaultNetworkAcl": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "bypass": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "defaultAction": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipRules": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "virtualNetworkSubnetIds": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "bypass",
        "defaultAction",
        "ipRules",
        "virtualNetworkSubnetIds"
      ],
      "type": "object"
    },
    "azure:kusto/ClusterIdentity:ClusterIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "A list of IDs for User Assigned Managed Identity resources to be assigned.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The Principal ID associated with this System Assigned Managed Service Identity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID associated with this System Assigned Managed Service Identity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the type of Managed Service Identity that is configured on this Kusto Cluster. Possible values are: `SystemAssigned`, `UserAssigned` and `SystemAssigned, UserAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:kusto/ClusterOptimizedAutoScale:ClusterOptimizedAutoScale": {
      "properties": {
        "maximumInstances": {
          "description": "The maximum number of allowed instances. Must between `0` and `1000`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "minimumInstances": {
          "description": "The minimum number of allowed instances. Must between `0` and `1000`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "maximumInstances",
        "minimumInstances"
      ],
      "type": "object"
    },
    "azure:kusto/ClusterSku:ClusterSku": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "capacity",
            "name"
          ]
        }
      },
      "properties": {
        "capacity": {
          "description": "Specifies the node count for the cluster. Boundaries depend on the sku name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "The name of the SKU. Valid values are: `Dev(No SLA)_Standard_D11_v2`, `Dev(No SLA)_Standard_E2a_v4`, `Standard_D11_v2`, `Standard_D12_v2`, `Standard_D13_v2`, `Standard_D14_v2`, `Standard_DS13_v2+1TB_PS`, `Standard_DS13_v2+2TB_PS`, `Standard_DS14_v2+3TB_PS`, `Standard_DS14_v2+4TB_PS`, `Standard_E16as_v4+3TB_PS`, `Standard_E16as_v4+4TB_PS`, `Standard_E16a_v4`, `Standard_E2a_v4`, `Standard_E4a_v4`, `Standard_E64i_v3`, `Standard_E8as_v4+1TB_PS`, `Standard_E8as_v4+2TB_PS`, `Standard_E8a_v4`, `Standard_L16s`, `Standard_L4s`, `Standard_L8s`, `Standard_L16s_v2` and `Standard_L8s_v2`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:kusto/ClusterVirtualNetworkConfiguration:ClusterVirtualNetworkConfiguration": {
      "properties": {
        "dataManagementPublicIpId": {
          "description": "Data management's service public IP address resource id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enginePublicIpId": {
          "description": "Engine service's public IP address resource id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The subnet resource id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "dataManagementPublicIpId",
        "enginePublicIpId",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:lb/BackendAddressPoolBackendAddress:BackendAddressPoolBackendAddress": {
      "properties": {
        "ipAddress": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Backend Address Pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "ipAddress",
        "name",
        "virtualNetworkId"
      ],
      "type": "object"
    },
    "azure:lb/LoadBalancerFrontendIpConfiguration:LoadBalancerFrontendIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "availabilityZone",
            "id",
            "inboundNatRules",
            "loadBalancerRules",
            "name",
            "outboundRules",
            "privateIpAddress",
            "privateIpAddressAllocation",
            "privateIpAddressVersion",
            "publicIpAddressId",
            "publicIpPrefixId",
            "subnetId",
            "zones"
          ]
        }
      },
      "properties": {
        "availabilityZone": {
          "description": "A list of Availability Zones which the Load Balancer's IP Addresses should be created in. Possible values are `Zone-Redundant`, `1`, `2`, `3`, and `No-Zone`. Defaults to `Zone-Redundant`.\n`No-Zones` - A `non-zonal` resource will be created and the resource will not be replicated or distributed to any Availability Zones.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The id of the Frontend IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "inboundNatRules": {
          "description": "The list of IDs of inbound rules that use this frontend IP.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "loadBalancerRules": {
          "description": "The list of IDs of load balancing rules that use this frontend IP.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the frontend ip configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "outboundRules": {
          "description": "The list of IDs outbound rules that use this frontend IP.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "privateIpAddress": {
          "description": "Private IP Address to assign to the Load Balancer. The last one and first four IPs in any range are reserved and cannot be manually assigned.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddressAllocation": {
          "description": "The allocation method for the Private IP Address used by this Load Balancer. Possible values as `Dynamic` and `Static`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddressVersion": {
          "description": "The version of IP that the Private IP Address is. Possible values are `IPv4` or `IPv6`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpAddressId": {
          "description": "The ID of a Public IP Address which should be associated with the Load Balancer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpPrefixId": {
          "description": "The ID of a Public IP Prefix which should be associated with the Load Balancer. Public IP Prefix can only be used with outbound rules.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet which should be associated with the IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "zones": {
          "deprecationMessage": "This property has been deprecated in favour of `availability_zone` due to a breaking behavioural change in Azure: https://azure.microsoft.com/en-us/updates/zone-behavior-change/",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:lb/OutboundRuleFrontendIpConfiguration:OutboundRuleFrontendIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name"
          ]
        }
      },
      "properties": {
        "id": {
          "description": "The ID of the Load Balancer Outbound Rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Frontend IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:lb/getBackendAddressPoolBackendAddress:getBackendAddressPoolBackendAddress": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "ipAddress": {
          "description": "The Static IP address for this Load Balancer within the Virtual Network.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Backend Address Pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualNetworkId": {
          "description": "The ID of the Virtual Network where the Backend Address of the Load Balancer exists.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "ipAddress",
        "name",
        "virtualNetworkId"
      ],
      "type": "object"
    },
    "azure:lb/getBackendAddressPoolBackendIpConfiguration:getBackendAddressPoolBackendIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "id": {
          "description": "The ID of the Backend Address Pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "azure:lb/getLBFrontendIpConfiguration:getLBFrontendIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "id": {
          "description": "The id of the Frontend IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Load Balancer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddress": {
          "description": "Private IP Address to assign to the Load Balancer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddressAllocation": {
          "description": "The allocation method for the Private IP Address used by this Load Balancer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddressVersion": {
          "description": "The Private IP Address Version, either `IPv4` or `IPv6`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpAddressId": {
          "description": "The ID of a  Public IP Address which is associated with this Load Balancer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet which is associated with the IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "zones": {
          "description": "A list of Availability Zones which the Load Balancer's IP Addresses should be created in.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "id",
        "name",
        "privateIpAddress",
        "privateIpAddressAllocation",
        "privateIpAddressVersion",
        "publicIpAddressId",
        "subnetId",
        "zones"
      ],
      "type": "object"
    },
    "azure:lighthouse/DefinitionAuthorization:DefinitionAuthorization": {
      "properties": {
        "delegatedRoleDefinitionIds": {
          "description": "The set of role definition ids which define all the permissions that the principal id can assign.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalDisplayName": {
          "description": "The display name of the security group/service principal/user that would be assigned permissions to the projected subscription.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "principalId": {
          "description": "Principal ID of the security group/service principal/user that would be assigned permissions to the projected subscription.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "roleDefinitionId": {
          "description": "The role definition identifier. This role will define the permissions that are granted to the principal. This cannot be an `Owner` role.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "roleDefinitionId"
      ],
      "type": "object"
    },
    "azure:lighthouse/DefinitionPlan:DefinitionPlan": {
      "properties": {
        "name": {
          "description": "The plan name of the marketplace offer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "product": {
          "description": "The product code of the plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "The publisher ID of the plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "The version of the plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "product",
        "publisher",
        "version"
      ],
      "type": "object"
    },
    "azure:loganalytics/ClusterIdentity:ClusterIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Identity of this Log Analytics Cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Identity of this Log Analytics Cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of the Log Analytics Cluster. At this time the only allowed value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:logicapps/ActionHttpRunAfter:ActionHttpRunAfter": {
      "properties": {
        "actionName": {
          "description": "Specifies the name of the precedent HTTP Action.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "actionResult": {
          "description": "Specifies the expected result of the precedent HTTP Action, only after which the current HTTP Action will be triggered. Possible values include `Succeeded`, `Failed`, `Skipped` and `TimedOut`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "actionName",
        "actionResult"
      ],
      "type": "object"
    },
    "azure:logicapps/IntegrationAccountAgreementGuestIdentity:IntegrationAccountAgreementGuestIdentity": {
      "properties": {
        "qualifier": {
          "description": "The authenticating body that provides unique guest identities to organizations.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value that identifies the documents that your logic apps receive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "qualifier",
        "value"
      ],
      "type": "object"
    },
    "azure:logicapps/IntegrationAccountAgreementHostIdentity:IntegrationAccountAgreementHostIdentity": {
      "properties": {
        "qualifier": {
          "description": "The authenticating body that provides unique host identities to organizations.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value that identifies the documents that your logic apps receive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "qualifier",
        "value"
      ],
      "type": "object"
    },
    "azure:logicapps/IntegrationAccountBatchConfigurationReleaseCriteria:IntegrationAccountBatchConfigurationReleaseCriteria": {
      "properties": {
        "batchSize": {
          "description": "The batch size in bytes for the Logic App Integration Batch Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "messageCount": {
          "description": "The message count for the Logic App Integration Batch Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "recurrence": {
          "$ref": "#/types/azure:logicapps/IntegrationAccountBatchConfigurationReleaseCriteriaRecurrence:IntegrationAccountBatchConfigurationReleaseCriteriaRecurrence",
          "description": "A `recurrence` block as documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:logicapps/IntegrationAccountBatchConfigurationReleaseCriteriaRecurrence:IntegrationAccountBatchConfigurationReleaseCriteriaRecurrence": {
      "properties": {
        "endTime": {
          "description": "The end time of the schedule, formatted as an RFC3339 string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "frequency": {
          "description": "The frequency of the schedule. Possible values are `Day`, `Hour`, `Minute`, `Month`, `Second`, `Week` and `Year`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "interval": {
          "description": "The number of `frequency`s between runs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "schedule": {
          "$ref": "#/types/azure:logicapps/IntegrationAccountBatchConfigurationReleaseCriteriaRecurrenceSchedule:IntegrationAccountBatchConfigurationReleaseCriteriaRecurrenceSchedule",
          "description": "A `schedule` block as documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "startTime": {
          "description": "The start time of the schedule, formatted as an RFC3339 string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "timeZone": {
          "description": "The timezone of the start/end time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "frequency",
        "interval"
      ],
      "type": "object"
    },
    "azure:logicapps/IntegrationAccountBatchConfigurationReleaseCriteriaRecurrenceSchedule:IntegrationAccountBatchConfigurationReleaseCriteriaRecurrenceSchedule": {
      "properties": {
        "hours": {
          "description": "A list containing a single item, which specifies the Hour interval at which this recurrence should be triggered.\n",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "minutes": {
          "description": "A list containing a single item which specifies the Minute interval at which this recurrence should be triggered.\n",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "monthDays": {
          "description": "A list of days of the month that the job should execute on.\n",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "monthlies": {
          "description": "A `monthly` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:logicapps/IntegrationAccountBatchConfigurationReleaseCriteriaRecurrenceScheduleMonthly:IntegrationAccountBatchConfigurationReleaseCriteriaRecurrenceScheduleMonthly"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "weekDays": {
          "description": "A list of days of the week that the job should execute on. Possible values are `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` and `Saturday`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:logicapps/IntegrationAccountBatchConfigurationReleaseCriteriaRecurrenceScheduleMonthly:IntegrationAccountBatchConfigurationReleaseCriteriaRecurrenceScheduleMonthly": {
      "properties": {
        "week": {
          "description": "The occurrence of the week within the month.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "weekday": {
          "description": "The day of the occurrence. Possible values are `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` and `Saturday`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "week",
        "weekday"
      ],
      "type": "object"
    },
    "azure:logicapps/IntegrationAccountCertificateKeyVaultKey:IntegrationAccountCertificateKeyVaultKey": {
      "properties": {
        "keyName": {
          "description": "The name of Key Vault Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultId": {
          "description": "The ID of the Key Vault.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVersion": {
          "description": "The version of Key Vault Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "keyName",
        "keyVaultId"
      ],
      "type": "object"
    },
    "azure:logicapps/IntegrationAccountPartnerBusinessIdentity:IntegrationAccountPartnerBusinessIdentity": {
      "properties": {
        "qualifier": {
          "description": "The authenticating body that provides unique business identities to organizations.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value that identifies the documents that your logic apps receive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "qualifier",
        "value"
      ],
      "type": "object"
    },
    "azure:logicapps/TriggerRecurrenceSchedule:TriggerRecurrenceSchedule": {
      "properties": {
        "atTheseHours": {
          "description": "Specifies a list of hours when the trigger should run. Valid values are between 0 and 23.\n",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "atTheseMinutes": {
          "description": "Specifies a list of minutes when the trigger should run. Valid values are between 0 and 59.\n",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "onTheseDays": {
          "description": "Specifies a list of days when the trigger should run. Valid values include `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, and `Sunday`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:machinelearning/ComputeClusterIdentity:ComputeClusterIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Identity which should be used for this Disk Encryption Set. At this time the only possible value is SystemAssigned. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:machinelearning/ComputeClusterScaleSettings:ComputeClusterScaleSettings": {
      "properties": {
        "maxNodeCount": {
          "description": "Maximum node count. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "minNodeCount": {
          "description": "Minimal node count. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "scaleDownNodesAfterIdleDuration": {
          "description": "Node Idle Time Before Scale Down: defines the time until the compute is shutdown when it has gone into Idle state. Is defined according to W3C XML schema standard for duration. Changing this forces a new Machine Learning Compute Cluster to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "maxNodeCount",
        "minNodeCount",
        "scaleDownNodesAfterIdleDuration"
      ],
      "type": "object"
    },
    "azure:machinelearning/ComputeInstanceAssignToUser:ComputeInstanceAssignToUser": {
      "properties": {
        "objectId": {
          "description": "User’s AAD Object Id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "User’s AAD Tenant Id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:machinelearning/ComputeInstanceIdentity:ComputeInstanceIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "A list of User Managed Identity ID's which should be assigned to the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this Machine Learning Compute Instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "User’s AAD Tenant Id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Identity which should be used for this Machine Learning Compute Instance. Possible values are `SystemAssigned`, `UserAssigned` and `SystemAssigned,UserAssigned`. Changing this forces a new Machine Learning Compute Instance to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:machinelearning/ComputeInstanceSsh:ComputeInstanceSsh": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "port",
            "publicKey",
            "username"
          ]
        }
      },
      "properties": {
        "port": {
          "description": "Describes the port for connecting through SSH.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "publicKey": {
          "description": "Specifies the SSH rsa public key file as a string. Use \"ssh-keygen -t rsa -b 2048\" to generate your SSH key pairs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The admin username of this Machine Learning Compute Instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "publicKey"
      ],
      "type": "object"
    },
    "azure:machinelearning/InferenceClusterSsl:InferenceClusterSsl": {
      "properties": {
        "cert": {
          "description": "The certificate for the ssl configuration.Conflicts with `ssl.0.leaf_domain_label`,`ssl.0.overwrite_existing_domain`. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "cname": {
          "description": "The cname of the ssl configuration.Conflicts with `ssl.0.leaf_domain_label`,`ssl.0.overwrite_existing_domain`. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "key": {
          "description": "The key content for the ssl configuration.Conflicts with `ssl.0.leaf_domain_label`,`ssl.0.overwrite_existing_domain`. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "leafDomainLabel": {
          "description": "The leaf domain label for the ssl configuration. Conflicts with `ssl.0.cert`,`ssl.0.key`,`ssl.0.cname`. Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "overwriteExistingDomain": {
          "description": "Whether or not to overwrite existing leaf domain. Conflicts with `ssl.0.cert`,`ssl.0.key`,`ssl.0.cname` Changing this forces a new Machine Learning Inference Cluster to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:machinelearning/SynapseSparkIdentity:SynapseSparkIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "A list of User Managed Identity ID's which should be assigned to the Machine Learning Synapse Spark. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this Machine Learning Synapse Spark.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Managed Service Identity of this Machine Learning Synapse Spark.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Identity which should be used for this Machine Learning Synapse Spark. Possible values are `SystemAssigned`, `UserAssigned` and `SystemAssigned,UserAssigned`. Changing this forces a new Machine Learning Synapse Spark to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:machinelearning/WorkspaceIdentity:WorkspaceIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The (Client) ID of the Service Principal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant the Service Principal is assigned in.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Identity which should be used for this Disk Encryption Set. At this time the only possible value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:machinelearning/getWorkspaceIdentity:getWorkspaceIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "principalId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:maintenance/ConfigurationWindow:ConfigurationWindow": {
      "properties": {
        "duration": {
          "description": "The duration of the maintenance window in HH:mm format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expirationDateTime": {
          "description": "Effective expiration date of the maintenance window in YYYY-MM-DD hh:mm format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "recurEvery": {
          "description": "The rate at which a maintenance window is expected to recur. The rate can be expressed as daily, weekly, or monthly schedules.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "startDateTime": {
          "description": "Effective start date of the maintenance window in YYYY-MM-DD hh:mm format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "timeZone": {
          "description": "The time zone for the maintenance window. A list of timezones can be obtained by executing [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "startDateTime",
        "timeZone"
      ],
      "type": "object"
    },
    "azure:maintenance/getConfigurationWindow:getConfigurationWindow": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "duration": {
          "description": "The duration of the maintenance window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expirationDateTime": {
          "description": "Effective expiration date of the maintenance window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "recurEvery": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "startDateTime": {
          "description": "Effective start date of the maintenance window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "timeZone": {
          "description": "The time zone for the maintenance window.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "duration",
        "expirationDateTime",
        "recurEvery",
        "startDateTime",
        "timeZone"
      ],
      "type": "object"
    },
    "azure:managedapplication/ApplicationPlan:ApplicationPlan": {
      "properties": {
        "name": {
          "description": "Specifies the name of the plan from the marketplace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "product": {
          "description": "Specifies the product of the plan from the marketplace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "promotionCode": {
          "description": "Specifies the promotion code to use with the plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "Specifies the publisher of the plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "Specifies the version of the plan from the marketplace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "product",
        "publisher",
        "version"
      ],
      "type": "object"
    },
    "azure:managedapplication/DefinitionAuthorization:DefinitionAuthorization": {
      "properties": {
        "roleDefinitionId": {
          "description": "Specifies a role definition identifier for the provider. This role will define all the permissions that the provider must have on the managed application's container resource group. This role definition cannot have permission to delete the resource group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "servicePrincipalId": {
          "description": "Specifies a service principal identifier for the provider. This is the identity that the provider will use to call ARM to manage the managed application resources.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "roleDefinitionId",
        "servicePrincipalId"
      ],
      "type": "object"
    },
    "azure:management/GroupPolicyAssignmentIdentity:GroupPolicyAssignmentIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID of the Policy Assignment for this Management Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID of the Policy Assignment for this Management Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Managed Identity which should be added to this Policy Definition. The only possible value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:mariadb/ServerStorageProfile:ServerStorageProfile": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "autoGrow",
            "backupRetentionDays",
            "geoRedundantBackup"
          ]
        }
      },
      "properties": {
        "autoGrow": {
          "deprecationMessage": "this has been moved to the top level boolean attribute `auto_grow_enabled` and will be removed in version 3.0 of the provider.",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "backupRetentionDays": {
          "deprecationMessage": "this has been moved to the top level and will be removed in version 3.0 of the provider.",
          "description": "Backup retention days for the server, supported values are between `7` and `35` days.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "geoRedundantBackup": {
          "deprecationMessage": "this has been moved to the top level boolean attribute `geo_redundant_backup_enabled` and will be removed in version 3.0 of the provider.",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageMb": {
          "deprecationMessage": "this has been moved to the top level and will be removed in version 3.0 of the provider.",
          "description": "Max storage allowed for a server. Possible values are between `5120` MB (5GB) and `1024000`MB (1TB) for the Basic SKU and between `5120` MB (5GB) and `4096000` MB (4TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/mariadb/servers/create#storageprofile).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:mariadb/getMariaDbServerStorageProfile:getMariaDbServerStorageProfile": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "autoGrow": {
          "description": "Whether autogrow is enabled or disabled for the storage.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "backupRetentionDays": {
          "description": "Backup retention days for the server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "geoRedundantBackup": {
          "description": "Whether Geo-redundant is enabled or not for server backup.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageMb": {
          "description": "The max storage allowed for a server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "autoGrow",
        "backupRetentionDays",
        "geoRedundantBackup",
        "storageMb"
      ],
      "type": "object"
    },
    "azure:media/AssetFilterPresentationTimeRange:AssetFilterPresentationTimeRange": {
      "properties": {
        "endInUnits": {
          "description": "The absolute end time boundary. Applies to Video on Demand (VoD).\nFor the Live Streaming presentation, it is silently ignored and applied when the presentation ends and the stream becomes VoD. This is a long value that represents an absolute end point of the presentation, rounded to the closest next GOP start. The unit is defined by `unit_timescale_in_miliseconds`, so an `end_in_units` of 180 would be for 3 minutes. Use `start_in_units` and `end_in_units` to trim the fragments that will be in the playlist (manifest). For example, `start_in_units` set to 20 and `end_in_units` set to 60 using `unit_timescale_in_miliseconds` in 1000 will generate a playlist that contains fragments from between 20 seconds and 60 seconds of the VoD presentation. If a fragment straddles the boundary, the entire fragment will be included in the manifest.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "forceEnd": {
          "description": "Indicates whether the `end_in_units` property must be present. If true, `end_in_units` must be specified or a bad request code is returned. Applies to Live Streaming only. Allowed values: false, true.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "liveBackoffInUnits": {
          "description": "The relative to end right edge. Applies to Live Streaming only.\nThis value defines the latest live position that a client can seek to. Using this property, you can delay live playback position and create a server-side buffer for players. The unit is defined by `unit_timescale_in_miliseconds`. The maximum live back off duration is 300 seconds. For example, a value of 20 means that the latest available content is 20 seconds delayed from the real live edge.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "presentationWindowInUnits": {
          "description": "The relative to end sliding window. Applies to Live Streaming only. Use `presentation_window_in_units` to apply a sliding window of fragments to include in a playlist. The unit is defined by `unit_timescale_in_miliseconds`. For example, set  `presentation_window_in_units` to 120 to apply a two-minute sliding window. Media within 2 minutes of the live edge will be included in the playlist. If a fragment straddles the boundary, the entire fragment will be included in the playlist. The minimum presentation window duration is 60 seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "startInUnits": {
          "description": "The absolute start time boundary. Applies to Video on Demand (VoD) or Live Streaming. This is a long value that represents an absolute start point of the stream. The value gets rounded to the closest next GOP start. The unit is defined by `unit_timescale_in_miliseconds`, so a `start_in_units` of 15 would be for 15 seconds. Use `start_in_units` and `end_in_units` to trim the fragments that will be in the playlist (manifest). For example, `start_in_units` set to 20 and `end_in_units` set to 60 using `unit_timescale_in_miliseconds` in 1000 will generate a playlist that contains fragments from between 20 seconds and 60 seconds of the VoD presentation. If a fragment straddles the boundary, the entire fragment will be included in the manifest.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "unitTimescaleInMiliseconds": {
          "description": "Specified as the number of miliseconds in one unit timescale. For example, if you want to set a `start_in_units` at 30 seconds, you would use a value of 30 when using the `unit_timescale_in_miliseconds` in 1000. Or if you want to set `start_in_units` in 30 miliseconds, you would use a value of 30 when using the `unit_timescale_in_miliseconds` in 1.  Applies timescale to `start_in_units`, `start_timescale` and `presentation_window_in_timescale` and `live_backoff_in_timescale`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:media/AssetFilterTrackSelection:AssetFilterTrackSelection": {
      "properties": {
        "conditions": {
          "description": "One or more `condition` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:media/AssetFilterTrackSelectionCondition:AssetFilterTrackSelectionCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "conditions"
      ],
      "type": "object"
    },
    "azure:media/AssetFilterTrackSelectionCondition:AssetFilterTrackSelectionCondition": {
      "properties": {
        "operation": {
          "description": "The condition operation to test a track property against. Supported values are `Equal` and `NotEqual`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "property": {
          "description": "The track property to compare. Supported values are `Bitrate`, `FourCC`, `Language`, `Name` and `Type`. Check [documentation](https://docs.microsoft.com/en-us/azure/media-services/latest/filters-concept) for more details.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The track property value to match or not match.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/ContentKeyPolicyPolicyOption:ContentKeyPolicyPolicyOption": {
      "properties": {
        "clearKeyConfigurationEnabled": {
          "description": "Enable a configuration for non-DRM keys.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "fairplayConfiguration": {
          "$ref": "#/types/azure:media/ContentKeyPolicyPolicyOptionFairplayConfiguration:ContentKeyPolicyPolicyOptionFairplayConfiguration",
          "description": "A `fairplay_configuration` block as defined above. Check license requirements here https://docs.microsoft.com/en-us/azure/media-services/latest/fairplay-license-overview.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "description": "The name which should be used for this Policy Option.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "openRestrictionEnabled": {
          "description": "Enable an open restriction. License or key will be delivered on every request.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "playreadyConfigurationLicenses": {
          "description": "One or more `playready_configuration_license` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:media/ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicense:ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicense"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "tokenRestriction": {
          "$ref": "#/types/azure:media/ContentKeyPolicyPolicyOptionTokenRestriction:ContentKeyPolicyPolicyOptionTokenRestriction",
          "description": "A `token_restriction` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "widevineConfigurationTemplate": {
          "description": "The Widevine template.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:media/ContentKeyPolicyPolicyOptionFairplayConfiguration:ContentKeyPolicyPolicyOptionFairplayConfiguration": {
      "properties": {
        "ask": {
          "description": "The key that must be used as FairPlay Application Secret key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "offlineRentalConfiguration": {
          "$ref": "#/types/azure:media/ContentKeyPolicyPolicyOptionFairplayConfigurationOfflineRentalConfiguration:ContentKeyPolicyPolicyOptionFairplayConfigurationOfflineRentalConfiguration",
          "description": "A `offline_rental_configuration` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "pfx": {
          "description": "The Base64 representation of FairPlay certificate in PKCS 12 (pfx) format (including private key).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pfxPassword": {
          "description": "The password encrypting FairPlay certificate in PKCS 12 (pfx) format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rentalAndLeaseKeyType": {
          "description": "The rental and lease key type. Supported values are `DualExpiry`, `PersistentLimited`, `PersistentUnlimited` or `Undefined`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rentalDurationSeconds": {
          "description": "The rental duration. Must be greater than 0.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:media/ContentKeyPolicyPolicyOptionFairplayConfigurationOfflineRentalConfiguration:ContentKeyPolicyPolicyOptionFairplayConfigurationOfflineRentalConfiguration": {
      "properties": {
        "playbackDurationSeconds": {
          "description": "Playback duration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageDurationSeconds": {
          "description": "Storage duration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:media/ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicense:ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicense": {
      "properties": {
        "allowTestDevices": {
          "description": "A flag indicating whether test devices can use the license.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "beginDate": {
          "description": "The begin date of license.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "contentKeyLocationFromHeaderEnabled": {
          "description": "Specifies that the content key ID is in the PlayReady header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "contentKeyLocationFromKeyId": {
          "description": "The content key ID. Specifies that the content key ID is specified in the PlayReady configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "contentType": {
          "description": "The PlayReady content type. Supported values are `UltraVioletDownload`, `UltraVioletStreaming` or `Unspecified`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expirationDate": {
          "description": "The expiration date of license.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "gracePeriod": {
          "description": "The grace period of license.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "licenseType": {
          "description": "The license type. Supported values are `NonPersistent` or `Persistent`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "playRight": {
          "$ref": "#/types/azure:media/ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicensePlayRight:ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicensePlayRight",
          "description": "A `play_right` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "relativeBeginDate": {
          "description": "The relative begin date of license.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "relativeExpirationDate": {
          "description": "The relative expiration date of license.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicensePlayRight:ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicensePlayRight": {
      "properties": {
        "agcAndColorStripeRestriction": {
          "description": "Configures Automatic Gain Control (AGC) and Color Stripe in the license. Must be between 0 and 3 inclusive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "allowPassingVideoContentToUnknownOutput": {
          "description": "Configures Unknown output handling settings of the license. Supported values are `Allowed`, `AllowedWithVideoConstriction` or `NotAllowed`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "analogVideoOpl": {
          "description": "Specifies the output protection level for compressed digital audio. Supported values are 100, 150 or 200.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "compressedDigitalAudioOpl": {
          "description": "Specifies the output protection level for compressed digital audio.Supported values are 100, 150 or 200.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "digitalVideoOnlyContentRestriction": {
          "description": "Enables the Image Constraint For Analog Component Video Restriction in the license.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "firstPlayExpiration": {
          "description": "The amount of time that the license is valid after the license is first used to play content.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "imageConstraintForAnalogComponentVideoRestriction": {
          "description": "Enables the Image Constraint For Analog Component Video Restriction in the license.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "imageConstraintForAnalogComputerMonitorRestriction": {
          "description": "Enables the Image Constraint For Analog Component Video Restriction in the license.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "scmsRestriction": {
          "description": "Configures the Serial Copy Management System (SCMS) in the license. Must be between 0 and 3 inclusive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "uncompressedDigitalAudioOpl": {
          "description": "Specifies the output protection level for uncompressed digital audio. Supported values are 100, 150, 250 or 300.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "uncompressedDigitalVideoOpl": {
          "description": "Specifies the output protection level for uncompressed digital video. Supported values are 100, 150, 250 or 300.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:media/ContentKeyPolicyPolicyOptionTokenRestriction:ContentKeyPolicyPolicyOptionTokenRestriction": {
      "properties": {
        "audience": {
          "description": "The audience for the token.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "issuer": {
          "description": "The token issuer.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "openIdConnectDiscoveryDocument": {
          "description": "The OpenID connect discovery document.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primaryRsaTokenKeyExponent": {
          "description": "The RSA Parameter exponent.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primaryRsaTokenKeyModulus": {
          "description": "The RSA Parameter modulus.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primarySymmetricTokenKey": {
          "description": "The key value of the key. Specifies a symmetric key for token validation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primaryX509TokenKeyRaw": {
          "description": "The raw data field of a certificate in PKCS 12 format (X509Certificate2 in .NET). Specifies a certificate for token validation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "requiredClaims": {
          "description": "One or more `required_claim` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:media/ContentKeyPolicyPolicyOptionTokenRestrictionRequiredClaim:ContentKeyPolicyPolicyOptionTokenRestrictionRequiredClaim"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "tokenType": {
          "description": "The type of token. Supported values are `Jwt` or `Swt`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/ContentKeyPolicyPolicyOptionTokenRestrictionRequiredClaim:ContentKeyPolicyPolicyOptionTokenRestrictionRequiredClaim": {
      "properties": {
        "type": {
          "description": "Token claim type.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Token claim value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/JobInputAsset:JobInputAsset": {
      "properties": {
        "label": {
          "description": "A label that is assigned to a JobInputClip, that is used to satisfy a reference used in the Transform. For example, a Transform can be authored so as to take an image file with the label 'xyz' and apply it as an overlay onto the input video before it is encoded. When submitting a Job, exactly one of the JobInputs should be the image file, and it should have the label 'xyz'.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the input Asset. Changing this forces a new Media Job to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:media/JobOutputAsset:JobOutputAsset": {
      "properties": {
        "label": {
          "description": "A label that is assigned to a JobOutput in order to help uniquely identify it. This is useful when your Transform has more than one TransformOutput, whereby your Job has more than one JobOutput. In such cases, when you submit the Job, you will add two or more JobOutputs, in the same order as TransformOutputs in the Transform. Subsequently, when you retrieve the Job, either through events or on a GET request, you can use the label to easily identify the JobOutput. If a label is not provided, a default value of '{presetName}_{outputIndex}' will be used, where the preset name is the name of the preset in the corresponding TransformOutput and the output index is the relative index of the this JobOutput within the Job. Note that this index is the same as the relative index of the corresponding TransformOutput within its Transform.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the output Asset. Changing this forces a new Media Job to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:media/LiveEventCrossSiteAccessPolicy:LiveEventCrossSiteAccessPolicy": {
      "properties": {
        "clientAccessPolicy": {
          "description": "The content of clientaccesspolicy.xml used by Silverlight.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "crossDomainPolicy": {
          "description": "The content of the Cross Domain Policy (`crossdomain.xml`).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/LiveEventEncoding:LiveEventEncoding": {
      "properties": {
        "keyFrameInterval": {
          "description": "Use an `ISO 8601` time value between 0.5 to 20 seconds to specify the output fragment length for the video and audio tracks of an encoding live event. For example, use `PT2S` to indicate 2 seconds. For the video track it also defines the key frame interval, or the length of a GoP (group of pictures). If this value is not set for an encoding live event, the fragment duration defaults to 2 seconds. The value cannot be set for pass-through live events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "presetName": {
          "description": "The optional encoding preset name, used when `type` is not `None`. If the `type` is set to `Standard`, then the default preset name is `Default720p`. Else if the `type` is set to `Premium1080p`, the default preset is `Default1080p`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "stretchMode": {
          "description": "Specifies how the input video will be resized to fit the desired output resolution(s). Allowed values are `None`, `AutoFit` or `AutoSize`. Default is `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Live event type. Allowed values are `None`, `Premium1080p` or `Standard`. When set to `None`, the service simply passes through the incoming video and audio layer(s) to the output. When `type` is set to `Standard` or `Premium1080p`, a live encoder transcodes the incoming stream into multiple bitrates or layers. Defaults to `None`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/LiveEventInput:LiveEventInput": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "accessToken",
            "endpoints"
          ]
        }
      },
      "properties": {
        "accessToken": {
          "description": "A UUID in string form to uniquely identify the stream. If omitted, the service will generate a unique value. Changing this forces a new value to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "endpoints": {
          "items": {
            "$ref": "#/types/azure:media/LiveEventInputEndpoint:LiveEventInputEndpoint"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ipAccessControlAllows": {
          "description": "One or more `ip_access_control_allow` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:media/LiveEventInputIpAccessControlAllow:LiveEventInputIpAccessControlAllow"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "keyFrameIntervalDuration": {
          "description": "ISO 8601 time duration of the key frame interval duration of the input. This value sets the `EXT-X-TARGETDURATION` property in the HLS output. For example, use PT2S to indicate 2 seconds. This field cannot be set when `type` is set to `Encoding`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "streamingProtocol": {
          "description": "The input protocol for the live event. Allowed values are `FragmentedMP4` and `RTMP`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/LiveEventInputEndpoint:LiveEventInputEndpoint": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "protocol",
            "url"
          ]
        }
      },
      "properties": {
        "protocol": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "url": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/LiveEventInputIpAccessControlAllow:LiveEventInputIpAccessControlAllow": {
      "properties": {
        "address": {
          "description": "The IP address or CIDR range.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The friendly name for the IP address range.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetPrefixLength": {
          "description": "The subnet mask prefix length (see CIDR notation).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:media/LiveEventPreview:LiveEventPreview": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "endpoints",
            "previewLocator",
            "streamingPolicyName"
          ]
        }
      },
      "properties": {
        "alternativeMediaId": {
          "description": "An alternative media identifier associated with the streaming locator created for the preview. The identifier can be used in the `CustomLicenseAcquisitionUrlTemplate` or the `CustomKeyAcquisitionUrlTemplate` of the Streaming Policy specified in the `streaming_policy_name` field. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "endpoints": {
          "items": {
            "$ref": "#/types/azure:media/LiveEventPreviewEndpoint:LiveEventPreviewEndpoint"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ipAccessControlAllows": {
          "description": "One or more `ip_access_control_allow` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:media/LiveEventPreviewIpAccessControlAllow:LiveEventPreviewIpAccessControlAllow"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "previewLocator": {
          "description": "The identifier of the preview locator in Guid format. Specifying this at creation time allows the caller to know the preview locator url before the event is created. If omitted, the service will generate a random identifier. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "streamingPolicyName": {
          "description": "The name of streaming policy used for the live event preview. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/LiveEventPreviewEndpoint:LiveEventPreviewEndpoint": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "protocol",
            "url"
          ]
        }
      },
      "properties": {
        "protocol": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "url": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/LiveEventPreviewIpAccessControlAllow:LiveEventPreviewIpAccessControlAllow": {
      "properties": {
        "address": {
          "description": "The IP address or CIDR range.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The friendly name for the IP address range.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetPrefixLength": {
          "description": "The subnet mask prefix length (see CIDR notation).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:media/ServiceAccountIdentity:ServiceAccountIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID associated with this Managed Service Identity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID associated with this Managed Service Identity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the type of Managed Service Identity that should be configured on this Media Services Account. Possible value is  `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/ServiceAccountKeyDeliveryAccessControl:ServiceAccountKeyDeliveryAccessControl": {
      "properties": {
        "defaultAction": {
          "description": "The Default Action to use when no rules match from `ip_allow_list`. Possible values are `Allow` and `Deny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipAllowLists": {
          "description": "One or more IP Addresses, or CIDR Blocks which should be able to access the Key Delivery.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:media/ServiceAccountStorageAccount:ServiceAccountStorageAccount": {
      "properties": {
        "id": {
          "description": "Specifies the ID of the Storage Account that will be associated with the Media Services instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "isPrimary": {
          "description": "Specifies whether the storage account should be the primary account or not. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "azure:media/StreamingEndpointAccessControl:StreamingEndpointAccessControl": {
      "properties": {
        "akamaiSignatureHeaderAuthenticationKeys": {
          "description": "One or more `akamai_signature_header_authentication_key` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:media/StreamingEndpointAccessControlAkamaiSignatureHeaderAuthenticationKey:StreamingEndpointAccessControlAkamaiSignatureHeaderAuthenticationKey"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ipAllows": {
          "description": "A `ip` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:media/StreamingEndpointAccessControlIpAllow:StreamingEndpointAccessControlIpAllow"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:media/StreamingEndpointAccessControlAkamaiSignatureHeaderAuthenticationKey:StreamingEndpointAccessControlAkamaiSignatureHeaderAuthenticationKey": {
      "properties": {
        "base64Key": {
          "description": "Authentication key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expiration": {
          "description": "The expiration time of the authentication key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "identifier": {
          "description": "Identifier of the key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/StreamingEndpointAccessControlIpAllow:StreamingEndpointAccessControlIpAllow": {
      "properties": {
        "address": {
          "description": "The IP address to allow.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The friendly name for the IP address range.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetPrefixLength": {
          "description": "The subnet mask prefix length (see CIDR notation).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:media/StreamingEndpointCrossSiteAccessPolicy:StreamingEndpointCrossSiteAccessPolicy": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "clientAccessPolicy",
            "crossDomainPolicy"
          ]
        }
      },
      "properties": {
        "clientAccessPolicy": {
          "description": "The content of clientaccesspolicy.xml used by Silverlight.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "crossDomainPolicy": {
          "description": "The content of crossdomain.xml used by Silverlight.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/StreamingLocatorContentKey:StreamingLocatorContentKey": {
      "properties": {
        "contentKeyId": {
          "description": "ID of Content Key. Changing this forces a new Streaming Locator to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "labelReferenceInStreamingPolicy": {
          "description": "Label of Content Key as specified in the Streaming Policy. Changing this forces a new Streaming Locator to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "policyName": {
          "description": "Content Key Policy used by Content Key. Changing this forces a new Streaming Locator to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Encryption type of Content Key. Supported values are `CommonEncryptionCbcs`, `CommonEncryptionCenc` or `EnvelopeEncryption`. Changing this forces a new Streaming Locator to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "Value of Content Key. Changing this forces a new Streaming Locator to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/StreamingPolicyCommonEncryptionCbcs:StreamingPolicyCommonEncryptionCbcs": {
      "properties": {
        "defaultContentKey": {
          "$ref": "#/types/azure:media/StreamingPolicyCommonEncryptionCbcsDefaultContentKey:StreamingPolicyCommonEncryptionCbcsDefaultContentKey",
          "description": "A `default_content_key` block as defined below. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "drmFairplay": {
          "$ref": "#/types/azure:media/StreamingPolicyCommonEncryptionCbcsDrmFairplay:StreamingPolicyCommonEncryptionCbcsDrmFairplay",
          "description": "A `drm_fairplay` block as defined below. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enabledProtocols": {
          "$ref": "#/types/azure:media/StreamingPolicyCommonEncryptionCbcsEnabledProtocols:StreamingPolicyCommonEncryptionCbcsEnabledProtocols",
          "description": "A `enabled_protocols` block as defined below. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:media/StreamingPolicyCommonEncryptionCbcsDefaultContentKey:StreamingPolicyCommonEncryptionCbcsDefaultContentKey": {
      "properties": {
        "label": {
          "description": "Label can be used to specify Content Key when creating a Streaming Locator. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "policyName": {
          "description": "Policy used by Default Key. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/StreamingPolicyCommonEncryptionCbcsDrmFairplay:StreamingPolicyCommonEncryptionCbcsDrmFairplay": {
      "properties": {
        "allowPersistentLicense": {
          "description": "All license to be persistent or not. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "customLicenseAcquisitionUrlTemplate": {
          "description": "Template for the URL of the custom service delivering licenses to end user players. Not required when using Azure Media Services for issuing licenses. The template supports replaceable tokens that the service will update at runtime with the value specific to the request. The currently supported token values are `{AlternativeMediaId}`, which is replaced with the value of `StreamingLocatorId.AlternativeMediaId`, and `{ContentKeyId}`, which is replaced with the value of identifier of the key being requested. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/StreamingPolicyCommonEncryptionCbcsEnabledProtocols:StreamingPolicyCommonEncryptionCbcsEnabledProtocols": {
      "properties": {
        "dash": {
          "description": "Enable DASH protocol or not. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "download": {
          "description": "Enable Download protocol or not. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "hls": {
          "description": "Enable HLS protocol or not. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "smoothStreaming": {
          "description": "Enable SmoothStreaming protocol or not. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:media/StreamingPolicyCommonEncryptionCenc:StreamingPolicyCommonEncryptionCenc": {
      "properties": {
        "defaultContentKey": {
          "$ref": "#/types/azure:media/StreamingPolicyCommonEncryptionCencDefaultContentKey:StreamingPolicyCommonEncryptionCencDefaultContentKey",
          "description": "A `default_content_key` block as defined below. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "drmPlayready": {
          "$ref": "#/types/azure:media/StreamingPolicyCommonEncryptionCencDrmPlayready:StreamingPolicyCommonEncryptionCencDrmPlayready",
          "description": "A `drm_playready` block as defined below. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "drmWidevineCustomLicenseAcquisitionUrlTemplate": {
          "description": "Template for the URL of the custom service delivering licenses to end user players. Not required when using Azure Media Services for issuing licenses. The template supports replaceable tokens that the service will update at runtime with the value specific to the request. The currently supported token values are `{AlternativeMediaId}`, which is replaced with the value of `StreamingLocatorId.AlternativeMediaId`, and `{ContentKeyId}`, which is replaced with the value of identifier of the key being requested. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabledProtocols": {
          "$ref": "#/types/azure:media/StreamingPolicyCommonEncryptionCencEnabledProtocols:StreamingPolicyCommonEncryptionCencEnabledProtocols",
          "description": "A `enabled_protocols` block as defined below. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:media/StreamingPolicyCommonEncryptionCencDefaultContentKey:StreamingPolicyCommonEncryptionCencDefaultContentKey": {
      "properties": {
        "label": {
          "description": "Label can be used to specify Content Key when creating a Streaming Locator. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "policyName": {
          "description": "Policy used by Default Key. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/StreamingPolicyCommonEncryptionCencDrmPlayready:StreamingPolicyCommonEncryptionCencDrmPlayready": {
      "properties": {
        "customAttributes": {
          "description": "Custom attributes for PlayReady. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "customLicenseAcquisitionUrlTemplate": {
          "description": "Template for the URL of the custom service delivering licenses to end user players. Not required when using Azure Media Services for issuing licenses. The template supports replaceable tokens that the service will update at runtime with the value specific to the request. The currently supported token values are `{AlternativeMediaId}`, which is replaced with the value of `StreamingLocatorId.AlternativeMediaId`, and `{ContentKeyId}`, which is replaced with the value of identifier of the key being requested. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/StreamingPolicyCommonEncryptionCencEnabledProtocols:StreamingPolicyCommonEncryptionCencEnabledProtocols": {
      "properties": {
        "dash": {
          "description": "Enable DASH protocol or not. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "download": {
          "description": "Enable Download protocol or not. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "hls": {
          "description": "Enable HLS protocol or not. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "smoothStreaming": {
          "description": "Enable SmoothStreaming protocol or not. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:media/StreamingPolicyNoEncryptionEnabledProtocols:StreamingPolicyNoEncryptionEnabledProtocols": {
      "properties": {
        "dash": {
          "description": "Enable DASH protocol or not. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "download": {
          "description": "Enable Download protocol or not. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "hls": {
          "description": "Enable HLS protocol or not. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "smoothStreaming": {
          "description": "Enable SmoothStreaming protocol or not. Changing this forces a new Streaming Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:media/TransformOutput:TransformOutput": {
      "properties": {
        "audioAnalyzerPreset": {
          "$ref": "#/types/azure:media/TransformOutputAudioAnalyzerPreset:TransformOutputAudioAnalyzerPreset",
          "description": "A `audio_analyzer_preset` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "builtinPreset": {
          "$ref": "#/types/azure:media/TransformOutputBuiltinPreset:TransformOutputBuiltinPreset",
          "description": "A `builtin_preset` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "faceDetectorPreset": {
          "$ref": "#/types/azure:media/TransformOutputFaceDetectorPreset:TransformOutputFaceDetectorPreset",
          "description": "A `face_detector_preset` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "onErrorAction": {
          "description": "A Transform can define more than one outputs. This property defines what the service should do when one output fails - either continue to produce other outputs, or, stop the other outputs. The overall Job state will not reflect failures of outputs that are specified with `ContinueJob`. Possibles value are `StopProcessingJob` or `ContinueJob`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "relativePriority": {
          "description": "Sets the relative priority of the TransformOutputs within a Transform. This sets the priority that the service uses for processing Transform Outputs. Possibles value are `High`, `Normal` or `Low`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "videoAnalyzerPreset": {
          "$ref": "#/types/azure:media/TransformOutputVideoAnalyzerPreset:TransformOutputVideoAnalyzerPreset",
          "description": "A `video_analyzer_preset` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:media/TransformOutputAudioAnalyzerPreset:TransformOutputAudioAnalyzerPreset": {
      "properties": {
        "audioAnalysisMode": {
          "description": "Possibles value are `Basic` or `Standard`. Determines the set of audio analysis operations to be performed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "audioLanguage": {
          "description": "The language for the audio payload in the input using the BCP-47 format of 'language tag-region' (e.g: 'en-US'). If you know the language of your content, it is recommended that you specify it. The language must be specified explicitly for AudioAnalysisMode:Basic, since automatic language detection is not included in basic mode. If the language isn't specified, automatic language detection will choose the first language detected and process with the selected language for the duration of the file. It does not currently support dynamically switching between languages after the first language is detected. The automatic detection works best with audio recordings with clearly discernable speech. If automatic detection fails to find the language, transcription would fallback to 'en-US'.\" The list of supported languages is available here: https://go.microsoft.com/fwlink/?linkid=2109463.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/TransformOutputBuiltinPreset:TransformOutputBuiltinPreset": {
      "properties": {
        "presetName": {
          "description": "The built-in preset to be used for encoding videos. The allowed values are `AACGoodQualityAudio`, `AdaptiveStreaming`,`ContentAwareEncoding`, `ContentAwareEncodingExperimental`,`CopyAllBitrateNonInterleaved`, `H264MultipleBitrate1080p`,`H264MultipleBitrate720p`, `H264MultipleBitrateSD`,`H264SingleBitrate1080p`, `H264SingleBitrate720p` and `H264SingleBitrateSD`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/TransformOutputFaceDetectorPreset:TransformOutputFaceDetectorPreset": {
      "properties": {
        "analysisResolution": {
          "description": "Possibles value are `SourceResolution` or `StandardDefinition`. Specifies the maximum resolution at which your video is analyzed. The default behavior is `SourceResolution` which will keep the input video at its original resolution when analyzed. Using `StandardDefinition` will resize input videos to standard definition while preserving the appropriate aspect ratio. It will only resize if the video is of higher resolution. For example, a 1920x1080 input would be scaled to 640x360 before processing. Switching to `StandardDefinition` will reduce the time it takes to process high resolution video. It may also reduce the cost of using this component (see https://azure.microsoft.com/en-us/pricing/details/media-services/#analytics for details). However, faces that end up being too small in the resized video may not be detected.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:media/TransformOutputVideoAnalyzerPreset:TransformOutputVideoAnalyzerPreset": {
      "properties": {
        "audioAnalysisMode": {
          "description": "Possibles value are `Basic` or `Standard`. Determines the set of audio analysis operations to be performed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "audioLanguage": {
          "description": "The language for the audio payload in the input using the BCP-47 format of 'language tag-region' (e.g: 'en-US'). If you know the language of your content, it is recommended that you specify it. The language must be specified explicitly for AudioAnalysisMode:Basic, since automatic language detection is not included in basic mode. If the language isn't specified, automatic language detection will choose the first language detected and process with the selected language for the duration of the file. It does not currently support dynamically switching between languages after the first language is detected. The automatic detection works best with audio recordings with clearly discernable speech. If automatic detection fails to find the language, transcription would fallback to 'en-US'.\" The list of supported languages is available here: https://go.microsoft.com/fwlink/?linkid=2109463.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "insightsType": {
          "description": "Defines the type of insights that you want the service to generate. The allowed values are `AudioInsightsOnly`, `VideoInsightsOnly`, and `AllInsights`. If you set this to `AllInsights` and the input is audio only, then only audio insights are generated. Similarly if the input is video only, then only video insights are generated. It is recommended that you not use `AudioInsightsOnly` if you expect some of your inputs to be video only; or use `VideoInsightsOnly` if you expect some of your inputs to be audio only. Your Jobs in such conditions would error out.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:mediaservices/AccountIdentity:AccountIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID associated with this Managed Service Identity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID associated with this Managed Service Identity.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the type of Managed Service Identity that should be configured on this Media Services Account. Possible value is  `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:mediaservices/AccountKeyDeliveryAccessControl:AccountKeyDeliveryAccessControl": {
      "properties": {
        "defaultAction": {
          "description": "The Default Action to use when no rules match from `ip_allow_list`. Possible values are `Allow` and `Deny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipAllowLists": {
          "description": "One or more IP Addresses, or CIDR Blocks which should be able to access the Key Delivery.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:mediaservices/AccountStorageAccount:AccountStorageAccount": {
      "properties": {
        "id": {
          "description": "Specifies the ID of the Storage Account that will be associated with the Media Services instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "isPrimary": {
          "description": "Specifies whether the storage account should be the primary account or not. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "azure:monitoring/AadDiagnosticSettingLog:AadDiagnosticSettingLog": {
      "properties": {
        "category": {
          "description": "The log category for the Azure Active Directory Diagnostic. Possible values are `AuditLogs`, `SignInLogs`, `ADFSSignInLogs`, `ManagedIdentitySignInLogs`, `NonInteractiveUserSignInLogs`, `ProvisioningLogs`, `RiskyUsers`, `ServicePrincipalSignInLogs`, `UserRiskEvents`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Is this Diagnostic Log enabled? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "retentionPolicy": {
          "$ref": "#/types/azure:monitoring/AadDiagnosticSettingLogRetentionPolicy:AadDiagnosticSettingLogRetentionPolicy",
          "description": "A `retention_policy` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "category",
        "retentionPolicy"
      ],
      "type": "object"
    },
    "azure:monitoring/AadDiagnosticSettingLogRetentionPolicy:AadDiagnosticSettingLogRetentionPolicy": {
      "properties": {
        "days": {
          "description": "The number of days for which this Retention Policy should apply. Defaults to `0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "enabled": {
          "description": "Is this Retention Policy enabled? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:monitoring/ActionGroupArmRoleReceiver:ActionGroupArmRoleReceiver": {
      "properties": {
        "name": {
          "description": "The name of the ARM role receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "roleId": {
          "description": "The arm role id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useCommonAlertSchema": {
          "description": "Enables or disables the common alert schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "roleId"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionGroupAutomationRunbookReceiver:ActionGroupAutomationRunbookReceiver": {
      "properties": {
        "automationAccountId": {
          "description": "The automation account ID which holds this runbook and authenticates to Azure resources.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "isGlobalRunbook": {
          "description": "Indicates whether this instance is global runbook.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "name": {
          "description": "The name of the automation runbook receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "runbookName": {
          "description": "The name for this runbook.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serviceUri": {
          "description": "The URI where webhooks should be sent.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useCommonAlertSchema": {
          "description": "Enables or disables the common alert schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "webhookResourceId": {
          "description": "The resource id for webhook linked to this runbook.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "automationAccountId",
        "isGlobalRunbook",
        "name",
        "runbookName",
        "serviceUri",
        "webhookResourceId"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionGroupAzureAppPushReceiver:ActionGroupAzureAppPushReceiver": {
      "properties": {
        "emailAddress": {
          "description": "The email address of the user signed into the mobile app who will receive push notifications from this receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Azure app push receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "emailAddress",
        "name"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionGroupAzureFunctionReceiver:ActionGroupAzureFunctionReceiver": {
      "properties": {
        "functionAppResourceId": {
          "description": "The Azure resource ID of the function app.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "functionName": {
          "description": "The function name in the function app.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "httpTriggerUrl": {
          "description": "The http trigger url where http request sent to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Azure Function receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useCommonAlertSchema": {
          "description": "Enables or disables the common alert schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "functionAppResourceId",
        "functionName",
        "httpTriggerUrl",
        "name"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionGroupEmailReceiver:ActionGroupEmailReceiver": {
      "properties": {
        "emailAddress": {
          "description": "The email address of this receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the email receiver. Names must be unique (case-insensitive) across all receivers within an action group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useCommonAlertSchema": {
          "description": "Enables or disables the common alert schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "emailAddress",
        "name"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionGroupItsmReceiver:ActionGroupItsmReceiver": {
      "properties": {
        "connectionId": {
          "description": "The unique connection identifier of the ITSM connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the ITSM receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "region": {
          "description": "The region of the workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ticketConfiguration": {
          "description": "A JSON blob for the configurations of the ITSM action. CreateMultipleWorkItems option will be part of this blob as well.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "workspaceId": {
          "description": "The Azure Log Analytics workspace ID where this connection is defined.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "connectionId",
        "name",
        "region",
        "ticketConfiguration",
        "workspaceId"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionGroupLogicAppReceiver:ActionGroupLogicAppReceiver": {
      "properties": {
        "callbackUrl": {
          "description": "The callback url where http request sent to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the logic app receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resourceId": {
          "description": "The Azure resource ID of the logic app.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useCommonAlertSchema": {
          "description": "Enables or disables the common alert schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "callbackUrl",
        "name",
        "resourceId"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionGroupSmsReceiver:ActionGroupSmsReceiver": {
      "properties": {
        "countryCode": {
          "description": "The country code of the SMS receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the SMS receiver. Names must be unique (case-insensitive) across all receivers within an action group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "phoneNumber": {
          "description": "The phone number of the SMS receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "countryCode",
        "name",
        "phoneNumber"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionGroupVoiceReceiver:ActionGroupVoiceReceiver": {
      "properties": {
        "countryCode": {
          "description": "The country code of the voice receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the voice receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "phoneNumber": {
          "description": "The phone number of the voice receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "countryCode",
        "name",
        "phoneNumber"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionGroupWebhookReceiver:ActionGroupWebhookReceiver": {
      "properties": {
        "aadAuth": {
          "$ref": "#/types/azure:monitoring/ActionGroupWebhookReceiverAadAuth:ActionGroupWebhookReceiverAadAuth",
          "description": "The `aad_auth` block as defined below\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "description": "The name of the webhook receiver. Names must be unique (case-insensitive) across all receivers within an action group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serviceUri": {
          "description": "The URI where webhooks should be sent.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useCommonAlertSchema": {
          "description": "Enables or disables the common alert schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "serviceUri"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionGroupWebhookReceiverAadAuth:ActionGroupWebhookReceiverAadAuth": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "identifierUri",
            "objectId",
            "tenantId"
          ]
        }
      },
      "properties": {
        "identifierUri": {
          "description": "The identifier uri for aad auth.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "objectId": {
          "description": "The webhook application object Id for aad auth.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The tenant id for aad auth.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "objectId"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleActionGroupCondition:ActionRuleActionGroupCondition": {
      "properties": {
        "alertContext": {
          "$ref": "#/types/azure:monitoring/ActionRuleActionGroupConditionAlertContext:ActionRuleActionGroupConditionAlertContext",
          "description": "A `alert_context` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "alertRuleId": {
          "$ref": "#/types/azure:monitoring/ActionRuleActionGroupConditionAlertRuleId:ActionRuleActionGroupConditionAlertRuleId",
          "description": "A `alert_rule_id` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "description": {
          "$ref": "#/types/azure:monitoring/ActionRuleActionGroupConditionDescription:ActionRuleActionGroupConditionDescription",
          "description": "A `description` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "monitor": {
          "$ref": "#/types/azure:monitoring/ActionRuleActionGroupConditionMonitor:ActionRuleActionGroupConditionMonitor",
          "description": "A `monitor` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "monitorService": {
          "$ref": "#/types/azure:monitoring/ActionRuleActionGroupConditionMonitorService:ActionRuleActionGroupConditionMonitorService",
          "description": "A `monitor_service` as block defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "severity": {
          "$ref": "#/types/azure:monitoring/ActionRuleActionGroupConditionSeverity:ActionRuleActionGroupConditionSeverity",
          "description": "A `severity` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetResourceType": {
          "$ref": "#/types/azure:monitoring/ActionRuleActionGroupConditionTargetResourceType:ActionRuleActionGroupConditionTargetResourceType",
          "description": "A `target_resource_type` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:monitoring/ActionRuleActionGroupConditionAlertContext:ActionRuleActionGroupConditionAlertContext": {
      "properties": {
        "operator": {
          "description": "The operator for a given condition. Possible values are `Equals`, `NotEquals`, `Contains`, and `DoesNotContain`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of values to match for a given condition.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleActionGroupConditionAlertRuleId:ActionRuleActionGroupConditionAlertRuleId": {
      "properties": {
        "operator": {
          "description": "The operator for a given condition. Possible values are `Equals`, `NotEquals`, `Contains`, and `DoesNotContain`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of values to match for a given condition.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleActionGroupConditionDescription:ActionRuleActionGroupConditionDescription": {
      "properties": {
        "operator": {
          "description": "The operator for a given condition. Possible values are `Equals`, `NotEquals`, `Contains`, and `DoesNotContain`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of values to match for a given condition.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleActionGroupConditionMonitor:ActionRuleActionGroupConditionMonitor": {
      "properties": {
        "operator": {
          "description": "The operator for a given condition. Possible values are `Equals` and `NotEquals`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of values to match for a given condition. Possible values are `Fired` and `Resolved`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleActionGroupConditionMonitorService:ActionRuleActionGroupConditionMonitorService": {
      "properties": {
        "operator": {
          "description": "The operator for a given condition. Possible values are `Equals` and `NotEquals`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of values to match for a given condition. Possible values are `ActivityLog Administrative`, `ActivityLog Autoscale`, `ActivityLog Policy`, `ActivityLog Recommendation`, `ActivityLog Security`, `Application Insights`, `Azure Backup`, `Azure Stack Edge`, `Azure Stack Hub`, `Custom`, `Data Box Gateway`, `Health Platform`, `Log Alerts V2`, `Log Analytics`, `Platform`, `Resource Health`, `Smart Detector` and `VM Insights - Health`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleActionGroupConditionSeverity:ActionRuleActionGroupConditionSeverity": {
      "properties": {
        "operator": {
          "description": "The operator for a given condition. Possible values are `Equals`and `NotEquals`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of values to match for a given condition. Possible values are `Sev0`, `Sev1`, `Sev2`, `Sev3`, and `Sev4`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleActionGroupConditionTargetResourceType:ActionRuleActionGroupConditionTargetResourceType": {
      "properties": {
        "operator": {
          "description": "The operator for a given condition. Possible values are `Equals` and `NotEquals`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of values to match for a given condition. The values should be valid resource types.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleActionGroupScope:ActionRuleActionGroupScope": {
      "properties": {
        "resourceIds": {
          "description": "A list of resource IDs of the given scope type which will be the target of action rule.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "type": {
          "description": "Specifies the type of target scope. Possible values are `ResourceGroup` and `Resource`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "resourceIds",
        "type"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleSuppressionCondition:ActionRuleSuppressionCondition": {
      "properties": {
        "alertContext": {
          "$ref": "#/types/azure:monitoring/ActionRuleSuppressionConditionAlertContext:ActionRuleSuppressionConditionAlertContext",
          "description": "A `alert_context` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "alertRuleId": {
          "$ref": "#/types/azure:monitoring/ActionRuleSuppressionConditionAlertRuleId:ActionRuleSuppressionConditionAlertRuleId",
          "description": "A `alert_rule_id` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "description": {
          "$ref": "#/types/azure:monitoring/ActionRuleSuppressionConditionDescription:ActionRuleSuppressionConditionDescription",
          "description": "A `description` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "monitor": {
          "$ref": "#/types/azure:monitoring/ActionRuleSuppressionConditionMonitor:ActionRuleSuppressionConditionMonitor",
          "description": "A `monitor` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "monitorService": {
          "$ref": "#/types/azure:monitoring/ActionRuleSuppressionConditionMonitorService:ActionRuleSuppressionConditionMonitorService",
          "description": "A `monitor_service` as block defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "severity": {
          "$ref": "#/types/azure:monitoring/ActionRuleSuppressionConditionSeverity:ActionRuleSuppressionConditionSeverity",
          "description": "A `severity` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "targetResourceType": {
          "$ref": "#/types/azure:monitoring/ActionRuleSuppressionConditionTargetResourceType:ActionRuleSuppressionConditionTargetResourceType",
          "description": "A `target_resource_type` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:monitoring/ActionRuleSuppressionConditionAlertContext:ActionRuleSuppressionConditionAlertContext": {
      "properties": {
        "operator": {
          "description": "The operator for a given condition. Possible values are `Equals`, `NotEquals`, `Contains`, and `DoesNotContain`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of values to match for a given condition.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleSuppressionConditionAlertRuleId:ActionRuleSuppressionConditionAlertRuleId": {
      "properties": {
        "operator": {
          "description": "The operator for a given condition. Possible values are `Equals`, `NotEquals`, `Contains`, and `DoesNotContain`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of values to match for a given condition.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleSuppressionConditionDescription:ActionRuleSuppressionConditionDescription": {
      "properties": {
        "operator": {
          "description": "The operator for a given condition. Possible values are `Equals`, `NotEquals`, `Contains`, and `DoesNotContain`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of values to match for a given condition.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleSuppressionConditionMonitor:ActionRuleSuppressionConditionMonitor": {
      "properties": {
        "operator": {
          "description": "The operator for a given condition. Possible values are `Equals` and `NotEquals`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of values to match for a given condition. Possible values are `Fired` and `Resolved`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleSuppressionConditionMonitorService:ActionRuleSuppressionConditionMonitorService": {
      "properties": {
        "operator": {
          "description": "The operator for a given condition. Possible values are `Equals` and `NotEquals`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of values to match for a given condition. Possible values are `ActivityLog Administrative`, `ActivityLog Autoscale`, `ActivityLog Policy`, `ActivityLog Recommendation`, `ActivityLog Security`, `Application Insights`, `Azure Backup`, `Azure Stack Edge`, `Azure Stack Hub`, `Custom`, `Data Box Gateway`, `Health Platform`, `Log Alerts V2`, `Log Analytics`, `Platform`, `Resource Health`, `Smart Detector` and `VM Insights - Health`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleSuppressionConditionSeverity:ActionRuleSuppressionConditionSeverity": {
      "properties": {
        "operator": {
          "description": "The operator for a given condition. Possible values are `Equals`and `NotEquals`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of values to match for a given condition. Possible values are `Sev0`, `Sev1`, `Sev2`, `Sev3`, and `Sev4`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleSuppressionConditionTargetResourceType:ActionRuleSuppressionConditionTargetResourceType": {
      "properties": {
        "operator": {
          "description": "The operator for a given condition. Possible values are `Equals` and `NotEquals`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of values to match for a given condition. The values should be valid resource types.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleSuppressionScope:ActionRuleSuppressionScope": {
      "properties": {
        "resourceIds": {
          "description": "A list of resource IDs of the given scope type which will be the target of action rule.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "type": {
          "description": "Specifies the type of target scope. Possible values are `ResourceGroup` and `Resource`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "resourceIds",
        "type"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleSuppressionSuppression:ActionRuleSuppressionSuppression": {
      "properties": {
        "recurrenceType": {
          "description": "Specifies the type of suppression. Possible values are `Always`, `Daily`, `Monthly`, `Once`, and `Weekly`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "schedule": {
          "$ref": "#/types/azure:monitoring/ActionRuleSuppressionSuppressionSchedule:ActionRuleSuppressionSuppressionSchedule",
          "description": "A `schedule` block as defined below. Required if `recurrence_type` is `Daily`, `Monthly`, `Once` or `Weekly`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "recurrenceType"
      ],
      "type": "object"
    },
    "azure:monitoring/ActionRuleSuppressionSuppressionSchedule:ActionRuleSuppressionSuppressionSchedule": {
      "properties": {
        "endDateUtc": {
          "description": "specifies the recurrence UTC end datetime (Y-m-d'T'H:M:S'Z').\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "recurrenceMonthlies": {
          "description": "specifies the list of dayOfMonth to recurrence. Possible values are between `1` - `31`. Required if `recurrence_type` is `Monthly`.\n",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "recurrenceWeeklies": {
          "description": "specifies the list of dayOfWeek to recurrence. Possible values are `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` and  `Saturday`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "startDateUtc": {
          "description": "specifies the recurrence UTC start datetime (Y-m-d'T'H:M:S'Z').\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "endDateUtc",
        "startDateUtc"
      ],
      "type": "object"
    },
    "azure:monitoring/ActivityLogAlertAction:ActivityLogAlertAction": {
      "properties": {
        "actionGroupId": {
          "description": "The ID of the Action Group can be sourced from the `azure.monitoring.ActionGroup` resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "webhookProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The map of custom string properties to include with the post operation. These data are appended to the webhook payload.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "actionGroupId"
      ],
      "type": "object"
    },
    "azure:monitoring/ActivityLogAlertCriteria:ActivityLogAlertCriteria": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "category",
            "serviceHealths"
          ]
        }
      },
      "properties": {
        "caller": {
          "description": "The email address or Azure Active Directory identifier of the user who performed the operation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "category": {
          "description": "The category of the operation. Possible values are `Administrative`, `Autoscale`, `Policy`, `Recommendation`, `ResourceHealth`, `Security` and `ServiceHealth`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "level": {
          "description": "The severity level of the event. Possible values are `Verbose`, `Informational`, `Warning`, `Error`, and `Critical`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operationName": {
          "description": "The Resource Manager Role-Based Access Control operation name. Supported operation should be of the form: `\u003cresourceProvider\u003e/\u003cresourceType\u003e/\u003coperation\u003e`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "recommendationCategory": {
          "description": "The recommendation category of the event. Possible values are `Cost`, `Reliability`, `OperationalExcellence` and `Performance`. It is only allowed when `category` is `Recommendation`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "recommendationImpact": {
          "description": "The recommendation impact of the event. Possible values are `High`, `Medium` and `Low`. It is only allowed when `category` is `Recommendation`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "recommendationType": {
          "description": "The recommendation type of the event. It is only allowed when `category` is `Recommendation`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resourceGroup": {
          "description": "The name of resource group monitored by the activity log alert.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resourceId": {
          "description": "The specific resource monitored by the activity log alert. It should be within one of the `scopes`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resourceProvider": {
          "description": "The name of the resource provider monitored by the activity log alert.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resourceType": {
          "description": "The resource type monitored by the activity log alert.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serviceHealths": {
          "description": "A block to define fine grain service health settings.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ActivityLogAlertCriteriaServiceHealth:ActivityLogAlertCriteriaServiceHealth"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "status": {
          "description": "The status of the event. For example, `Started`, `Failed`, or `Succeeded`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subStatus": {
          "description": "The sub status of the event.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "category"
      ],
      "type": "object"
    },
    "azure:monitoring/ActivityLogAlertCriteriaServiceHealth:ActivityLogAlertCriteriaServiceHealth": {
      "properties": {
        "events": {
          "description": "Events this alert will monitor Possible values are `Incident`, `Maintenance`, `Informational`, `ActionRequired` and `Security`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "locations": {
          "description": "Locations this alert will monitor. For example, `West Europe`. Defaults to `Global`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "services": {
          "description": "Services this alert will monitor. For example, `Activity Logs \u0026 Alerts`, `Action Groups`. Defaults to all Services.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:monitoring/AutoscaleSettingNotification:AutoscaleSettingNotification": {
      "properties": {
        "email": {
          "$ref": "#/types/azure:monitoring/AutoscaleSettingNotificationEmail:AutoscaleSettingNotificationEmail",
          "description": "A `email` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "webhooks": {
          "description": "One or more `webhook` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/AutoscaleSettingNotificationWebhook:AutoscaleSettingNotificationWebhook"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:monitoring/AutoscaleSettingNotificationEmail:AutoscaleSettingNotificationEmail": {
      "properties": {
        "customEmails": {
          "description": "Specifies a list of custom email addresses to which the email notifications will be sent.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sendToSubscriptionAdministrator": {
          "description": "Should email notifications be sent to the subscription administrator? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sendToSubscriptionCoAdministrator": {
          "description": "Should email notifications be sent to the subscription co-administrator? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:monitoring/AutoscaleSettingNotificationWebhook:AutoscaleSettingNotificationWebhook": {
      "properties": {
        "properties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map of settings.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "serviceUri": {
          "description": "The HTTPS URI which should receive scale notifications.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "serviceUri"
      ],
      "type": "object"
    },
    "azure:monitoring/AutoscaleSettingProfile:AutoscaleSettingProfile": {
      "properties": {
        "capacity": {
          "$ref": "#/types/azure:monitoring/AutoscaleSettingProfileCapacity:AutoscaleSettingProfileCapacity",
          "description": "A `capacity` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fixedDate": {
          "$ref": "#/types/azure:monitoring/AutoscaleSettingProfileFixedDate:AutoscaleSettingProfileFixedDate",
          "description": "A `fixed_date` block as defined below. This cannot be specified if a `recurrence` block is specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "description": "Specifies the name of the profile.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "recurrence": {
          "$ref": "#/types/azure:monitoring/AutoscaleSettingProfileRecurrence:AutoscaleSettingProfileRecurrence",
          "description": "A `recurrence` block as defined below. This cannot be specified if a `fixed_date` block is specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "rules": {
          "description": "One or more (up to 10) `rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/AutoscaleSettingProfileRule:AutoscaleSettingProfileRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "capacity",
        "name"
      ],
      "type": "object"
    },
    "azure:monitoring/AutoscaleSettingProfileCapacity:AutoscaleSettingProfileCapacity": {
      "properties": {
        "default": {
          "description": "The number of instances that are available for scaling if metrics are not available for evaluation. The default is only used if the current instance count is lower than the default. Valid values are between `0` and `1000`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maximum": {
          "description": "The maximum number of instances for this resource. Valid values are between `0` and `1000`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "minimum": {
          "description": "The minimum number of instances for this resource. Valid values are between `0` and `1000`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "default",
        "maximum",
        "minimum"
      ],
      "type": "object"
    },
    "azure:monitoring/AutoscaleSettingProfileFixedDate:AutoscaleSettingProfileFixedDate": {
      "properties": {
        "end": {
          "description": "Specifies the end date for the profile, formatted as an RFC3339 date string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "start": {
          "description": "Specifies the start date for the profile, formatted as an RFC3339 date string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "timezone": {
          "description": "The Time Zone of the `start` and `end` times. A list of [possible values can be found here](https://msdn.microsoft.com/en-us/library/azure/dn931928.aspx). Defaults to `UTC`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "end",
        "start"
      ],
      "type": "object"
    },
    "azure:monitoring/AutoscaleSettingProfileRecurrence:AutoscaleSettingProfileRecurrence": {
      "properties": {
        "days": {
          "description": "A list of days that this profile takes effect on. Possible values include `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday` and `Sunday`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "hours": {
          "description": "A list containing a single item, which specifies the Hour interval at which this recurrence should be triggered (in 24-hour time). Possible values are from `0` to `23`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "minutes": {
          "description": "A list containing a single item which specifies the Minute interval at which this recurrence should be triggered.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "timezone": {
          "description": "The Time Zone used for the `hours` field. A list of [possible values can be found here](https://msdn.microsoft.com/en-us/library/azure/dn931928.aspx). Defaults to `UTC`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "days",
        "hours",
        "minutes"
      ],
      "type": "object"
    },
    "azure:monitoring/AutoscaleSettingProfileRule:AutoscaleSettingProfileRule": {
      "properties": {
        "metricTrigger": {
          "$ref": "#/types/azure:monitoring/AutoscaleSettingProfileRuleMetricTrigger:AutoscaleSettingProfileRuleMetricTrigger",
          "description": "A `metric_trigger` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "scaleAction": {
          "$ref": "#/types/azure:monitoring/AutoscaleSettingProfileRuleScaleAction:AutoscaleSettingProfileRuleScaleAction",
          "description": "A `scale_action` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "metricTrigger",
        "scaleAction"
      ],
      "type": "object"
    },
    "azure:monitoring/AutoscaleSettingProfileRuleMetricTrigger:AutoscaleSettingProfileRuleMetricTrigger": {
      "properties": {
        "dimensions": {
          "description": "One or more `dimensions` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/AutoscaleSettingProfileRuleMetricTriggerDimension:AutoscaleSettingProfileRuleMetricTriggerDimension"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "divideByInstanceCount": {
          "description": "Whether to enable metric divide by instance count.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "metricName": {
          "description": "The name of the metric that defines what the rule monitors, such as `Percentage CPU` for `Virtual Machine Scale Sets` and `CpuPercentage` for `App Service Plan`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "metricNamespace": {
          "description": "The namespace of the metric that defines what the rule monitors, such as `microsoft.compute/virtualmachinescalesets` for `Virtual Machine Scale Sets`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "metricResourceId": {
          "description": "The ID of the Resource which the Rule monitors.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "Specifies the operator used to compare the metric data and threshold. Possible values are: `Equals`, `NotEquals`, `GreaterThan`, `GreaterThanOrEqual`, `LessThan`, `LessThanOrEqual`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "statistic": {
          "description": "Specifies how the metrics from multiple instances are combined. Possible values are `Average`, `Min` and `Max`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "threshold": {
          "description": "Specifies the threshold of the metric that triggers the scale action.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        },
        "timeAggregation": {
          "description": "Specifies how the data that's collected should be combined over time. Possible values include `Average`, `Count`, `Maximum`, `Minimum`, `Last` and `Total`. Defaults to `Average`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "timeGrain": {
          "description": "Specifies the granularity of metrics that the rule monitors, which must be one of the pre-defined values returned from the metric definitions for the metric. This value must be between 1 minute and 12 hours an be formatted as an ISO 8601 string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "timeWindow": {
          "description": "Specifies the time range for which data is collected, which must be greater than the delay in metric collection (which varies from resource to resource). This value must be between 5 minutes and 12 hours and be formatted as an ISO 8601 string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "metricName",
        "metricResourceId",
        "operator",
        "statistic",
        "threshold",
        "timeAggregation",
        "timeGrain",
        "timeWindow"
      ],
      "type": "object"
    },
    "azure:monitoring/AutoscaleSettingProfileRuleMetricTriggerDimension:AutoscaleSettingProfileRuleMetricTriggerDimension": {
      "properties": {
        "name": {
          "description": "The name of the dimension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "The dimension operator. Possible values are `Equals` and `NotEquals`. `Equals` means being equal to any of the values. `NotEquals` means being not equal to any of the values.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "A list of dimension values.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/AutoscaleSettingProfileRuleScaleAction:AutoscaleSettingProfileRuleScaleAction": {
      "properties": {
        "cooldown": {
          "description": "The amount of time to wait since the last scaling action before this action occurs. Must be between 1 minute and 1 week and formatted as a ISO 8601 string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "direction": {
          "description": "The scale direction. Possible values are `Increase` and `Decrease`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of action that should occur. Possible values are `ChangeCount`, `ExactCount` and `PercentChangeCount`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The number of instances involved in the scaling action. Defaults to `1`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "cooldown",
        "direction",
        "type",
        "value"
      ],
      "type": "object"
    },
    "azure:monitoring/DiagnosticSettingLog:DiagnosticSettingLog": {
      "properties": {
        "category": {
          "description": "The name of a Diagnostic Log Category for this Resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Is this Diagnostic Log enabled? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "retentionPolicy": {
          "$ref": "#/types/azure:monitoring/DiagnosticSettingLogRetentionPolicy:DiagnosticSettingLogRetentionPolicy",
          "description": "A `retention_policy` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "category"
      ],
      "type": "object"
    },
    "azure:monitoring/DiagnosticSettingLogRetentionPolicy:DiagnosticSettingLogRetentionPolicy": {
      "properties": {
        "days": {
          "description": "The number of days for which this Retention Policy should apply.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "enabled": {
          "description": "Is this Retention Policy enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:monitoring/DiagnosticSettingMetric:DiagnosticSettingMetric": {
      "properties": {
        "category": {
          "description": "The name of a Diagnostic Metric Category for this Resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enabled": {
          "description": "Is this Diagnostic Metric enabled? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "retentionPolicy": {
          "$ref": "#/types/azure:monitoring/DiagnosticSettingMetricRetentionPolicy:DiagnosticSettingMetricRetentionPolicy",
          "description": "A `retention_policy` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "category"
      ],
      "type": "object"
    },
    "azure:monitoring/DiagnosticSettingMetricRetentionPolicy:DiagnosticSettingMetricRetentionPolicy": {
      "properties": {
        "days": {
          "description": "The number of days for which this Retention Policy should apply.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "enabled": {
          "description": "Is this Retention Policy enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:monitoring/LogProfileRetentionPolicy:LogProfileRetentionPolicy": {
      "properties": {
        "days": {
          "description": "The number of days for the retention policy. Defaults to 0.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "enabled": {
          "description": "A boolean value to indicate whether the retention policy is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "azure:monitoring/MetricAlertAction:MetricAlertAction": {
      "properties": {
        "actionGroupId": {
          "description": "The ID of the Action Group can be sourced from the `azure.monitoring.ActionGroup` resource\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "webhookProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The map of custom string properties to include with the post operation. These data are appended to the webhook payload.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "actionGroupId"
      ],
      "type": "object"
    },
    "azure:monitoring/MetricAlertApplicationInsightsWebTestLocationAvailabilityCriteria:MetricAlertApplicationInsightsWebTestLocationAvailabilityCriteria": {
      "properties": {
        "componentId": {
          "description": "The ID of the Application Insights Resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "failedLocationCount": {
          "description": "The number of failed locations.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "webTestId": {
          "description": "The ID of the Application Insights Web Test.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "componentId",
        "failedLocationCount",
        "webTestId"
      ],
      "type": "object"
    },
    "azure:monitoring/MetricAlertCriteria:MetricAlertCriteria": {
      "properties": {
        "aggregation": {
          "description": "The statistic that runs over the metric values. Possible values are `Average`, `Count`, `Minimum`, `Maximum` and `Total`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "dimensions": {
          "description": "One or more `dimension` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/MetricAlertCriteriaDimension:MetricAlertCriteriaDimension"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "metricName": {
          "description": "One of the metric names to be monitored.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "metricNamespace": {
          "description": "One of the metric namespaces to be monitored.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "The criteria operator. Possible values are `Equals`, `NotEquals`, `GreaterThan`, `GreaterThanOrEqual`, `LessThan` and `LessThanOrEqual`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "skipMetricValidation": {
          "description": "Skip the metric validation to allow creating an alert rule on a custom metric that isn't yet emitted? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "threshold": {
          "description": "The criteria threshold value that activates the alert.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "aggregation",
        "metricName",
        "metricNamespace",
        "operator",
        "threshold"
      ],
      "type": "object"
    },
    "azure:monitoring/MetricAlertCriteriaDimension:MetricAlertCriteriaDimension": {
      "properties": {
        "name": {
          "description": "One of the dimension names.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "The dimension operator. Possible values are `Include`, `Exclude` and `StartsWith`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "The list of dimension values.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/MetricAlertDynamicCriteria:MetricAlertDynamicCriteria": {
      "properties": {
        "aggregation": {
          "description": "The statistic that runs over the metric values. Possible values are `Average`, `Count`, `Minimum`, `Maximum` and `Total`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "alertSensitivity": {
          "description": "The extent of deviation required to trigger an alert. Possible values are `Low`, `Medium` and `High`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "dimensions": {
          "description": "One or more `dimension` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/MetricAlertDynamicCriteriaDimension:MetricAlertDynamicCriteriaDimension"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "evaluationFailureCount": {
          "description": "The number of violations to trigger an alert. Should be smaller or equal to `evaluation_total_count`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "evaluationTotalCount": {
          "description": "The number of aggregated lookback points. The lookback time window is calculated based on the aggregation granularity (`window_size`) and the selected number of aggregated points.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "ignoreDataBefore": {
          "description": "The [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) date from which to start learning the metric historical data and calculate the dynamic thresholds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "metricName": {
          "description": "One of the metric names to be monitored.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "metricNamespace": {
          "description": "One of the metric namespaces to be monitored.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "The criteria operator. Possible values are `LessThan`, `GreaterThan` and `GreaterOrLessThan`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "skipMetricValidation": {
          "description": "Skip the metric validation to allow creating an alert rule on a custom metric that isn't yet emitted? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "aggregation",
        "alertSensitivity",
        "metricName",
        "metricNamespace",
        "operator"
      ],
      "type": "object"
    },
    "azure:monitoring/MetricAlertDynamicCriteriaDimension:MetricAlertDynamicCriteriaDimension": {
      "properties": {
        "name": {
          "description": "One of the dimension names.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "The dimension operator. Possible values are `Include`, `Exclude` and `StartsWith`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "The list of dimension values.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/ScheduledQueryRulesAlertAction:ScheduledQueryRulesAlertAction": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "actionGroups",
            "customWebhookPayload"
          ]
        }
      },
      "properties": {
        "actionGroups": {
          "description": "List of action group reference resource IDs.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "customWebhookPayload": {
          "description": "Custom payload to be sent for all webhook payloads in alerting action.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "emailSubject": {
          "description": "Custom subject override for all email ids in Azure action group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "actionGroups"
      ],
      "type": "object"
    },
    "azure:monitoring/ScheduledQueryRulesAlertTrigger:ScheduledQueryRulesAlertTrigger": {
      "properties": {
        "metricTrigger": {
          "$ref": "#/types/azure:monitoring/ScheduledQueryRulesAlertTriggerMetricTrigger:ScheduledQueryRulesAlertTriggerMetricTrigger",
          "description": "A `metric_trigger` block as defined above. Trigger condition for metric query rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "operator": {
          "description": "Evaluation operation for rule - 'GreaterThan', GreaterThanOrEqual', 'LessThan', or 'LessThanOrEqual'.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "threshold": {
          "description": "Result or count threshold based on which rule should be triggered.  Values must be between 0 and 10000 inclusive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "operator",
        "threshold"
      ],
      "type": "object"
    },
    "azure:monitoring/ScheduledQueryRulesAlertTriggerMetricTrigger:ScheduledQueryRulesAlertTriggerMetricTrigger": {
      "properties": {
        "metricColumn": {
          "description": "Evaluation of metric on a particular column.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "metricTriggerType": {
          "description": "Metric Trigger Type - 'Consecutive' or 'Total'.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "Evaluation operation for rule - 'Equal', 'GreaterThan', GreaterThanOrEqual', 'LessThan', or 'LessThanOrEqual'.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "threshold": {
          "description": "The threshold of the metric trigger.    Values must be between 0 and 10000 inclusive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "metricColumn",
        "metricTriggerType",
        "operator",
        "threshold"
      ],
      "type": "object"
    },
    "azure:monitoring/ScheduledQueryRulesLogCriteria:ScheduledQueryRulesLogCriteria": {
      "properties": {
        "dimensions": {
          "description": "A `dimension` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/ScheduledQueryRulesLogCriteriaDimension:ScheduledQueryRulesLogCriteriaDimension"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "metricName": {
          "description": "Name of the metric.  Supported metrics are listed in the Azure Monitor [Microsoft.OperationalInsights/workspaces](https://docs.microsoft.com/en-us/azure/azure-monitor/platform/metrics-supported#microsoftoperationalinsightsworkspaces) metrics namespace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "dimensions",
        "metricName"
      ],
      "type": "object"
    },
    "azure:monitoring/ScheduledQueryRulesLogCriteriaDimension:ScheduledQueryRulesLogCriteriaDimension": {
      "properties": {
        "name": {
          "description": "Name of the dimension.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "Operator for dimension values, - 'Include'.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "List of dimension values.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "values"
      ],
      "type": "object"
    },
    "azure:monitoring/SmartDetectorAlertRuleActionGroup:SmartDetectorAlertRuleActionGroup": {
      "properties": {
        "emailSubject": {
          "description": "Specifies a custom email subject if Email Receiver is specified in Monitor Action Group resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ids": {
          "description": "Specifies the action group ids.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "webhookPayload": {
          "description": "A JSON String which Specifies the custom webhook payload if Webhook Receiver is specified in Monitor Action Group resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "ids"
      ],
      "type": "object"
    },
    "azure:monitoring/getActionGroupArmRoleReceiver:getActionGroupArmRoleReceiver": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the Action Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "roleId": {
          "description": "The arm role id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useCommonAlertSchema": {
          "description": "Indicates whether to use common alert schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "roleId",
        "useCommonAlertSchema"
      ],
      "type": "object"
    },
    "azure:monitoring/getActionGroupAutomationRunbookReceiver:getActionGroupAutomationRunbookReceiver": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "automationAccountId": {
          "description": "The automation account ID which holds this runbook and authenticates to Azure resources.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "isGlobalRunbook": {
          "description": "Indicates whether this instance is global runbook.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the name of the Action Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "runbookName": {
          "description": "The name for this runbook.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serviceUri": {
          "description": "The URI where webhooks should be sent.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useCommonAlertSchema": {
          "description": "Indicates whether to use common alert schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "webhookResourceId": {
          "description": "The resource id for webhook linked to this runbook.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "automationAccountId",
        "isGlobalRunbook",
        "name",
        "runbookName",
        "serviceUri",
        "useCommonAlertSchema",
        "webhookResourceId"
      ],
      "type": "object"
    },
    "azure:monitoring/getActionGroupAzureAppPushReceiver:getActionGroupAzureAppPushReceiver": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "emailAddress": {
          "description": "The email address of this receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Action Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "emailAddress",
        "name"
      ],
      "type": "object"
    },
    "azure:monitoring/getActionGroupAzureFunctionReceiver:getActionGroupAzureFunctionReceiver": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "functionAppResourceId": {
          "description": "The Azure resource ID of the function app.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "functionName": {
          "description": "The function name in the function app.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "httpTriggerUrl": {
          "description": "The http trigger url where http request sent to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Action Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useCommonAlertSchema": {
          "description": "Indicates whether to use common alert schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "functionAppResourceId",
        "functionName",
        "httpTriggerUrl",
        "name",
        "useCommonAlertSchema"
      ],
      "type": "object"
    },
    "azure:monitoring/getActionGroupEmailReceiver:getActionGroupEmailReceiver": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "emailAddress": {
          "description": "The email address of this receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Action Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useCommonAlertSchema": {
          "description": "Indicates whether to use common alert schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "emailAddress",
        "name",
        "useCommonAlertSchema"
      ],
      "type": "object"
    },
    "azure:monitoring/getActionGroupItsmReceiver:getActionGroupItsmReceiver": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "connectionId": {
          "description": "The unique connection identifier of the ITSM connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Action Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "region": {
          "description": "The region of the workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ticketConfiguration": {
          "description": "A JSON blob for the configurations of the ITSM action. CreateMultipleWorkItems option will be part of this blob as well.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "workspaceId": {
          "description": "The Azure Log Analytics workspace ID where this connection is defined.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "connectionId",
        "name",
        "region",
        "ticketConfiguration",
        "workspaceId"
      ],
      "type": "object"
    },
    "azure:monitoring/getActionGroupLogicAppReceiver:getActionGroupLogicAppReceiver": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "callbackUrl": {
          "description": "The callback url where http request sent to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Action Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resourceId": {
          "description": "The Azure resource ID of the logic app.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useCommonAlertSchema": {
          "description": "Indicates whether to use common alert schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "callbackUrl",
        "name",
        "resourceId",
        "useCommonAlertSchema"
      ],
      "type": "object"
    },
    "azure:monitoring/getActionGroupSmsReceiver:getActionGroupSmsReceiver": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "countryCode": {
          "description": "The country code of the voice receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Action Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "phoneNumber": {
          "description": "The phone number of the voice receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "countryCode",
        "name",
        "phoneNumber"
      ],
      "type": "object"
    },
    "azure:monitoring/getActionGroupVoiceReceiver:getActionGroupVoiceReceiver": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "countryCode": {
          "description": "The country code of the voice receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Action Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "phoneNumber": {
          "description": "The phone number of the voice receiver.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "countryCode",
        "name",
        "phoneNumber"
      ],
      "type": "object"
    },
    "azure:monitoring/getActionGroupWebhookReceiver:getActionGroupWebhookReceiver": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "aadAuths": {
          "items": {
            "$ref": "#/types/azure:monitoring/getActionGroupWebhookReceiverAadAuth:getActionGroupWebhookReceiverAadAuth"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the Action Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serviceUri": {
          "description": "The URI where webhooks should be sent.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useCommonAlertSchema": {
          "description": "Indicates whether to use common alert schema.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "aadAuths",
        "name",
        "serviceUri",
        "useCommonAlertSchema"
      ],
      "type": "object"
    },
    "azure:monitoring/getActionGroupWebhookReceiverAadAuth:getActionGroupWebhookReceiverAadAuth": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "identifierUri": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "objectId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "identifierUri",
        "objectId",
        "tenantId"
      ],
      "type": "object"
    },
    "azure:monitoring/getLogProfileRetentionPolicy:getLogProfileRetentionPolicy": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "days": {
          "description": "The number of days for the retention policy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "enabled": {
          "description": "A boolean value indicating whether the retention policy is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "days",
        "enabled"
      ],
      "type": "object"
    },
    "azure:monitoring/getScheduledQueryRulesAlertAction:getScheduledQueryRulesAlertAction": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "actionGroups": {
          "description": "List of action group reference resource IDs.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "customWebhookPayload": {
          "description": "Custom payload to be sent for all webhook URI in Azure action group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "emailSubject": {
          "description": "Custom subject override for all email IDs in Azure action group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "actionGroups",
        "customWebhookPayload",
        "emailSubject"
      ],
      "type": "object"
    },
    "azure:monitoring/getScheduledQueryRulesAlertTrigger:getScheduledQueryRulesAlertTrigger": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "metricTriggers": {
          "items": {
            "$ref": "#/types/azure:monitoring/getScheduledQueryRulesAlertTriggerMetricTrigger:getScheduledQueryRulesAlertTriggerMetricTrigger"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "operator": {
          "description": "Evaluation operation for rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "threshold": {
          "description": "Result or count threshold based on which rule should be triggered.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "metricTriggers",
        "operator",
        "threshold"
      ],
      "type": "object"
    },
    "azure:monitoring/getScheduledQueryRulesAlertTriggerMetricTrigger:getScheduledQueryRulesAlertTriggerMetricTrigger": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "metricColumn": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "metricTriggerType": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "Evaluation operation for rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "threshold": {
          "description": "Result or count threshold based on which rule should be triggered.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "metricColumn",
        "metricTriggerType",
        "operator",
        "threshold"
      ],
      "type": "object"
    },
    "azure:monitoring/getScheduledQueryRulesLogCriteria:getScheduledQueryRulesLogCriteria": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "dimensions": {
          "description": "A `dimension` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:monitoring/getScheduledQueryRulesLogCriteriaDimension:getScheduledQueryRulesLogCriteriaDimension"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "metricName": {
          "description": "Name of the metric.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "dimensions",
        "metricName"
      ],
      "type": "object"
    },
    "azure:monitoring/getScheduledQueryRulesLogCriteriaDimension:getScheduledQueryRulesLogCriteriaDimension": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the scheduled query rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "Operator for dimension values.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "values": {
          "description": "List of dimension values.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "operator",
        "values"
      ],
      "type": "object"
    },
    "azure:mssql/DatabaseExtendedAuditingPolicy:DatabaseExtendedAuditingPolicy": {
      "properties": {
        "logMonitoringEnabled": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "retentionInDays": {
          "description": "Specifies the number of days to retain logs for in the storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountAccessKey": {
          "description": "Specifies the access key to use for the auditing storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountAccessKeyIsSecondary": {
          "description": "Specifies whether `storage_account_access_key` value is the storage's secondary key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "storageEndpoint": {
          "description": "Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:mssql/DatabaseLongTermRetentionPolicy:DatabaseLongTermRetentionPolicy": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "monthlyRetention",
            "weekOfYear",
            "weeklyRetention",
            "yearlyRetention"
          ]
        }
      },
      "properties": {
        "monthlyRetention": {
          "description": "The monthly retention policy for an LTR backup in an ISO 8601 format. Valid value is between 1 to 120 months. e.g. `P1Y`, `P1M`, `P4W` or `P30D`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "weekOfYear": {
          "description": "The week of year to take the yearly backup in an ISO 8601 format. Value has to be between `1` and `52`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "weeklyRetention": {
          "description": "The weekly retention policy for an LTR backup in an ISO 8601 format. Valid value is between 1 to 520 weeks. e.g. `P1Y`, `P1M`, `P1W` or `P7D`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "yearlyRetention": {
          "description": "The yearly retention policy for an LTR backup in an ISO 8601 format. Valid value is between 1 to 10 years. e.g. `P1Y`, `P12M`, `P52W` or `P365D`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:mssql/DatabaseShortTermRetentionPolicy:DatabaseShortTermRetentionPolicy": {
      "properties": {
        "retentionDays": {
          "description": "Point In Time Restore configuration. Value has to be between `7` and `35`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "retentionDays"
      ],
      "type": "object"
    },
    "azure:mssql/DatabaseThreatDetectionPolicy:DatabaseThreatDetectionPolicy": {
      "properties": {
        "disabledAlerts": {
          "description": "Specifies a list of alerts which should be disabled. Possible values include `Access_Anomaly`, `Sql_Injection` and `Sql_Injection_Vulnerability`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "emailAccountAdmins": {
          "description": "Should the account administrators be emailed when this alert is triggered?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "emailAddresses": {
          "description": "A list of email addresses which alerts should be sent to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "retentionDays": {
          "description": "Specifies the number of days to keep in the Threat Detection audit logs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "state": {
          "description": "The State of the Policy. Possible values are `Enabled`, `Disabled` or `New`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountAccessKey": {
          "description": "Specifies the identifier key of the Threat Detection audit storage account. Required if `state` is `Enabled`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageEndpoint": {
          "description": "Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all Threat Detection audit logs. Required if `state` is `Enabled`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useServerDefault": {
          "description": "Should the default server policy be used? Defaults to `Disabled`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:mssql/DatabaseVulnerabilityAssessmentRuleBaselineBaselineResult:DatabaseVulnerabilityAssessmentRuleBaselineBaselineResult": {
      "properties": {
        "results": {
          "description": "A list representing a result of the baseline.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "results"
      ],
      "type": "object"
    },
    "azure:mssql/ElasticPoolPerDatabaseSettings:ElasticPoolPerDatabaseSettings": {
      "properties": {
        "maxCapacity": {
          "description": "The maximum capacity any one database can consume.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        },
        "minCapacity": {
          "description": "The minimum capacity all databases are guaranteed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "maxCapacity",
        "minCapacity"
      ],
      "type": "object"
    },
    "azure:mssql/ElasticPoolSku:ElasticPoolSku": {
      "properties": {
        "capacity": {
          "description": "The scale up/out capacity, representing server's compute units. For more information see the documentation for your Elasticpool configuration: [vCore-based](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-vcore-resource-limits-elastic-pools) or [DTU-based](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-dtu-resource-limits-elastic-pools).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "family": {
          "description": "The `family` of hardware `Gen4` or `Gen5`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the SKU Name for this Elasticpool. The name of the SKU, will be either `vCore` based `tier` + `family` pattern (e.g. GP_Gen4, BC_Gen5) or the `DTU` based `BasicPool`, `StandardPool`, or `PremiumPool` pattern.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tier": {
          "description": "The tier of the particular SKU. Possible values are `GeneralPurpose`, `BusinessCritical`, `Basic`, `Standard`, or `Premium`. For more information see the documentation for your Elasticpool configuration: [vCore-based](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-vcore-resource-limits-elastic-pools) or [DTU-based](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-dtu-resource-limits-elastic-pools).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "capacity",
        "name",
        "tier"
      ],
      "type": "object"
    },
    "azure:mssql/ServerAzureadAdministrator:ServerAzureadAdministrator": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "loginUsername",
            "objectId",
            "tenantId"
          ]
        }
      },
      "properties": {
        "loginUsername": {
          "description": "(Required)  The login username of the Azure AD Administrator of this SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "objectId": {
          "description": "(Required) The object id of the Azure AD Administrator of this SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "(Optional) The tenant id of the Azure AD Administrator of this SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "loginUsername",
        "objectId"
      ],
      "type": "object"
    },
    "azure:mssql/ServerExtendedAuditingPolicy:ServerExtendedAuditingPolicy": {
      "properties": {
        "logMonitoringEnabled": {
          "description": "(Optional) Enable audit events to Azure Monitor? To enable server audit events to Azure Monitor, please enable its main database audit events to Azure Monitor.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "retentionInDays": {
          "description": "(Optional) Specifies the number of days to retain logs for in the storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountAccessKey": {
          "description": "(Optional)  Specifies the access key to use for the auditing storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountAccessKeyIsSecondary": {
          "description": "(Optional) Specifies whether `storage_account_access_key` value is the storage's secondary key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "storageEndpoint": {
          "description": "(Optional) Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:mssql/ServerIdentity:ServerIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Identity of this SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "(Optional) The tenant id of the Azure AD Administrator of this SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of the Microsoft SQL Server. At this time the only allowed value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:mssql/ServerVulnerabilityAssessmentRecurringScans:ServerVulnerabilityAssessmentRecurringScans": {
      "properties": {
        "emailSubscriptionAdmins": {
          "description": "Boolean flag which specifies if the schedule scan notification will be sent to the subscription administrators. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "emails": {
          "description": "Specifies an array of e-mail addresses to which the scan notification is sent.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enabled": {
          "description": "Boolean flag which specifies if recurring scans is enabled or disabled. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:mssql/VirtualMachineAutoBackup:VirtualMachineAutoBackup": {
      "properties": {
        "encryptionEnabled": {
          "description": "Enable or disable encryption for backups. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "encryptionPassword": {
          "description": "Encryption password to use. Must be specified when encryption is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "manualSchedule": {
          "$ref": "#/types/azure:mssql/VirtualMachineAutoBackupManualSchedule:VirtualMachineAutoBackupManualSchedule",
          "description": "A `manual_schedule` block as documented below. When this block is present, the schedule type is set to `Manual`. Without this block, the schedule type is set to `Automated`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "retentionPeriodInDays": {
          "description": "Retention period of backups, in days. Valid values are from `1` to `30`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountAccessKey": {
          "description": "Access key for the storage account where backups will be kept.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageBlobEndpoint": {
          "description": "Blob endpoint for the storage account where backups will be kept.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "systemDatabasesBackupEnabled": {
          "description": "Include or exclude system databases from auto backup. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "retentionPeriodInDays",
        "storageAccountAccessKey",
        "storageBlobEndpoint"
      ],
      "type": "object"
    },
    "azure:mssql/VirtualMachineAutoBackupManualSchedule:VirtualMachineAutoBackupManualSchedule": {
      "properties": {
        "fullBackupFrequency": {
          "description": "Frequency of full backups. Valid values include `Daily` or `Weekly`. Required when `backup_schedule_automated` is false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fullBackupStartHour": {
          "description": "Start hour of a given day during which full backups can take place. Valid values are from `0` to `23`. Required when `backup_schedule_automated` is false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "fullBackupWindowInHours": {
          "description": "Duration of the time window of a given day during which full backups can take place, in hours. Valid values are between `1` and `23`. Required when `backup_schedule_automated` is false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "logBackupFrequencyInMinutes": {
          "description": "Frequency of log backups, in minutes. Valid values are from `5` to `60`. Required when `backup_schedule_automated` is false.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "fullBackupFrequency",
        "fullBackupStartHour",
        "fullBackupWindowInHours",
        "logBackupFrequencyInMinutes"
      ],
      "type": "object"
    },
    "azure:mssql/VirtualMachineAutoPatching:VirtualMachineAutoPatching": {
      "properties": {
        "dayOfWeek": {
          "description": "The day of week to apply the patch on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maintenanceWindowDurationInMinutes": {
          "description": "The size of the Maintenance Window in minutes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maintenanceWindowStartingHour": {
          "description": "The Hour, in the Virtual Machine Time-Zone when the patching maintenance window should begin.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "dayOfWeek",
        "maintenanceWindowDurationInMinutes",
        "maintenanceWindowStartingHour"
      ],
      "type": "object"
    },
    "azure:mssql/VirtualMachineKeyVaultCredential:VirtualMachineKeyVaultCredential": {
      "properties": {
        "keyVaultUrl": {
          "description": "The azure Key Vault url. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The credential name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "servicePrincipalName": {
          "description": "The service principal name to access key vault. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "servicePrincipalSecret": {
          "description": "The service principal name secret to access key vault. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "keyVaultUrl",
        "name",
        "servicePrincipalName",
        "servicePrincipalSecret"
      ],
      "type": "object"
    },
    "azure:mssql/VirtualMachineStorageConfiguration:VirtualMachineStorageConfiguration": {
      "properties": {
        "dataSettings": {
          "$ref": "#/types/azure:mssql/VirtualMachineStorageConfigurationDataSettings:VirtualMachineStorageConfigurationDataSettings",
          "description": "An `storage_settings` as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "diskType": {
          "description": "The type of disk configuration to apply to the SQL Server. Valid values include `NEW`, `EXTEND`, or `ADD`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "logSettings": {
          "$ref": "#/types/azure:mssql/VirtualMachineStorageConfigurationLogSettings:VirtualMachineStorageConfigurationLogSettings",
          "description": "An `storage_settings` as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "storageWorkloadType": {
          "description": "The type of storage workload. Valid values include `GENERAL`, `OLTP`, or `DW`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tempDbSettings": {
          "$ref": "#/types/azure:mssql/VirtualMachineStorageConfigurationTempDbSettings:VirtualMachineStorageConfigurationTempDbSettings",
          "description": "An `storage_settings` as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "diskType",
        "storageWorkloadType"
      ],
      "type": "object"
    },
    "azure:mssql/VirtualMachineStorageConfigurationDataSettings:VirtualMachineStorageConfigurationDataSettings": {
      "properties": {
        "defaultFilePath": {
          "description": "The SQL Server default path\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "luns": {
          "description": "A list of Logical Unit Numbers for the disks.\n",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "defaultFilePath",
        "luns"
      ],
      "type": "object"
    },
    "azure:mssql/VirtualMachineStorageConfigurationLogSettings:VirtualMachineStorageConfigurationLogSettings": {
      "properties": {
        "defaultFilePath": {
          "description": "The SQL Server default path\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "luns": {
          "description": "A list of Logical Unit Numbers for the disks.\n",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "defaultFilePath",
        "luns"
      ],
      "type": "object"
    },
    "azure:mssql/VirtualMachineStorageConfigurationTempDbSettings:VirtualMachineStorageConfigurationTempDbSettings": {
      "properties": {
        "defaultFilePath": {
          "description": "The SQL Server default path\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "luns": {
          "description": "A list of Logical Unit Numbers for the disks.\n",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "defaultFilePath",
        "luns"
      ],
      "type": "object"
    },
    "azure:mssql/getServerIdentity:getServerIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Identity of this SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Identity of this SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The identity type of the Microsoft SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:mysql/ServerIdentity:ServerIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Client ID of the Service Principal assigned to this MySQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant the Service Principal is assigned in.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Identity which should be used for this MySQL Server. At this time the only possible value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:mysql/ServerStorageProfile:ServerStorageProfile": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "autoGrow",
            "backupRetentionDays",
            "geoRedundantBackup"
          ]
        }
      },
      "properties": {
        "autoGrow": {
          "deprecationMessage": "this has been moved to the top level boolean attribute `auto_grow_enabled` and will be removed in version 3.0 of the provider.",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "backupRetentionDays": {
          "deprecationMessage": "this has been moved to the top level and will be removed in version 3.0 of the provider.",
          "description": "Backup retention days for the server, supported values are between `7` and `35` days.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "geoRedundantBackup": {
          "deprecationMessage": "this has been moved to the top level boolean attribute `geo_redundant_backup_enabled` and will be removed in version 3.0 of the provider.",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageMb": {
          "deprecationMessage": "this has been moved to the top level and will be removed in version 3.0 of the provider.",
          "description": "Max storage allowed for a server. Possible values are between `5120` MB(5GB) and `1048576` MB(1TB) for the Basic SKU and between `5120` MB(5GB) and `4194304` MB(4TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/mysql/servers/create#StorageProfile).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:mysql/ServerThreatDetectionPolicy:ServerThreatDetectionPolicy": {
      "properties": {
        "disabledAlerts": {
          "description": "Specifies a list of alerts which should be disabled. Possible values include `Access_Anomaly`, `Sql_Injection` and `Sql_Injection_Vulnerability`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "emailAccountAdmins": {
          "description": "Should the account administrators be emailed when this alert is triggered?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "emailAddresses": {
          "description": "A list of email addresses which alerts should be sent to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enabled": {
          "description": "Is the policy enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "retentionDays": {
          "description": "Specifies the number of days to keep in the Threat Detection audit logs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountAccessKey": {
          "description": "Specifies the identifier key of the Threat Detection audit storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageEndpoint": {
          "description": "Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all Threat Detection audit logs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:mysql/getServerIdentity:getServerIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "principalId": {
          "description": "The Client ID of the Service Principal assigned to this MySQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant the Service Principal is assigned in.\n---\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Identity used for this MySQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:mysql/getServerThreatDetectionPolicy:getServerThreatDetectionPolicy": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "disabledAlerts": {
          "description": "Specifies a list of alerts which should be disabled. Possible values include `Access_Anomaly`, `Sql_Injection` and `Sql_Injection_Vulnerability`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "emailAccountAdmins": {
          "description": "Should the account administrators be emailed when this alert is triggered?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "emailAddresses": {
          "description": "A list of email addresses which alerts should be sent to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enabled": {
          "description": "Is the policy enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "retentionDays": {
          "description": "Specifies the number of days to keep in the Threat Detection audit logs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountAccessKey": {
          "description": "Specifies the identifier key of the Threat Detection audit storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageEndpoint": {
          "description": "Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all Threat Detection audit logs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "disabledAlerts",
        "emailAccountAdmins",
        "emailAddresses",
        "enabled",
        "retentionDays",
        "storageAccountAccessKey",
        "storageEndpoint"
      ],
      "type": "object"
    },
    "azure:netapp/AccountActiveDirectory:AccountActiveDirectory": {
      "properties": {
        "dnsServers": {
          "description": "A list of DNS server IP addresses for the Active Directory domain. Only allows `IPv4` address.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "domain": {
          "description": "The name of the Active Directory domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "organizationalUnit": {
          "description": "The Organizational Unit (OU) within the Active Directory Domain.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "The password associated with the `username`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "smbServerName": {
          "description": "The NetBIOS name which should be used for the NetApp SMB Server, which will be registered as a computer account in the AD and used to mount volumes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "username": {
          "description": "The Username of Active Directory Domain Administrator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "dnsServers",
        "domain",
        "password",
        "smbServerName",
        "username"
      ],
      "type": "object"
    },
    "azure:netapp/VolumeDataProtectionReplication:VolumeDataProtectionReplication": {
      "properties": {
        "endpointType": {
          "description": "The endpoint type, default value is `dst` for destination.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "remoteVolumeLocation": {
          "description": "Location of the primary volume.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "remoteVolumeResourceId": {
          "description": "Resource ID of the primary volume.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "replicationFrequency": {
          "description": "Replication frequency, supported values are '10minutes', 'hourly', 'daily', values are case sensitive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "remoteVolumeLocation",
        "remoteVolumeResourceId",
        "replicationFrequency"
      ],
      "type": "object"
    },
    "azure:netapp/VolumeExportPolicyRule:VolumeExportPolicyRule": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "allowedClients",
            "cifsEnabled",
            "nfsv3Enabled",
            "nfsv4Enabled",
            "protocolsEnabled",
            "ruleIndex"
          ]
        }
      },
      "properties": {
        "allowedClients": {
          "description": "A list of allowed clients IPv4 addresses.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "cifsEnabled": {
          "deprecationMessage": "Deprecated in favour of `protocols_enabled`",
          "description": "Is the CIFS protocol allowed?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "nfsv3Enabled": {
          "deprecationMessage": "Deprecated in favour of `protocols_enabled`",
          "description": "Is the NFSv3 protocol allowed?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "nfsv4Enabled": {
          "deprecationMessage": "Deprecated in favour of `protocols_enabled`",
          "description": "Is the NFSv4 protocol allowed?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "protocolsEnabled": {
          "description": "A list of allowed protocols. Valid values include `CIFS`, `NFSv3`, or `NFSv4.1`. Only one value is supported at this time. This replaces the previous arguments: `cifs_enabled`, `nfsv3_enabled` and `nfsv4_enabled`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rootAccessEnabled": {
          "description": "Is root access permitted to this volume?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "ruleIndex": {
          "description": "The index number of the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "unixReadOnly": {
          "description": "Is the file system on unix read only?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "unixReadWrite": {
          "description": "Is the file system on unix read and write?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "allowedClients",
        "ruleIndex"
      ],
      "type": "object"
    },
    "azure:netapp/getVolumeDataProtectionReplication:getVolumeDataProtectionReplication": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "endpointType": {
          "description": "The endpoint type.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "remoteVolumeLocation": {
          "description": "Location of the primary volume.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "remoteVolumeResourceId": {
          "description": "Resource ID of the primary volume.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "replicationFrequency": {
          "description": "Frequency of replication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "replicationSchedule": {
          "deprecationMessage": "This property is not in use and will be removed in version 3.0 of the provider. Please use `replication_frequency` instead",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "endpointType",
        "remoteVolumeLocation",
        "remoteVolumeResourceId",
        "replicationFrequency",
        "replicationSchedule"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayAuthenticationCertificate:ApplicationGatewayAuthenticationCertificate": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "data",
            "id",
            "name"
          ]
        }
      },
      "properties": {
        "data": {
          "description": "The contents of the Authentication Certificate which should be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Authentication Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "data",
        "name"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayAutoscaleConfiguration:ApplicationGatewayAutoscaleConfiguration": {
      "properties": {
        "maxCapacity": {
          "description": "Maximum capacity for autoscaling. Accepted values are in the range `2` to `125`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "minCapacity": {
          "description": "Minimum capacity for autoscaling. Accepted values are in the range `0` to `100`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "minCapacity"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayBackendAddressPool:ApplicationGatewayBackendAddressPool": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name"
          ]
        }
      },
      "properties": {
        "fqdns": {
          "description": "A list of FQDN's which should be part of the Backend Address Pool.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipAddresses": {
          "description": "A list of IP Addresses which should be part of the Backend Address Pool.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the Backend Address Pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayBackendHttpSetting:ApplicationGatewayBackendHttpSetting": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "cookieBasedAffinity",
            "id",
            "name",
            "port",
            "probeId",
            "protocol"
          ]
        }
      },
      "properties": {
        "affinityCookieName": {
          "description": "The name of the affinity cookie.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "authenticationCertificates": {
          "description": "One or more `authentication_certificate` blocks.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayBackendHttpSettingAuthenticationCertificate:ApplicationGatewayBackendHttpSettingAuthenticationCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "connectionDraining": {
          "$ref": "#/types/azure:network/ApplicationGatewayBackendHttpSettingConnectionDraining:ApplicationGatewayBackendHttpSettingConnectionDraining",
          "description": "A `connection_draining` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "cookieBasedAffinity": {
          "description": "Is Cookie-Based Affinity enabled? Possible values are `Enabled` and `Disabled`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostName": {
          "description": "Host header to be sent to the backend servers. Cannot be set if `pick_host_name_from_backend_address` is set to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Backend HTTP Settings Collection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The Path which should be used as a prefix for all HTTP requests.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pickHostNameFromBackendAddress": {
          "description": "Whether host header should be picked from the host name of the backend server. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "port": {
          "description": "The port which should be used for this Backend HTTP Settings Collection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "probeId": {
          "description": "The ID of the associated Probe.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "probeName": {
          "description": "The name of an associated HTTP Probe.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocol": {
          "description": "The Protocol which should be used. Possible values are `Http` and `Https`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "requestTimeout": {
          "description": "The request timeout in seconds, which must be between 1 and 86400 seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "trustedRootCertificateNames": {
          "description": "A list of `trusted_root_certificate` names.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "cookieBasedAffinity",
        "name",
        "port",
        "protocol"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayBackendHttpSettingAuthenticationCertificate:ApplicationGatewayBackendHttpSettingAuthenticationCertificate": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name"
          ]
        }
      },
      "properties": {
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Authentication Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayBackendHttpSettingConnectionDraining:ApplicationGatewayBackendHttpSettingConnectionDraining": {
      "properties": {
        "drainTimeoutSec": {
          "description": "The number of seconds connection draining is active. Acceptable values are from `1` second to `3600` seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "enabled": {
          "description": "If connection draining is enabled or not.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "drainTimeoutSec",
        "enabled"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayCustomErrorConfiguration:ApplicationGatewayCustomErrorConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "customErrorPageUrl",
            "id",
            "statusCode"
          ]
        }
      },
      "properties": {
        "customErrorPageUrl": {
          "description": "Error page URL of the application gateway customer error.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "statusCode": {
          "description": "Status code of the application gateway customer error. Possible values are `HttpStatus403` and `HttpStatus502`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "customErrorPageUrl",
        "statusCode"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayFrontendIpConfiguration:ApplicationGatewayFrontendIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name",
            "privateIpAddress",
            "privateIpAddressAllocation",
            "publicIpAddressId",
            "subnetId"
          ]
        }
      },
      "properties": {
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Frontend IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddress": {
          "description": "The Private IP Address to use for the Application Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddressAllocation": {
          "description": "The Allocation Method for the Private IP Address. Possible values are `Dynamic` and `Static`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpAddressId": {
          "description": "The ID of a Public IP Address which the Application Gateway should use. The allocation method for the Public IP Address depends on the `sku` of this Application Gateway. Please refer to the [Azure documentation for public IP addresses](https://docs.microsoft.com/en-us/azure/virtual-network/public-ip-addresses#application-gateways) for details.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayFrontendPort:ApplicationGatewayFrontendPort": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name",
            "port"
          ]
        }
      },
      "properties": {
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Frontend Port.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "port": {
          "description": "The port used for this Frontend Port.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "name",
        "port"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayGatewayIpConfiguration:ApplicationGatewayGatewayIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name",
            "subnetId"
          ]
        }
      },
      "properties": {
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of this Gateway IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet which the Application Gateway should be connected to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayHttpListener:ApplicationGatewayHttpListener": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "frontendIpConfigurationId",
            "frontendIpConfigurationName",
            "frontendPortId",
            "frontendPortName",
            "id",
            "name",
            "protocol",
            "sslCertificateId",
            "sslProfileId"
          ]
        }
      },
      "properties": {
        "customErrorConfigurations": {
          "description": "One or more `custom_error_configuration` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayHttpListenerCustomErrorConfiguration:ApplicationGatewayHttpListenerCustomErrorConfiguration"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "firewallPolicyId": {
          "description": "The ID of the Web Application Firewall Policy which should be used for this HTTP Listener.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "frontendIpConfigurationId": {
          "description": "The ID of the associated Frontend Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "frontendIpConfigurationName": {
          "description": "The Name of the Frontend IP Configuration used for this HTTP Listener.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "frontendPortId": {
          "description": "The ID of the associated Frontend Port.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "frontendPortName": {
          "description": "The Name of the Frontend Port use for this HTTP Listener.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostName": {
          "description": "The Hostname which should be used for this HTTP Listener. Setting this value changes Listener Type to 'Multi site'.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostNames": {
          "description": "A list of Hostname(s) should be used for this HTTP Listener. It allows special wildcard characters.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of the HTTP Listener.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocol": {
          "description": "The Protocol to use for this HTTP Listener. Possible values are `Http` and `Https`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "requireSni": {
          "description": "Should Server Name Indication be Required? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "sslCertificateId": {
          "description": "The ID of the associated SSL Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sslCertificateName": {
          "description": "The name of the associated SSL Certificate which should be used for this HTTP Listener.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sslProfileId": {
          "description": "The ID of the associated SSL Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sslProfileName": {
          "description": "The name of the associated SSL Profile which should be used for this HTTP Listener.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "frontendIpConfigurationName",
        "frontendPortName",
        "name",
        "protocol"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayHttpListenerCustomErrorConfiguration:ApplicationGatewayHttpListenerCustomErrorConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "customErrorPageUrl",
            "id",
            "statusCode"
          ]
        }
      },
      "properties": {
        "customErrorPageUrl": {
          "description": "Error page URL of the application gateway customer error.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "statusCode": {
          "description": "Status code of the application gateway customer error. Possible values are `HttpStatus403` and `HttpStatus502`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "customErrorPageUrl",
        "statusCode"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayIdentity:ApplicationGatewayIdentity": {
      "properties": {
        "identityIds": {
          "description": "Specifies a list with a single user managed identity id to be assigned to the Application Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Managed Service Identity Type of this Application Gateway. The only possible value is `UserAssigned`. Defaults to `UserAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "identityIds"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayProbe:ApplicationGatewayProbe": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "interval",
            "match",
            "name",
            "path",
            "protocol",
            "timeout",
            "unhealthyThreshold"
          ]
        }
      },
      "properties": {
        "host": {
          "description": "The Hostname used for this Probe. If the Application Gateway is configured for a single site, by default the Host name should be specified as ‘127.0.0.1’, unless otherwise configured in custom probe. Cannot be set if `pick_host_name_from_backend_http_settings` is set to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "interval": {
          "description": "The Interval between two consecutive probes in seconds. Possible values range from 1 second to a maximum of 86,400 seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "match": {
          "$ref": "#/types/azure:network/ApplicationGatewayProbeMatch:ApplicationGatewayProbeMatch",
          "description": "A `match` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minimumServers": {
          "description": "The minimum number of servers that are always marked as healthy. Defaults to `0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "The Name of the Probe.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The Path used for this Probe.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pickHostNameFromBackendHttpSettings": {
          "description": "Whether the host header should be picked from the backend http settings. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "port": {
          "description": "Custom port which will be used for probing the backend servers. The valid value ranges from 1 to 65535. In case not set, port from http settings will be used. This property is valid for Standard_v2 and WAF_v2 only.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "protocol": {
          "description": "The Protocol used for this Probe. Possible values are `Http` and `Https`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "timeout": {
          "description": "The Timeout used for this Probe, which indicates when a probe becomes unhealthy. Possible values range from 1 second to a maximum of 86,400 seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "unhealthyThreshold": {
          "description": "The Unhealthy Threshold for this Probe, which indicates the amount of retries which should be attempted before a node is deemed unhealthy. Possible values are from 1 - 20 seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "interval",
        "name",
        "path",
        "protocol",
        "timeout",
        "unhealthyThreshold"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayProbeMatch:ApplicationGatewayProbeMatch": {
      "properties": {
        "body": {
          "description": "A snippet from the Response Body which must be present in the Response..\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "statusCodes": {
          "description": "A list of allowed status codes for this Health Probe.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:network/ApplicationGatewayRedirectConfiguration:ApplicationGatewayRedirectConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name",
            "redirectType",
            "targetListenerId"
          ]
        }
      },
      "properties": {
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "includePath": {
          "description": "Whether or not to include the path in the redirected Url. Defaults to `false`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "includeQueryString": {
          "description": "Whether or not to include the query string in the redirected Url. Default to `false`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "name": {
          "description": "Unique name of the redirect configuration block\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "redirectType": {
          "description": "The type of redirect. Possible values are `Permanent`, `Temporary`, `Found` and `SeeOther`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetListenerId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetListenerName": {
          "description": "The name of the listener to redirect to. Cannot be set if `target_url` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetUrl": {
          "description": "The Url to redirect the request to. Cannot be set if `target_listener_name` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "redirectType"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayRequestRoutingRule:ApplicationGatewayRequestRoutingRule": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "backendAddressPoolId",
            "backendHttpSettingsId",
            "httpListenerId",
            "httpListenerName",
            "id",
            "name",
            "redirectConfigurationId",
            "rewriteRuleSetId",
            "ruleType",
            "urlPathMapId"
          ]
        }
      },
      "properties": {
        "backendAddressPoolId": {
          "description": "The ID of the associated Backend Address Pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "backendAddressPoolName": {
          "description": "The Name of the Backend Address Pool which should be used for this Routing Rule. Cannot be set if `redirect_configuration_name` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "backendHttpSettingsId": {
          "description": "The ID of the associated Backend HTTP Settings Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "backendHttpSettingsName": {
          "description": "The Name of the Backend HTTP Settings Collection which should be used for this Routing Rule. Cannot be set if `redirect_configuration_name` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "httpListenerId": {
          "description": "The ID of the associated HTTP Listener.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "httpListenerName": {
          "description": "The Name of the HTTP Listener which should be used for this Routing Rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of this Request Routing Rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "redirectConfigurationId": {
          "description": "The ID of the associated Redirect Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "redirectConfigurationName": {
          "description": "The Name of the Redirect Configuration which should be used for this Routing Rule. Cannot be set if either `backend_address_pool_name` or `backend_http_settings_name` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rewriteRuleSetId": {
          "description": "The ID of the associated Rewrite Rule Set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rewriteRuleSetName": {
          "description": "The Name of the Rewrite Rule Set which should be used for this Routing Rule. Only valid for v2 SKUs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ruleType": {
          "description": "The Type of Routing that should be used for this Rule. Possible values are `Basic` and `PathBasedRouting`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "urlPathMapId": {
          "description": "The ID of the associated URL Path Map.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "urlPathMapName": {
          "description": "The Name of the URL Path Map which should be associated with this Routing Rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "httpListenerName",
        "name",
        "ruleType"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayRewriteRuleSet:ApplicationGatewayRewriteRuleSet": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name"
          ]
        }
      },
      "properties": {
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Unique name of the rewrite rule set block\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rewriteRules": {
          "description": "One or more `rewrite_rule` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayRewriteRuleSetRewriteRule:ApplicationGatewayRewriteRuleSetRewriteRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayRewriteRuleSetRewriteRule:ApplicationGatewayRewriteRuleSetRewriteRule": {
      "properties": {
        "conditions": {
          "description": "One or more `condition` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayRewriteRuleSetRewriteRuleCondition:ApplicationGatewayRewriteRuleSetRewriteRuleCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "Unique name of the rewrite rule block\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "requestHeaderConfigurations": {
          "description": "One or more `request_header_configuration` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayRewriteRuleSetRewriteRuleRequestHeaderConfiguration:ApplicationGatewayRewriteRuleSetRewriteRuleRequestHeaderConfiguration"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "responseHeaderConfigurations": {
          "description": "One or more `response_header_configuration` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayRewriteRuleSetRewriteRuleResponseHeaderConfiguration:ApplicationGatewayRewriteRuleSetRewriteRuleResponseHeaderConfiguration"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ruleSequence": {
          "description": "Rule sequence of the rewrite rule that determines the order of execution in a set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "url": {
          "$ref": "#/types/azure:network/ApplicationGatewayRewriteRuleSetRewriteRuleUrl:ApplicationGatewayRewriteRuleSetRewriteRuleUrl",
          "description": "One `url` block as defined above\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "name",
        "ruleSequence"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayRewriteRuleSetRewriteRuleCondition:ApplicationGatewayRewriteRuleSetRewriteRuleCondition": {
      "properties": {
        "ignoreCase": {
          "description": "Perform a case in-sensitive comparison. Defaults to `false`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "negate": {
          "description": "Negate the result of the condition evaluation. Defaults to `false`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "pattern": {
          "description": "The pattern, either fixed string or regular expression, that evaluates the truthfulness of the condition.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "variable": {
          "description": "The [variable](https://docs.microsoft.com/en-us/azure/application-gateway/rewrite-http-headers#server-variables) of the condition.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "pattern",
        "variable"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayRewriteRuleSetRewriteRuleRequestHeaderConfiguration:ApplicationGatewayRewriteRuleSetRewriteRuleRequestHeaderConfiguration": {
      "properties": {
        "headerName": {
          "description": "Header name of the header configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headerValue": {
          "description": "Header value of the header configuration. To delete a request header set this property to an empty string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "headerName",
        "headerValue"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayRewriteRuleSetRewriteRuleResponseHeaderConfiguration:ApplicationGatewayRewriteRuleSetRewriteRuleResponseHeaderConfiguration": {
      "properties": {
        "headerName": {
          "description": "Header name of the header configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "headerValue": {
          "description": "Header value of the header configuration. To delete a response header set this property to an empty string.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "headerName",
        "headerValue"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayRewriteRuleSetRewriteRuleUrl:ApplicationGatewayRewriteRuleSetRewriteRuleUrl": {
      "properties": {
        "path": {
          "description": "The URL path to rewrite.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "queryString": {
          "description": "The query string to rewrite.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "reroute": {
          "description": "Whether the URL path map should be reevaluated after this rewrite has been applied. [More info on rewrite configutation](https://docs.microsoft.com/en-us/azure/application-gateway/rewrite-http-headers-url#rewrite-configuration)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:network/ApplicationGatewaySku:ApplicationGatewaySku": {
      "properties": {
        "capacity": {
          "description": "The Capacity of the SKU to use for this Application Gateway. When using a V1 SKU this value must be between 1 and 32, and 1 to 125 for a V2 SKU. This property is optional if `autoscale_configuration` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "The Name of the SKU to use for this Application Gateway. Possible values are `Standard_Small`, `Standard_Medium`, `Standard_Large`, `Standard_v2`, `WAF_Medium`, `WAF_Large`, and `WAF_v2`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tier": {
          "description": "The Tier of the SKU to use for this Application Gateway. Possible values are `Standard`, `Standard_v2`, `WAF` and `WAF_v2`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "tier"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewaySslCertificate:ApplicationGatewaySslCertificate": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name",
            "publicCertData"
          ]
        }
      },
      "properties": {
        "data": {
          "description": "PFX certificate. Required if `key_vault_secret_id` is not set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyVaultSecretId": {
          "description": "Secret Id of (base-64 encoded unencrypted pfx) `Secret` or `Certificate` object stored in Azure KeyVault. You need to enable soft delete for keyvault to use this feature. Required if `data` is not set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of the SSL certificate that is unique within this Application Gateway\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "password": {
          "description": "Password for the pfx file specified in data.  Required if `data` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicCertData": {
          "description": "The Public Certificate Data associated with the SSL Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewaySslPolicy:ApplicationGatewaySslPolicy": {
      "properties": {
        "cipherSuites": {
          "description": "A List of accepted cipher suites. Possible values are: `TLS_DHE_DSS_WITH_AES_128_CBC_SHA`, `TLS_DHE_DSS_WITH_AES_128_CBC_SHA256`, `TLS_DHE_DSS_WITH_AES_256_CBC_SHA`, `TLS_DHE_DSS_WITH_AES_256_CBC_SHA256`, `TLS_DHE_RSA_WITH_AES_128_CBC_SHA`, `TLS_DHE_RSA_WITH_AES_128_GCM_SHA256`, `TLS_DHE_RSA_WITH_AES_256_CBC_SHA`, `TLS_DHE_RSA_WITH_AES_256_GCM_SHA384`, `TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA`, `TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256`, `TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`, `TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA`, `TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384`, `TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384`, `TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA`, `TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256`, `TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA`, `TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384`, `TLS_RSA_WITH_3DES_EDE_CBC_SHA`, `TLS_RSA_WITH_AES_128_CBC_SHA`, `TLS_RSA_WITH_AES_128_CBC_SHA256`, `TLS_RSA_WITH_AES_128_GCM_SHA256`, `TLS_RSA_WITH_AES_256_CBC_SHA`, `TLS_RSA_WITH_AES_256_CBC_SHA256` and `TLS_RSA_WITH_AES_256_GCM_SHA384`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "disabledProtocols": {
          "description": "A list of SSL Protocols which should be disabled on this Application Gateway. Possible values are `TLSv1_0`, `TLSv1_1` and `TLSv1_2`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "minProtocolVersion": {
          "description": "The minimal TLS version. Possible values are `TLSv1_0`, `TLSv1_1` and `TLSv1_2`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "policyName": {
          "description": "The Name of the Policy e.g AppGwSslPolicy20170401S. Required if `policy_type` is set to `Predefined`. Possible values can change over time and\nare published here https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-ssl-policy-overview. Not compatible with `disabled_protocols`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "policyType": {
          "description": "The Type of the Policy. Possible values are `Predefined` and `Custom`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:network/ApplicationGatewaySslProfile:ApplicationGatewaySslProfile": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name"
          ]
        }
      },
      "properties": {
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the SSL Profile that is unique within this Application Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sslPolicies": {
          "description": "a `ssl policy` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewaySslProfileSslPolicy:ApplicationGatewaySslProfileSslPolicy"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "trustedClientCertificateNames": {
          "description": "The name of the Trusted Client Certificate that will be used to authenticate requests from clients.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "verifyClientCertIssuerDn": {
          "description": "Should client certificate issuer DN be verified?  Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewaySslProfileSslPolicy:ApplicationGatewaySslProfileSslPolicy": {
      "properties": {
        "cipherSuites": {
          "description": "A List of accepted cipher suites. Possible values are: `TLS_DHE_DSS_WITH_AES_128_CBC_SHA`, `TLS_DHE_DSS_WITH_AES_128_CBC_SHA256`, `TLS_DHE_DSS_WITH_AES_256_CBC_SHA`, `TLS_DHE_DSS_WITH_AES_256_CBC_SHA256`, `TLS_DHE_RSA_WITH_AES_128_CBC_SHA`, `TLS_DHE_RSA_WITH_AES_128_GCM_SHA256`, `TLS_DHE_RSA_WITH_AES_256_CBC_SHA`, `TLS_DHE_RSA_WITH_AES_256_GCM_SHA384`, `TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA`, `TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256`, `TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`, `TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA`, `TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384`, `TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384`, `TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA`, `TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256`, `TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA`, `TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384`, `TLS_RSA_WITH_3DES_EDE_CBC_SHA`, `TLS_RSA_WITH_AES_128_CBC_SHA`, `TLS_RSA_WITH_AES_128_CBC_SHA256`, `TLS_RSA_WITH_AES_128_GCM_SHA256`, `TLS_RSA_WITH_AES_256_CBC_SHA`, `TLS_RSA_WITH_AES_256_CBC_SHA256` and `TLS_RSA_WITH_AES_256_GCM_SHA384`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "disabledProtocols": {
          "description": "A list of SSL Protocols which should be disabled on this Application Gateway. Possible values are `TLSv1_0`, `TLSv1_1` and `TLSv1_2`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "minProtocolVersion": {
          "description": "The minimal TLS version. Possible values are `TLSv1_0`, `TLSv1_1` and `TLSv1_2`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "policyName": {
          "description": "The Name of the Policy e.g AppGwSslPolicy20170401S. Required if `policy_type` is set to `Predefined`. Possible values can change over time and\nare published here https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-ssl-policy-overview. Not compatible with `disabled_protocols`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "policyType": {
          "description": "The Type of the Policy. Possible values are `Predefined` and `Custom`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:network/ApplicationGatewayTrustedClientCertificate:ApplicationGatewayTrustedClientCertificate": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "data",
            "id",
            "name"
          ]
        }
      },
      "properties": {
        "data": {
          "description": "The base-64 encoded certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Trusted Client Certificate that is unique within this Application Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "data",
        "name"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayTrustedRootCertificate:ApplicationGatewayTrustedRootCertificate": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "data",
            "id",
            "name"
          ]
        }
      },
      "properties": {
        "data": {
          "description": "The contents of the Trusted Root Certificate which should be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of the Trusted Root Certificate to use.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "data",
        "name"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayUrlPathMap:ApplicationGatewayUrlPathMap": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "defaultBackendAddressPoolId",
            "defaultBackendHttpSettingsId",
            "defaultRedirectConfigurationId",
            "defaultRewriteRuleSetId",
            "id",
            "name",
            "pathRules"
          ]
        }
      },
      "properties": {
        "defaultBackendAddressPoolId": {
          "description": "The ID of the Default Backend Address Pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "defaultBackendAddressPoolName": {
          "description": "The Name of the Default Backend Address Pool which should be used for this URL Path Map. Cannot be set if `default_redirect_configuration_name` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "defaultBackendHttpSettingsId": {
          "description": "The ID of the Default Backend HTTP Settings Collection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "defaultBackendHttpSettingsName": {
          "description": "The Name of the Default Backend HTTP Settings Collection which should be used for this URL Path Map. Cannot be set if `default_redirect_configuration_name` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "defaultRedirectConfigurationId": {
          "description": "The ID of the Default Redirect Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "defaultRedirectConfigurationName": {
          "description": "The Name of the Default Redirect Configuration which should be used for this URL Path Map. Cannot be set if either `default_backend_address_pool_name` or `default_backend_http_settings_name` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "defaultRewriteRuleSetId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "defaultRewriteRuleSetName": {
          "description": "The Name of the Default Rewrite Rule Set which should be used for this URL Path Map. Only valid for v2 SKUs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of the URL Path Map.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pathRules": {
          "description": "One or more `path_rule` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayUrlPathMapPathRule:ApplicationGatewayUrlPathMapPathRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "pathRules"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayUrlPathMapPathRule:ApplicationGatewayUrlPathMapPathRule": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "backendAddressPoolId",
            "backendHttpSettingsId",
            "id",
            "name",
            "paths",
            "redirectConfigurationId",
            "rewriteRuleSetId"
          ]
        }
      },
      "properties": {
        "backendAddressPoolId": {
          "description": "The ID of the associated Backend Address Pool.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "backendAddressPoolName": {
          "description": "The Name of the Backend Address Pool to use for this Path Rule. Cannot be set if `redirect_configuration_name` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "backendHttpSettingsId": {
          "description": "The ID of the associated Backend HTTP Settings Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "backendHttpSettingsName": {
          "description": "The Name of the Backend HTTP Settings Collection to use for this Path Rule. Cannot be set if `redirect_configuration_name` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "firewallPolicyId": {
          "description": "The ID of the Web Application Firewall Policy which should be used as a HTTP Listener.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Rewrite Rule Set\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of the Path Rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "paths": {
          "description": "A list of Paths used in this Path Rule.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "redirectConfigurationId": {
          "description": "The ID of the associated Redirect Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "redirectConfigurationName": {
          "description": "The Name of a Redirect Configuration to use for this Path Rule. Cannot be set if `backend_address_pool_name` or `backend_http_settings_name` is set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rewriteRuleSetId": {
          "description": "The ID of the associated Rewrite Rule Set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rewriteRuleSetName": {
          "description": "The Name of the Rewrite Rule Set which should be used for this URL Path Map. Only valid for v2 SKUs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "paths"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayWafConfiguration:ApplicationGatewayWafConfiguration": {
      "properties": {
        "disabledRuleGroups": {
          "description": "one or more `disabled_rule_group` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayWafConfigurationDisabledRuleGroup:ApplicationGatewayWafConfigurationDisabledRuleGroup"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enabled": {
          "description": "Is the Web Application Firewall be enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "exclusions": {
          "description": "one or more `exclusion` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/ApplicationGatewayWafConfigurationExclusion:ApplicationGatewayWafConfigurationExclusion"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "fileUploadLimitMb": {
          "description": "The File Upload Limit in MB. Accepted values are in the range `1`MB to `750`MB for the `WAF_v2` SKU, and `1`MB to `500`MB for all other SKUs. Defaults to `100`MB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "firewallMode": {
          "description": "The Web Application Firewall Mode. Possible values are `Detection` and `Prevention`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxRequestBodySizeKb": {
          "description": "The Maximum Request Body Size in KB.  Accepted values are in the range `1`KB to `128`KB.  Defaults to `128`KB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "requestBodyCheck": {
          "description": "Is Request Body Inspection enabled?  Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "ruleSetType": {
          "description": "The Type of the Rule Set used for this Web Application Firewall. Currently, only `OWASP` is supported.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ruleSetVersion": {
          "description": "The Version of the Rule Set used for this Web Application Firewall. Possible values are `2.2.9`, `3.0`, and `3.1`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "firewallMode",
        "ruleSetVersion"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayWafConfigurationDisabledRuleGroup:ApplicationGatewayWafConfigurationDisabledRuleGroup": {
      "properties": {
        "ruleGroupName": {
          "description": "The rule group where specific rules should be disabled. Accepted values are:  `crs_20_protocol_violations`, `crs_21_protocol_anomalies`, `crs_23_request_limits`, `crs_30_http_policy`, `crs_35_bad_robots`, `crs_40_generic_attacks`, `crs_41_sql_injection_attacks`, `crs_41_xss_attacks`, `crs_42_tight_security`, `crs_45_trojans`, `General`, `REQUEST-911-METHOD-ENFORCEMENT`, `REQUEST-913-SCANNER-DETECTION`, `REQUEST-920-PROTOCOL-ENFORCEMENT`, `REQUEST-921-PROTOCOL-ATTACK`, `REQUEST-930-APPLICATION-ATTACK-LFI`, `REQUEST-931-APPLICATION-ATTACK-RFI`, `REQUEST-932-APPLICATION-ATTACK-RCE`, `REQUEST-933-APPLICATION-ATTACK-PHP`, `REQUEST-941-APPLICATION-ATTACK-XSS`, `REQUEST-942-APPLICATION-ATTACK-SQLI`, `REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rules": {
          "description": "A list of rules which should be disabled in that group. Disables all rules in the specified group if `rules` is not specified.\n",
          "items": {
            "type": "integer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "ruleGroupName"
      ],
      "type": "object"
    },
    "azure:network/ApplicationGatewayWafConfigurationExclusion:ApplicationGatewayWafConfigurationExclusion": {
      "properties": {
        "matchVariable": {
          "description": "Match variable of the exclusion rule to exclude header, cookie or GET arguments. Possible values are `RequestHeaderNames`, `RequestArgNames` and `RequestCookieNames`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "selector": {
          "description": "String value which will be used for the filter operation. If empty will exclude all traffic on this `match_variable`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "selectorMatchOperator": {
          "description": "Operator which will be used to search in the variable content. Possible values are `Equals`, `StartsWith`, `EndsWith`, `Contains`. If empty will exclude all traffic on this `match_variable`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "matchVariable"
      ],
      "type": "object"
    },
    "azure:network/ExpressRouteCircuitPeeringIpv6:ExpressRouteCircuitPeeringIpv6": {
      "properties": {
        "microsoftPeering": {
          "$ref": "#/types/azure:network/ExpressRouteCircuitPeeringIpv6MicrosoftPeering:ExpressRouteCircuitPeeringIpv6MicrosoftPeering",
          "description": "A `microsoft_peering` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "primaryPeerAddressPrefix": {
          "description": "A subnet for the primary link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "routeFilterId": {
          "description": "The ID of the Route Filter. Only available when `peering_type` is set to `MicrosoftPeering`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secondaryPeerAddressPrefix": {
          "description": "A subnet for the secondary link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "microsoftPeering",
        "primaryPeerAddressPrefix",
        "secondaryPeerAddressPrefix"
      ],
      "type": "object"
    },
    "azure:network/ExpressRouteCircuitPeeringIpv6MicrosoftPeering:ExpressRouteCircuitPeeringIpv6MicrosoftPeering": {
      "properties": {
        "advertisedPublicPrefixes": {
          "description": "A list of Advertised Public Prefixes.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "customerAsn": {
          "description": "The CustomerASN of the peering.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "routingRegistryName": {
          "description": "The Routing Registry against which the AS number and prefixes are registered. For example:  `ARIN`, `RIPE`, `AFRINIC` etc.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:network/ExpressRouteCircuitPeeringMicrosoftPeeringConfig:ExpressRouteCircuitPeeringMicrosoftPeeringConfig": {
      "properties": {
        "advertisedPublicPrefixes": {
          "description": "A list of Advertised Public Prefixes.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "customerAsn": {
          "description": "The CustomerASN of the peering.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "routingRegistryName": {
          "description": "The Routing Registry against which the AS number and prefixes are registered. For example:  `ARIN`, `RIPE`, `AFRINIC` etc.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "advertisedPublicPrefixes"
      ],
      "type": "object"
    },
    "azure:network/ExpressRouteCircuitSku:ExpressRouteCircuitSku": {
      "properties": {
        "family": {
          "description": "The billing mode for bandwidth. Possible values are `MeteredData` or `UnlimitedData`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tier": {
          "description": "The service tier. Possible values are `Basic`, `Local`, `Standard` or `Premium`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "family",
        "tier"
      ],
      "type": "object"
    },
    "azure:network/ExpressRouteConnectionRouting:ExpressRouteConnectionRouting": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "associatedRouteTableId",
            "propagatedRouteTable"
          ]
        }
      },
      "properties": {
        "associatedRouteTableId": {
          "description": "The ID of the Virtual Hub Route Table associated with this Express Route Connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "propagatedRouteTable": {
          "$ref": "#/types/azure:network/ExpressRouteConnectionRoutingPropagatedRouteTable:ExpressRouteConnectionRoutingPropagatedRouteTable",
          "description": "A `propagated_route_table` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:network/ExpressRouteConnectionRoutingPropagatedRouteTable:ExpressRouteConnectionRoutingPropagatedRouteTable": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "labels",
            "routeTableIds"
          ]
        }
      },
      "properties": {
        "labels": {
          "description": "The list of labels to logically group route tables.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "routeTableIds": {
          "description": "A list of IDs of the Virtual Hub Route Table to propagate routes from Express Route Connection to the route table.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:network/ExpressRoutePortIdentity:ExpressRoutePortIdentity": {
      "properties": {
        "identityIds": {
          "description": "Specifies a list with a single user managed identity id to be assigned to the Express Route Port. Currently, exactly one id is allowed to specify.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "type": {
          "description": "The type of the identity used for the Express Route Port. Currently, the only possible values is `UserAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:network/ExpressRoutePortLink1:ExpressRoutePortLink1": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "connectorType",
            "id",
            "interfaceName",
            "patchPanelId",
            "rackId",
            "routerName"
          ]
        }
      },
      "properties": {
        "adminEnabled": {
          "description": "Whether enable administration state on the Express Route Port Link? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "connectorType": {
          "description": "The connector type of the Express Route Port Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of this Express Route Port Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "interfaceName": {
          "description": "The interface name of the Azure router associated with the Express Route Port Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "macsecCakKeyvaultSecretId": {
          "description": "The ID of the Key Vault Secret that contains the Mac security CAK key for this Express Route Port Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "macsecCipher": {
          "description": "The MACSec cipher used for this Express Route Port Link. Possible values are `GcmAes128` and `GcmAes256`. Defaults to `GcmAes128`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "macsecCknKeyvaultSecretId": {
          "description": "The ID of the Key Vault Secret that contains the MACSec CKN key for this Express Route Port Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "patchPanelId": {
          "description": "The ID that maps from the Express Route Port Link to the patch panel port.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rackId": {
          "description": "The ID that maps from the patch panel port to the rack.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "routerName": {
          "description": "The name of the Azure router associated with the Express Route Port Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:network/ExpressRoutePortLink2:ExpressRoutePortLink2": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "connectorType",
            "id",
            "interfaceName",
            "patchPanelId",
            "rackId",
            "routerName"
          ]
        }
      },
      "properties": {
        "adminEnabled": {
          "description": "Whether enable administration state on the Express Route Port Link? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "connectorType": {
          "description": "The connector type of the Express Route Port Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of this Express Route Port Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "interfaceName": {
          "description": "The interface name of the Azure router associated with the Express Route Port Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "macsecCakKeyvaultSecretId": {
          "description": "The ID of the Key Vault Secret that contains the Mac security CAK key for this Express Route Port Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "macsecCipher": {
          "description": "The MACSec cipher used for this Express Route Port Link. Possible values are `GcmAes128` and `GcmAes256`. Defaults to `GcmAes128`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "macsecCknKeyvaultSecretId": {
          "description": "The ID of the Key Vault Secret that contains the MACSec CKN key for this Express Route Port Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "patchPanelId": {
          "description": "The ID that maps from the Express Route Port Link to the patch panel port.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rackId": {
          "description": "The ID that maps from the patch panel port to the rack.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "routerName": {
          "description": "The name of the Azure router associated with the Express Route Port Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:network/FirewallApplicationRuleCollectionRule:FirewallApplicationRuleCollectionRule": {
      "properties": {
        "description": {
          "description": "Specifies a description for the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fqdnTags": {
          "description": "A list of FQDN tags. Possible values are `AppServiceEnvironment`, `AzureBackup`, `AzureKubernetesService`, `HDInsight`, `MicrosoftActiveProtectionService`, `WindowsDiagnostics`, `WindowsUpdate` and `WindowsVirtualDesktop`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocols": {
          "description": "One or more `protocol` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallApplicationRuleCollectionRuleProtocol:FirewallApplicationRuleCollectionRuleProtocol"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceAddresses": {
          "description": "A list of source IP addresses and/or IP ranges.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceIpGroups": {
          "description": "A list of source IP Group IDs for the rule.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "targetFqdns": {
          "description": "A list of FQDNs.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:network/FirewallApplicationRuleCollectionRuleProtocol:FirewallApplicationRuleCollectionRuleProtocol": {
      "properties": {
        "port": {
          "description": "Specify a port for the connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "type": {
          "description": "Specifies the type of connection. Possible values are `Http`, `Https` and `Mssql`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:network/FirewallIpConfiguration:FirewallIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "privateIpAddress",
            "publicIpAddressId"
          ]
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddress": {
          "description": "The private IP address associated with the Firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpAddressId": {
          "description": "The ID of the Public IP Address associated with the firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "Reference to the subnet associated with the IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "publicIpAddressId"
      ],
      "type": "object"
    },
    "azure:network/FirewallManagementIpConfiguration:FirewallManagementIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "privateIpAddress",
            "publicIpAddressId",
            "subnetId"
          ]
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddress": {
          "description": "The private IP address associated with the Firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpAddressId": {
          "description": "The ID of the Public IP Address associated with the firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "Reference to the subnet associated with the IP Configuration. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "publicIpAddressId",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:network/FirewallNatRuleCollectionRule:FirewallNatRuleCollectionRule": {
      "properties": {
        "description": {
          "description": "Specifies a description for the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "destinationAddresses": {
          "description": "A list of destination IP addresses and/or IP ranges.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationPorts": {
          "description": "A list of destination ports.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocols": {
          "description": "A list of protocols. Possible values are `Any`, `ICMP`, `TCP` and `UDP`.  If `action` is `Dnat`, protocols can only be `TCP` and `UDP`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceAddresses": {
          "description": "A list of source IP addresses and/or IP ranges.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceIpGroups": {
          "description": "A list of source IP Group IDs for the rule.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "translatedAddress": {
          "description": "The address of the service behind the Firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "translatedPort": {
          "description": "The port of the service behind the Firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "destinationAddresses",
        "destinationPorts",
        "name",
        "protocols",
        "translatedAddress",
        "translatedPort"
      ],
      "type": "object"
    },
    "azure:network/FirewallNetworkRuleCollectionRule:FirewallNetworkRuleCollectionRule": {
      "properties": {
        "description": {
          "description": "Specifies a description for the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "destinationAddresses": {
          "description": "Either a list of destination IP addresses and/or IP ranges, or a list of destination [Service Tags](https://docs.microsoft.com/en-us/azure/virtual-network/service-tags-overview#available-service-tags).\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationFqdns": {
          "description": "A list of destination FQDNS for the rule.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationIpGroups": {
          "description": "A list of destination IP Group IDs for the rule.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationPorts": {
          "description": "A list of destination ports.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocols": {
          "description": "A list of protocols. Possible values are `Any`, `ICMP`, `TCP` and `UDP`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceAddresses": {
          "description": "A list of source IP addresses and/or IP ranges.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceIpGroups": {
          "description": "A list of IP Group IDs for the rule.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "destinationPorts",
        "name",
        "protocols"
      ],
      "type": "object"
    },
    "azure:network/FirewallPolicyDns:FirewallPolicyDns": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "networkRuleFqdnEnabled"
          ]
        }
      },
      "properties": {
        "networkRuleFqdnEnabled": {
          "deprecationMessage": "This property has been deprecated as the service team has removed it from all API versions and is no longer supported by Azure. It will be removed in v3.0 of the provider.",
          "description": "Should the network rule fqdn be enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "proxyEnabled": {
          "description": "Whether to enable DNS proxy on Firewalls attached to this Firewall Policy? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "servers": {
          "description": "A list of custom DNS servers' IP addresses.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:network/FirewallPolicyIdentity:FirewallPolicyIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Type of the identity. At the moment only \"UserAssigned\" is supported. Changing this forces a new Firewall Policy to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "userAssignedIdentityIds": {
          "description": "Specifies a list of user assigned managed identities.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:network/FirewallPolicyIntrusionDetection:FirewallPolicyIntrusionDetection": {
      "properties": {
        "mode": {
          "description": "In which mode you want to run intrusion detection: \"Off\", \"Alert\" or \"Deny\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "signatureOverrides": {
          "description": "One or more `signature_overrides` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallPolicyIntrusionDetectionSignatureOverride:FirewallPolicyIntrusionDetectionSignatureOverride"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "trafficBypasses": {
          "description": "One or more `traffic_bypass` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallPolicyIntrusionDetectionTrafficBypass:FirewallPolicyIntrusionDetectionTrafficBypass"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:network/FirewallPolicyIntrusionDetectionSignatureOverride:FirewallPolicyIntrusionDetectionSignatureOverride": {
      "properties": {
        "id": {
          "description": "12-digit number (id) which identifies your signature.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "state": {
          "description": "state can be any of \"Off\", \"Alert\" or \"Deny\".\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:network/FirewallPolicyIntrusionDetectionTrafficBypass:FirewallPolicyIntrusionDetectionTrafficBypass": {
      "properties": {
        "description": {
          "description": "The description for this bypass traffic setting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "destinationAddresses": {
          "description": "Specifies a list of destination IP addresses that shall be bypassed by intrusion detection.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationIpGroups": {
          "description": "Specifies a list of destination IP groups that shall be bypassed by intrusion detection.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationPorts": {
          "description": "Specifies a list of destination IP ports that shall be bypassed by intrusion detection.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this bypass traffic setting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocol": {
          "description": "The protocols any of \"ANY\", \"TCP\", \"ICMP\", \"UDP\" that shall be bypassed by intrusion detection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceAddresses": {
          "description": "Specifies a list of source addresses that shall be bypassed by intrusion detection.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceIpGroups": {
          "description": "Specifies a list of source ip groups that shall be bypassed by intrusion detection.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "protocol"
      ],
      "type": "object"
    },
    "azure:network/FirewallPolicyRuleCollectionGroupApplicationRuleCollection:FirewallPolicyRuleCollectionGroupApplicationRuleCollection": {
      "properties": {
        "action": {
          "description": "The action to take for the application rules in this collection. Possible values are `Allow` and `Deny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this application rule collection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority of the application rule collection. The range is `100` - `65000`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "rules": {
          "description": "One or more `rule` (application rule) blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRule:FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "action",
        "name",
        "priority",
        "rules"
      ],
      "type": "object"
    },
    "azure:network/FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRule:FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRule": {
      "properties": {
        "description": {
          "description": "The description which should be used for this rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "destinationAddresses": {
          "description": "Specifies a list of destination IP addresses (including CIDR and `*`) or Service Tags.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationFqdnTags": {
          "description": "Specifies a list of destination FQDN tags.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationFqdns": {
          "description": "Specifies a list of destination FQDNs.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationUrls": {
          "description": "Specifies a list of destination URLs for which policy should hold. Needs Premium SKU for Firewall Policy. Conflicts with `destination_fqdns`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocols": {
          "description": "Specifies a list of network protocols this rule applies to. Possible values are `TCP`, `UDP`.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleProtocol:FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleProtocol"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceAddresses": {
          "description": "Specifies a list of source IP addresses (including CIDR and `*`).\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceIpGroups": {
          "description": "Specifies a list of source IP groups.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "terminateTls": {
          "description": "Boolean specifying if TLS shall be terminated (true) or not (false). Needs Premium SKU for Firewall Policy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "webCategories": {
          "description": "Specifies a list of web categories to which access is denied or allowed depending on the value of `action` above. Needs Premium SKU for Firewall Policy.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:network/FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleProtocol:FirewallPolicyRuleCollectionGroupApplicationRuleCollectionRuleProtocol": {
      "properties": {
        "port": {
          "description": "Port number of the protocol. Range is 0-64000.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "type": {
          "description": "Protocol type. Possible values are `Http` and `Https`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "port",
        "type"
      ],
      "type": "object"
    },
    "azure:network/FirewallPolicyRuleCollectionGroupNatRuleCollection:FirewallPolicyRuleCollectionGroupNatRuleCollection": {
      "properties": {
        "action": {
          "description": "The action to take for the nat rules in this collection. Currently, the only possible value is `Dnat`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this nat rule collection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority of the nat rule collection. The range is `100` - `65000`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "rules": {
          "description": "A `rule` (nat rule) block as defined above.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallPolicyRuleCollectionGroupNatRuleCollectionRule:FirewallPolicyRuleCollectionGroupNatRuleCollectionRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "action",
        "name",
        "priority",
        "rules"
      ],
      "type": "object"
    },
    "azure:network/FirewallPolicyRuleCollectionGroupNatRuleCollectionRule:FirewallPolicyRuleCollectionGroupNatRuleCollectionRule": {
      "properties": {
        "destinationAddress": {
          "description": "The destination IP address (including CIDR).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "destinationPorts": {
          "description": "Specifies a list of destination ports.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocols": {
          "description": "Specifies a list of network protocols this rule applies to. Possible values are `TCP`, `UDP`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceAddresses": {
          "description": "Specifies a list of source IP addresses (including CIDR and `*`).\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceIpGroups": {
          "description": "Specifies a list of source IP groups.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "translatedAddress": {
          "description": "Specifies the translated address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "translatedPort": {
          "description": "Specifies the translated port.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "name",
        "protocols",
        "translatedAddress",
        "translatedPort"
      ],
      "type": "object"
    },
    "azure:network/FirewallPolicyRuleCollectionGroupNetworkRuleCollection:FirewallPolicyRuleCollectionGroupNetworkRuleCollection": {
      "properties": {
        "action": {
          "description": "The action to take for the network rules in this collection. Possible values are `Allow` and `Deny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this network rule collection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority of the network rule collection. The range is `100` - `65000`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "rules": {
          "description": "One or more `rule` (network rule) blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:network/FirewallPolicyRuleCollectionGroupNetworkRuleCollectionRule:FirewallPolicyRuleCollectionGroupNetworkRuleCollectionRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "action",
        "name",
        "priority",
        "rules"
      ],
      "type": "object"
    },
    "azure:network/FirewallPolicyRuleCollectionGroupNetworkRuleCollectionRule:FirewallPolicyRuleCollectionGroupNetworkRuleCollectionRule": {
      "properties": {
        "destinationAddresses": {
          "description": "Specifies a list of destination IP addresses (including CIDR and `*`) or Service Tags.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationFqdns": {
          "description": "Specifies a list of destination FQDNs.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationIpGroups": {
          "description": "Specifies a list of destination IP groups.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationPorts": {
          "description": "Specifies a list of destination ports.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocols": {
          "description": "Specifies a list of network protocols this rule applies to. Possible values are `TCP`, `UDP`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceAddresses": {
          "description": "Specifies a list of source IP addresses (including CIDR and `*`).\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceIpGroups": {
          "description": "Specifies a list of source IP groups.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "destinationPorts",
        "name",
        "protocols"
      ],
      "type": "object"
    },
    "azure:network/FirewallPolicyThreatIntelligenceAllowlist:FirewallPolicyThreatIntelligenceAllowlist": {
      "properties": {
        "fqdns": {
          "description": "A list of FQDNs that will be skipped for threat detection.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ipAddresses": {
          "description": "A list of IP addresses or IP address ranges that will be skipped for threat detection.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:network/FirewallPolicyTlsCertificate:FirewallPolicyTlsCertificate": {
      "properties": {
        "keyVaultSecretId": {
          "description": "The ID of the Key Vault, where the secret or certificate is stored.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "keyVaultSecretId",
        "name"
      ],
      "type": "object"
    },
    "azure:network/FirewallVirtualHub:FirewallVirtualHub": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "privateIpAddress",
            "publicIpAddresses",
            "virtualHubId"
          ]
        }
      },
      "properties": {
        "privateIpAddress": {
          "description": "The private IP address associated with the Firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpAddresses": {
          "description": "The list of public IP addresses associated with the Firewall.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "publicIpCount": {
          "description": "Specifies the number of public IPs to assign to the Firewall. Defaults to `1`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "virtualHubId": {
          "description": "Specifies the ID of the Virtual Hub where the Firewall resides in.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "virtualHubId"
      ],
      "type": "object"
    },
    "azure:network/LocalNetworkGatewayBgpSettings:LocalNetworkGatewayBgpSettings": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "asn",
            "bgpPeeringAddress",
            "peerWeight"
          ]
        }
      },
      "properties": {
        "asn": {
          "description": "The BGP speaker's ASN.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "bgpPeeringAddress": {
          "description": "The BGP peering address and BGP identifier\nof this BGP speaker.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "peerWeight": {
          "description": "The weight added to routes learned from this\nBGP speaker.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "asn",
        "bgpPeeringAddress"
      ],
      "type": "object"
    },
    "azure:network/NetworkConnectionMonitorDestination:NetworkConnectionMonitorDestination": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "address",
            "port",
            "virtualMachineId"
          ]
        }
      },
      "properties": {
        "address": {
          "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties.",
          "description": "The IP address or domain name of the Network Connection Monitor endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "port": {
          "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties.",
          "description": "The port for the HTTP connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "virtualMachineId": {
          "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties.",
          "description": "The ID of the Virtual Machine which is used as the endpoint by the Network Connection Monitor. This property is deprecated in favour of `target_resource_id`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:network/NetworkConnectionMonitorEndpoint:NetworkConnectionMonitorEndpoint": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "targetResourceId"
          ]
        }
      },
      "properties": {
        "address": {
          "description": "The IP address or domain name of the Network Connection Monitor endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "coverageLevel": {
          "description": "The test coverage for the Network Connection Monitor endpoint. Possible values are `AboveAverage`, `Average`, `BelowAverage`, `Default`, `Full` and `Low`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "excludedIpAddresses": {
          "description": "A list of IPv4/IPv6 subnet masks or IPv4/IPv6 IP addresses to be excluded to the Network Connection Monitor endpoint.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "filter": {
          "$ref": "#/types/azure:network/NetworkConnectionMonitorEndpointFilter:NetworkConnectionMonitorEndpointFilter",
          "description": "A `filter` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "includedIpAddresses": {
          "description": "A list of IPv4/IPv6 subnet masks or IPv4/IPv6 IP addresses to be included to the Network Connection Monitor endpoint.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the endpoint for the Network Connection Monitor .\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetResourceId": {
          "description": "The resource ID which is used as the endpoint by the Network Connection Monitor.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetResourceType": {
          "description": "The endpoint type of the Network Connection Monitor. Possible values are `AzureSubnet`, `AzureVM`, `AzureVNet`, `ExternalAddress`, `MMAWorkspaceMachine` and `MMAWorkspaceNetwork`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "virtualMachineId": {
          "deprecationMessage": "This property has been renamed to `target_resource_id` and will be removed in v3.0 of the provider.",
          "description": "The ID of the Virtual Machine which is used as the endpoint by the Network Connection Monitor. This property is deprecated in favour of `target_resource_id`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:network/NetworkConnectionMonitorEndpointFilter:NetworkConnectionMonitorEndpointFilter": {
      "properties": {
        "items": {
          "description": "A `item` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/NetworkConnectionMonitorEndpointFilterItem:NetworkConnectionMonitorEndpointFilterItem"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "type": {
          "description": "The behaviour type of this endpoint filter. Currently the only allowed value is `Include`. Defaults to `Include`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:network/NetworkConnectionMonitorEndpointFilterItem:NetworkConnectionMonitorEndpointFilterItem": {
      "properties": {
        "address": {
          "description": "The address of the filter item.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of items included in the filter. Possible values are `AgentAddress`. Defaults to `AgentAddress`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:network/NetworkConnectionMonitorSource:NetworkConnectionMonitorSource": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "port",
            "virtualMachineId"
          ]
        }
      },
      "properties": {
        "port": {
          "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties.",
          "description": "The port for the HTTP connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "virtualMachineId": {
          "deprecationMessage": "The field belongs to the v1 network connection monitor, which is now deprecated in favour of v2 by Azure. Please check the document (https://www.terraform.io/docs/providers/azurerm/r/network_connection_monitor.html) for the v2 properties.",
          "description": "The ID of the Virtual Machine which is used as the endpoint by the Network Connection Monitor. This property is deprecated in favour of `target_resource_id`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:network/NetworkConnectionMonitorTestConfiguration:NetworkConnectionMonitorTestConfiguration": {
      "properties": {
        "httpConfiguration": {
          "$ref": "#/types/azure:network/NetworkConnectionMonitorTestConfigurationHttpConfiguration:NetworkConnectionMonitorTestConfigurationHttpConfiguration",
          "description": "A `http_configuration` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "icmpConfiguration": {
          "$ref": "#/types/azure:network/NetworkConnectionMonitorTestConfigurationIcmpConfiguration:NetworkConnectionMonitorTestConfigurationIcmpConfiguration",
          "description": "A `icmp_configuration` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "description": "The name of test configuration for the Network Connection Monitor.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "preferredIpVersion": {
          "description": "The preferred IP version which is used in the test evaluation. Possible values are `IPv4` and `IPv6`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocol": {
          "description": "The protocol used to evaluate tests. Possible values are `Tcp`, `Http` and `Icmp`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "successThreshold": {
          "$ref": "#/types/azure:network/NetworkConnectionMonitorTestConfigurationSuccessThreshold:NetworkConnectionMonitorTestConfigurationSuccessThreshold",
          "description": "A `success_threshold` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "tcpConfiguration": {
          "$ref": "#/types/azure:network/NetworkConnectionMonitorTestConfigurationTcpConfiguration:NetworkConnectionMonitorTestConfigurationTcpConfiguration",
          "description": "A `tcp_configuration` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "testFrequencyInSeconds": {
          "description": "The time interval in seconds at which the test evaluation will happen. Defaults to `60`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "name",
        "protocol"
      ],
      "type": "object"
    },
    "azure:network/NetworkConnectionMonitorTestConfigurationHttpConfiguration:NetworkConnectionMonitorTestConfigurationHttpConfiguration": {
      "properties": {
        "method": {
          "description": "The HTTP method for the HTTP request. Possible values are `Get` and `Post`. Defaults to `Get`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "path": {
          "description": "The path component of the URI. It only accepts the absolute path.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "port": {
          "description": "The port for the HTTP connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "preferHttps": {
          "description": "Should HTTPS be preferred over HTTP in cases where the choice is not explicit? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "requestHeaders": {
          "description": "A `request_header` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/NetworkConnectionMonitorTestConfigurationHttpConfigurationRequestHeader:NetworkConnectionMonitorTestConfigurationHttpConfigurationRequestHeader"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "validStatusCodeRanges": {
          "description": "The HTTP status codes to consider successful. For instance, `2xx`, `301-304` and `418`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:network/NetworkConnectionMonitorTestConfigurationHttpConfigurationRequestHeader:NetworkConnectionMonitorTestConfigurationHttpConfigurationRequestHeader": {
      "properties": {
        "name": {
          "description": "The name of the HTTP header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value of the HTTP header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "type": "object"
    },
    "azure:network/NetworkConnectionMonitorTestConfigurationIcmpConfiguration:NetworkConnectionMonitorTestConfigurationIcmpConfiguration": {
      "properties": {
        "traceRouteEnabled": {
          "description": "Should path evaluation with trace route be enabled? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:network/NetworkConnectionMonitorTestConfigurationSuccessThreshold:NetworkConnectionMonitorTestConfigurationSuccessThreshold": {
      "properties": {
        "checksFailedPercent": {
          "description": "The maximum percentage of failed checks permitted for a test to be successful.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "roundTripTimeMs": {
          "description": "The maximum round-trip time in milliseconds permitted for a test to be successful.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "type": "object"
    },
    "azure:network/NetworkConnectionMonitorTestConfigurationTcpConfiguration:NetworkConnectionMonitorTestConfigurationTcpConfiguration": {
      "properties": {
        "port": {
          "description": "The port for the Tcp connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "traceRouteEnabled": {
          "description": "Should path evaluation with trace route be enabled? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "port"
      ],
      "type": "object"
    },
    "azure:network/NetworkConnectionMonitorTestGroup:NetworkConnectionMonitorTestGroup": {
      "properties": {
        "destinationEndpoints": {
          "description": "A list of destination endpoint names.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enabled": {
          "description": "Should the test group be enabled? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "name": {
          "description": "The name of the test group for the Network Connection Monitor.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceEndpoints": {
          "description": "A list of source endpoint names.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "testConfigurationNames": {
          "description": "A list of test configuration names.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "destinationEndpoints",
        "name",
        "sourceEndpoints",
        "testConfigurationNames"
      ],
      "type": "object"
    },
    "azure:network/NetworkInterfaceIpConfiguration:NetworkInterfaceIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "primary",
            "privateIpAddress",
            "privateIpAddressAllocation"
          ]
        }
      },
      "properties": {
        "name": {
          "description": "A name used for this IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primary": {
          "description": "Is this the Primary IP Configuration? Must be `true` for the first `ip_configuration` when multiple are specified. Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "privateIpAddress": {
          "description": "The Static IP Address which should be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddressAllocation": {
          "description": "The allocation method used for the Private IP Address. Possible values are `Dynamic` and `Static`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddressVersion": {
          "description": "The IP Version to use. Possible values are `IPv4` or `IPv6`. Defaults to `IPv4`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpAddressId": {
          "description": "Reference to a Public IP Address to associate with this NIC\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet where this Network Interface should be located in.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "privateIpAddressAllocation"
      ],
      "type": "object"
    },
    "azure:network/NetworkPacketCaptureFilter:NetworkPacketCaptureFilter": {
      "properties": {
        "localIpAddress": {
          "description": "The local IP Address to be filtered on. Notation: \"127.0.0.1\" for single address entry. \"127.0.0.1-127.0.0.255\" for range. \"127.0.0.1;127.0.0.5\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "localPort": {
          "description": "The local port to be filtered on. Notation: \"80\" for single port entry.\"80-85\" for range. \"80;443;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocol": {
          "description": "The Protocol to be filtered on. Possible values include `Any`, `TCP` and `UDP`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "remoteIpAddress": {
          "description": "The remote IP Address to be filtered on. Notation: \"127.0.0.1\" for single address entry. \"127.0.0.1-127.0.0.255\" for range. \"127.0.0.1;127.0.0.5;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported.. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "remotePort": {
          "description": "The remote port to be filtered on. Notation: \"80\" for single port entry.\"80-85\" for range. \"80;443;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "protocol"
      ],
      "type": "object"
    },
    "azure:network/NetworkPacketCaptureStorageLocation:NetworkPacketCaptureStorageLocation": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "storagePath"
          ]
        }
      },
      "properties": {
        "filePath": {
          "description": "A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with `/var/captures`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the storage account to save the packet capture session\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storagePath": {
          "description": "The URI of the storage path to save the packet capture.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:network/NetworkSecurityGroupSecurityRule:NetworkSecurityGroupSecurityRule": {
      "properties": {
        "access": {
          "description": "Specifies whether network traffic is allowed or denied. Possible values are `Allow` and `Deny`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "description": {
          "description": "A description for this rule. Restricted to 140 characters.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "destinationAddressPrefix": {
          "description": "CIDR or destination IP range or * to match any IP. Tags such as ‘VirtualNetwork’, ‘AzureLoadBalancer’ and ‘Internet’ can also be used. This is required if `destination_address_prefixes` is not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "destinationAddressPrefixes": {
          "description": "List of destination address prefixes. Tags may not be used. This is required if `destination_address_prefix` is not specified.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationApplicationSecurityGroupIds": {
          "description": "A List of destination Application Security Group ID's\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationPortRange": {
          "description": "Destination Port or Range. Integer or range between `0` and `65535` or `*` to match any. This is required if `destination_port_ranges` is not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "destinationPortRanges": {
          "description": "List of destination ports or port ranges. This is required if `destination_port_range` is not specified.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "direction": {
          "description": "The direction specifies if rule will be evaluated on incoming or outgoing traffic. Possible values are `Inbound` and `Outbound`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the security rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "Specifies the priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "protocol": {
          "description": "Network protocol this rule applies to. Possible values include `Tcp`, `Udp`, `Icmp`, `Esp`, `Ah` or `*` (which matches all).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceAddressPrefix": {
          "description": "CIDR or source IP range or * to match any IP. Tags such as ‘VirtualNetwork’, ‘AzureLoadBalancer’ and ‘Internet’ can also be used. This is required if `source_address_prefixes` is not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceAddressPrefixes": {
          "description": "List of source address prefixes. Tags may not be used. This is required if `source_address_prefix` is not specified.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceApplicationSecurityGroupIds": {
          "description": "A List of source Application Security Group ID's\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourcePortRange": {
          "description": "Source Port or Range. Integer or range between `0` and `65535` or `*` to match any. This is required if `source_port_ranges` is not specified.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourcePortRanges": {
          "description": "List of source ports or port ranges. This is required if `source_port_range` is not specified.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "access",
        "direction",
        "name",
        "priority",
        "protocol"
      ],
      "type": "object"
    },
    "azure:network/NetworkWatcherFlowLogRetentionPolicy:NetworkWatcherFlowLogRetentionPolicy": {
      "properties": {
        "days": {
          "description": "The number of days to retain flow log records.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "enabled": {
          "description": "Boolean flag to enable/disable traffic analytics.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "days",
        "enabled"
      ],
      "type": "object"
    },
    "azure:network/NetworkWatcherFlowLogTrafficAnalytics:NetworkWatcherFlowLogTrafficAnalytics": {
      "properties": {
        "enabled": {
          "description": "Boolean flag to enable/disable traffic analytics.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "intervalInMinutes": {
          "description": "How frequently service should do flow analytics in minutes.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "workspaceId": {
          "description": "The resource guid of the attached workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "workspaceRegion": {
          "description": "The location of the attached workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "workspaceResourceId": {
          "description": "The resource ID of the attached workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "workspaceId",
        "workspaceRegion",
        "workspaceResourceId"
      ],
      "type": "object"
    },
    "azure:network/PacketCaptureFilter:PacketCaptureFilter": {
      "properties": {
        "localIpAddress": {
          "description": "The local IP Address to be filtered on. Notation: \"127.0.0.1\" for single address entry. \"127.0.0.1-127.0.0.255\" for range. \"127.0.0.1;127.0.0.5\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "localPort": {
          "description": "The local port to be filtered on. Notation: \"80\" for single port entry.\"80-85\" for range. \"80;443;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protocol": {
          "description": "The Protocol to be filtered on. Possible values include `Any`, `TCP` and `UDP`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "remoteIpAddress": {
          "description": "The remote IP Address to be filtered on. Notation: \"127.0.0.1\" for single address entry. \"127.0.0.1-127.0.0.255\" for range. \"127.0.0.1;127.0.0.5;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported.. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "remotePort": {
          "description": "The remote port to be filtered on. Notation: \"80\" for single port entry.\"80-85\" for range. \"80;443;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "protocol"
      ],
      "type": "object"
    },
    "azure:network/PacketCaptureStorageLocation:PacketCaptureStorageLocation": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "storagePath"
          ]
        }
      },
      "properties": {
        "filePath": {
          "description": "A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with `/var/captures`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountId": {
          "description": "The ID of the storage account to save the packet capture session\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storagePath": {
          "description": "The URI of the storage path to save the packet capture.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:network/PointToPointVpnGatewayConnectionConfiguration:PointToPointVpnGatewayConnectionConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "route",
            "vpnClientAddressPool"
          ]
        }
      },
      "properties": {
        "name": {
          "description": "The Name which should be used for this Connection Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "route": {
          "$ref": "#/types/azure:network/PointToPointVpnGatewayConnectionConfigurationRoute:PointToPointVpnGatewayConnectionConfigurationRoute",
          "description": "A `route` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "vpnClientAddressPool": {
          "$ref": "#/types/azure:network/PointToPointVpnGatewayConnectionConfigurationVpnClientAddressPool:PointToPointVpnGatewayConnectionConfigurationVpnClientAddressPool",
          "description": "A `vpn_client_address_pool` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "name",
        "vpnClientAddressPool"
      ],
      "type": "object"
    },
    "azure:network/PointToPointVpnGatewayConnectionConfigurationRoute:PointToPointVpnGatewayConnectionConfigurationRoute": {
      "properties": {
        "associatedRouteTableId": {
          "description": "The Virtual Hub Route Table resource id associated with this Routing Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "propagatedRouteTable": {
          "$ref": "#/types/azure:network/PointToPointVpnGatewayConnectionConfigurationRoutePropagatedRouteTable:PointToPointVpnGatewayConnectionConfigurationRoutePropagatedRouteTable",
          "description": "A `propagated_route_table` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "associatedRouteTableId"
      ],
      "type": "object"
    },
    "azure:network/PointToPointVpnGatewayConnectionConfigurationRoutePropagatedRouteTable:PointToPointVpnGatewayConnectionConfigurationRoutePropagatedRouteTable": {
      "properties": {
        "ids": {
          "description": "The list of Virtual Hub Route Table resource id which the routes will be propagated to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "labels": {
          "description": "The list of labels to logically group Virtual Hub Route Tables which the routes will be propagated to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "ids"
      ],
      "type": "object"
    },
    "azure:network/PointToPointVpnGatewayConnectionConfigurationVpnClientAddressPool:PointToPointVpnGatewayConnectionConfigurationVpnClientAddressPool": {
      "properties": {
        "addressPrefixes": {
          "description": "A list of CIDR Ranges which should be used as Address Prefixes.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "addressPrefixes"
      ],
      "type": "object"
    },
    "azure:network/ProfileContainerNetworkInterface:ProfileContainerNetworkInterface": {
      "properties": {
        "ipConfigurations": {
          "description": "One or more `ip_configuration` blocks as documented below.\n",
          "items": {
            "$ref": "#/types/azure:network/ProfileContainerNetworkInterfaceIpConfiguration:ProfileContainerNetworkInterfaceIpConfiguration"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "ipConfigurations",
        "name"
      ],
      "type": "object"
    },
    "azure:network/ProfileContainerNetworkInterfaceIpConfiguration:ProfileContainerNetworkInterfaceIpConfiguration": {
      "properties": {
        "name": {
          "description": "Specifies the name of the IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "Reference to the subnet associated with the IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:network/RouteFilterRule:RouteFilterRule": {
      "properties": {
        "access": {
          "description": "The access type of the rule. The only possible value is `Allow`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "communities": {
          "description": "The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020'].\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the route filter rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ruleType": {
          "description": "The rule type of the rule. The only possible value is `Community`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "access",
        "communities",
        "name",
        "ruleType"
      ],
      "type": "object"
    },
    "azure:network/RouteTableRoute:RouteTableRoute": {
      "properties": {
        "addressPrefix": {
          "description": "The destination CIDR to which the route applies, such as 10.1.0.0/16. Tags such as `VirtualNetwork`, `AzureLoadBalancer` or `Internet` can also be used.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the route.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "nextHopInIpAddress": {
          "description": "Contains the IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is `VirtualAppliance`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "nextHopType": {
          "description": "The type of Azure hop the packet should be sent to. Possible values are `VirtualNetworkGateway`, `VnetLocal`, `Internet`, `VirtualAppliance` and `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "addressPrefix",
        "name",
        "nextHopType"
      ],
      "type": "object"
    },
    "azure:network/SubnetDelegation:SubnetDelegation": {
      "properties": {
        "name": {
          "description": "A name for this delegation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serviceDelegation": {
          "$ref": "#/types/azure:network/SubnetDelegationServiceDelegation:SubnetDelegationServiceDelegation",
          "description": "A `service_delegation` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "name",
        "serviceDelegation"
      ],
      "type": "object"
    },
    "azure:network/SubnetDelegationServiceDelegation:SubnetDelegationServiceDelegation": {
      "properties": {
        "actions": {
          "description": "A list of Actions which should be delegated. This list is specific to the service to delegate to. Possible values include `Microsoft.Network/networkinterfaces/*`, `Microsoft.Network/virtualNetworks/subnets/action`, `Microsoft.Network/virtualNetworks/subnets/join/action`, `Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action` and `Microsoft.Network/virtualNetworks/subnets/unprepareNetworkPolicies/action`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The name of service to delegate to. Possible values include `Microsoft.ApiManagement/service`, `Microsoft.AzureCosmosDB/clusters`, `Microsoft.BareMetal/AzureVMware`, `Microsoft.BareMetal/CrayServers`, `Microsoft.Batch/batchAccounts`, `Microsoft.ContainerInstance/containerGroups`, `Microsoft.ContainerService/managedClusters`, `Microsoft.Databricks/workspaces`, `Microsoft.DBforMySQL/flexibleServers`, `Microsoft.DBforMySQL/serversv2`, `Microsoft.DBforPostgreSQL/flexibleServers`, `Microsoft.DBforPostgreSQL/serversv2`, `Microsoft.DBforPostgreSQL/singleServers`, `Microsoft.HardwareSecurityModules/dedicatedHSMs`, `Microsoft.Kusto/clusters`, `Microsoft.Logic/integrationServiceEnvironments`, `Microsoft.MachineLearningServices/workspaces`, `Microsoft.Netapp/volumes`, `Microsoft.Network/managedResolvers`, `Microsoft.PowerPlatform/vnetaccesslinks`, `Microsoft.ServiceFabricMesh/networks`, `Microsoft.Sql/managedInstances`, `Microsoft.Sql/servers`, `Microsoft.StreamAnalytics/streamingJobs`, `Microsoft.Synapse/workspaces`, `Microsoft.Web/hostingEnvironments`, and `Microsoft.Web/serverFarms`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:network/SubnetServiceEndpointStoragePolicyDefinition:SubnetServiceEndpointStoragePolicyDefinition": {
      "properties": {
        "description": {
          "description": "The description of this Subnet Service Endpoint Storage Policy Definition.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this Subnet Service Endpoint Storage Policy Definition.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serviceResources": {
          "description": "Specifies a list of resources that this Subnet Service Endpoint Storage Policy Definition applies to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "serviceResources"
      ],
      "type": "object"
    },
    "azure:network/TrafficManagerEndpointCustomHeader:TrafficManagerEndpointCustomHeader": {
      "properties": {
        "name": {
          "description": "The name of the custom header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value of custom header. Applicable for Http and Https protocol.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "type": "object"
    },
    "azure:network/TrafficManagerEndpointSubnet:TrafficManagerEndpointSubnet": {
      "properties": {
        "first": {
          "description": "The First IP....\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "last": {
          "description": "The Last IP...\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scope": {
          "description": "The Scope...\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "first"
      ],
      "type": "object"
    },
    "azure:network/TrafficManagerProfileDnsConfig:TrafficManagerProfileDnsConfig": {
      "properties": {
        "relativeName": {
          "description": "The relative domain name, this is combined with the domain name used by Traffic Manager to form the FQDN which is exported as documented below. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ttl": {
          "description": "The TTL value of the Profile used by Local DNS resolvers and clients.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "relativeName",
        "ttl"
      ],
      "type": "object"
    },
    "azure:network/TrafficManagerProfileMonitorConfig:TrafficManagerProfileMonitorConfig": {
      "properties": {
        "customHeaders": {
          "description": "One or more `custom_header` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/TrafficManagerProfileMonitorConfigCustomHeader:TrafficManagerProfileMonitorConfigCustomHeader"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "expectedStatusCodeRanges": {
          "description": "A list of status code ranges in the format of `100-101`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "intervalInSeconds": {
          "description": "The interval used to check the endpoint health from a Traffic Manager probing agent. You can specify two values here: `30` (normal probing) and `10` (fast probing). The default value is `30`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "path": {
          "description": "The path used by the monitoring checks. Required when `protocol` is set to `HTTP` or `HTTPS` - cannot be set when `protocol` is set to `TCP`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "port": {
          "description": "The port number used by the monitoring checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "protocol": {
          "description": "The protocol used by the monitoring checks, supported values are `HTTP`, `HTTPS` and `TCP`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "timeoutInSeconds": {
          "description": "The amount of time the Traffic Manager probing agent should wait before considering that check a failure when a health check probe is sent to the endpoint. If `interval_in_seconds` is set to `30`, then `timeout_in_seconds` can be between `5` and `10`. The default value is `10`. If `interval_in_seconds` is set to `10`, then valid values are between `5` and `9` and `timeout_in_seconds` is required.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "toleratedNumberOfFailures": {
          "description": "The number of failures a Traffic Manager probing agent tolerates before marking that endpoint as unhealthy. Valid values are between `0` and `9`. The default value is `3`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "port",
        "protocol"
      ],
      "type": "object"
    },
    "azure:network/TrafficManagerProfileMonitorConfigCustomHeader:TrafficManagerProfileMonitorConfigCustomHeader": {
      "properties": {
        "name": {
          "description": "The name of the custom header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value of custom header. Applicable for Http and Https protocol.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "type": "object"
    },
    "azure:network/VirtualHubConnectionRouting:VirtualHubConnectionRouting": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "associatedRouteTableId",
            "propagatedRouteTable"
          ]
        }
      },
      "properties": {
        "associatedRouteTableId": {
          "description": "The ID of the route table associated with this Virtual Hub connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "propagatedRouteTable": {
          "$ref": "#/types/azure:network/VirtualHubConnectionRoutingPropagatedRouteTable:VirtualHubConnectionRoutingPropagatedRouteTable",
          "description": "A `propagated_route_table` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "staticVnetRoutes": {
          "description": "A `static_vnet_route` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VirtualHubConnectionRoutingStaticVnetRoute:VirtualHubConnectionRoutingStaticVnetRoute"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:network/VirtualHubConnectionRoutingPropagatedRouteTable:VirtualHubConnectionRoutingPropagatedRouteTable": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "labels",
            "routeTableIds"
          ]
        }
      },
      "properties": {
        "labels": {
          "description": "The list of labels to assign to this route table.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "routeTableIds": {
          "description": "A list of Route Table ID's to associated with this Virtual Hub Connection.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:network/VirtualHubConnectionRoutingStaticVnetRoute:VirtualHubConnectionRoutingStaticVnetRoute": {
      "properties": {
        "addressPrefixes": {
          "description": "A list of CIDR Ranges which should be used as Address Prefixes.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The name which should be used for this Static Route.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "nextHopIpAddress": {
          "description": "The IP Address which should be used for the Next Hop.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:network/VirtualHubRoute:VirtualHubRoute": {
      "properties": {
        "addressPrefixes": {
          "description": "A list of Address Prefixes.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "nextHopIpAddress": {
          "description": "The IP Address that Packets should be forwarded to as the Next Hop.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "addressPrefixes",
        "nextHopIpAddress"
      ],
      "type": "object"
    },
    "azure:network/VirtualHubRouteTableRoute:VirtualHubRouteTableRoute": {
      "properties": {
        "destinations": {
          "description": "A list of destination addresses for this route.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationsType": {
          "description": "The type of destinations. Possible values are `CIDR`, `ResourceId` and `Service`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this route.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "nextHop": {
          "description": "The next hop's resource ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "nextHopType": {
          "description": "The type of next hop. Currently the only possible value is `ResourceId`. Defaults to `ResourceId`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "destinations",
        "destinationsType",
        "name",
        "nextHop"
      ],
      "type": "object"
    },
    "azure:network/VirtualNetworkDdosProtectionPlan:VirtualNetworkDdosProtectionPlan": {
      "properties": {
        "enable": {
          "description": "Enable/disable DDoS Protection Plan on Virtual Network.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "id": {
          "description": "The ID of DDoS Protection Plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enable",
        "id"
      ],
      "type": "object"
    },
    "azure:network/VirtualNetworkGatewayBgpSettings:VirtualNetworkGatewayBgpSettings": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "peeringAddress",
            "peeringAddresses"
          ]
        }
      },
      "properties": {
        "asn": {
          "description": "The Autonomous System Number (ASN) to use as part of the BGP.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "peerWeight": {
          "description": "The weight added to routes which have been learned\nthrough BGP peering. Valid values can be between `0` and `100`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "peeringAddress": {
          "deprecationMessage": "Deprecated in favor of `bgp_settings.0.peering_addresses.0.default_addresses.0`",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "peeringAddresses": {
          "description": "A list of `peering_addresses` as defined below. Only one `peering_addresses` block can be specified except when `active_active` of this Virtual Network Gateway is `true`.\n",
          "items": {
            "$ref": "#/types/azure:network/VirtualNetworkGatewayBgpSettingsPeeringAddress:VirtualNetworkGatewayBgpSettingsPeeringAddress"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:network/VirtualNetworkGatewayBgpSettingsPeeringAddress:VirtualNetworkGatewayBgpSettingsPeeringAddress": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "defaultAddresses",
            "ipConfigurationName",
            "tunnelIpAddresses"
          ]
        }
      },
      "properties": {
        "apipaAddresses": {
          "description": "A list of Azure custom APIPA addresses assigned to the BGP peer of the Virtual Network Gateway.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "defaultAddresses": {
          "description": "A list of peering address assigned to the BGP peer of the Virtual Network Gateway.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ipConfigurationName": {
          "description": "The name of the IP configuration of this Virtual Network Gateway. In case there are multiple `ip_configuration` blocks defined, this property is **required** to specify.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tunnelIpAddresses": {
          "description": "A list of tunnel IP addresses assigned to the BGP peer of the Virtual Network Gateway.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:network/VirtualNetworkGatewayConnectionIpsecPolicy:VirtualNetworkGatewayConnectionIpsecPolicy": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "dhGroup",
            "ikeEncryption",
            "ikeIntegrity",
            "ipsecEncryption",
            "ipsecIntegrity",
            "pfsGroup",
            "saDatasize",
            "saLifetime"
          ]
        }
      },
      "properties": {
        "dhGroup": {
          "description": "The DH group used in IKE phase 1 for initial SA. Valid\noptions are `DHGroup1`, `DHGroup14`, `DHGroup2`, `DHGroup2048`, `DHGroup24`,\n`ECP256`, `ECP384`, or `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ikeEncryption": {
          "description": "The IKE encryption algorithm. Valid\noptions are `AES128`, `AES192`, `AES256`, `DES`, `DES3`, `GCMAES128`, or `GCMAES256`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ikeIntegrity": {
          "description": "The IKE integrity algorithm. Valid\noptions are `GCMAES128`, `GCMAES256`, `MD5`, `SHA1`, `SHA256`, or `SHA384`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipsecEncryption": {
          "description": "The IPSec encryption algorithm. Valid\noptions are `AES128`, `AES192`, `AES256`, `DES`, `DES3`, `GCMAES128`, `GCMAES192`, `GCMAES256`, or `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipsecIntegrity": {
          "description": "The IPSec integrity algorithm. Valid\noptions are `GCMAES128`, `GCMAES192`, `GCMAES256`, `MD5`, `SHA1`, or `SHA256`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pfsGroup": {
          "description": "The DH group used in IKE phase 2 for new child SA.\nValid options are `ECP256`, `ECP384`, `PFS1`, `PFS14`, `PFS2`, `PFS2048`, `PFS24`, `PFSMM`,\nor `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "saDatasize": {
          "description": "The IPSec SA payload size in KB. Must be at least\n`1024` KB. Defaults to `102400000` KB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "saLifetime": {
          "description": "The IPSec SA lifetime in seconds. Must be at least\n`300` seconds. Defaults to `27000` seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "dhGroup",
        "ikeEncryption",
        "ikeIntegrity",
        "ipsecEncryption",
        "ipsecIntegrity",
        "pfsGroup"
      ],
      "type": "object"
    },
    "azure:network/VirtualNetworkGatewayConnectionTrafficSelectorPolicy:VirtualNetworkGatewayConnectionTrafficSelectorPolicy": {
      "properties": {
        "localAddressCidrs": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "remoteAddressCidrs": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "localAddressCidrs",
        "remoteAddressCidrs"
      ],
      "type": "object"
    },
    "azure:network/VirtualNetworkGatewayCustomRoute:VirtualNetworkGatewayCustomRoute": {
      "properties": {
        "addressPrefixes": {
          "description": "A list of address blocks reserved for this virtual network in CIDR notation.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:network/VirtualNetworkGatewayIpConfiguration:VirtualNetworkGatewayIpConfiguration": {
      "properties": {
        "name": {
          "description": "A user-defined name of the IP configuration. Defaults to\n`vnetGatewayConfig`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddressAllocation": {
          "description": "Defines how the private IP address\nof the gateways virtual interface is assigned. Valid options are `Static` or\n`Dynamic`. Defaults to `Dynamic`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpAddressId": {
          "description": "The ID of the public ip address to associate\nwith the Virtual Network Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the gateway subnet of a virtual network in\nwhich the virtual network gateway will be created. It is mandatory that\nthe associated subnet is named `GatewaySubnet`. Therefore, each virtual\nnetwork can contain at most a single Virtual Network Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "publicIpAddressId",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:network/VirtualNetworkGatewayVpnClientConfiguration:VirtualNetworkGatewayVpnClientConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "addressSpaces",
            "vpnAuthTypes",
            "vpnClientProtocols"
          ]
        }
      },
      "properties": {
        "aadAudience": {
          "description": "The client id of the Azure VPN application.\nSee [Create an Active Directory (AD) tenant for P2S OpenVPN protocol connections](https://docs.microsoft.com/en-gb/azure/vpn-gateway/openvpn-azure-ad-tenant-multi-app) for values\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "aadIssuer": {
          "description": "The STS url for your tenant\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "aadTenant": {
          "description": "AzureAD Tenant URL\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "addressSpaces": {
          "description": "The address space out of which ip addresses for\nvpn clients will be taken. You can provide more than one address space, e.g.\nin CIDR notation.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "radiusServerAddress": {
          "description": "The address of the Radius server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "radiusServerSecret": {
          "description": "The secret used by the Radius server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "revokedCertificates": {
          "description": "One or more `revoked_certificate` blocks which\nare defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VirtualNetworkGatewayVpnClientConfigurationRevokedCertificate:VirtualNetworkGatewayVpnClientConfigurationRevokedCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "rootCertificates": {
          "description": "One or more `root_certificate` blocks which are\ndefined below. These root certificates are used to sign the client certificate\nused by the VPN clients to connect to the gateway.\n",
          "items": {
            "$ref": "#/types/azure:network/VirtualNetworkGatewayVpnClientConfigurationRootCertificate:VirtualNetworkGatewayVpnClientConfigurationRootCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "vpnAuthTypes": {
          "description": "List of the vpn authentication types for the virtual network gateway.\nThe supported values are `AAD`, `Radius` and `Certificate`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "vpnClientProtocols": {
          "description": "List of the protocols supported by the vpn client.\nThe supported values are `SSTP`, `IkeV2` and `OpenVPN`.\nValues `SSTP` and `IkeV2` are incompatible with the use of\n`aad_tenant`, `aad_audience` and `aad_issuer`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "addressSpaces"
      ],
      "type": "object"
    },
    "azure:network/VirtualNetworkGatewayVpnClientConfigurationRevokedCertificate:VirtualNetworkGatewayVpnClientConfigurationRevokedCertificate": {
      "properties": {
        "name": {
          "description": "A user-defined name of the IP configuration. Defaults to\n`vnetGatewayConfig`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "thumbprint"
      ],
      "type": "object"
    },
    "azure:network/VirtualNetworkGatewayVpnClientConfigurationRootCertificate:VirtualNetworkGatewayVpnClientConfigurationRootCertificate": {
      "properties": {
        "name": {
          "description": "A user-defined name of the IP configuration. Defaults to\n`vnetGatewayConfig`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicCertData": {
          "description": "The public certificate of the root certificate\nauthority. The certificate must be provided in Base-64 encoded X.509 format\n(PEM). In particular, this argument *must not* include the\n`-----BEGIN CERTIFICATE-----` or `-----END CERTIFICATE-----` markers.\nrevoked.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "publicCertData"
      ],
      "type": "object"
    },
    "azure:network/VirtualNetworkSubnet:VirtualNetworkSubnet": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "addressPrefix",
            "id",
            "name"
          ]
        }
      },
      "properties": {
        "addressPrefix": {
          "description": "The address prefix to use for the subnet.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of DDoS Protection Plan.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the virtual network. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "securityGroup": {
          "description": "The Network Security Group to associate with the subnet. (Referenced by `id`, ie. `azurerm_network_security_group.example.id`)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "addressPrefix",
        "name"
      ],
      "type": "object"
    },
    "azure:network/VpnGatewayBgpSettings:VpnGatewayBgpSettings": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "asn",
            "bgpPeeringAddress",
            "instance0BgpPeeringAddress",
            "instance1BgpPeeringAddress",
            "peerWeight"
          ]
        }
      },
      "properties": {
        "asn": {
          "description": "The ASN of the BGP Speaker. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "bgpPeeringAddress": {
          "description": "The Address which should be used for the BGP Peering.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "instance0BgpPeeringAddress": {
          "$ref": "#/types/azure:network/VpnGatewayBgpSettingsInstance0BgpPeeringAddress:VpnGatewayBgpSettingsInstance0BgpPeeringAddress",
          "description": "An `instance_bgp_peering_address` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "instance1BgpPeeringAddress": {
          "$ref": "#/types/azure:network/VpnGatewayBgpSettingsInstance1BgpPeeringAddress:VpnGatewayBgpSettingsInstance1BgpPeeringAddress",
          "description": "An `instance_bgp_peering_address` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "peerWeight": {
          "description": "The weight added to Routes learned from this BGP Speaker. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "asn",
        "peerWeight"
      ],
      "type": "object"
    },
    "azure:network/VpnGatewayBgpSettingsInstance0BgpPeeringAddress:VpnGatewayBgpSettingsInstance0BgpPeeringAddress": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "customIps",
            "defaultIps",
            "ipConfigurationId",
            "tunnelIps"
          ]
        }
      },
      "properties": {
        "customIps": {
          "description": "A list of custom BGP peering addresses to assign to this instance.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "defaultIps": {
          "description": "The list of default BGP peering addresses which belong to the pre-defined VPN Gateway IP configuration.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ipConfigurationId": {
          "description": "The pre-defined id of VPN Gateway Ip Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tunnelIps": {
          "description": "The list of tunnel public IP addresses which belong to the pre-defined VPN Gateway IP configuration.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "customIps"
      ],
      "type": "object"
    },
    "azure:network/VpnGatewayBgpSettingsInstance1BgpPeeringAddress:VpnGatewayBgpSettingsInstance1BgpPeeringAddress": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "customIps",
            "defaultIps",
            "ipConfigurationId",
            "tunnelIps"
          ]
        }
      },
      "properties": {
        "customIps": {
          "description": "A list of custom BGP peering addresses to assign to this instance.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "defaultIps": {
          "description": "The list of default BGP peering addresses which belong to the pre-defined VPN Gateway IP configuration.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ipConfigurationId": {
          "description": "The pre-defined id of VPN Gateway Ip Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tunnelIps": {
          "description": "The list of tunnel public IP addresses which belong to the pre-defined VPN Gateway IP configuration.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "customIps"
      ],
      "type": "object"
    },
    "azure:network/VpnGatewayConnectionRouting:VpnGatewayConnectionRouting": {
      "properties": {
        "associatedRouteTable": {
          "description": "The ID of the Route Table associated with this VPN Connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "propagatedRouteTables": {
          "description": "The list IDs of Route Tables to advertise the routes of this VPN Connection.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "associatedRouteTable",
        "propagatedRouteTables"
      ],
      "type": "object"
    },
    "azure:network/VpnGatewayConnectionVpnLink:VpnGatewayConnectionVpnLink": {
      "properties": {
        "bandwidthMbps": {
          "description": "The expected connection bandwidth in MBPS. Defaults to `10`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "bgpEnabled": {
          "description": "Should the BGP be enabled? Defaults to `false`. Changing this forces a new VPN Gateway Connection to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "ipsecPolicies": {
          "description": "One or more `ipsec_policy` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnGatewayConnectionVpnLinkIpsecPolicy:VpnGatewayConnectionVpnLinkIpsecPolicy"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "localAzureIpAddressEnabled": {
          "description": "Whether to use local azure ip to initiate connection? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "name": {
          "description": "The name which should be used for this VPN Link Connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "policyBasedTrafficSelectorEnabled": {
          "description": "Whether to enable policy-based traffic selectors? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "protocol": {
          "description": "The protocol used for this VPN Link Connection. Possible values are `IKEv1` and `IKEv2`. Defaults to `IKEv2`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ratelimitEnabled": {
          "description": "Should the rate limit be enabled? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "routeWeight": {
          "description": "Routing weight for this VPN Link Connection. Defaults to `0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "sharedKey": {
          "description": "SharedKey for this VPN Link Connection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vpnSiteLinkId": {
          "description": "The ID of the connected VPN Site Link. Changing this forces a new VPN Gateway Connection to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "vpnSiteLinkId"
      ],
      "type": "object"
    },
    "azure:network/VpnGatewayConnectionVpnLinkIpsecPolicy:VpnGatewayConnectionVpnLinkIpsecPolicy": {
      "properties": {
        "dhGroup": {
          "description": "The DH Group used in IKE Phase 1 for initial SA. Possible values are `None`, `DHGroup1`, `DHGroup2`, `DHGroup14`, `DHGroup24`, `DHGroup2048`, `ECP256`, `ECP384`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "encryptionAlgorithm": {
          "description": "The IPSec encryption algorithm (IKE phase 1). Possible values are `AES128`, `AES192`, `AES256`, `DES`, `DES3`, `GCMAES128`, `GCMAES192`, `GCMAES256`, `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ikeEncryptionAlgorithm": {
          "description": "The IKE encryption algorithm (IKE phase 2). Possible values are `DES`, `DES3`, `AES128`, `AES192`, `AES256`, `GCMAES128`, `GCMAES256`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ikeIntegrityAlgorithm": {
          "description": "The IKE integrity algorithm (IKE phase 2). Possible values are `MD5`, `SHA1`, `SHA256`, `SHA384`, `GCMAES128`, `GCMAES256`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "integrityAlgorithm": {
          "description": "The IPSec integrity algorithm (IKE phase 1). Possible values are `MD5`, `SHA1`, `SHA256`, `GCMAES128`, `GCMAES192`, `GCMAES256`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pfsGroup": {
          "description": "The Pfs Group used in IKE Phase 2 for the new child SA. Possible values are `None`, `PFS1`, `PFS2`, `PFS14`, `PFS24`, `PFS2048`, `PFSMM`, `ECP256`, `ECP384`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "saDataSizeKb": {
          "description": "The IPSec Security Association (also called Quick Mode or Phase 2 SA) payload size in KB for the site to site VPN tunnel.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "saLifetimeSec": {
          "description": "The IPSec Security Association (also called Quick Mode or Phase 2 SA) lifetime in seconds for the site to site VPN tunnel.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "dhGroup",
        "encryptionAlgorithm",
        "ikeEncryptionAlgorithm",
        "ikeIntegrityAlgorithm",
        "integrityAlgorithm",
        "pfsGroup",
        "saDataSizeKb",
        "saLifetimeSec"
      ],
      "type": "object"
    },
    "azure:network/VpnServerConfigurationAzureActiveDirectoryAuthentication:VpnServerConfigurationAzureActiveDirectoryAuthentication": {
      "properties": {
        "audience": {
          "description": "The Audience which should be used for authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "issuer": {
          "description": "The Issuer which should be used for authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenant": {
          "description": "The Tenant which should be used for authentication.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "audience",
        "issuer",
        "tenant"
      ],
      "type": "object"
    },
    "azure:network/VpnServerConfigurationClientRevokedCertificate:VpnServerConfigurationClientRevokedCertificate": {
      "properties": {
        "name": {
          "description": "A name used to uniquely identify this certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "description": "The Thumbprint of the Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "thumbprint"
      ],
      "type": "object"
    },
    "azure:network/VpnServerConfigurationClientRootCertificate:VpnServerConfigurationClientRootCertificate": {
      "properties": {
        "name": {
          "description": "A name used to uniquely identify this certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicCertData": {
          "description": "The Public Key Data associated with the Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "publicCertData"
      ],
      "type": "object"
    },
    "azure:network/VpnServerConfigurationIpsecPolicy:VpnServerConfigurationIpsecPolicy": {
      "properties": {
        "dhGroup": {
          "description": "The DH Group, used in IKE Phase 1. Possible values include `DHGroup1`, `DHGroup2`, `DHGroup14`, `DHGroup24`, `DHGroup2048`, `ECP256`, `ECP384` and `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ikeEncryption": {
          "description": "The IKE encryption algorithm, used for IKE Phase 2. Possible values include `AES128`, `AES192`, `AES256`, `DES`, `DES3`, `GCMAES128` and `GCMAES256`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ikeIntegrity": {
          "description": "The IKE encryption integrity algorithm, used for IKE Phase 2. Possible values include `GCMAES128`, `GCMAES256`, `MD5`, `SHA1`, `SHA256` and `SHA384`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipsecEncryption": {
          "description": "The IPSec encryption algorithm, used for IKE phase 1. Possible values include `AES128`, `AES192`, `AES256`, `DES`, `DES3`, `GCMAES128`, `GCMAES192`, `GCMAES256` and `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipsecIntegrity": {
          "description": "The IPSec integrity algorithm, used for IKE phase 1. Possible values include `GCMAES128`, `GCMAES192`, `GCMAES256`, `MD5`, `SHA1` and `SHA256`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pfsGroup": {
          "description": "The Pfs Group, used in IKE Phase 2. Possible values include `ECP256`, `ECP384`, `PFS1`, `PFS2`, `PFS14`, `PFS24`, `PFS2048`, `PFSMM` and `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "saDataSizeKilobytes": {
          "description": "The IPSec Security Association payload size in KB for a Site-to-Site VPN tunnel.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "saLifetimeSeconds": {
          "description": "The IPSec Security Association lifetime in seconds for a Site-to-Site VPN tunnel.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "dhGroup",
        "ikeEncryption",
        "ikeIntegrity",
        "ipsecEncryption",
        "ipsecIntegrity",
        "pfsGroup",
        "saDataSizeKilobytes",
        "saLifetimeSeconds"
      ],
      "type": "object"
    },
    "azure:network/VpnServerConfigurationRadius:VpnServerConfigurationRadius": {
      "properties": {
        "clientRootCertificates": {
          "description": "One or more `client_root_certificate` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnServerConfigurationRadiusClientRootCertificate:VpnServerConfigurationRadiusClientRootCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "serverRootCertificates": {
          "description": "One or more `server_root_certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnServerConfigurationRadiusServerRootCertificate:VpnServerConfigurationRadiusServerRootCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "servers": {
          "description": "One or more `server` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnServerConfigurationRadiusServer:VpnServerConfigurationRadiusServer"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "serverRootCertificates"
      ],
      "type": "object"
    },
    "azure:network/VpnServerConfigurationRadiusClientRootCertificate:VpnServerConfigurationRadiusClientRootCertificate": {
      "properties": {
        "name": {
          "description": "A name used to uniquely identify this certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "description": "The Thumbprint of the Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "thumbprint"
      ],
      "type": "object"
    },
    "azure:network/VpnServerConfigurationRadiusServer:VpnServerConfigurationRadiusServer": {
      "properties": {
        "address": {
          "description": "The Address of the Radius Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clientRootCertificates": {
          "description": "One or more `client_root_certificate` blocks as defined above.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnServerConfigurationRadiusServerClientRootCertificate:VpnServerConfigurationRadiusServerClientRootCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "secret": {
          "description": "The Secret used to communicate with the Radius Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serverRootCertificates": {
          "description": "One or more `server_root_certificate` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/VpnServerConfigurationRadiusServerServerRootCertificate:VpnServerConfigurationRadiusServerServerRootCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "address",
        "secret",
        "serverRootCertificates"
      ],
      "type": "object"
    },
    "azure:network/VpnServerConfigurationRadiusServerClientRootCertificate:VpnServerConfigurationRadiusServerClientRootCertificate": {
      "properties": {
        "name": {
          "description": "A name used to uniquely identify this certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "description": "The Thumbprint of the Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "thumbprint"
      ],
      "type": "object"
    },
    "azure:network/VpnServerConfigurationRadiusServerRootCertificate:VpnServerConfigurationRadiusServerRootCertificate": {
      "properties": {
        "name": {
          "description": "A name used to uniquely identify this certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicCertData": {
          "description": "The Public Key Data associated with the Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "publicCertData"
      ],
      "type": "object"
    },
    "azure:network/VpnServerConfigurationRadiusServerServerRootCertificate:VpnServerConfigurationRadiusServerServerRootCertificate": {
      "properties": {
        "name": {
          "description": "A name used to uniquely identify this certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicCertData": {
          "description": "The Public Key Data associated with the Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "publicCertData"
      ],
      "type": "object"
    },
    "azure:network/VpnSiteLink:VpnSiteLink": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name"
          ]
        }
      },
      "properties": {
        "bgp": {
          "$ref": "#/types/azure:network/VpnSiteLinkBgp:VpnSiteLinkBgp",
          "description": "A `bgp` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "fqdn": {
          "description": "The FQDN of this VPN Site Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the VPN Site Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipAddress": {
          "description": "The IP address of this VPN Site Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this VPN Site Link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "providerName": {
          "description": "The name of the physical link at the VPN Site. Example: `ATT`, `Verizon`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "speedInMbps": {
          "description": "The speed of the VPN device at the branch location in unit of mbps.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:network/VpnSiteLinkBgp:VpnSiteLinkBgp": {
      "properties": {
        "asn": {
          "description": "The BGP speaker's ASN.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "peeringAddress": {
          "description": "The BGP peering ip address.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "asn",
        "peeringAddress"
      ],
      "type": "object"
    },
    "azure:network/getApplicationGatewayIdentity:getApplicationGatewayIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "identityIds": {
          "description": "A list of Managed Identity ID's assigned to this Application Gateway.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "type": {
          "description": "The type of Managed Identity assigned to this Application Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "identityIds",
        "type"
      ],
      "type": "object"
    },
    "azure:network/getExpressRouteCircuitPeering:getExpressRouteCircuitPeering": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "azureAsn": {
          "description": "The Either a 16-bit or a 32-bit ASN for Azure.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "peerAsn": {
          "description": "The Either a 16-bit or a 32-bit ASN. Can either be public or private.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "peeringType": {
          "description": "The type of the ExpressRoute Circuit Peering. Acceptable values include `AzurePrivatePeering`, `AzurePublicPeering` and `MicrosoftPeering`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primaryPeerAddressPrefix": {
          "description": "A `/30` subnet for the primary link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "secondaryPeerAddressPrefix": {
          "description": "A `/30` subnet for the secondary link.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sharedKey": {
          "description": "The shared key. Can be a maximum of 25 characters.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "vlanId": {
          "description": "A valid VLAN ID to establish this peering on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "azureAsn",
        "peerAsn",
        "peeringType",
        "primaryPeerAddressPrefix",
        "secondaryPeerAddressPrefix",
        "sharedKey",
        "vlanId"
      ],
      "type": "object"
    },
    "azure:network/getExpressRouteCircuitServiceProviderProperty:getExpressRouteCircuitServiceProviderProperty": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "bandwidthInMbps": {
          "description": "The bandwidth in Mbps of the ExpressRoute circuit.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "peeringLocation": {
          "description": "The name of the peering location and **not** the Azure resource location.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "serviceProviderName": {
          "description": "The name of the ExpressRoute Service Provider.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "bandwidthInMbps",
        "peeringLocation",
        "serviceProviderName"
      ],
      "type": "object"
    },
    "azure:network/getExpressRouteCircuitSku:getExpressRouteCircuitSku": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "family": {
          "description": "The billing mode for bandwidth. Possible values are `MeteredData` or `UnlimitedData`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tier": {
          "description": "The service tier. Possible values are `Basic`, `Local`, `Standard` or `Premium`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "family",
        "tier"
      ],
      "type": "object"
    },
    "azure:network/getFirewallIpConfiguration:getFirewallIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "The name of the Azure Firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddress": {
          "description": "The private IP address associated with the Azure Firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpAddressId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet where the Azure Firewall is deployed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "privateIpAddress",
        "publicIpAddressId",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:network/getFirewallManagementIpConfiguration:getFirewallManagementIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "The name of the Azure Firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddress": {
          "description": "The private IP address associated with the Azure Firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpAddressId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet where the Azure Firewall is deployed.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "privateIpAddress",
        "publicIpAddressId",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:network/getFirewallPolicyDn:getFirewallPolicyDn": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "networkRuleFqdnEnabled": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "proxyEnabled": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "servers": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "networkRuleFqdnEnabled",
        "proxyEnabled",
        "servers"
      ],
      "type": "object"
    },
    "azure:network/getFirewallPolicyThreatIntelligenceAllowlist:getFirewallPolicyThreatIntelligenceAllowlist": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "fqdns": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ipAddresses": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "fqdns",
        "ipAddresses"
      ],
      "type": "object"
    },
    "azure:network/getFirewallVirtualHub:getFirewallVirtualHub": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "privateIpAddress": {
          "description": "The private IP address associated with the Azure Firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpAddresses": {
          "description": "The list of public IP addresses associated with the Azure Firewall.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "publicIpCount": {
          "description": "The number of public IPs assigned to the Azure Firewall.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "virtualHubId": {
          "description": "The ID of the Virtual Hub where the Azure Firewall resides in.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "privateIpAddress",
        "publicIpAddresses",
        "publicIpCount",
        "virtualHubId"
      ],
      "type": "object"
    },
    "azure:network/getGatewayConnectionIpsecPolicy:getGatewayConnectionIpsecPolicy": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "dhGroup": {
          "description": "The DH group used in IKE phase 1 for initial SA. Valid\noptions are `DHGroup1`, `DHGroup14`, `DHGroup2`, `DHGroup2048`, `DHGroup24`,\n`ECP256`, `ECP384`, or `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ikeEncryption": {
          "description": "The IKE encryption algorithm. Valid\noptions are `AES128`, `AES192`, `AES256`, `DES`, or `DES3`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ikeIntegrity": {
          "description": "The IKE integrity algorithm. Valid\noptions are `MD5`, `SHA1`, `SHA256`, or `SHA384`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipsecEncryption": {
          "description": "The IPSec encryption algorithm. Valid\noptions are `AES128`, `AES192`, `AES256`, `DES`, `DES3`, `GCMAES128`, `GCMAES192`, `GCMAES256`, or `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipsecIntegrity": {
          "description": "The IPSec integrity algorithm. Valid\noptions are `GCMAES128`, `GCMAES192`, `GCMAES256`, `MD5`, `SHA1`, or `SHA256`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "pfsGroup": {
          "description": "The DH group used in IKE phase 2 for new child SA.\nValid options are `ECP256`, `ECP384`, `PFS1`, `PFS2`, `PFS2048`, `PFS24`,\nor `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "saDatasize": {
          "description": "The IPSec SA payload size in KB. Must be at least\n`1024` KB.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "saLifetime": {
          "description": "The IPSec SA lifetime in seconds. Must be at least\n`300` seconds.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "dhGroup",
        "ikeEncryption",
        "ikeIntegrity",
        "ipsecEncryption",
        "ipsecIntegrity",
        "pfsGroup",
        "saDatasize",
        "saLifetime"
      ],
      "type": "object"
    },
    "azure:network/getGatewayConnectionTrafficSelectorPolicy:getGatewayConnectionTrafficSelectorPolicy": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "localAddressCidrs": {
          "description": "List of local CIDRs.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "remoteAddressCidrs": {
          "description": "List of remote CIDRs.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "localAddressCidrs",
        "remoteAddressCidrs"
      ],
      "type": "object"
    },
    "azure:network/getLocalNetworkGatewayBgpSetting:getLocalNetworkGatewayBgpSetting": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "asn": {
          "description": "The BGP speaker's ASN.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "bgpPeeringAddress": {
          "description": "The BGP peering address and BGP identifier of this BGP speaker.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "peerWeight": {
          "description": "The weight added to routes learned from this BGP speaker.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "asn",
        "bgpPeeringAddress",
        "peerWeight"
      ],
      "type": "object"
    },
    "azure:network/getNetworkInterfaceIpConfiguration:getNetworkInterfaceIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "applicationGatewayBackendAddressPoolsIds": {
          "description": "A list of Backend Address Pool ID's within a Application Gateway that this Network Interface is connected to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "applicationSecurityGroupIds": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "loadBalancerBackendAddressPoolsIds": {
          "description": "A list of Backend Address Pool ID's within a Load Balancer that this Network Interface is connected to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "loadBalancerInboundNatRulesIds": {
          "description": "A list of Inbound NAT Rule ID's within a Load Balancer that this Network Interface is connected to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the name of the Network Interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primary": {
          "description": "is this the Primary IP Configuration for this Network Interface?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "privateIpAddress": {
          "description": "The Private IP Address assigned to this Network Interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddressAllocation": {
          "description": "The IP Address allocation type for the Private address, such as `Dynamic` or `Static`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddressVersion": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpAddressId": {
          "description": "The ID of the Public IP Address which is connected to this Network Interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the Subnet which the Network Interface is connected to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "applicationGatewayBackendAddressPoolsIds",
        "applicationSecurityGroupIds",
        "loadBalancerBackendAddressPoolsIds",
        "loadBalancerInboundNatRulesIds",
        "name",
        "primary",
        "privateIpAddress",
        "privateIpAddressAllocation",
        "privateIpAddressVersion",
        "publicIpAddressId",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:network/getNetworkSecurityGroupSecurityRule:getNetworkSecurityGroupSecurityRule": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "access": {
          "description": "Is network traffic is allowed or denied?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "description": {
          "description": "The description for this rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "destinationAddressPrefix": {
          "description": "CIDR or destination IP range or * to match any IP.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "destinationAddressPrefixes": {
          "description": "A list of CIDRs or destination IP ranges.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationApplicationSecurityGroupIds": {
          "description": "A List of destination Application Security Group ID's\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "destinationPortRange": {
          "description": "The Destination Port or Range.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "destinationPortRanges": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "direction": {
          "description": "The direction specifies if rule will be evaluated on incoming or outgoing traffic.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the Name of the Network Security Group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "The priority of the rule\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "protocol": {
          "description": "The network protocol this rule applies to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceAddressPrefix": {
          "description": "CIDR or source IP range or * to match any IP.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceAddressPrefixes": {
          "description": "A list of CIDRs or source IP ranges.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourceApplicationSecurityGroupIds": {
          "description": "A List of source Application Security Group ID's\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "sourcePortRange": {
          "description": "The Source Port or Range.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourcePortRanges": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "access",
        "description",
        "destinationAddressPrefix",
        "destinationAddressPrefixes",
        "destinationPortRange",
        "destinationPortRanges",
        "direction",
        "name",
        "priority",
        "protocol",
        "sourceAddressPrefix",
        "sourceAddressPrefixes",
        "sourcePortRange",
        "sourcePortRanges"
      ],
      "type": "object"
    },
    "azure:network/getPublicIPsPublicIp:getPublicIPsPublicIp": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "domainNameLabel": {
          "description": "The Domain Name Label of the Public IP Address\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fqdn": {
          "description": "The FQDN of the Public IP Address\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "id": {
          "description": "The ID of the Public IP Address\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipAddress": {
          "description": "The IP address of the Public IP Address\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of the Public IP Address\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "domainNameLabel",
        "fqdn",
        "id",
        "ipAddress",
        "name"
      ],
      "type": "object"
    },
    "azure:network/getRouteFilterRule:getRouteFilterRule": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "access": {
          "description": "The access type of the rule\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "communities": {
          "description": "The collection for bgp community values.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The Name of this Route Filter.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ruleType": {
          "description": "The Route Filter Rule Type.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "access",
        "communities",
        "name",
        "ruleType"
      ],
      "type": "object"
    },
    "azure:network/getRouteTableRoute:getRouteTableRoute": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "addressPrefix": {
          "description": "The destination CIDR to which the route applies.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Route Table.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "nextHopInIpAddress": {
          "description": "Contains the IP address packets should be forwarded to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "nextHopType": {
          "description": "The type of Azure hop the packet should be sent to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "addressPrefix",
        "name",
        "nextHopInIpAddress",
        "nextHopType"
      ],
      "type": "object"
    },
    "azure:network/getTrafficManagerProfileDnsConfig:getTrafficManagerProfileDnsConfig": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "relativeName": {
          "description": "The relative domain name, this is combined with the domain name used by Traffic Manager to form the FQDN which is exported as documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ttl": {
          "description": "The TTL value of the Profile used by Local DNS resolvers and clients.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "relativeName",
        "ttl"
      ],
      "type": "object"
    },
    "azure:network/getTrafficManagerProfileMonitorConfig:getTrafficManagerProfileMonitorConfig": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "customHeaders": {
          "description": "One or more `custom_header` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/getTrafficManagerProfileMonitorConfigCustomHeader:getTrafficManagerProfileMonitorConfigCustomHeader"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "expectedStatusCodeRanges": {
          "description": "A list of status code ranges.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "intervalInSeconds": {
          "description": "The interval used to check the endpoint health from a Traffic Manager probing agent.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "path": {
          "description": "The path used by the monitoring checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "port": {
          "description": "The port number used by the monitoring checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "protocol": {
          "description": "The protocol used by the monitoring checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "timeoutInSeconds": {
          "description": "The amount of time the Traffic Manager probing agent should wait before considering that check a failure when a health check probe is sent to the endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "toleratedNumberOfFailures": {
          "description": "The number of failures a Traffic Manager probing agent tolerates before marking that endpoint as unhealthy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "customHeaders",
        "expectedStatusCodeRanges",
        "intervalInSeconds",
        "path",
        "port",
        "protocol",
        "timeoutInSeconds",
        "toleratedNumberOfFailures"
      ],
      "type": "object"
    },
    "azure:network/getTrafficManagerProfileMonitorConfigCustomHeader:getTrafficManagerProfileMonitorConfigCustomHeader": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the Traffic Manager Profile.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value of custom header. Applicable for Http and Https protocol.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "type": "object"
    },
    "azure:network/getVirtualNetworkGatewayBgpSetting:getVirtualNetworkGatewayBgpSetting": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "asn": {
          "description": "The Autonomous System Number (ASN) to use as part of the BGP.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "peerWeight": {
          "description": "The weight added to routes which have been learned\nthrough BGP peering.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "peeringAddress": {
          "description": "The BGP peer IP address of the virtual network\ngateway. This address is needed to configure the created gateway as a BGP Peer\non the on-premises VPN devices.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "asn",
        "peerWeight",
        "peeringAddress"
      ],
      "type": "object"
    },
    "azure:network/getVirtualNetworkGatewayCustomRoute:getVirtualNetworkGatewayCustomRoute": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "addressPrefixes": {
          "description": "A list of address blocks reserved for this virtual network in CIDR notation.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "addressPrefixes"
      ],
      "type": "object"
    },
    "azure:network/getVirtualNetworkGatewayIpConfiguration:getVirtualNetworkGatewayIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the Virtual Network Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddressAllocation": {
          "description": "Defines how the private IP address\nof the gateways virtual interface is assigned.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicIpAddressId": {
          "description": "The ID of the Public IP Address associated\nwith the Virtual Network Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the gateway subnet of a virtual network in\nwhich the virtual network gateway will be created. It is mandatory that\nthe associated subnet is named `GatewaySubnet`. Therefore, each virtual\nnetwork can contain at most a single Virtual Network Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "privateIpAddressAllocation",
        "publicIpAddressId",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:network/getVirtualNetworkGatewayVpnClientConfiguration:getVirtualNetworkGatewayVpnClientConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "aadAudience": {
          "description": "The client id of the Azure VPN application.\nSee [Create an Active Directory (AD) tenant for P2S OpenVPN protocol connections](https://docs.microsoft.com/en-gb/azure/vpn-gateway/openvpn-azure-ad-tenant-multi-app) for values\nThis setting is incompatible with the use of\n`root_certificate` and `revoked_certificate`, `radius_server_address`, and `radius_server_secret`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "aadIssuer": {
          "description": "The STS url for your tenant\nThis setting is incompatible with the use of\n`root_certificate` and `revoked_certificate`, `radius_server_address`, and `radius_server_secret`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "aadTenant": {
          "description": "AzureAD Tenant URL\nThis setting is incompatible with the use of\n`root_certificate` and `revoked_certificate`, `radius_server_address`, and `radius_server_secret`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "addressSpaces": {
          "description": "The address space out of which ip addresses for\nvpn clients will be taken. You can provide more than one address space, e.g.\nin CIDR notation.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "radiusServerAddress": {
          "description": "The address of the Radius server.\nThis setting is incompatible with the use of\n`aad_tenant`, `aad_audience`, `aad_issuer`, `root_certificate` and `revoked_certificate`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "radiusServerSecret": {
          "description": "The secret used by the Radius server.\nThis setting is incompatible with the use of\n`aad_tenant`, `aad_audience`, `aad_issuer`, `root_certificate` and `revoked_certificate`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "revokedCertificates": {
          "description": "One or more `revoked_certificate` blocks which\nare defined below.\nThis setting is incompatible with the use of\n`aad_tenant`, `aad_audience`, `aad_issuer`, `radius_server_address`, and `radius_server_secret`.\n",
          "items": {
            "$ref": "#/types/azure:network/getVirtualNetworkGatewayVpnClientConfigurationRevokedCertificate:getVirtualNetworkGatewayVpnClientConfigurationRevokedCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "rootCertificates": {
          "description": "One or more `root_certificate` blocks which are\ndefined below. These root certificates are used to sign the client certificate\nused by the VPN clients to connect to the gateway.\nThis setting is incompatible with the use of\n`aad_tenant`, `aad_audience`, `aad_issuer`, `radius_server_address`, and `radius_server_secret`.\n",
          "items": {
            "$ref": "#/types/azure:network/getVirtualNetworkGatewayVpnClientConfigurationRootCertificate:getVirtualNetworkGatewayVpnClientConfigurationRootCertificate"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "vpnClientProtocols": {
          "description": "List of the protocols supported by the vpn client.\nThe supported values are `SSTP`, `IkeV2` and `OpenVPN`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "aadAudience",
        "aadIssuer",
        "aadTenant",
        "addressSpaces",
        "radiusServerAddress",
        "radiusServerSecret",
        "revokedCertificates",
        "rootCertificates",
        "vpnClientProtocols"
      ],
      "type": "object"
    },
    "azure:network/getVirtualNetworkGatewayVpnClientConfigurationRevokedCertificate:getVirtualNetworkGatewayVpnClientConfigurationRevokedCertificate": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the Virtual Network Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprint": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "thumbprint"
      ],
      "type": "object"
    },
    "azure:network/getVirtualNetworkGatewayVpnClientConfigurationRootCertificate:getVirtualNetworkGatewayVpnClientConfigurationRootCertificate": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the Virtual Network Gateway.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publicCertData": {
          "description": "The SHA1 thumbprint of the certificate to be revoked.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "publicCertData"
      ],
      "type": "object"
    },
    "azure:network/getVpnGatewayBgpSetting:getVpnGatewayBgpSetting": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "asn": {
          "description": "The ASN of the BGP Speaker.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "bgpPeeringAddress": {
          "description": "The Address which should be used for the BGP Peering.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "instance0BgpPeeringAddresses": {
          "description": "an `instance_bgp_peering_address` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/getVpnGatewayBgpSettingInstance0BgpPeeringAddress:getVpnGatewayBgpSettingInstance0BgpPeeringAddress"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "instance1BgpPeeringAddresses": {
          "description": "an `instance_bgp_peering_address` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:network/getVpnGatewayBgpSettingInstance1BgpPeeringAddress:getVpnGatewayBgpSettingInstance1BgpPeeringAddress"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "peerWeight": {
          "description": "The weight added to Routes learned from this BGP Speaker.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "asn",
        "bgpPeeringAddress",
        "instance0BgpPeeringAddresses",
        "instance1BgpPeeringAddresses",
        "peerWeight"
      ],
      "type": "object"
    },
    "azure:network/getVpnGatewayBgpSettingInstance0BgpPeeringAddress:getVpnGatewayBgpSettingInstance0BgpPeeringAddress": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "customIps": {
          "description": "A list of custom BGP peering addresses to assigned to this instance.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "defaultIps": {
          "description": "The list of default BGP peering addresses which belong to the pre-defined VPN Gateway IP configuration.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ipConfigurationId": {
          "description": "The pre-defined id of VPN Gateway Ip Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tunnelIps": {
          "description": "The list of tunnel public IP addresses which belong to the pre-defined VPN Gateway IP configuration.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "customIps",
        "defaultIps",
        "ipConfigurationId",
        "tunnelIps"
      ],
      "type": "object"
    },
    "azure:network/getVpnGatewayBgpSettingInstance1BgpPeeringAddress:getVpnGatewayBgpSettingInstance1BgpPeeringAddress": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "customIps": {
          "description": "A list of custom BGP peering addresses to assigned to this instance.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "defaultIps": {
          "description": "The list of default BGP peering addresses which belong to the pre-defined VPN Gateway IP configuration.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ipConfigurationId": {
          "description": "The pre-defined id of VPN Gateway Ip Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tunnelIps": {
          "description": "The list of tunnel public IP addresses which belong to the pre-defined VPN Gateway IP configuration.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "customIps",
        "defaultIps",
        "ipConfigurationId",
        "tunnelIps"
      ],
      "type": "object"
    },
    "azure:notificationhub/HubApnsCredential:HubApnsCredential": {
      "properties": {
        "applicationMode": {
          "description": "The Application Mode which defines which server the APNS Messages should be sent to. Possible values are `Production` and `Sandbox`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "bundleId": {
          "description": "The Bundle ID of the iOS/macOS application to send push notifications for, such as `com.org.example`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyId": {
          "description": "The Apple Push Notifications Service (APNS) Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "teamId": {
          "description": "The ID of the team the Token.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "token": {
          "description": "The Push Token associated with the Apple Developer Account. This is the contents of the `key` downloaded from [the Apple Developer Portal](https://developer.apple.com/account/ios/authkey/) between the `-----BEGIN PRIVATE KEY-----` and `-----END PRIVATE KEY-----` blocks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "applicationMode",
        "bundleId",
        "keyId",
        "teamId",
        "token"
      ],
      "type": "object"
    },
    "azure:notificationhub/HubGcmCredential:HubGcmCredential": {
      "properties": {
        "apiKey": {
          "description": "The API Key associated with the Google Cloud Messaging service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "apiKey"
      ],
      "type": "object"
    },
    "azure:notificationhub/getHubApnsCredential:getHubApnsCredential": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "applicationMode": {
          "description": "The Application Mode which defines which server the APNS Messages should be sent to. Possible values are `Production` and `Sandbox`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "bundleId": {
          "description": "The Bundle ID of the iOS/macOS application to send push notifications for, such as `com.org.example`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "keyId": {
          "description": "The Apple Push Notifications Service (APNS) Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "teamId": {
          "description": "The ID of the team the Token.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "token": {
          "description": "The Push Token associated with the Apple Developer Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "applicationMode",
        "bundleId",
        "keyId",
        "teamId",
        "token"
      ],
      "type": "object"
    },
    "azure:notificationhub/getHubGcmCredential:getHubGcmCredential": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "apiKey": {
          "description": "The API Key associated with the Google Cloud Messaging service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "apiKey"
      ],
      "type": "object"
    },
    "azure:notificationhub/getNamespaceSku:getNamespaceSku": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the Name of the Notification Hub Namespace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:operationalinsights/AnalyticsSolutionPlan:AnalyticsSolutionPlan": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "product",
            "publisher"
          ]
        }
      },
      "properties": {
        "name": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "product": {
          "description": "The product name of the solution. For example `OMSGallery/Containers`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "promotionCode": {
          "description": "A promotion code to be used with the solution.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publisher": {
          "description": "The publisher of the solution. For example `Microsoft`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "product",
        "publisher"
      ],
      "type": "object"
    },
    "azure:policy/AssignmentIdentity:AssignmentIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID of this Policy Assignment if `type` is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID of this Policy Assignment if `type` is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of Managed Identity for this Policy Assignment. Possible values are `SystemAssigned` (where Azure will generate a Service Principal for you).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:policy/PolicySetDefinitionPolicyDefinitionGroup:PolicySetDefinitionPolicyDefinitionGroup": {
      "properties": {
        "additionalMetadataResourceId": {
          "description": "The ID of a resource that contains additional metadata about this policy definition group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "category": {
          "description": "The category of this policy definition group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "description": {
          "description": "The description of this policy definition group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "displayName": {
          "description": "The display name of this policy definition group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of this policy definition group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:policy/PolicySetDefinitionPolicyDefinitionReference:PolicySetDefinitionPolicyDefinitionReference": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "parameterValues",
            "parameters",
            "policyDefinitionId",
            "referenceId"
          ]
        }
      },
      "properties": {
        "parameterValues": {
          "description": "Parameter values for the referenced policy rule. This field is a JSON string that allows you to assign parameters to this policy rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "deprecationMessage": "Deprecated in favour of `parameter_values`",
          "description": "Parameters for the policy set definition. This field is a json object that allows you to parameterize your policy definition.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "policyDefinitionId": {
          "description": "The ID of the policy definition or policy set definition that will be included in this policy set definition.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "policyGroupNames": {
          "description": "A list of names of the policy definition groups that this policy definition reference belongs to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "referenceId": {
          "description": "A unique ID within this policy set definition for this policy definition reference.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "policyDefinitionId"
      ],
      "type": "object"
    },
    "azure:policy/VirtualMachineConfigurationAssignmentConfiguration:VirtualMachineConfigurationAssignmentConfiguration": {
      "properties": {
        "assignmentType": {
          "description": "The assignment type for the Guest Configuration Assignment. Possible values are `Audit`, `ApplyAndAutoCorrect`, `ApplyAndMonitor` and `DeployAndAutoCorrect`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "contentHash": {
          "description": "The content hash for the Guest Configuration package.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "contentUri": {
          "description": "The content URI where the Guest Configuration package is stored.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the Guest Configuration that will be assigned in this Guest Configuration Assignment.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "description": "One or more `parameter` blocks which define what configuration parameters and values against.\n",
          "items": {
            "$ref": "#/types/azure:policy/VirtualMachineConfigurationAssignmentConfigurationParameter:VirtualMachineConfigurationAssignmentConfigurationParameter"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "version": {
          "description": "The version of the Guest Configuration that will be assigned in this Guest Configuration Assignment.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:policy/VirtualMachineConfigurationAssignmentConfigurationParameter:VirtualMachineConfigurationAssignmentConfigurationParameter": {
      "properties": {
        "name": {
          "description": "The name of the configuration parameter to check.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value to check the configuration parameter with.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "type": "object"
    },
    "azure:policy/getPolicySetDefinitionPolicyDefinitionGroup:getPolicySetDefinitionPolicyDefinitionGroup": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "additionalMetadataResourceId": {
          "description": "The ID of a resource that contains additional metadata about this policy definition group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "category": {
          "description": "The category of this policy definition group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "description": {
          "description": "The description of this policy definition group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "displayName": {
          "description": "Specifies the display name of the Policy Set Definition. Conflicts with `name`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the name of the Policy Set Definition. Conflicts with `display_name`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "additionalMetadataResourceId",
        "category",
        "description",
        "displayName",
        "name"
      ],
      "type": "object"
    },
    "azure:policy/getPolicySetDefinitionPolicyDefinitionReference:getPolicySetDefinitionPolicyDefinitionReference": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "parameterValues": {
          "description": "The parameter values for the referenced policy rule. This field is a json object.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The mapping of the parameter values for the referenced policy rule. The keys are the parameter names.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "policyDefinitionId": {
          "description": "The ID of the policy definition or policy set definition that is included in this policy set definition.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "policyGroupNames": {
          "description": "The list of names of the policy definition groups that this policy definition reference belongs to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "referenceId": {
          "description": "The unique ID within this policy set definition for this policy definition reference.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "parameterValues",
        "parameters",
        "policyDefinitionId",
        "policyGroupNames",
        "referenceId"
      ],
      "type": "object"
    },
    "azure:postgresql/FlexibleServerHighAvailability:FlexibleServerHighAvailability": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "mode",
            "standbyAvailabilityZone"
          ]
        }
      },
      "properties": {
        "mode": {
          "description": "The high availability mode for the PostgreSQL Flexible Server. The only possible value is `ZoneRedundant`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "standbyAvailabilityZone": {
          "description": "The availability zone of the standby Flexible Server. Possible values are `1`, `2` and `3`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode"
      ],
      "type": "object"
    },
    "azure:postgresql/FlexibleServerMaintenanceWindow:FlexibleServerMaintenanceWindow": {
      "properties": {
        "dayOfWeek": {
          "description": "The day of week for maintenance window. Defaults to `0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "startHour": {
          "description": "The day of week for maintenance window. Defaults to `0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "startMinute": {
          "description": "The start minute for maintenance window. Defaults to `0`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:postgresql/ServerIdentity:ServerIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Client ID of the Service Principal assigned to this PostgreSQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant the Service Principal is assigned in.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Identity which should be used for this PostgreSQL Server. At this time the only possible value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:postgresql/ServerStorageProfile:ServerStorageProfile": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "autoGrow",
            "geoRedundantBackup"
          ]
        }
      },
      "properties": {
        "autoGrow": {
          "deprecationMessage": "this has been moved to the top level and will be removed in version 3.0 of the provider.",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "backupRetentionDays": {
          "deprecationMessage": "this has been moved to the top level and will be removed in version 3.0 of the provider.",
          "description": "Backup retention days for the server, supported values are between `7` and `35` days.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "geoRedundantBackup": {
          "deprecationMessage": "this has been moved to the top level and will be removed in version 3.0 of the provider.",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageMb": {
          "deprecationMessage": "this has been moved to the top level and will be removed in version 3.0 of the provider.",
          "description": "Max storage allowed for a server. Possible values are between `5120` MB(5GB) and `1048576` MB(1TB) for the Basic SKU and between `5120` MB(5GB) and `16777216` MB(16TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/postgresql/servers/create#StorageProfile).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:postgresql/ServerThreatDetectionPolicy:ServerThreatDetectionPolicy": {
      "properties": {
        "disabledAlerts": {
          "description": "Specifies a list of alerts which should be disabled. Possible values include `Access_Anomaly`, `Sql_Injection` and `Sql_Injection_Vulnerability`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "emailAccountAdmins": {
          "description": "Should the account administrators be emailed when this alert is triggered?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "emailAddresses": {
          "description": "A list of email addresses which alerts should be sent to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enabled": {
          "description": "Is the policy enabled?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "retentionDays": {
          "description": "Specifies the number of days to keep in the Threat Detection audit logs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountAccessKey": {
          "description": "Specifies the identifier key of the Threat Detection audit storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageEndpoint": {
          "description": "Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all Threat Detection audit logs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:postgresql/getServerIdentity:getServerIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "principalId": {
          "description": "The ID of the System Managed Service Principal assigned to the PostgreSQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant of the System Managed Service Principal assigned to the PostgreSQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The identity type of the Managed Identity assigned to the PostgreSQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:privatedns/LinkServiceNatIpConfiguration:LinkServiceNatIpConfiguration": {
      "properties": {
        "name": {
          "description": "Specifies the name which should be used for the NAT IP Configuration. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primary": {
          "description": "Is this is the Primary IP Configuration? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "privateIpAddress": {
          "description": "Specifies a Private Static IP Address for this IP Configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddressVersion": {
          "description": "The version of the IP Protocol which should be used. At this time the only supported value is `IPv4`. Defaults to `IPv4`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "Specifies the ID of the Subnet which should be used for the Private Link Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "primary",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:privatedns/MxRecordRecord:MxRecordRecord": {
      "properties": {
        "exchange": {
          "description": "The FQDN of the exchange to MX record points to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "preference": {
          "description": "The preference of the MX record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "exchange",
        "preference"
      ],
      "type": "object"
    },
    "azure:privatedns/SRVRecordRecord:SRVRecordRecord": {
      "properties": {
        "port": {
          "description": "The Port the service is listening on.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "priority": {
          "description": "The priority of the SRV record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "target": {
          "description": "The FQDN of the service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "weight": {
          "description": "The Weight of the SRV record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "port",
        "priority",
        "target",
        "weight"
      ],
      "type": "object"
    },
    "azure:privatedns/TxtRecordRecord:TxtRecordRecord": {
      "properties": {
        "value": {
          "description": "The value of the TXT record. Max length: 1024 characters\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "value"
      ],
      "type": "object"
    },
    "azure:privatedns/ZoneSoaRecord:ZoneSoaRecord": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "email",
            "fqdn",
            "hostName",
            "serialNumber"
          ]
        }
      },
      "properties": {
        "email": {
          "description": "The email contact for the SOA record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "expireTime": {
          "description": "The expire time for the SOA record. Defaults to `2419200`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "fqdn": {
          "description": "The fully qualified domain name of the Record Set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "hostName": {
          "description": "The domain name of the authoritative name server for the SOA record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "minimumTtl": {
          "description": "The minimum Time To Live for the SOA record. By convention, it is used to determine the negative caching duration. Defaults to `10`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "refreshTime": {
          "description": "The refresh time for the SOA record. Defaults to `3600`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "retryTime": {
          "description": "The retry time for the SOA record. Defaults to `300`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "serialNumber": {
          "description": "The serial number for the SOA record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A mapping of tags to assign to the Record Set.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "ttl": {
          "description": "The Time To Live of the SOA Record in seconds. Defaults to `3600`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "email"
      ],
      "type": "object"
    },
    "azure:privatelink/EndpointCustomDnsConfig:EndpointCustomDnsConfig": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fqdn",
            "ipAddresses"
          ]
        }
      },
      "properties": {
        "fqdn": {
          "description": "The fully qualified domain name to the `private_dns_zone`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipAddresses": {
          "description": "A list of all IP Addresses that map to the `private_dns_zone` fqdn.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:privatelink/EndpointPrivateDnsZoneConfig:EndpointPrivateDnsZoneConfig": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name",
            "privateDnsZoneId",
            "recordSets"
          ]
        }
      },
      "properties": {
        "id": {
          "description": "The ID of the Private DNS Zone Config.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the Name of the Private Endpoint. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateDnsZoneId": {
          "description": "A list of IP Addresses\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "recordSets": {
          "description": "A `record_sets` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:privatelink/EndpointPrivateDnsZoneConfigRecordSet:EndpointPrivateDnsZoneConfigRecordSet"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:privatelink/EndpointPrivateDnsZoneConfigRecordSet:EndpointPrivateDnsZoneConfigRecordSet": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fqdn",
            "ipAddresses",
            "name",
            "ttl",
            "type"
          ]
        }
      },
      "properties": {
        "fqdn": {
          "description": "The fully qualified domain name to the `private_dns_zone`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipAddresses": {
          "description": "A list of all IP Addresses that map to the `private_dns_zone` fqdn.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "Specifies the Name of the Private Endpoint. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ttl": {
          "description": "The time to live for each connection to the `private_dns_zone`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "type": {
          "description": "The type of DNS record.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:privatelink/EndpointPrivateDnsZoneGroup:EndpointPrivateDnsZoneGroup": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "name",
            "privateDnsZoneIds"
          ]
        }
      },
      "properties": {
        "id": {
          "description": "The ID of the Private DNS Zone Config.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "Specifies the Name of the Private DNS Zone Group. Changing this forces a new `private_dns_zone_group` resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateDnsZoneIds": {
          "description": "Specifies the list of Private DNS Zones to include within the `private_dns_zone_group`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "privateDnsZoneIds"
      ],
      "type": "object"
    },
    "azure:privatelink/EndpointPrivateServiceConnection:EndpointPrivateServiceConnection": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "isManualConnection",
            "name",
            "privateIpAddress"
          ]
        }
      },
      "properties": {
        "isManualConnection": {
          "description": "Does the Private Endpoint require Manual Approval from the remote resource owner? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "name": {
          "description": "Specifies the Name of the Private Service Connection. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateConnectionResourceAlias": {
          "description": "The Service Alias of the Private Link Enabled Remote Resource which this Private Endpoint should be connected to. One of `private_connection_resource_id` or `private_connection_resource_alias` must be specified. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateConnectionResourceId": {
          "description": "The ID of the Private Link Enabled Remote Resource which this Private Endpoint should be connected to. One of `private_connection_resource_id` or `private_connection_resource_alias` must be specified. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddress": {
          "description": "(Computed) The private IP address associated with the private endpoint, note that you will have a private IP address assigned to the private endpoint even if the connection request was `Rejected`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "requestMessage": {
          "description": "A message passed to the owner of the remote resource when the private endpoint attempts to establish the connection to the remote resource. The request message can be a maximum of `140` characters in length. Only valid if `is_manual_connection` is set to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subresourceNames": {
          "description": "A list of subresource names which the Private Endpoint is able to connect to. `subresource_names` corresponds to `group_id`. Changing this forces a new resource to be created.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "isManualConnection",
        "name"
      ],
      "type": "object"
    },
    "azure:privatelink/getEndpointConnectionPrivateServiceConnection:getEndpointConnectionPrivateServiceConnection": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the Name of the private endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddress": {
          "description": "The private IP address associated with the private endpoint, note that you will have a private IP address assigned to the private endpoint even if the connection request was `Rejected`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "requestResponse": {
          "description": "Possible values are as follows:\nValue | Meaning\n-- | --\n`Auto-Approved` | The remote resource owner has added you to the `Auto-Approved` RBAC permission list for the remote resource, all private endpoint connection requests will be automatically `Approved`.\n`Deleted state` | The resource owner has `Rejected` the private endpoint connection request and has removed your private endpoint request from the remote resource.\n`request/response message` | If you submitted a manual private endpoint connection request, while in the `Pending` status the `request_response` will display the same text from your `request_message` in the `private_service_connection` block above. If the private endpoint connection request was `Rejected` by the owner of the remote resource, the text for the rejection will be displayed as the `request_response` text, if the private endpoint connection request was `Approved` by the owner of the remote resource, the text for the approval will be displayed as the `request_response` text\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "status": {
          "description": "The current status of the private endpoint request, possible values will be `Pending`, `Approved`, `Rejected`, or `Disconnected`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "privateIpAddress",
        "requestResponse",
        "status"
      ],
      "type": "object"
    },
    "azure:privatelink/getServiceEndpointConnectionsPrivateEndpointConnection:getServiceEndpointConnectionsPrivateEndpointConnection": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "actionRequired": {
          "description": "A message indicating if changes on the service provider require any updates or not.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "connectionId": {
          "description": "The resource id of the private link service connection between the private link service and the private link endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "connectionName": {
          "description": "The name of the connection between the private link service and the private link endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "description": {
          "description": "The request for approval message or the reason for rejection message.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateEndpointId": {
          "description": "The resource id of the private link endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateEndpointName": {
          "description": "The name of the private link endpoint.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "status": {
          "description": "Indicates the state of the connection between the private link service and the private link endpoint, possible values are `Pending`, `Approved` or `Rejected`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "actionRequired",
        "connectionId",
        "connectionName",
        "description",
        "privateEndpointId",
        "privateEndpointName",
        "status"
      ],
      "type": "object"
    },
    "azure:privatelink/getServiceNatIpConfiguration:getServiceNatIpConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "The name of the private link service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "primary": {
          "description": "Value that indicates if the IP configuration is the primary configuration or not.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "privateIpAddress": {
          "description": "The private IP address of the NAT IP configuration.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "privateIpAddressVersion": {
          "description": "The version of the IP Protocol.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "subnetId": {
          "description": "The ID of the subnet to be used by the service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "primary",
        "privateIpAddress",
        "privateIpAddressVersion",
        "subnetId"
      ],
      "type": "object"
    },
    "azure:purview/AccountIdentity:AccountIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The ID of the Principal (Client) in Azure Active Directory.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Azure Active Directory Tenant.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of Managed Identity assigned to this Purview Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:recoveryservices/VaultIdentity:VaultIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Identity which should be used for this Recovery Services Vault. At this time the only possible value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:redis/CachePatchSchedule:CachePatchSchedule": {
      "properties": {
        "dayOfWeek": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maintenanceWindow": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "startHourUtc": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "dayOfWeek"
      ],
      "type": "object"
    },
    "azure:redis/CacheRedisConfiguration:CacheRedisConfiguration": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "maxclients",
            "maxfragmentationmemoryReserved",
            "maxmemoryDelta",
            "maxmemoryReserved"
          ]
        }
      },
      "properties": {
        "aofBackupEnabled": {
          "description": "Enable or disable AOF persistence for this Redis Cache.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "aofStorageConnectionString0": {
          "description": "First Storage Account connection string for AOF persistence.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "aofStorageConnectionString1": {
          "description": "Second Storage Account connection string for AOF persistence.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enableAuthentication": {
          "description": "If set to `false`, the Redis instance will be accessible without authentication. Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "maxclients": {
          "description": "Returns the max number of connected clients at the same time.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxfragmentationmemoryReserved": {
          "description": "Value in megabytes reserved to accommodate for memory fragmentation. Defaults are shown below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxmemoryDelta": {
          "description": "The max-memory delta for this Redis instance. Defaults are shown below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxmemoryPolicy": {
          "description": "How Redis will select what to remove when `maxmemory` is reached. Defaults are shown below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxmemoryReserved": {
          "description": "Value in megabytes reserved for non-cache usage e.g. failover. Defaults are shown below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "notifyKeyspaceEvents": {
          "description": "Keyspace notifications allows clients to subscribe to Pub/Sub channels in order to receive events affecting the Redis data set in some way. [Reference](https://redis.io/topics/notifications#configuration)\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rdbBackupEnabled": {
          "description": "Is Backup Enabled? Only supported on Premium SKU's.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "rdbBackupFrequency": {
          "description": "The Backup Frequency in Minutes. Only supported on Premium SKU's. Possible values are: `15`, `30`, `60`, `360`, `720` and `1440`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "rdbBackupMaxSnapshotCount": {
          "description": "The maximum number of snapshots to create as a backup. Only supported for Premium SKU's.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "rdbStorageConnectionString": {
          "description": "The Connection String to the Storage Account. Only supported for Premium SKU's. In the format: `DefaultEndpointsProtocol=https;BlobEndpoint=${azurerm_storage_account.example.primary_blob_endpoint};AccountName=${azurerm_storage_account.example.name};AccountKey=${azurerm_storage_account.example.primary_access_key}`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:redis/EnterpriseDatabaseModule:EnterpriseDatabaseModule": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "version"
          ]
        }
      },
      "properties": {
        "args": {
          "description": "Configuration options for the module (e.g. `ERROR_RATE 0.00 INITIAL_SIZE 400`).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name which should be used for this module. Possible values are `RediSearch`, `RedisBloom` and `RedisTimeSeries`. Changing this forces a new Redis Enterprise Database to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:redis/getCachePatchSchedule:getCachePatchSchedule": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "dayOfWeek": {
          "description": "the Weekday name for the patch item\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maintenanceWindow": {
          "description": "The ISO 8601 timespan which specifies the amount of time the Redis Cache can be updated.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "startHourUtc": {
          "description": "The Start Hour for maintenance in UTC\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "dayOfWeek",
        "maintenanceWindow",
        "startHourUtc"
      ],
      "type": "object"
    },
    "azure:redis/getCacheRedisConfiguration:getCacheRedisConfiguration": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "aofBackupEnabled": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "aofStorageConnectionString0": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "aofStorageConnectionString1": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "enableAuthentication": {
          "description": "Specifies if authentication is enabled\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "maxclients": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxfragmentationmemoryReserved": {
          "description": "Value in megabytes reserved to accommodate for memory fragmentation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxmemoryDelta": {
          "description": "The max-memory delta for this Redis instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxmemoryPolicy": {
          "description": "How Redis will select what to remove when `maxmemory` is reached.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "maxmemoryReserved": {
          "description": "The value in megabytes reserved for non-cache usage e.g. failover\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "notifyKeyspaceEvents": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rdbBackupEnabled": {
          "description": "Is Backup Enabled? Only supported on Premium SKU's.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "rdbBackupFrequency": {
          "description": "The Backup Frequency in Minutes. Only supported on Premium SKU's.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "rdbBackupMaxSnapshotCount": {
          "description": "The maximum number of snapshots that can be created as a backup.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "rdbStorageConnectionString": {
          "description": "The Connection String to the Storage Account. Only supported for Premium SKU's.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "aofBackupEnabled",
        "aofStorageConnectionString0",
        "aofStorageConnectionString1",
        "enableAuthentication",
        "maxclients",
        "maxfragmentationmemoryReserved",
        "maxmemoryDelta",
        "maxmemoryPolicy",
        "maxmemoryReserved",
        "notifyKeyspaceEvents",
        "rdbBackupEnabled",
        "rdbBackupFrequency",
        "rdbBackupMaxSnapshotCount",
        "rdbStorageConnectionString"
      ],
      "type": "object"
    },
    "azure:role/DefinitionPermission:DefinitionPermission": {
      "properties": {
        "actions": {
          "description": "One or more Allowed Actions, such as `*`, `Microsoft.Resources/subscriptions/resourceGroups/read`. See ['Azure Resource Manager resource provider operations'](https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations) for details.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "dataActions": {
          "description": "One or more Allowed Data Actions, such as `*`, `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read`. See ['Azure Resource Manager resource provider operations'](https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations) for details.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "notActions": {
          "description": "One or more Disallowed Actions, such as `*`, `Microsoft.Resources/subscriptions/resourceGroups/read`. See ['Azure Resource Manager resource provider operations'](https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations) for details.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "notDataActions": {
          "description": "One or more Disallowed Data Actions, such as `*`, `Microsoft.Resources/subscriptions/resourceGroups/read`. See ['Azure Resource Manager resource provider operations'](https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations) for details.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:role/getRoleDefinitionPermission:getRoleDefinitionPermission": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "actions": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "dataActions": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "notActions": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "notDataActions": {
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "actions",
        "notActions"
      ],
      "type": "object"
    },
    "azure:search/ServiceIdentity:ServiceIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The (Client) ID of the Service Principal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant the Service Principal is assigned in.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Identity which should be used for the Search Service. At this time the only possible value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:search/ServiceQueryKey:ServiceQueryKey": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "key",
            "name"
          ]
        }
      },
      "properties": {
        "key": {
          "description": "The value of this Query Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name which should be used for this Search Service. Changing this forces a new Search Service to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:search/getServiceIdentity:getServiceIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "principalId": {
          "description": "The (Client) ID of the Service Principal.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Tenant the Service Principal is assigned in.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Type of Managed Identity which is used for the Search Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:search/getServiceQueryKey:getServiceQueryKey": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "key": {
          "description": "The value of this Query Key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The Name of the Search Service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "key",
        "name"
      ],
      "type": "object"
    },
    "azure:securitycenter/AssessmentStatus:AssessmentStatus": {
      "properties": {
        "cause": {
          "description": "Specifies the cause of the assessment status.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "code": {
          "description": "Specifies the programmatic code of the assessment status. Possible values are `Healthy`, `Unhealthy` and `NotApplicable`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "description": {
          "description": "Specifies the human readable description of the assessment status.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "code"
      ],
      "type": "object"
    },
    "azure:securitycenter/AutomationAction:AutomationAction": {
      "properties": {
        "connectionString": {
          "description": "A connection string to send data to the target Event Hub namespace, this should include a key with send permissions.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resourceId": {
          "description": "The resource id of the target Logic App, Event Hub namespace or Log Analytics workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "triggerUrl": {
          "description": "The callback URL to trigger the Logic App that will receive and process data sent by this automation. This can be found in the Azure Portal under \"See trigger history\"\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Type of Azure resource to send data to. Must be set to one of: `LogicApp`, `EventHub` or `LogAnalytics`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "resourceId",
        "type"
      ],
      "type": "object"
    },
    "azure:securitycenter/AutomationSource:AutomationSource": {
      "properties": {
        "eventSource": {
          "description": "Type of data that will trigger this automation. Must be one of `Alerts`, `Assessments`, `SecureScoreControls`, `SecureScores` or `SubAssessments`. Note. assessments are also referred to as recommendations\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ruleSets": {
          "description": "A set of rules which evaluate upon event and data interception. This is defined in one or more `rule_set` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:securitycenter/AutomationSourceRuleSet:AutomationSourceRuleSet"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "eventSource"
      ],
      "type": "object"
    },
    "azure:securitycenter/AutomationSourceRuleSet:AutomationSourceRuleSet": {
      "properties": {
        "rules": {
          "description": "One or more `rule` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:securitycenter/AutomationSourceRuleSetRule:AutomationSourceRuleSetRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "rules"
      ],
      "type": "object"
    },
    "azure:securitycenter/AutomationSourceRuleSetRule:AutomationSourceRuleSetRule": {
      "properties": {
        "expectedValue": {
          "description": "A value that will be compared with the value in `property_path`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operator": {
          "description": "The comparison operator to use, must be one of: `Contains`, `EndsWith`, `Equals`, `GreaterThan`, `GreaterThanOrEqualTo`, `LesserThan`, `LesserThanOrEqualTo`, `NotEquals`, `StartsWith`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "propertyPath": {
          "description": "The JPath of the entity model property that should be checked.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "propertyType": {
          "description": "The data type of the compared operands, must be one of: `Integer`, `String`, `Boolean` or `Number`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "expectedValue",
        "operator",
        "propertyPath",
        "propertyType"
      ],
      "type": "object"
    },
    "azure:sentinel/AlertRuleScheduledEventGrouping:AlertRuleScheduledEventGrouping": {
      "properties": {
        "aggregationMethod": {
          "description": "The aggregation type of grouping the events.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "aggregationMethod"
      ],
      "type": "object"
    },
    "azure:sentinel/AlertRuleScheduledIncidentConfiguration:AlertRuleScheduledIncidentConfiguration": {
      "properties": {
        "createIncident": {
          "description": "Whether to create an incident from alerts triggered by this Sentinel Scheduled Alert Rule?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "grouping": {
          "$ref": "#/types/azure:sentinel/AlertRuleScheduledIncidentConfigurationGrouping:AlertRuleScheduledIncidentConfigurationGrouping",
          "description": "A `grouping` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "createIncident",
        "grouping"
      ],
      "type": "object"
    },
    "azure:sentinel/AlertRuleScheduledIncidentConfigurationGrouping:AlertRuleScheduledIncidentConfigurationGrouping": {
      "properties": {
        "enabled": {
          "description": "Enable grouping incidents created from alerts triggered by this Sentinel Scheduled Alert Rule. Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "entityMatchingMethod": {
          "description": "The method used to group incidents. Possible values are `All`, `Custom` and `None`. Defaults to `None`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "groupBies": {
          "description": "A list of entity types to group by, only when the `entity_matching_method` is `Custom`. Possible values are `Account`, `Host`, `Url`, `Ip`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "lookbackDuration": {
          "description": "Limit the group to alerts created within the lookback duration (in ISO 8601 duration format). Defaults to `PT5M`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "reopenClosedIncidents": {
          "description": "Whether to re-open closed matching incidents? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:sentinel/getAlertRuleTemplateScheduledTemplate:getAlertRuleTemplateScheduledTemplate": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "description": {
          "description": "The description of this Sentinel Scheduled Alert Rule Template.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "query": {
          "description": "The query of this Sentinel Scheduled Alert Rule Template.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "queryFrequency": {
          "description": "The ISO 8601 timespan duration between two consecutive queries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "queryPeriod": {
          "description": "The ISO 8601 timespan duration, which determine the time period of the data covered by the query.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "severity": {
          "description": "The alert severity of this Sentinel Scheduled Alert Rule Template.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tactics": {
          "description": "A list of categories of attacks by which to classify the rule.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "triggerOperator": {
          "description": "The alert trigger operator, combined with `trigger_threshold`, setting alert threshold of this Sentinel Scheduled Alert Rule Template.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "triggerThreshold": {
          "description": "The baseline number of query results generated, combined with `trigger_operator`, setting alert threshold of this Sentinel Scheduled Alert Rule Template.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "description",
        "query",
        "queryFrequency",
        "queryPeriod",
        "severity",
        "tactics",
        "triggerOperator",
        "triggerThreshold"
      ],
      "type": "object"
    },
    "azure:sentinel/getAlertRuleTemplateSecurityIncidentTemplate:getAlertRuleTemplateSecurityIncidentTemplate": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "description": {
          "description": "The description of this Sentinel Scheduled Alert Rule Template.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "productFilter": {
          "description": "The Microsoft Security Service from where the alert will be generated.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "description",
        "productFilter"
      ],
      "type": "object"
    },
    "azure:servicebus/NamespaceNetworkRuleSetNetworkRule:NamespaceNetworkRuleSetNetworkRule": {
      "properties": {
        "ignoreMissingVnetServiceEndpoint": {
          "description": "Should the ServiceBus Namespace Network Rule Set ignore missing Virtual Network Service Endpoint option in the Subnet? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "subnetId": {
          "description": "The Subnet ID which should be able to access this ServiceBus Namespace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "subnetId"
      ],
      "type": "object"
    },
    "azure:servicebus/SubscriptionRuleCorrelationFilter:SubscriptionRuleCorrelationFilter": {
      "properties": {
        "contentType": {
          "description": "Content type of the message.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "correlationId": {
          "description": "Identifier of the correlation.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "label": {
          "description": "Application specific label.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "messageId": {
          "description": "Identifier of the message.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "properties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A list of user defined properties to be included in the filter. Specified as a map of name/value pairs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "replyTo": {
          "description": "Address of the queue to reply to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "replyToSessionId": {
          "description": "Session identifier to reply to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sessionId": {
          "description": "Session identifier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "to": {
          "description": "Address to send to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:servicefabric/ClusterAzureActiveDirectory:ClusterAzureActiveDirectory": {
      "properties": {
        "clientApplicationId": {
          "description": "The Azure Active Directory Client ID which should be used for the Client Application.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "clusterApplicationId": {
          "description": "The Azure Active Directory Cluster Application ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Azure Active Directory Tenant ID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "clientApplicationId",
        "clusterApplicationId",
        "tenantId"
      ],
      "type": "object"
    },
    "azure:servicefabric/ClusterCertificate:ClusterCertificate": {
      "properties": {
        "thumbprint": {
          "description": "The Thumbprint of the Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprintSecondary": {
          "description": "The Secondary Thumbprint of the Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "x509StoreName": {
          "description": "The X509 Store where the Certificate Exists, such as `My`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "thumbprint",
        "x509StoreName"
      ],
      "type": "object"
    },
    "azure:servicefabric/ClusterCertificateCommonNames:ClusterCertificateCommonNames": {
      "properties": {
        "commonNames": {
          "description": "A `common_names` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:servicefabric/ClusterCertificateCommonNamesCommonName:ClusterCertificateCommonNamesCommonName"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "x509StoreName": {
          "description": "The X509 Store where the Certificate Exists, such as `My`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "commonNames",
        "x509StoreName"
      ],
      "type": "object"
    },
    "azure:servicefabric/ClusterCertificateCommonNamesCommonName:ClusterCertificateCommonNamesCommonName": {
      "properties": {
        "certificateCommonName": {
          "description": "The common or subject name of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificateIssuerThumbprint": {
          "description": "The Issuer Thumbprint of the Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "certificateCommonName"
      ],
      "type": "object"
    },
    "azure:servicefabric/ClusterClientCertificateCommonName:ClusterClientCertificateCommonName": {
      "properties": {
        "commonName": {
          "description": "The common or subject name of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "isAdmin": {
          "description": "Does the Client Certificate have Admin Access to the cluster? Non-admin clients can only perform read only operations on the cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "issuerThumbprint": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "commonName",
        "isAdmin"
      ],
      "type": "object"
    },
    "azure:servicefabric/ClusterClientCertificateThumbprint:ClusterClientCertificateThumbprint": {
      "properties": {
        "isAdmin": {
          "description": "Does the Client Certificate have Admin Access to the cluster? Non-admin clients can only perform read only operations on the cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "thumbprint": {
          "description": "The Thumbprint associated with the Client Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "isAdmin",
        "thumbprint"
      ],
      "type": "object"
    },
    "azure:servicefabric/ClusterDiagnosticsConfig:ClusterDiagnosticsConfig": {
      "properties": {
        "blobEndpoint": {
          "description": "The Blob Endpoint of the Storage Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "protectedAccountKeyName": {
          "description": "The protected diagnostics storage key name, such as `StorageAccountKey1`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "queueEndpoint": {
          "description": "The Queue Endpoint of the Storage Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountName": {
          "description": "The name of the Storage Account where the Diagnostics should be sent to.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tableEndpoint": {
          "description": "The Table Endpoint of the Storage Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "blobEndpoint",
        "protectedAccountKeyName",
        "queueEndpoint",
        "storageAccountName",
        "tableEndpoint"
      ],
      "type": "object"
    },
    "azure:servicefabric/ClusterFabricSetting:ClusterFabricSetting": {
      "properties": {
        "name": {
          "description": "The name of the Fabric Setting, such as `Security` or `Federation`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "A map containing settings for the specified Fabric Setting.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:servicefabric/ClusterNodeType:ClusterNodeType": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "applicationPorts",
            "clientEndpointPort",
            "ephemeralPorts",
            "httpEndpointPort",
            "instanceCount",
            "isPrimary",
            "name"
          ]
        }
      },
      "properties": {
        "applicationPorts": {
          "$ref": "#/types/azure:servicefabric/ClusterNodeTypeApplicationPorts:ClusterNodeTypeApplicationPorts",
          "description": "A `application_ports` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "capacities": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The capacity tags applied to the nodes in the node type, the cluster resource manager uses these tags to understand how much resource a node has.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "clientEndpointPort": {
          "description": "The Port used for the Client Endpoint for this Node Type. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "durabilityLevel": {
          "description": "The Durability Level for this Node Type. Possible values include `Bronze`, `Gold` and `Silver`. Defaults to `Bronze`. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ephemeralPorts": {
          "$ref": "#/types/azure:servicefabric/ClusterNodeTypeEphemeralPorts:ClusterNodeTypeEphemeralPorts",
          "description": "A `ephemeral_ports` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "httpEndpointPort": {
          "description": "The Port used for the HTTP Endpoint for this Node Type. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "instanceCount": {
          "description": "The number of nodes for this Node Type.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "isPrimary": {
          "description": "Is this the Primary Node Type? Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "name": {
          "description": "The name of the Node Type. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "placementProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The placement tags applied to nodes in the node type, which can be used to indicate where certain services (workload) should run.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "object"
        },
        "reverseProxyEndpointPort": {
          "description": "The Port used for the Reverse Proxy Endpoint  for this Node Type. Changing this will upgrade the cluster.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "clientEndpointPort",
        "httpEndpointPort",
        "instanceCount",
        "isPrimary",
        "name"
      ],
      "type": "object"
    },
    "azure:servicefabric/ClusterNodeTypeApplicationPorts:ClusterNodeTypeApplicationPorts": {
      "properties": {
        "endPort": {
          "description": "The end of the Application Port Range on this Node Type.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "startPort": {
          "description": "The start of the Application Port Range on this Node Type.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "endPort",
        "startPort"
      ],
      "type": "object"
    },
    "azure:servicefabric/ClusterNodeTypeEphemeralPorts:ClusterNodeTypeEphemeralPorts": {
      "properties": {
        "endPort": {
          "description": "The end of the Ephemeral Port Range on this Node Type.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "startPort": {
          "description": "The start of the Ephemeral Port Range on this Node Type.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "endPort",
        "startPort"
      ],
      "type": "object"
    },
    "azure:servicefabric/ClusterReverseProxyCertificate:ClusterReverseProxyCertificate": {
      "properties": {
        "thumbprint": {
          "description": "The Thumbprint of the Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "thumbprintSecondary": {
          "description": "The Secondary Thumbprint of the Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "x509StoreName": {
          "description": "The X509 Store where the Certificate Exists, such as `My`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "thumbprint",
        "x509StoreName"
      ],
      "type": "object"
    },
    "azure:servicefabric/ClusterReverseProxyCertificateCommonNames:ClusterReverseProxyCertificateCommonNames": {
      "properties": {
        "commonNames": {
          "description": "A `common_names` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:servicefabric/ClusterReverseProxyCertificateCommonNamesCommonName:ClusterReverseProxyCertificateCommonNamesCommonName"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "x509StoreName": {
          "description": "The X509 Store where the Certificate Exists, such as `My`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "commonNames",
        "x509StoreName"
      ],
      "type": "object"
    },
    "azure:servicefabric/ClusterReverseProxyCertificateCommonNamesCommonName:ClusterReverseProxyCertificateCommonNamesCommonName": {
      "properties": {
        "certificateCommonName": {
          "description": "The common or subject name of the certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "certificateIssuerThumbprint": {
          "description": "The Issuer Thumbprint of the Certificate.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "certificateCommonName"
      ],
      "type": "object"
    },
    "azure:servicefabric/ClusterUpgradePolicy:ClusterUpgradePolicy": {
      "properties": {
        "deltaHealthPolicy": {
          "$ref": "#/types/azure:servicefabric/ClusterUpgradePolicyDeltaHealthPolicy:ClusterUpgradePolicyDeltaHealthPolicy",
          "description": "A `delta_health_policy` block as defined below\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "forceRestartEnabled": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "healthCheckRetryTimeout": {
          "description": "Specifies the duration, in \"hh:mm:ss\" string format, after which Service Fabric retries the health check if the previous health check fails. Defaults to `00:45:00`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "healthCheckStableDuration": {
          "description": "Specifies the duration, in \"hh:mm:ss\" string format, that Service Fabric waits in order to verify that the cluster is stable before it continues to the next upgrade domain or completes the upgrade. This wait duration prevents undetected changes of health right after the health check is performed. Defaults to `00:01:00`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "healthCheckWaitDuration": {
          "description": "Specifies the duration, in \"hh:mm:ss\" string format, that Service Fabric waits before it performs the initial health check after it finishes the upgrade on the upgrade domain. Defaults to `00:00:30`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "healthPolicy": {
          "$ref": "#/types/azure:servicefabric/ClusterUpgradePolicyHealthPolicy:ClusterUpgradePolicyHealthPolicy",
          "description": "A `health_policy` block as defined below\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "upgradeDomainTimeout": {
          "description": "Specifies the duration, in \"hh:mm:ss\" string format, that Service Fabric takes to upgrade a single upgrade domain. After this period, the upgrade fails. Defaults to `02:00:00`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "upgradeReplicaSetCheckTimeout": {
          "description": "Specifies the duration, in \"hh:mm:ss\" string format, that Service Fabric waits for a replica set to reconfigure into a safe state, if it is not already in a safe state, before Service Fabric proceeds with the upgrade. Defaults to `10675199.02:48:05.4775807`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "upgradeTimeout": {
          "description": "Specifies the duration, in \"hh:mm:ss\" string format, that Service Fabric takes for the entire upgrade. After this period, the upgrade fails. Defaults to `12:00:00`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:servicefabric/ClusterUpgradePolicyDeltaHealthPolicy:ClusterUpgradePolicyDeltaHealthPolicy": {
      "properties": {
        "maxDeltaUnhealthyApplicationsPercent": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxDeltaUnhealthyNodesPercent": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxUpgradeDomainDeltaUnhealthyNodesPercent": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:servicefabric/ClusterUpgradePolicyHealthPolicy:ClusterUpgradePolicyHealthPolicy": {
      "properties": {
        "maxUnhealthyApplicationsPercent": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxUnhealthyNodesPercent": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:servicefabric/MeshApplicationService:MeshApplicationService": {
      "properties": {
        "codePackages": {
          "description": "Any number `code_package` block as described below.\n",
          "items": {
            "$ref": "#/types/azure:servicefabric/MeshApplicationServiceCodePackage:MeshApplicationServiceCodePackage"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the service resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "osType": {
          "description": "The operating system required by the code in service. Valid values are `Linux` or `Windows`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "codePackages",
        "name",
        "osType"
      ],
      "type": "object"
    },
    "azure:servicefabric/MeshApplicationServiceCodePackage:MeshApplicationServiceCodePackage": {
      "properties": {
        "imageName": {
          "description": "The Container image the code package will use.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "name": {
          "description": "The name of the code package.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "resources": {
          "$ref": "#/types/azure:servicefabric/MeshApplicationServiceCodePackageResources:MeshApplicationServiceCodePackageResources",
          "description": "A `resources` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "imageName",
        "name",
        "resources"
      ],
      "type": "object"
    },
    "azure:servicefabric/MeshApplicationServiceCodePackageResources:MeshApplicationServiceCodePackageResources": {
      "properties": {
        "limits": {
          "$ref": "#/types/azure:servicefabric/MeshApplicationServiceCodePackageResourcesLimits:MeshApplicationServiceCodePackageResourcesLimits",
          "description": "A `limits` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "requests": {
          "$ref": "#/types/azure:servicefabric/MeshApplicationServiceCodePackageResourcesRequests:MeshApplicationServiceCodePackageResourcesRequests",
          "description": "A `requests` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "required": [
        "requests"
      ],
      "type": "object"
    },
    "azure:servicefabric/MeshApplicationServiceCodePackageResourcesLimits:MeshApplicationServiceCodePackageResourcesLimits": {
      "properties": {
        "cpu": {
          "description": "The maximum number of CPU cores the container can use.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        },
        "memory": {
          "description": "The maximum memory request in GB the container can use.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "cpu",
        "memory"
      ],
      "type": "object"
    },
    "azure:servicefabric/MeshApplicationServiceCodePackageResourcesRequests:MeshApplicationServiceCodePackageResourcesRequests": {
      "properties": {
        "cpu": {
          "description": "The minimum number of CPU cores the container requires.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        },
        "memory": {
          "description": "The minimum memory request in GB the container requires.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "number"
        }
      },
      "required": [
        "cpu",
        "memory"
      ],
      "type": "object"
    },
    "azure:signalr/ServiceCor:ServiceCor": {
      "properties": {
        "allowedOrigins": {
          "description": "A list of origins which should be able to make cross-origin calls. `*` can be used to allow all calls.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "allowedOrigins"
      ],
      "type": "object"
    },
    "azure:signalr/ServiceFeature:ServiceFeature": {
      "properties": {
        "flag": {
          "description": "The kind of Feature. Possible values are `EnableConnectivityLogs`, `EnableMessagingLogs`, and `ServiceMode`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "A value of a feature flag. Possible values are `Classic`, `Default` and `Serverless`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "flag",
        "value"
      ],
      "type": "object"
    },
    "azure:signalr/ServiceNetworkAclPrivateEndpoint:ServiceNetworkAclPrivateEndpoint": {
      "properties": {
        "allowedRequestTypes": {
          "description": "The allowed request types for the Private Endpoint Connection. Possible values are `ClientConnection`, `ServerConnection`, `RESTAPI` and `Trace`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "deniedRequestTypes": {
          "description": "The denied request types for the Private Endpoint Connection. Possible values are `ClientConnection`, `ServerConnection`, `RESTAPI` and `Trace`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "id": {
          "description": "The ID of the Private Endpoint which is based on the SignalR service.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "azure:signalr/ServiceNetworkAclPublicNetwork:ServiceNetworkAclPublicNetwork": {
      "properties": {
        "allowedRequestTypes": {
          "description": "The allowed request types for the public network. Possible values are `ClientConnection`, `ServerConnection`, `RESTAPI` and `Trace`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "deniedRequestTypes": {
          "description": "The denied request types for the public network. Possible values are `ClientConnection`, `ServerConnection`, `RESTAPI` and `Trace`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:signalr/ServiceSku:ServiceSku": {
      "properties": {
        "capacity": {
          "description": "Specifies the number of units associated with this SignalR service. Valid values are `1`, `2`, `5`, `10`, `20`, `50` and `100`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "name": {
          "description": "Specifies which tier to use. Valid values are `Free_F1` and `Standard_S1`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "capacity",
        "name"
      ],
      "type": "object"
    },
    "azure:signalr/ServiceUpstreamEndpoint:ServiceUpstreamEndpoint": {
      "properties": {
        "categoryPatterns": {
          "description": "The categories to match on, or `*` for all.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "eventPatterns": {
          "description": "The events to match on, or `*` for all.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "hubPatterns": {
          "description": "The hubs to match on, or `*` for all.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "urlTemplate": {
          "description": "The upstream URL Template. This can be a url or a template such as `http://host.com/{hub}/api/{category}/{event}`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "categoryPatterns",
        "eventPatterns",
        "hubPatterns",
        "urlTemplate"
      ],
      "type": "object"
    },
    "azure:siterecovery/ReplicatedVMManagedDisk:ReplicatedVMManagedDisk": {
      "properties": {
        "diskId": {
          "description": "Id of disk that should be replicated.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "stagingStorageAccountId": {
          "description": "Storage account that should be used for caching.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetDiskEncryptionSetId": {
          "description": "The Disk Encryption Set that the Managed Disk will be associated with.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetDiskType": {
          "description": "What type should the disk be when a failover is done.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetReplicaDiskType": {
          "description": "What type should the disk be that holds the replication data.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetResourceGroupId": {
          "description": "Resource group disk should belong to when a failover is done.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "diskId",
        "stagingStorageAccountId",
        "targetDiskType",
        "targetReplicaDiskType",
        "targetResourceGroupId"
      ],
      "type": "object"
    },
    "azure:siterecovery/ReplicatedVMNetworkInterface:ReplicatedVMNetworkInterface": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "sourceNetworkInterfaceId"
          ]
        }
      },
      "properties": {
        "recoveryPublicIpAddressId": {
          "description": "Id of the public IP object to use when a failover is done.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceNetworkInterfaceId": {
          "description": "Id source network interface.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetStaticIp": {
          "description": "Static IP to assign when a failover is done.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "targetSubnetName": {
          "description": "Name of the subnet to to use when a failover is done.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:sql/DatabaseExtendedAuditingPolicy:DatabaseExtendedAuditingPolicy": {
      "properties": {
        "logMonitoringEnabled": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "retentionInDays": {
          "description": "Specifies the number of days to retain logs for in the storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountAccessKey": {
          "description": "Specifies the access key to use for the auditing storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountAccessKeyIsSecondary": {
          "description": "Specifies whether `storage_account_access_key` value is the storage's secondary key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "storageEndpoint": {
          "description": "Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:sql/DatabaseImport:DatabaseImport": {
      "properties": {
        "administratorLogin": {
          "description": "Specifies the name of the SQL administrator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "administratorLoginPassword": {
          "description": "Specifies the password of the SQL administrator.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "authenticationType": {
          "description": "Specifies the type of authentication used to access the server. Valid values are `SQL` or `ADPassword`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operationMode": {
          "description": "Specifies the type of import operation being performed. The only allowable value is `Import`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageKey": {
          "description": "Specifies the access key for the storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageKeyType": {
          "description": "Specifies the type of access key for the storage account. Valid values are `StorageAccessKey` or `SharedAccessKey`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageUri": {
          "description": "Specifies the blob URI of the .bacpac file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "administratorLogin",
        "administratorLoginPassword",
        "authenticationType",
        "storageKey",
        "storageKeyType",
        "storageUri"
      ],
      "type": "object"
    },
    "azure:sql/DatabaseThreatDetectionPolicy:DatabaseThreatDetectionPolicy": {
      "properties": {
        "disabledAlerts": {
          "description": "Specifies a list of alerts which should be disabled. Possible values include `Access_Anomaly`, `Sql_Injection` and `Sql_Injection_Vulnerability`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "emailAccountAdmins": {
          "description": "Should the account administrators be emailed when this alert is triggered?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "emailAddresses": {
          "description": "A list of email addresses which alerts should be sent to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "retentionDays": {
          "description": "Specifies the number of days to keep in the Threat Detection audit logs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "state": {
          "description": "The State of the Policy. Possible values are `Enabled`, `Disabled` or `New`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountAccessKey": {
          "description": "Specifies the identifier key of the Threat Detection audit storage account. Required if `state` is `Enabled`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageEndpoint": {
          "description": "Specifies the blob storage endpoint (e.g. https://MyAccount.blob.core.windows.net). This blob storage will hold all Threat Detection audit logs. Required if `state` is `Enabled`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useServerDefault": {
          "deprecationMessage": "This field is now non-functional and thus will be removed in version 3.0 of the Azure Provider",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:sql/FailoverGroupPartnerServer:FailoverGroupPartnerServer": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "id",
            "location",
            "role"
          ]
        }
      },
      "properties": {
        "id": {
          "description": "the SQL server ID\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "location": {
          "description": "the location of the failover group.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "role": {
          "description": "local replication role of the failover group instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "azure:sql/FailoverGroupReadWriteEndpointFailoverPolicy:FailoverGroupReadWriteEndpointFailoverPolicy": {
      "properties": {
        "graceMinutes": {
          "description": "Applies only if `mode` is `Automatic`. The grace period in minutes before failover with data loss is attempted\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "mode": {
          "description": "the failover mode. Possible values are `Manual`, `Automatic`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode"
      ],
      "type": "object"
    },
    "azure:sql/FailoverGroupReadonlyEndpointFailoverPolicy:FailoverGroupReadonlyEndpointFailoverPolicy": {
      "properties": {
        "mode": {
          "description": "Failover policy for the read-only endpoint. Possible values are `Enabled`, and `Disabled`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "mode"
      ],
      "type": "object"
    },
    "azure:sql/SqlServerExtendedAuditingPolicy:SqlServerExtendedAuditingPolicy": {
      "properties": {
        "logMonitoringEnabled": {
          "description": "(Optional) Enable audit events to Azure Monitor? To enable server audit events to Azure Monitor, please enable its primary database audit events to Azure Monitor.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "retentionInDays": {
          "description": "(Optional) Specifies the number of days to retain logs for in the storage account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "storageAccountAccessKey": {
          "description": "Specifies the identifier key of the Threat Detection audit storage account. Required if `state` is `Enabled`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountAccessKeyIsSecondary": {
          "description": "(Optional) Specifies whether `storage_account_access_key` value is the storage's secondary key.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "storageEndpoint": {
          "description": "Specifies the blob storage endpoint (e.g. `https://MyAccount.blob.core.windows.net`). This blob storage will hold all Threat Detection audit logs. Required if `state` is `Enabled`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:sql/SqlServerIdentity:SqlServerIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Identity of this SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Identity of this SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of the Microsoft SQL Server. At this time the only allowed value is `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:sql/SqlServerThreatDetectionPolicy:SqlServerThreatDetectionPolicy": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "emailAccountAdmins",
            "emailAddresses"
          ]
        }
      },
      "properties": {
        "disabledAlerts": {
          "description": "Specifies a list of alerts which should be disabled. Possible values include `Access_Anomaly`, `Data_Exfiltration`, `Sql_Injection`, `Sql_Injection_Vulnerability` and `Unsafe_Action\"`,.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "emailAccountAdmins": {
          "description": "Should the account administrators be emailed when this alert is triggered?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "emailAddresses": {
          "description": "A list of email addresses which alerts should be sent to.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "retentionDays": {
          "description": "Specifies the number of days to keep in the Threat Detection audit logs.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "state": {
          "description": "The State of the Policy. Possible values are `Enabled`, `Disabled` or `New`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageAccountAccessKey": {
          "description": "Specifies the identifier key of the Threat Detection audit storage account. Required if `state` is `Enabled`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageEndpoint": {
          "description": "Specifies the blob storage endpoint (e.g. `https://MyAccount.blob.core.windows.net`). This blob storage will hold all Threat Detection audit logs. Required if `state` is `Enabled`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:sql/getServerIdentity:getServerIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "principalId": {
          "description": "The ID of the Principal (Client) in Azure Active Directory.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Azure Active Directory Tenant.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The identity type of the SQL Server.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:storage/AccountAzureFilesAuthentication:AccountAzureFilesAuthentication": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "activeDirectory",
            "directoryType"
          ]
        }
      },
      "properties": {
        "activeDirectory": {
          "$ref": "#/types/azure:storage/AccountAzureFilesAuthenticationActiveDirectory:AccountAzureFilesAuthenticationActiveDirectory",
          "description": "A `active_directory` block as defined below. Required when `directory_type` is `AD`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "directoryType": {
          "description": "Specifies the directory service used. Possible values are `AADDS` and `AD`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "directoryType"
      ],
      "type": "object"
    },
    "azure:storage/AccountAzureFilesAuthenticationActiveDirectory:AccountAzureFilesAuthenticationActiveDirectory": {
      "properties": {
        "domainGuid": {
          "description": "Specifies the domain GUID.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "domainName": {
          "description": "Specifies the primary domain that the AD DNS server is authoritative for.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "domainSid": {
          "description": "Specifies the security identifier (SID).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "forestName": {
          "description": "Specifies the Active Directory forest.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "netbiosDomainName": {
          "description": "Specifies the NetBIOS domain name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "storageSid": {
          "description": "Specifies the security identifier (SID) for Azure Storage.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "domainGuid",
        "domainName",
        "domainSid",
        "forestName",
        "netbiosDomainName",
        "storageSid"
      ],
      "type": "object"
    },
    "azure:storage/AccountBlobProperties:AccountBlobProperties": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "defaultServiceVersion"
          ]
        }
      },
      "properties": {
        "changeFeedEnabled": {
          "description": "Is the blob service properties for change feed events enabled? Default to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "containerDeleteRetentionPolicy": {
          "$ref": "#/types/azure:storage/AccountBlobPropertiesContainerDeleteRetentionPolicy:AccountBlobPropertiesContainerDeleteRetentionPolicy",
          "description": "A `container_delete_retention_policy` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "corsRules": {
          "description": "A `cors_rule` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/AccountBlobPropertiesCorsRule:AccountBlobPropertiesCorsRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "defaultServiceVersion": {
          "description": "The API Version which should be used by default for requests to the Data Plane API if an incoming request doesn't specify an API Version. Defaults to `2020-06-12`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "deleteRetentionPolicy": {
          "$ref": "#/types/azure:storage/AccountBlobPropertiesDeleteRetentionPolicy:AccountBlobPropertiesDeleteRetentionPolicy",
          "description": "A `delete_retention_policy` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "lastAccessTimeEnabled": {
          "description": "Is the last access time based tracking enabled? Default to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "versioningEnabled": {
          "description": "Is versioning enabled? Default to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:storage/AccountBlobPropertiesContainerDeleteRetentionPolicy:AccountBlobPropertiesContainerDeleteRetentionPolicy": {
      "properties": {
        "days": {
          "description": "Specifies the number of days that the container should be retained, between `1` and `365` days. Defaults to `7`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:storage/AccountBlobPropertiesCorsRule:AccountBlobPropertiesCorsRule": {
      "properties": {
        "allowedHeaders": {
          "description": "A list of headers that are allowed to be a part of the cross-origin request.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "allowedMethods": {
          "description": "A list of http methods that are allowed to be executed by the origin. Valid options are\n`DELETE`, `GET`, `HEAD`, `MERGE`, `POST`, `OPTIONS`, `PUT` or `PATCH`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "allowedOrigins": {
          "description": "A list of origin domains that will be allowed by CORS.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "exposedHeaders": {
          "description": "A list of response headers that are exposed to CORS clients.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "maxAgeInSeconds": {
          "description": "The number of seconds the client should cache a preflight response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "allowedHeaders",
        "allowedMethods",
        "allowedOrigins",
        "exposedHeaders",
        "maxAgeInSeconds"
      ],
      "type": "object"
    },
    "azure:storage/AccountBlobPropertiesDeleteRetentionPolicy:AccountBlobPropertiesDeleteRetentionPolicy": {
      "properties": {
        "days": {
          "description": "Specifies the number of days that the blob should be retained, between `1` and `365` days. Defaults to `7`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:storage/AccountCustomDomain:AccountCustomDomain": {
      "properties": {
        "name": {
          "description": "The Custom Domain Name to use for the Storage Account, which will be validated by Azure.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "useSubdomain": {
          "description": "Should the Custom Domain Name be validated by using indirect CNAME validation?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:storage/AccountIdentity:AccountIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "identityIds": {
          "description": "A list of IDs for User Assigned Managed Identity resources to be assigned.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Identity of this Storage Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Identity of this Storage Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the identity type of the Storage Account. Possible values are `SystemAssigned`, `UserAssigned`, `SystemAssigned,UserAssigned` (to enable both).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:storage/AccountNetworkRules:AccountNetworkRules": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "bypasses",
            "defaultAction",
            "ipRules",
            "virtualNetworkSubnetIds"
          ]
        }
      },
      "properties": {
        "bypasses": {
          "description": "Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Valid options are\nany combination of `Logging`, `Metrics`, `AzureServices`, or `None`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "defaultAction": {
          "description": "Specifies the default action of allow or deny when no other rules match. Valid options are `Deny` or `Allow`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ipRules": {
          "description": "List of public IP or IP ranges in CIDR Format. Only IPV4 addresses are allowed. Private IP address ranges (as defined in [RFC 1918](https://tools.ietf.org/html/rfc1918#section-3)) are not allowed.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "privateLinkAccesses": {
          "description": "One or More `private_link_access` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/AccountNetworkRulesPrivateLinkAccess:AccountNetworkRulesPrivateLinkAccess"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "virtualNetworkSubnetIds": {
          "description": "A list of resource ids for subnets.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "defaultAction"
      ],
      "type": "object"
    },
    "azure:storage/AccountNetworkRulesPrivateLinkAccess:AccountNetworkRulesPrivateLinkAccess": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "endpointResourceId",
            "endpointTenantId"
          ]
        }
      },
      "properties": {
        "endpointResourceId": {
          "description": "The resource id of the resource access rule to be granted access.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "endpointTenantId": {
          "description": "The tenant id of the resource of the resource access rule to be granted access. Defaults to the current tenant id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "endpointResourceId"
      ],
      "type": "object"
    },
    "azure:storage/AccountNetworkRulesPrivateLinkAccessRule:AccountNetworkRulesPrivateLinkAccessRule": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "endpointResourceId",
            "endpointTenantId"
          ]
        }
      },
      "properties": {
        "endpointResourceId": {
          "description": "The resource id of the resource access rule to be granted access.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "endpointTenantId": {
          "description": "The tenant id of the resource of the resource access rule to be granted access. Defaults to the current tenant id.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "endpointResourceId"
      ],
      "type": "object"
    },
    "azure:storage/AccountQueueProperties:AccountQueueProperties": {
      "properties": {
        "corsRules": {
          "description": "A `cors_rule` block as defined above.\n",
          "items": {
            "$ref": "#/types/azure:storage/AccountQueuePropertiesCorsRule:AccountQueuePropertiesCorsRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "hourMetrics": {
          "$ref": "#/types/azure:storage/AccountQueuePropertiesHourMetrics:AccountQueuePropertiesHourMetrics",
          "description": "A `hour_metrics` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "logging": {
          "$ref": "#/types/azure:storage/AccountQueuePropertiesLogging:AccountQueuePropertiesLogging",
          "description": "A `logging` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "minuteMetrics": {
          "$ref": "#/types/azure:storage/AccountQueuePropertiesMinuteMetrics:AccountQueuePropertiesMinuteMetrics",
          "description": "A `minute_metrics` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:storage/AccountQueuePropertiesCorsRule:AccountQueuePropertiesCorsRule": {
      "properties": {
        "allowedHeaders": {
          "description": "A list of headers that are allowed to be a part of the cross-origin request.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "allowedMethods": {
          "description": "A list of http methods that are allowed to be executed by the origin. Valid options are\n`DELETE`, `GET`, `HEAD`, `MERGE`, `POST`, `OPTIONS`, `PUT` or `PATCH`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "allowedOrigins": {
          "description": "A list of origin domains that will be allowed by CORS.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "exposedHeaders": {
          "description": "A list of response headers that are exposed to CORS clients.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "maxAgeInSeconds": {
          "description": "The number of seconds the client should cache a preflight response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "allowedHeaders",
        "allowedMethods",
        "allowedOrigins",
        "exposedHeaders",
        "maxAgeInSeconds"
      ],
      "type": "object"
    },
    "azure:storage/AccountQueuePropertiesHourMetrics:AccountQueuePropertiesHourMetrics": {
      "properties": {
        "enabled": {
          "description": "Indicates whether hour metrics are enabled for the Queue service. Changing this forces a new resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "includeApis": {
          "description": "Indicates whether metrics should generate summary statistics for called API operations.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "retentionPolicyDays": {
          "description": "Specifies the number of days that logs will be retained. Changing this forces a new resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "version": {
          "description": "The version of storage analytics to configure. Changing this forces a new resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "version"
      ],
      "type": "object"
    },
    "azure:storage/AccountQueuePropertiesLogging:AccountQueuePropertiesLogging": {
      "properties": {
        "delete": {
          "description": "Indicates whether all delete requests should be logged. Changing this forces a new resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "read": {
          "description": "Indicates whether all read requests should be logged. Changing this forces a new resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "retentionPolicyDays": {
          "description": "Specifies the number of days that logs will be retained. Changing this forces a new resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "version": {
          "description": "The version of storage analytics to configure. Changing this forces a new resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "write": {
          "description": "Indicates whether all write requests should be logged. Changing this forces a new resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "delete",
        "read",
        "version",
        "write"
      ],
      "type": "object"
    },
    "azure:storage/AccountQueuePropertiesMinuteMetrics:AccountQueuePropertiesMinuteMetrics": {
      "properties": {
        "enabled": {
          "description": "Indicates whether minute metrics are enabled for the Queue service. Changing this forces a new resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "includeApis": {
          "description": "Indicates whether metrics should generate summary statistics for called API operations.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "retentionPolicyDays": {
          "description": "Specifies the number of days that logs will be retained. Changing this forces a new resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "version": {
          "description": "The version of storage analytics to configure. Changing this forces a new resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "version"
      ],
      "type": "object"
    },
    "azure:storage/AccountRouting:AccountRouting": {
      "properties": {
        "choice": {
          "description": "Specifies the kind of network routing opted by the user. Possible values are `InternetRouting` and `MicrosoftRouting`. Defaults to `MicrosoftRouting`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "publishInternetEndpoints": {
          "description": "Should internet routing storage endpoints be published? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "publishMicrosoftEndpoints": {
          "description": "Should microsoft routing storage endpoints be published? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "azure:storage/AccountShareProperties:AccountShareProperties": {
      "properties": {
        "corsRules": {
          "description": "A `cors_rule` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/AccountSharePropertiesCorsRule:AccountSharePropertiesCorsRule"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "retentionPolicy": {
          "$ref": "#/types/azure:storage/AccountSharePropertiesRetentionPolicy:AccountSharePropertiesRetentionPolicy",
          "description": "A `retention_policy` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "smb": {
          "$ref": "#/types/azure:storage/AccountSharePropertiesSmb:AccountSharePropertiesSmb",
          "description": "A `smb` block as defined below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:storage/AccountSharePropertiesCorsRule:AccountSharePropertiesCorsRule": {
      "properties": {
        "allowedHeaders": {
          "description": "A list of headers that are allowed to be a part of the cross-origin request.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "allowedMethods": {
          "description": "A list of http methods that are allowed to be executed by the origin. Valid options are\n`DELETE`, `GET`, `HEAD`, `MERGE`, `POST`, `OPTIONS`, `PUT` or `PATCH`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "allowedOrigins": {
          "description": "A list of origin domains that will be allowed by CORS.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "exposedHeaders": {
          "description": "A list of response headers that are exposed to CORS clients.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "maxAgeInSeconds": {
          "description": "The number of seconds the client should cache a preflight response.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "allowedHeaders",
        "allowedMethods",
        "allowedOrigins",
        "exposedHeaders",
        "maxAgeInSeconds"
      ],
      "type": "object"
    },
    "azure:storage/AccountSharePropertiesRetentionPolicy:AccountSharePropertiesRetentionPolicy": {
      "properties": {
        "days": {
          "description": "Specifies the number of days that the `azure.storage.Share` should be retained, between `1` and `365` days. Defaults to `7`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:storage/AccountSharePropertiesSmb:AccountSharePropertiesSmb": {
      "properties": {
        "authenticationTypes": {
          "description": "A set of SMB authentication methods. Possible values are `NTLMv2`, and `Kerberos`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "channelEncryptionTypes": {
          "description": "A set of SMB channel encryption. Possible values are `AES-128-CCM`, `AES-128-GCM`, and `AES-256-GCM`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "kerberosTicketEncryptionTypes": {
          "description": "A set of Kerberos ticket encryption. Possible values are `RC4-HMAC`, and `AES-256`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "versions": {
          "description": "A set of SMB protocol versions. Possible values are `SMB2.1`, `SMB3.0`, and `SMB3.1.1`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:storage/AccountStaticWebsite:AccountStaticWebsite": {
      "properties": {
        "error404Document": {
          "description": "The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "indexDocument": {
          "description": "The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. The value is case-sensitive.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:storage/BlobInventoryPolicyRule:BlobInventoryPolicyRule": {
      "properties": {
        "filter": {
          "$ref": "#/types/azure:storage/BlobInventoryPolicyRuleFilter:BlobInventoryPolicyRuleFilter",
          "description": "A `filter` block as defined above.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "description": "The name which should be used for this Blob Inventory Policy Rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "filter",
        "name"
      ],
      "type": "object"
    },
    "azure:storage/BlobInventoryPolicyRuleFilter:BlobInventoryPolicyRuleFilter": {
      "properties": {
        "blobTypes": {
          "description": "A set of blob types. Possible values are `blockBlob`, `appendBlob`, and `pageBlob`. The storage account with `is_hns_enabled` is `true` doesn't support `pageBlob`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "includeBlobVersions": {
          "description": "Includes blob versions in blob inventory or not? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "includeSnapshots": {
          "description": "Includes blob snapshots in blob inventory or not? Defaults to `false`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "prefixMatches": {
          "description": "A set of strings for blob prefixes to be matched.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "blobTypes"
      ],
      "type": "object"
    },
    "azure:storage/DataLakeGen2FilesystemAce:DataLakeGen2FilesystemAce": {
      "properties": {
        "id": {
          "description": "Specifies the Object ID of the Azure Active Directory User or Group that the entry relates to. Only valid for `user` or `group` entries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "permissions": {
          "description": "Specifies the permissions for the entry in `rwx` form. For example, `rwx` gives full permissions but `r--` only gives read permissions.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scope": {
          "description": "Specifies whether the ACE represents an `access` entry or a `default` entry. Default value is `access`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the type of entry. Can be `user`, `group`, `mask` or `other`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "permissions",
        "type"
      ],
      "type": "object"
    },
    "azure:storage/DataLakeGen2PathAce:DataLakeGen2PathAce": {
      "properties": {
        "id": {
          "description": "Specifies the Object ID of the Azure Active Directory User or Group that the entry relates to. Only valid for `user` or `group` entries.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "permissions": {
          "description": "Specifies the permissions for the entry in `rwx` form. For example, `rwx` gives full permissions but `r--` only gives read permissions.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scope": {
          "description": "Specifies whether the ACE represents an `access` entry or a `default` entry. Default value is `access`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "Specifies the type of entry. Can be `user`, `group`, `mask` or `other`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "permissions",
        "type"
      ],
      "type": "object"
    },
    "azure:storage/ManagementPolicyRule:ManagementPolicyRule": {
      "properties": {
        "actions": {
          "$ref": "#/types/azure:storage/ManagementPolicyRuleActions:ManagementPolicyRuleActions",
          "description": "An `actions` block as documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "enabled": {
          "description": "Boolean to specify whether the rule is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "filters": {
          "$ref": "#/types/azure:storage/ManagementPolicyRuleFilters:ManagementPolicyRuleFilters",
          "description": "A `filter` block as documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "name": {
          "description": "A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "actions",
        "enabled",
        "name"
      ],
      "type": "object"
    },
    "azure:storage/ManagementPolicyRuleActions:ManagementPolicyRuleActions": {
      "properties": {
        "baseBlob": {
          "$ref": "#/types/azure:storage/ManagementPolicyRuleActionsBaseBlob:ManagementPolicyRuleActionsBaseBlob",
          "description": "A `base_blob` block as documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "snapshot": {
          "$ref": "#/types/azure:storage/ManagementPolicyRuleActionsSnapshot:ManagementPolicyRuleActionsSnapshot",
          "description": "A `snapshot` block as documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        },
        "version": {
          "$ref": "#/types/azure:storage/ManagementPolicyRuleActionsVersion:ManagementPolicyRuleActionsVersion",
          "description": "A `version` block as documented below.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          }
        }
      },
      "type": "object"
    },
    "azure:storage/ManagementPolicyRuleActionsBaseBlob:ManagementPolicyRuleActionsBaseBlob": {
      "properties": {
        "deleteAfterDaysSinceModificationGreaterThan": {
          "description": "The age in days after last modification to delete the blob. Must be between 0 and 99999.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "tierToArchiveAfterDaysSinceModificationGreaterThan": {
          "description": "The age in days after last modification to tier blobs to archive storage. Supports blob currently at Hot or Cool tier. Must be between 0 and 99999.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "tierToCoolAfterDaysSinceModificationGreaterThan": {
          "description": "The age in days after last modification to tier blobs to cool storage. Supports blob currently at Hot tier. Must be between 0 and 99999.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:storage/ManagementPolicyRuleActionsSnapshot:ManagementPolicyRuleActionsSnapshot": {
      "properties": {
        "changeTierToArchiveAfterDaysSinceCreation": {
          "description": "The age in days after creation to tier blob snapshot to archive storage. Must be between 0 and 99999.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "changeTierToCoolAfterDaysSinceCreation": {
          "description": "The age in days after creation to tier blob snapshot to cool storage. Must be between 0 and 99999.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "deleteAfterDaysSinceCreationGreaterThan": {
          "description": "The age in days after creation to delete the blob snapshot. Must be between 0 and 99999.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:storage/ManagementPolicyRuleActionsVersion:ManagementPolicyRuleActionsVersion": {
      "properties": {
        "changeTierToArchiveAfterDaysSinceCreation": {
          "description": "The age in days after creation to tier blob version to archive storage. Must be between 0 and 99999.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "changeTierToCoolAfterDaysSinceCreation": {
          "description": "The age in days creation create to  tier blob version to cool storage. Must be between 0 and 99999.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "deleteAfterDaysSinceCreation": {
          "description": "The age in days after creation to delete the blob version. Must be between 0 and 99999.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "type": "object"
    },
    "azure:storage/ManagementPolicyRuleFilters:ManagementPolicyRuleFilters": {
      "properties": {
        "blobTypes": {
          "description": "An array of predefined values. Valid options are `blockBlob` and `appendBlob`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "matchBlobIndexTags": {
          "description": "A `match_blob_index_tag` block as defined below. The block defines the blob index tag based filtering for blob objects.\n",
          "items": {
            "$ref": "#/types/azure:storage/ManagementPolicyRuleFiltersMatchBlobIndexTag:ManagementPolicyRuleFiltersMatchBlobIndexTag"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "prefixMatches": {
          "description": "An array of strings for prefixes to be matched.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "azure:storage/ManagementPolicyRuleFiltersMatchBlobIndexTag:ManagementPolicyRuleFiltersMatchBlobIndexTag": {
      "properties": {
        "name": {
          "description": "The filter tag name used for tag based filtering for blob objects.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operation": {
          "description": "The comparison operator which is used for object comparison and filtering. Possible value is `==`. Defaults to `==`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The filter tag value used for tag based filtering for blob objects.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "type": "object"
    },
    "azure:storage/ObjectReplicationRule:ObjectReplicationRule": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "destinationContainerName",
            "name",
            "sourceContainerName"
          ]
        }
      },
      "properties": {
        "copyBlobsCreatedAfter": {
          "description": "The time after which the Block Blobs created will be copies to the destination. Possible values are `OnlyNewObjects`, `Everything` and time in RFC3339 format: `2006-01-02T15:04:00Z`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "destinationContainerName": {
          "description": "The destination storage container name. Changing this forces a new Storage Object Replication to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "filterOutBlobsWithPrefixes": {
          "description": "Specifies a list of filters prefixes, the blobs whose names begin with which will be replicated.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceContainerName": {
          "description": "The source storage container name. Changing this forces a new Storage Object Replication to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "destinationContainerName",
        "sourceContainerName"
      ],
      "type": "object"
    },
    "azure:storage/ShareAcl:ShareAcl": {
      "properties": {
        "accessPolicies": {
          "description": "An `access_policy` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/ShareAclAccessPolicy:ShareAclAccessPolicy"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "id": {
          "description": "The ID which should be used for this Shared Identifier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "azure:storage/ShareAclAccessPolicy:ShareAclAccessPolicy": {
      "properties": {
        "expiry": {
          "description": "The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "permissions": {
          "description": "The permissions which should be associated with this Shared Identifier. Possible value is combination of `r` (read), `w` (write), `d` (delete), and `l` (list).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "start": {
          "description": "The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "permissions"
      ],
      "type": "object"
    },
    "azure:storage/TableAcl:TableAcl": {
      "properties": {
        "accessPolicies": {
          "description": "An `access_policy` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/TableAclAccessPolicy:TableAclAccessPolicy"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "id": {
          "description": "The ID which should be used for this Shared Identifier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    },
    "azure:storage/TableAclAccessPolicy:TableAclAccessPolicy": {
      "properties": {
        "expiry": {
          "description": "The ISO8061 UTC time at which this Access Policy should be valid until.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "permissions": {
          "description": "The permissions which should associated with this Shared Identifier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "start": {
          "description": "The ISO8061 UTC time at which this Access Policy should be valid from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "expiry",
        "permissions",
        "start"
      ],
      "type": "object"
    },
    "azure:storage/getAccountBlobContainerSASPermissions:getAccountBlobContainerSASPermissions": {
      "properties": {
        "add": {
          "description": "Should Add permissions be enabled for this SAS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "create": {
          "description": "Should Create permissions be enabled for this SAS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "delete": {
          "description": "Should Delete permissions be enabled for this SAS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "list": {
          "description": "Should List permissions be enabled for this SAS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "read": {
          "description": "Should Read permissions be enabled for this SAS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "write": {
          "description": "Should Write permissions be enabled for this SAS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "add",
        "create",
        "delete",
        "list",
        "read",
        "write"
      ],
      "type": "object"
    },
    "azure:storage/getAccountCustomDomain:getAccountCustomDomain": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "Specifies the name of the Storage Account\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "azure:storage/getAccountSASPermissions:getAccountSASPermissions": {
      "properties": {
        "add": {
          "description": "Should Add permissions be enabled for this SAS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "create": {
          "description": "Should Create permissions be enabled for this SAS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "delete": {
          "description": "Should Delete permissions be enabled for this SAS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "list": {
          "description": "Should List permissions be enabled for this SAS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "process": {
          "description": "Should Process permissions be enabled for this SAS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "read": {
          "description": "Should Read permissions be enabled for this SAS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "update": {
          "description": "Should Update permissions be enabled for this SAS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "write": {
          "description": "Should Write permissions be enabled for this SAS?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "add",
        "create",
        "delete",
        "list",
        "process",
        "read",
        "update",
        "write"
      ],
      "type": "object"
    },
    "azure:storage/getAccountSASResourceTypes:getAccountSASResourceTypes": {
      "properties": {
        "container": {
          "description": "Should permission be granted to the container?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "object": {
          "description": "Should permission be granted only to a specific object?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "service": {
          "description": "Should permission be granted to the entire service?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "container",
        "object",
        "service"
      ],
      "type": "object"
    },
    "azure:storage/getAccountSASServices:getAccountSASServices": {
      "properties": {
        "blob": {
          "description": "Should permission be granted to `blob` services within this storage account?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "file": {
          "description": "Should permission be granted to `file` services within this storage account?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "queue": {
          "description": "Should permission be granted to `queue` services within this storage account?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "table": {
          "description": "Should permission be granted to `table` services within this storage account?\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "required": [
        "blob",
        "file",
        "queue",
        "table"
      ],
      "type": "object"
    },
    "azure:storage/getPolicyRule:getPolicyRule": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "actions": {
          "description": "An `actions` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:storage/getPolicyRuleAction:getPolicyRuleAction"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "enabled": {
          "description": "Boolean to specify whether the rule is enabled.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "filters": {
          "description": "A `filter` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:storage/getPolicyRuleFilter:getPolicyRuleFilter"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "The filter tag name used for tag based filtering for blob objects.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "actions",
        "enabled",
        "filters",
        "name"
      ],
      "type": "object"
    },
    "azure:storage/getPolicyRuleAction:getPolicyRuleAction": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "baseBlobs": {
          "description": "A `base_blob` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:storage/getPolicyRuleActionBaseBlob:getPolicyRuleActionBaseBlob"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "snapshots": {
          "description": "A `snapshot` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:storage/getPolicyRuleActionSnapshot:getPolicyRuleActionSnapshot"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "versions": {
          "description": "A `version` block as documented below.\n",
          "items": {
            "$ref": "#/types/azure:storage/getPolicyRuleActionVersion:getPolicyRuleActionVersion"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "baseBlobs",
        "snapshots",
        "versions"
      ],
      "type": "object"
    },
    "azure:storage/getPolicyRuleActionBaseBlob:getPolicyRuleActionBaseBlob": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "deleteAfterDaysSinceModificationGreaterThan": {
          "description": "The age in days after last modification to delete the blob.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "tierToArchiveAfterDaysSinceModificationGreaterThan": {
          "description": "The age in days after last modification to tier blobs to archive storage. Supports blob currently at Hot or Cool tier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "tierToCoolAfterDaysSinceModificationGreaterThan": {
          "description": "The age in days after last modification to tier blobs to cool storage. Supports blob currently at Hot tier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "deleteAfterDaysSinceModificationGreaterThan",
        "tierToArchiveAfterDaysSinceModificationGreaterThan",
        "tierToCoolAfterDaysSinceModificationGreaterThan"
      ],
      "type": "object"
    },
    "azure:storage/getPolicyRuleActionSnapshot:getPolicyRuleActionSnapshot": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "changeTierToArchiveAfterDaysSinceCreation": {
          "description": "The age in days after creation to tier blob version to archive storage.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "changeTierToCoolAfterDaysSinceCreation": {
          "description": "The age in days after creation to tier blob version to cool storage.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "deleteAfterDaysSinceCreationGreaterThan": {
          "description": "The age in days after creation to delete the blob snapshot.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "changeTierToArchiveAfterDaysSinceCreation",
        "changeTierToCoolAfterDaysSinceCreation",
        "deleteAfterDaysSinceCreationGreaterThan"
      ],
      "type": "object"
    },
    "azure:storage/getPolicyRuleActionVersion:getPolicyRuleActionVersion": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "changeTierToArchiveAfterDaysSinceCreation": {
          "description": "The age in days after creation to tier blob version to archive storage.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "changeTierToCoolAfterDaysSinceCreation": {
          "description": "The age in days after creation to tier blob version to cool storage.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "deleteAfterDaysSinceCreation": {
          "description": "The age in days after creation to delete the blob version.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "changeTierToArchiveAfterDaysSinceCreation",
        "changeTierToCoolAfterDaysSinceCreation",
        "deleteAfterDaysSinceCreation"
      ],
      "type": "object"
    },
    "azure:storage/getPolicyRuleFilter:getPolicyRuleFilter": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "blobTypes": {
          "description": "An array of predefined values. Valid options are `blockBlob` and `appendBlob`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "matchBlobIndexTags": {
          "description": "A `match_blob_index_tag` block as defined below. The block defines the blob index tag based filtering for blob objects.\n---\n",
          "items": {
            "$ref": "#/types/azure:storage/getPolicyRuleFilterMatchBlobIndexTag:getPolicyRuleFilterMatchBlobIndexTag"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "prefixMatches": {
          "description": "An array of strings for prefixes to be matched.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "blobTypes",
        "matchBlobIndexTags",
        "prefixMatches"
      ],
      "type": "object"
    },
    "azure:storage/getPolicyRuleFilterMatchBlobIndexTag:getPolicyRuleFilterMatchBlobIndexTag": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "name": {
          "description": "The filter tag name used for tag based filtering for blob objects.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "operation": {
          "description": "The comparison operator which is used for object comparison and filtering. Possible value is `==`. Defaults to `==`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The filter tag value used for tag based filtering for blob objects.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "operation",
        "value"
      ],
      "type": "object"
    },
    "azure:storage/getShareAcl:getShareAcl": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "accessPolicies": {
          "description": "An `access_policy` block as defined below.\n",
          "items": {
            "$ref": "#/types/azure:storage/getShareAclAccessPolicy:getShareAclAccessPolicy"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "id": {
          "description": "The ID which should be used for this Shared Identifier.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "accessPolicies",
        "id"
      ],
      "type": "object"
    },
    "azure:storage/getShareAclAccessPolicy:getShareAclAccessPolicy": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "expiry": {
          "description": "The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "permissions": {
          "description": "The permissions which should be associated with this Shared Identifier. Possible value is combination of `r` (read), `w` (write), `d` (delete), and `l` (list).\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "start": {
          "description": "The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "expiry",
        "permissions",
        "start"
      ],
      "type": "object"
    },
    "azure:streamanalytics/FunctionJavaScriptUDFInput:FunctionJavaScriptUDFInput": {
      "properties": {
        "type": {
          "description": "The Data Type for the Input Argument of this JavaScript Function. Possible values include `array`, `any`, `bigint`, `datetime`, `float`, `nvarchar(max)` and `record`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:streamanalytics/FunctionJavaScriptUDFOutput:FunctionJavaScriptUDFOutput": {
      "properties": {
        "type": {
          "description": "The Data Type output from this JavaScript Function. Possible values include `array`, `any`, `bigint`, `datetime`, `float`, `nvarchar(max)` and `record`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:streamanalytics/JobIdentity:JobIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The ID of the Principal (Client) in Azure Active Directory.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Azure Active Directory Tenant.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of identity used for the Stream Analytics Job. Possible values are `SystemAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:streamanalytics/OutputBlobSerialization:OutputBlobSerialization": {
      "properties": {
        "encoding": {
          "description": "The encoding of the incoming data in the case of input and the encoding of outgoing data in the case of output. It currently can only be set to `UTF8`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fieldDelimiter": {
          "description": "The delimiter that will be used to separate comma-separated value (CSV) records. Possible values are ` ` (space), `,` (comma), `   ` (tab), `|` (pipe) and `;`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "format": {
          "description": "Specifies the format of the JSON the output will be written in. Possible values are `Array` and `LineSeparated`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The serialization format used for outgoing data streams. Possible values are `Avro`, `Csv`, `Json` and `Parquet`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:streamanalytics/OutputEventHubSerialization:OutputEventHubSerialization": {
      "properties": {
        "encoding": {
          "description": "The encoding of the incoming data in the case of input and the encoding of outgoing data in the case of output. It currently can only be set to `UTF8`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fieldDelimiter": {
          "description": "The delimiter that will be used to separate comma-separated value (CSV) records. Possible values are ` ` (space), `,` (comma), `   ` (tab), `|` (pipe) and `;`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "format": {
          "description": "Specifies the format of the JSON the output will be written in. Possible values are `Array` and `LineSeparated`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The serialization format used for outgoing data streams. Possible values are `Avro`, `Csv` and `Json`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:streamanalytics/OutputServiceBusQueueSerialization:OutputServiceBusQueueSerialization": {
      "properties": {
        "encoding": {
          "description": "The encoding of the incoming data in the case of input and the encoding of outgoing data in the case of output. It currently can only be set to `UTF8`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fieldDelimiter": {
          "description": "The delimiter that will be used to separate comma-separated value (CSV) records. Possible values are ` ` (space), `,` (comma), `   ` (tab), `|` (pipe) and `;`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "format": {
          "description": "Specifies the format of the JSON the output will be written in. Possible values are `Array` and `LineSeparated`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The serialization format used for outgoing data streams. Possible values are `Avro`, `Csv` and `Json`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:streamanalytics/OutputServicebusTopicSerialization:OutputServicebusTopicSerialization": {
      "properties": {
        "encoding": {
          "description": "The encoding of the incoming data in the case of input and the encoding of outgoing data in the case of output. It currently can only be set to `UTF8`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fieldDelimiter": {
          "description": "The delimiter that will be used to separate comma-separated value (CSV) records. Possible values are ` ` (space), `,` (comma), `   ` (tab), `|` (pipe) and `;`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "format": {
          "description": "Specifies the format of the JSON the output will be written in. Possible values are `Array` and `LineSeparated`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The serialization format used for outgoing data streams. Possible values are `Avro`, `Csv` and `Json`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:streamanalytics/ReferenceInputBlobSerialization:ReferenceInputBlobSerialization": {
      "properties": {
        "encoding": {
          "description": "The encoding of the incoming data in the case of input and the encoding of outgoing data in the case of output. It currently can only be set to `UTF8`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fieldDelimiter": {
          "description": "The delimiter that will be used to separate comma-separated value (CSV) records. Possible values are ` ` (space), `,` (comma), `\t` (tab), `|` (pipe) and `;`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The serialization format used for the reference data. Possible values are `Avro`, `Csv` and `Json`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:streamanalytics/StreamInputBlobSerialization:StreamInputBlobSerialization": {
      "properties": {
        "encoding": {
          "description": "The encoding of the incoming data in the case of input and the encoding of outgoing data in the case of output. It currently can only be set to `UTF8`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fieldDelimiter": {
          "description": "The delimiter that will be used to separate comma-separated value (CSV) records. Possible values are ` ` (space), `,` (comma), `   ` (tab), `|` (pipe) and `;`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The serialization format used for incoming data streams. Possible values are `Avro`, `Csv` and `Json`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:streamanalytics/StreamInputEventHubSerialization:StreamInputEventHubSerialization": {
      "properties": {
        "encoding": {
          "description": "The encoding of the incoming data in the case of input and the encoding of outgoing data in the case of output. It currently can only be set to `UTF8`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fieldDelimiter": {
          "description": "The delimiter that will be used to separate comma-separated value (CSV) records. Possible values are ` ` (space), `,` (comma), `   ` (tab), `|` (pipe) and `;`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The serialization format used for incoming data streams. Possible values are `Avro`, `Csv` and `Json`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:streamanalytics/StreamInputIotHubSerialization:StreamInputIotHubSerialization": {
      "properties": {
        "encoding": {
          "description": "The encoding of the incoming data in the case of input and the encoding of outgoing data in the case of output. It currently can only be set to `UTF8`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "fieldDelimiter": {
          "description": "The delimiter that will be used to separate comma-separated value (CSV) records. Possible values are ` ` (space), `,` (comma), `   ` (tab), `|` (pipe) and `;`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The serialization format used for incoming data streams. Possible values are `Avro`, `Csv` and `Json`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "azure:streamanalytics/getJobIdentity:getJobIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "principalId": {
          "description": "The ID of the Principal (Client) in Azure Active Directory.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The ID of the Azure Active Directory Tenant.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The type of identity used for the Stream Analytics Job.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:synapse/SparkPoolAutoPause:SparkPoolAutoPause": {
      "properties": {
        "delayInMinutes": {
          "description": "Number of minutes of idle time before the Spark Pool is automatically paused. Must be between `5` and `10080`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "delayInMinutes"
      ],
      "type": "object"
    },
    "azure:synapse/SparkPoolAutoScale:SparkPoolAutoScale": {
      "properties": {
        "maxNodeCount": {
          "description": "The maximum number of nodes the Spark Pool can support. Must be between `3` and `200`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "minNodeCount": {
          "description": "The minimum number of nodes the Spark Pool can support. Must be between `3` and `200`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "maxNodeCount",
        "minNodeCount"
      ],
      "type": "object"
    },
    "azure:synapse/SparkPoolLibraryRequirement:SparkPoolLibraryRequirement": {
      "properties": {
        "content": {
          "description": "The content of library requirements.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "filename": {
          "description": "The name of the library requirements file.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "content",
        "filename"
      ],
      "type": "object"
    },
    "azure:synapse/SqlPoolRestore:SqlPoolRestore": {
      "properties": {
        "pointInTime": {
          "description": "Specifies the Snapshot time to restore. Changing this forces a new Synapse Sql Pool to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "sourceDatabaseId": {
          "description": "The ID of the Synapse Sql Pool or Sql Database which is to restore. Changing this forces a new Synapse Sql Pool to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "pointInTime",
        "sourceDatabaseId"
      ],
      "type": "object"
    },
    "azure:synapse/WorkspaceAadAdmin:WorkspaceAadAdmin": {
      "properties": {
        "login": {
          "description": "The login name of the Azure AD Administrator of this Synapse Workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "objectId": {
          "description": "The object id of the Azure AD Administrator of this Synapse Workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The tenant id of the Azure AD Administrator of this Synapse Workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "login",
        "objectId",
        "tenantId"
      ],
      "type": "object"
    },
    "azure:synapse/WorkspaceAzureDevopsRepo:WorkspaceAzureDevopsRepo": {
      "properties": {
        "accountName": {
          "description": "Specifies the Azure DevOps account name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "branchName": {
          "description": "Specifies the collaboration branch of the repository to get code from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "projectName": {
          "description": "Specifies the name of the Azure DevOps project.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "repositoryName": {
          "description": "Specifies the name of the git repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rootFolder": {
          "description": "Specifies the root folder within the repository. Set to `/` for the top level.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "the ID of the tenant for the Azure DevOps account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "branchName",
        "projectName",
        "repositoryName",
        "rootFolder"
      ],
      "type": "object"
    },
    "azure:synapse/WorkspaceGithubRepo:WorkspaceGithubRepo": {
      "properties": {
        "accountName": {
          "description": "Specifies the GitHub account name.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "branchName": {
          "description": "Specifies the collaboration branch of the repository to get code from.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "gitUrl": {
          "description": "Specifies the GitHub Enterprise host name. For example: https://github.mydomain.com.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "repositoryName": {
          "description": "Specifies the name of the git repository.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "rootFolder": {
          "description": "Specifies the root folder within the repository. Set to `/` for the top level.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "branchName",
        "repositoryName",
        "rootFolder"
      ],
      "type": "object"
    },
    "azure:synapse/WorkspaceIdentity:WorkspaceIdentity": {
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "principalId",
            "tenantId",
            "type"
          ]
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this Synapse Workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The tenant id of the Azure AD Administrator of this Synapse Workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Identity Type for the Service Principal associated with the Managed Service Identity of this Synapse Workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "type": "object"
    },
    "azure:synapse/getWorkspaceIdentity:getWorkspaceIdentity": {
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "properties": {
        "principalId": {
          "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this Synapse Workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "tenantId": {
          "description": "The Tenant ID for the Service Principal associated with the Managed Service Identity of this Synapse Workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "type": {
          "description": "The Identity Type for the Service Principal associated with the Managed Service Identity of this Synapse Workspace.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "principalId",
        "tenantId",
        "type"
      ],
      "type": "object"
    },
    "azure:trafficmanager/EndpointCustomHeader:EndpointCustomHeader": {
      "properties": {
        "name": {
          "description": "The name of the custom header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value of custom header. Applicable for Http and Https protocol.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "type": "object"
    },
    "azure:trafficmanager/EndpointSubnet:EndpointSubnet": {
      "properties": {
        "first": {
          "description": "The First IP....\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "last": {
          "description": "The Last IP...\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "scope": {
          "description": "The Scope...\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "first"
      ],
      "type": "object"
    },
    "azure:trafficmanager/ProfileDnsConfig:ProfileDnsConfig": {
      "properties": {
        "relativeName": {
          "description": "The relative domain name, this is combined with the domain name used by Traffic Manager to form the FQDN which is exported as documented below. Changing this forces a new resource to be created.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "ttl": {
          "description": "The TTL value of the Profile used by Local DNS resolvers and clients.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "relativeName",
        "ttl"
      ],
      "type": "object"
    },
    "azure:trafficmanager/ProfileMonitorConfig:ProfileMonitorConfig": {
      "properties": {
        "customHeaders": {
          "description": "One or more `custom_header` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:trafficmanager/ProfileMonitorConfigCustomHeader:ProfileMonitorConfigCustomHeader"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "expectedStatusCodeRanges": {
          "description": "A list of status code ranges in the format of `100-101`.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "intervalInSeconds": {
          "description": "The interval used to check the endpoint health from a Traffic Manager probing agent. You can specify two values here: `30` (normal probing) and `10` (fast probing). The default value is `30`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "path": {
          "description": "The path used by the monitoring checks. Required when `protocol` is set to `HTTP` or `HTTPS` - cannot be set when `protocol` is set to `TCP`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "port": {
          "description": "The port number used by the monitoring checks.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "protocol": {
          "description": "The protocol used by the monitoring checks, supported values are `HTTP`, `HTTPS` and `TCP`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "timeoutInSeconds": {
          "description": "The amount of time the Traffic Manager probing agent should wait before considering that check a failure when a health check probe is sent to the endpoint. If `interval_in_seconds` is set to `30`, then `timeout_in_seconds` can be between `5` and `10`. The default value is `10`. If `interval_in_seconds` is set to `10`, then valid values are between `5` and `9` and `timeout_in_seconds` is required.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "toleratedNumberOfFailures": {
          "description": "The number of failures a Traffic Manager probing agent tolerates before marking that endpoint as unhealthy. Valid values are between `0` and `9`. The default value is `3`\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        }
      },
      "required": [
        "port",
        "protocol"
      ],
      "type": "object"
    },
    "azure:trafficmanager/ProfileMonitorConfigCustomHeader:ProfileMonitorConfigCustomHeader": {
      "properties": {
        "name": {
          "description": "The name of the custom header.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "value": {
          "description": "The value of custom header. Applicable for Http and Https protocol.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "type": "object"
    },
    "azure:videoanalyzer/AnalyzerIdentity:AnalyzerIdentity": {
      "properties": {
        "identityIds": {
          "description": "A list of User Assigned Identity ID's to be assigned to this Video Analyzer.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "type": {
          "description": "Specifies the type of Managed Identity that should be configured on this Video Analyzer. At this time the only possible value is `UserAssigned`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "identityIds",
        "type"
      ],
      "type": "object"
    },
    "azure:videoanalyzer/AnalyzerStorageAccount:AnalyzerStorageAccount": {
      "properties": {
        "id": {
          "description": "Specifies the ID of the Storage Account that will be associated with the Video Analyzer instance.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "userAssignedIdentityId": {
          "description": "Specifies the User Assigned Identity ID which should be assigned to a access this Storage Account.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "id",
        "userAssignedIdentityId"
      ],
      "type": "object"
    },
    "azure:waf/PolicyCustomRule:PolicyCustomRule": {
      "properties": {
        "action": {
          "description": "Type of action.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "matchConditions": {
          "description": "One or more `match_conditions` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:waf/PolicyCustomRuleMatchCondition:PolicyCustomRuleMatchCondition"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "name": {
          "description": "Gets name of the resource that is unique within a policy. This name can be used to access the resource.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "priority": {
          "description": "Describes priority of the rule. Rules with a lower value will be evaluated before rules with a higher value.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "ruleType": {
          "description": "Describes the type of rule.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "action",
        "matchConditions",
        "priority",
        "ruleType"
      ],
      "type": "object"
    },
    "azure:waf/PolicyCustomRuleMatchCondition:PolicyCustomRuleMatchCondition": {
      "properties": {
        "matchValues": {
          "description": "A list of match values.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "matchVariables": {
          "description": "One or more `match_variables` blocks as defined below.\n",
          "items": {
            "$ref": "#/types/azure:waf/PolicyCustomRuleMatchConditionMatchVariable:PolicyCustomRuleMatchConditionMatchVariable"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "negationCondition": {
          "description": "Describes if this is negate condition or not\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "operator": {
          "description": "Describes operator to be matched.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "transforms": {
          "description": "A list of transformations to do before the match is attempted.\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "matchValues",
        "matchVariables",
        "operator"
      ],
      "type": "object"
    },
    "azure:waf/PolicyCustomRuleMatchConditionMatchVariable:PolicyCustomRuleMatchConditionMatchVariable": {
      "properties": {
        "selector": {
          "description": "Describes field of the matchVariable collection\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "variableName": {
          "description": "The name of the Match Variable\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "variableName"
      ],
      "type": "object"
    },
    "azure:waf/PolicyManagedRules:PolicyManagedRules": {
      "properties": {
        "exclusions": {
          "description": "One or more `exclusion` block defined below.\n",
          "items": {
            "$ref": "#/types/azure:waf/PolicyManagedRulesExclusion:PolicyManagedRulesExclusion"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "managedRuleSets": {
          "description": "One or more `managed_rule_set` block defined below.\n",
          "items": {
            "$ref": "#/types/azure:waf/PolicyManagedRulesManagedRuleSet:PolicyManagedRulesManagedRuleSet"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        }
      },
      "required": [
        "managedRuleSets"
      ],
      "type": "object"
    },
    "azure:waf/PolicyManagedRulesExclusion:PolicyManagedRulesExclusion": {
      "properties": {
        "matchVariable": {
          "description": "The name of the Match Variable. Possible values: `RequestArgNames`, `RequestCookieNames`, `RequestHeaderNames`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "selector": {
          "description": "Describes field of the matchVariable collection.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "selectorMatchOperator": {
          "description": "Describes operator to be matched. Possible values: `Contains`, `EndsWith`, `Equals`, `EqualsAny`, `StartsWith`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "matchVariable",
        "selector",
        "selectorMatchOperator"
      ],
      "type": "object"
    },
    "azure:waf/PolicyManagedRulesManagedRuleSet:PolicyManagedRulesManagedRuleSet": {
      "properties": {
        "ruleGroupOverrides": {
          "description": "One or more `rule_group_override` block defined below.\n",
          "items": {
            "$ref": "#/types/azure:waf/PolicyManagedRulesManagedRuleSetRuleGroupOverride:PolicyManagedRulesManagedRuleSetRuleGroupOverride"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "type": {
          "description": "The rule set type. Possible values: `Microsoft_BotManagerRuleSet` and `OWASP`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "version": {
          "description": "The rule set version. Possible values: `0.1`, `1.0`, `2.2.9`, `3.0`, `3.1` and `3.2`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "version"
      ],
      "type": "object"
    },
    "azure:waf/PolicyManagedRulesManagedRuleSetRuleGroupOverride:PolicyManagedRulesManagedRuleSetRuleGroupOverride": {
      "properties": {
        "disabledRules": {
          "description": "One or more Rule ID's\n",
          "items": {
            "type": "string"
          },
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "array"
        },
        "ruleGroupName": {
          "description": "The name of the Rule Group\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        }
      },
      "required": [
        "disabledRules",
        "ruleGroupName"
      ],
      "type": "object"
    },
    "azure:waf/PolicyPolicySettings:PolicyPolicySettings": {
      "properties": {
        "enabled": {
          "description": "Describes if the policy is in enabled state or disabled state. Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        },
        "fileUploadLimitInMb": {
          "description": "The File Upload Limit in MB. Accepted values are in the range `1` to `750`. Defaults to `100`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "maxRequestBodySizeInKb": {
          "description": "The Maximum Request Body Size in KB.  Accepted values are in the range `8` to `128`. Defaults to `128`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "integer"
        },
        "mode": {
          "description": "Describes if it is in detection mode or prevention mode at the policy level. Defaults to `Prevention`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "string"
        },
        "requestBodyCheck": {
          "description": "Is Request Body Inspection enabled? Defaults to `true`.\n",
          "language": {
            "python": {
              "mapCase": false
            }
          },
          "type": "boolean"
        }
      },
      "type": "object"
    }
  },
  "version": "4.18.0"
}